The MCWF method [2] [3] [4] [6] aims at the simulation of open quantum systems based on a stochastic (“Monte Carlo”) trajectory. In terms of dimensionality, this is certainly a huge advantage as compared to solving the Master equation directly. On the other hand, stochasticity requires us to run many trajectories, but the method provides an optimal sampling of the ensemble density operator so that the relative error is inversely proportional to the number of trajectories.
The optimal sampling is achieved by evolving the state vector in two steps, one deterministic and one stochastic (quantum jump). Suppose that the Master equation of the system is of the form
This is the usual form in quantum optics, and, in fact, the most general (so-called Lindblad) form. The non-Hermitian Hamiltonian is defined as
At time the system is in a state with normalised state vector . To obtain the state vector at time up to first order in :
to obtain (up to first order in )
Since is non-Hermitian, this new state vector is not normalised. The square of its norm reads
where reads
Note that the timestep should be small enough so that this first-order calculation be valid. In particular, we require that
If , on the other hand, a quantum jump occurs, and the new normalised state vector is chosen from among the different state vectors according to the probability distribution :
The method as described above has several shortcomings. Firstly, subsequent steps of no-jump evolution (Step 1) reduce to the first order (Euler) method of evolving the Schrödinger equation, which is inappropriate in most cases of interest. Instead, to perform Step 1, we use an adaptive step-size ODE routine, usually the embedded Runge-Kutta Cash-Karp algorithm [7]. This has an intrinsic time-step management, which strives to achieve an optimal stepsize within specified (absolute and relative) error bounds.
A second problem with the original proposal is that it leaves unspecified what is to be done if after the coherent step, when calculating , we find that condition is not fulfilled. (With the fixed stepsize Euler method this happens if the jump rate grows too big, but with the adaptive stepsize algorithm, it can happen also if the timestep grows too big.)
In the framework, we adopt a further heuristic in this case, introducing a tolerance interval for too big values: If at , overshoots a certain , then from the jump rate at this time instant, a decreased stepsize is extracted to be feeded into the ODE stepper as the stepsize to try for the next timestep. On the other hand, if overshoots a , then the step is altogether discarded, the state vector and the state of the ODE stepper being restored to cached states at time .
In many situations it is worth using some sort of interaction picture, which means that instead of the non-Hermitian Schrödinger equation above, we strive to solve
where . Note that can be nonunitary, and therefore in general .
The two pictures are accorded after each timestep, i.e. before the timestep and after the timestep, the transformation is performed. This we do on one hand for convenience and for compatibility with the case when no interaction picture is used, but on the other hand also because is nonunitary and hence for some of its elements will become very large, while others very small, possibly resulting in numerical problems. It is in fact advisable to avoid evaluating with very large arguments.