|
65 | 65 |
|
66 | 66 | @doc raw""" |
67 | 67 | steadystate( |
68 | | - H::QuantumObject, |
| 68 | + H::QuantumObject{DT,OpType}, |
69 | 69 | c_ops::Union{Nothing,AbstractVector,Tuple} = nothing; |
70 | 70 | solver::SteadyStateSolver = SteadyStateDirectSolver(), |
71 | | - kwargs... |
| 71 | + kwargs..., |
72 | 72 | ) |
73 | 73 |
|
74 | 74 | Solve the stationary state based on different solvers. |
75 | 75 |
|
76 | 76 | # Parameters |
77 | | -- `H::QuantumObject`: The Hamiltonian or the Liouvillian of the system. |
78 | | -- `c_ops::Union{Nothing,AbstractVector,Tuple}=nothing`: The list of the collapse operators. |
79 | | -- `solver::SteadyStateSolver=SteadyStateDirectSolver()`: see documentation [Solving for Steady-State Solutions](@ref doc:Solving-for-Steady-State-Solutions) for different solvers. |
80 | | -- `kwargs...`: The keyword arguments for the solver. |
| 77 | +- `H`: The Hamiltonian or the Liouvillian of the system. |
| 78 | +- `c_ops`: The list of the collapse operators. |
| 79 | +- `solver`: see documentation [Solving for Steady-State Solutions](@ref doc:Solving-for-Steady-State-Solutions) for different solvers. |
| 80 | +- `kwargs`: The keyword arguments for the solver. |
81 | 81 | """ |
82 | 82 | function steadystate( |
83 | | - H::QuantumObject{<:AbstractArray,OpType}, |
| 83 | + H::QuantumObject{DT,OpType}, |
84 | 84 | c_ops::Union{Nothing,AbstractVector,Tuple} = nothing; |
85 | 85 | solver::SteadyStateSolver = SteadyStateDirectSolver(), |
86 | 86 | kwargs..., |
87 | | -) where {OpType<:Union{OperatorQuantumObject,SuperOperatorQuantumObject}} |
| 87 | +) where {DT,OpType<:Union{OperatorQuantumObject,SuperOperatorQuantumObject}} |
88 | 88 | L = liouvillian(H, c_ops) |
89 | 89 |
|
90 | 90 | return _steadystate(L, solver; kwargs...) |
@@ -185,14 +185,14 @@ _steadystate( |
185 | 185 |
|
186 | 186 | @doc raw""" |
187 | 187 | steadystate( |
188 | | - H::QuantumObject, |
189 | | - ψ0::QuantumObject, |
| 188 | + H::QuantumObject{DT1,HOpType}, |
| 189 | + ψ0::QuantumObject{DT2,StateOpType}, |
190 | 190 | tmax::Real = Inf, |
191 | 191 | c_ops::Union{Nothing,AbstractVector,Tuple} = nothing; |
192 | 192 | solver::SteadyStateODESolver = SteadyStateODESolver(), |
193 | 193 | reltol::Real = 1.0e-8, |
194 | 194 | abstol::Real = 1.0e-10, |
195 | | - kwargs... |
| 195 | + kwargs..., |
196 | 196 | ) |
197 | 197 |
|
198 | 198 | Solve the stationary state based on time evolution (ordinary differential equations; `OrdinaryDiffEq.jl`) with a given initial state. |
|
210 | 210 | ``` |
211 | 211 |
|
212 | 212 | # Parameters |
213 | | -- `H::QuantumObject`: The Hamiltonian or the Liouvillian of the system. |
214 | | -- `ψ0::QuantumObject`: The initial state of the system. |
215 | | -- `tmax::Real=Inf`: The final time step for the steady state problem. |
216 | | -- `c_ops::Union{Nothing,AbstractVector,Tuple}=nothing`: The list of the collapse operators. |
217 | | -- `solver::SteadyStateODESolver=SteadyStateODESolver()`: see [`SteadyStateODESolver`](@ref) for more details. |
218 | | -- `reltol::Real=1.0e-8`: Relative tolerance in steady state terminate condition and solver adaptive timestepping. |
219 | | -- `abstol::Real=1.0e-10`: Absolute tolerance in steady state terminate condition and solver adaptive timestepping. |
220 | | -- `kwargs...`: The keyword arguments for the ODEProblem. |
| 213 | +- `H`: The Hamiltonian or the Liouvillian of the system. |
| 214 | +- `ψ0`: The initial state of the system. |
| 215 | +- `tmax=Inf`: The final time step for the steady state problem. |
| 216 | +- `c_ops=nothing`: The list of the collapse operators. |
| 217 | +- `solver`: see [`SteadyStateODESolver`](@ref) for more details. |
| 218 | +- `reltol=1.0e-8`: Relative tolerance in steady state terminate condition and solver adaptive timestepping. |
| 219 | +- `abstol=1.0e-10`: Absolute tolerance in steady state terminate condition and solver adaptive timestepping. |
| 220 | +- `kwargs`: The keyword arguments for the ODEProblem. |
221 | 221 | """ |
222 | 222 | function steadystate( |
223 | 223 | H::QuantumObject{DT1,HOpType}, |
|
0 commit comments