/SteadyState.jl

Simple WIP package inteded for iterative quantum open system steady-state determination.

Primary LanguageJuliaMIT LicenseMIT

SteadyState.jl

Build Status Codecov

Tiny package for determining iteratively the steady state of time-independent Liouville superoperators thanks to QuantumOptics.jl and IterativeSolvers.jl.

Important

The code was integrated into QuantumOptics.jl and may be accessed directly via its IPA.

Methods

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.