Stochastic Solver¶
Homodyne detection¶
Homodyne detection is an extension of the photocurrent method where the output is mixed with a strong external source allowing to get information about the phase of the system. With this method, the resulting detection rate depends is
\[ \begin{align}\begin{aligned}:label: jump_rate\\\tau = tr \left((\gamma^2 + \gamma (C+C^\dag) + C^\dag C)\rho \right)\end{aligned}\end{align} \]
With \(\gamma\), the strength of the external beam and \(C\) the collapse operator. When the beam is very strong \((\gamma >> C^\dag C)\), the rate becomes a constant term plus a term proportional to the quadrature of the system.
Closed system¶
In closed systems, the resulting stochastic differential equation is
(1)¶\[\delta \psi(t) = - i H \psi(t) \delta t
- \sum_n \left( \frac{C_n^{+} C_n}{2} -\frac{e_n}{2} C_n
+ \frac{e_n^2}{8} \right) \psi \delta t
+ \sum_n \left( C_n - \frac{e_n}{2} \right) \psi \delta \omega\]
with
\[ \begin{align}\begin{aligned}:label: jump_rate\\e_n = \left<\psi(t)|C_n + C_n^{+}|\psi(t)\right>\end{aligned}\end{align} \]
Here \(\delta \omega\) is a Wiener increment.
In QuTiP, this is available with the function ssesolve
.
In [1]: times = np.linspace(0.0, 10.0, 201)
In [2]: psi0 = tensor(fock(2, 0), fock(10, 5))
In [3]: a = tensor(qeye(2), destroy(10))
In [4]: sm = tensor(destroy(2), qeye(10))
In [5]: H = 2 * np.pi * a.dag() * a + 2 * np.pi * sm.dag() * sm + 2 * np.pi * 0.25 * (sm * a.dag() + sm.dag() * a)
In [6]: data = ssesolve(H, psi0, times, sc_ops=[np.sqrt(0.1) * a], e_ops=[a.dag() * a, sm.dag() * sm], method="homodyne")
Total run time: 0.03s
In [7]: figure()