dq.method.LowRank
LowRank(
rank: int,
ode_method: Method = Tsit5(),
linear_solver: LinearSolver = LinearSolver.QR,
perturbation_scale: float = 1e-05,
*,
key: PRNGKeyArray
)
Low-rank method for the Lindblad master equation.
This method solves the low-rank Lindblad master equation by evolving factors
m(t) such that $rho(t) = m(t) m(t)^\dagger$, following Goutte, Savona (2025)
arxiv:2508.18114. The low-rank method is available via
dq.mesolve() by passing method=dq.method.LowRank(...).
Parameters:
-
rank–Rank of the low-rank approximation (number of columns of
m(t)). -
ode_method– -
linear_solver–Linear solver used for the low-rank evolution. Supported values are
LowRank.qrandLowRank.cholesky. Defaults toLowRank.qr.LowRank.choleskyis usually faster but may lead to instabilities. -
perturbation_scale–Regularization parameter for the initialization of the low-rank factors. This appends random orthonormalized states of norm
perturbation_scaleto avoid \(m^\dag m\) being singular. Defaults to1e-5. -
key–PRNG key used for random initialization of the low-rank factors.
Note
The low-rank factors can be accessed from
result.lowrank_states.
result.states computes and returns the full-rank density matrices.
Supported gradients
This method supports the same gradients as the chosen ode_method.
Warning
Differentiation may be unstable and return wrong results or overflow: verify stability before using in production.
Warning
The LowRank.cholesky linear solver may lead to instabilities and the
progress bar getting stuck when using single precision.
Warning
The low-rank method is more sensitive to time-step error. If the accuracy does
not improve when increasing the rank, consider tightening the tolerances of
the chosen ode_method.