C++QEDCore  v2 Milestone 10
a framework for simulating open quantum dynamics – core
The notion of “special jumps” in the framework

Implementers of Liouvillean (typically, certain free elements) may decide to forgo the explicit calculation of the jump rate corresponding to any of the Lindblad operators, because the action of the Lindblad on a state vector contains enough information about the jump rate as well. This is signalled by a negative jump rate towards the framework.

The motivation for this is usually that the explicit calculation of a given jump rate is cumbersome and error-prone in some cases.

The quantumtrajectory::MCWF_trajectory class, when encountering a negative jump rate, will reach for the Liouvillean::actWithJ function to calculate the corresponding rate.

Assume that $J_m$ is the set of Lindblads, and for $m=\text{at}$ the jump rate is found negative. In this case, $\ket{\Psi_\text{at}}=J_\text{at}\ket\Psi$ is calculated and cached by the trajectory driver (cf. quantumtrajectory::MCWF_trajectory::calculateSpecialRates) and the given jump rate is taken as $\norm{\ket{\Psi_\text{at}}}^2$.

Note
In certain cases, the use of a special jump can be less efficient than the explicit calculation of the rate.