Tiny package for determining iteratively the steady state of time-independent Liouville superoperators thanks to QuantumOptics.jl and IterativeSolvers.jl.
The code was integrated into QuantumOptics.jl and may be accessed directly via its IPA.
rho = Steadystate.iterative([rho,] H, J[, method!], args...; kwargs...)
rho, log = Steadystate.iterative([rho,] H, J[, method!], args...; log=true, kwargs...)
Evaluates the steady state by solving iteratively the linear system while imposing a trace one condition, where the Liouvillian is defined from a Hamiltonian H
and a vector of jump operators J
. If method!
is not specified, it defaults to stabilized biconjugate gradient with l=2
GMRES steps if the operators or matrices are dense and to induced dimension reduction with a shadow space of dimension s=8
for sparse operators or any kind of matrices (e.g. CuArrays). Further arguments are passed to the iterative solver.
Steadystate.iterative!(rho, H, J[, method!], args...; kwargs...)
rho, log = Steadystate.iterative!(rho, H, J[, method!], args...; log=true, kwargs...)
Same as the above but in-place.
Furthermore, adjoint jump operators Jdagger
and decay rates rates
can be specified as keyword arguments, as in QuantumOptics.steadystate.master
.