In the framework, a single Monte-Carlo wave function step at time (at which point the Schrödinger- and interaction pictures coincide) is implemented as a sequence of the following stages:
- If the system time evolution has Hamiltonian part, it is evolved with an adaptive-size step (cf. Evolved). This takes the system into .
- The exact part (if any) of the time evolution is applied, making that the Schrödinger and interaction pictures coincide again at .
- The state vector is renormalized.
- The rates (probabilities per unit time) corresponding to all jump operators are calculated. If some rates are found negative (“special jump”, cf. explanation at probabilities()), then is calculated (and tabulated) instead, and the probability is calculated as .
- First, it is verified whether the total jump probability is not too big. This is performed on two levels:
- The total jump rate is calculated.
- If , the step is retraced: both the state vector and the state of the ODE stepper are restored to cached values at the beginning of the timestep, and phase I. is performed anew with a smaller stepsize . With this, we ensure that is likely not to be overshot in the next try.
Note
It is assumed that , their ratio being a parameter of the MCWF stepper.
- If just (where is a guess for the next timestep given by the ODE stepper), the coherent step is accepted, but the timestep to try next is modified, to reduce the likeliness of overshoot: .
See also
The discussion at An adaptive MCWF method.
- After a successful coherent step resulting in an acceptable , the possible occurence of a quantum jump is considered: It is randomly decided which (if any) of the jumps to perform. If it is found to be a special jump, then the tabulated is taken.
Note
In phase II.2.b., another approach would be not to trace back the whole step, but make a coherent step backwards to an intermediate time instant found by linear interpolation. This has several drawbacks, however, the most significant being that in the ODE stepper, it is not clear what to take as the timestep to try at the point when the direction of time is reversed. (Although in Evolved it is simply taken to be the timestep done in the last step…)
(1)
...
Alternative Liouvillean calculation based on additional virtual function signalled by something.
On the basis of Pictures.pdf find out when exactly the code reusal for the calculation of the Liouvillean can be applied.
./release/1particle1mode –evol master –dc 1 –T 1 –fin 7
operation | n/timestep | time |
---|---|---|
Hamiltonian | (nRejected+1)*5 | 1.31s |
TwoTimesRealPartOfSelf | “ | 0.05s |
Liouvillean | (”)*nJump | 0.33s |
Exact | 1 | 0.40s |
Smoothing | 1 | 0.10s |
Averaging | ≤1 | 0.04s |