Skip to content

dq.solver.Expm

Expm()

Explicit matrix exponentiation to compute propagators.

Explicitly batch-compute the propagators for all time intervals in tsave. These propagators are then iteratively applied:

For the Schrödinger equation with constant Hamiltonian \(H\), the propagator from time \(t_0\) to time \(t_1\) is an \(n\times n\) matrix given by $$ U(t_0, t_1) = \exp(-i (t_1 - t_0) H). $$

For the Lindblad master equation with constant Liouvillian \(\mathcal{L}\), the problem is vectorized and the propagator from time \(t_0\) to time \(t_1\) is an \(n^2\times n^2\) matrix given by $$ \mathcal{U}(t_0, t_1) = \exp((t_1 - t_0)\mathcal{L}). $$

Warning

This solver is not recommended for open systems of large dimension, due to the \(\mathcal{O}(n^6)\) scaling of computing the Liouvillian exponential.

Warning

This solver only supports constant or piecewise constant Hamiltonian and jump operators.

Supported gradients

This solver supports differentiation with dq.gradient.Autograd (default).