Skip to content

Commit c950058

Browse files
Make changelog and format
1 parent 45a0945 commit c950058

File tree

4 files changed

+33
-8
lines changed

4 files changed

+33
-8
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased](https://github.com/qutip/QuantumToolbox.jl/tree/main)
99

10+
- Add support for `OperatorKet` state input for `mesolve` and `smesolve`. ([#423])
11+
1012
## [v0.28.0]
1113
Release date: 2025-02-22
1214

@@ -171,3 +173,4 @@ Release date: 2024-11-13
171173
[#419]: https://github.com/qutip/QuantumToolbox.jl/issues/419
172174
[#420]: https://github.com/qutip/QuantumToolbox.jl/issues/420
173175
[#421]: https://github.com/qutip/QuantumToolbox.jl/issues/421
176+
[#423]: https://github.com/qutip/QuantumToolbox.jl/issues/423

src/time_evolution/mesolve.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ function mesolveProblem(
7979
ρ0 = if isoperket(ψ0) # Convert it to dense vector with complex element type
8080
to_dense(_CType(T), copy(ψ0.data))
8181
else
82-
to_dense(_CType(T), mat2vec(ket2dm(ψ0).data))
82+
to_dense(_CType(T), mat2vec(ket2dm(ψ0).data))
8383
end
8484
L = L_evo.data
8585

@@ -89,7 +89,7 @@ function mesolveProblem(
8989
tspan = (tlist[1], tlist[end])
9090
prob = ODEProblem{getVal(inplace),FullSpecialize}(L, ρ0, tspan, params; kwargs3...)
9191

92-
return TimeEvolutionProblem(prob, tlist, L_evo.dimensions, (isoperket=Val(isoperket(ψ0)),))
92+
return TimeEvolutionProblem(prob, tlist, L_evo.dimensions, (isoperket = Val(isoperket(ψ0)),))
9393
end
9494

9595
@doc raw"""

src/time_evolution/smesolve.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ function smesolveProblem(
104104
ρ0 = if isoperket(ψ0) # Convert it to dense vector with complex element type
105105
to_dense(_CType(T), copy(ψ0.data))
106106
else
107-
to_dense(_CType(T), mat2vec(ket2dm(ψ0).data))
107+
to_dense(_CType(T), mat2vec(ket2dm(ψ0).data))
108108
end
109109

110110
progr = ProgressBar(length(tlist), enable = getVal(progress_bar))
@@ -148,7 +148,7 @@ function smesolveProblem(
148148
kwargs3...,
149149
)
150150

151-
return TimeEvolutionProblem(prob, tlist, dims, (isoperket=Val(isoperket(ψ0)),))
151+
return TimeEvolutionProblem(prob, tlist, dims, (isoperket = Val(isoperket(ψ0)),))
152152
end
153153

154154
@doc raw"""

test/core-test/time_evolution.jl

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,29 @@
159159
sol_sme3 = smesolve(H, ψ0, tlist, c_ops_sme2, sc_ops_sme2, e_ops = e_ops, progress_bar = Val(false))
160160

161161
# For testing the `OperatorKet` input
162-
sol_me4 = mesolve(H, operator_to_vector(ket2dm(ψ0)), tlist, c_ops, saveat=saveat, progress_bar = Val(false))
163-
sol_sme4 = smesolve(H, ψ0, tlist, c_ops_sme, sc_ops_sme, saveat=saveat, ntraj=10, progress_bar = Val(false), rng = MersenneTwister(12))
164-
sol_sme5 = smesolve(H, operator_to_vector(ket2dm(ψ0)), tlist, c_ops_sme, sc_ops_sme, saveat=saveat, ntraj=10, progress_bar = Val(false), rng = MersenneTwister(12))
162+
sol_me4 = mesolve(H, operator_to_vector(ket2dm(ψ0)), tlist, c_ops, saveat = saveat, progress_bar = Val(false))
163+
sol_sme4 = smesolve(
164+
H,
165+
ψ0,
166+
tlist,
167+
c_ops_sme,
168+
sc_ops_sme,
169+
saveat = saveat,
170+
ntraj = 10,
171+
progress_bar = Val(false),
172+
rng = MersenneTwister(12),
173+
)
174+
sol_sme5 = smesolve(
175+
H,
176+
operator_to_vector(ket2dm(ψ0)),
177+
tlist,
178+
c_ops_sme,
179+
sc_ops_sme,
180+
saveat = saveat,
181+
ntraj = 10,
182+
progress_bar = Val(false),
183+
rng = MersenneTwister(12),
184+
)
165185

166186
ρt_mc = [ket2dm.(normalize.(states)) for states in sol_mc_states.states]
167187
expect_mc_states = mapreduce(states -> expect.(Ref(e_ops[1]), states), hcat, ρt_mc)
@@ -208,7 +228,9 @@
208228
@test isnothing(sol_sme.measurement)
209229
@test size(sol_sse2.measurement) == (length(c_ops), 20, length(tlist) - 1)
210230
@test size(sol_sme2.measurement) == (length(sc_ops_sme), 20, length(tlist) - 1)
211-
@test all([sol_sme4.states[j][i] vector_to_operator(sol_sme5.states[j][i]) for i in eachindex(saveat), j in 1:10])
231+
@test all([
232+
sol_sme4.states[j][i] vector_to_operator(sol_sme5.states[j][i]) for i in eachindex(saveat), j in 1:10
233+
])
212234

213235
@test sol_me_string ==
214236
"Solution of time evolution\n" *

0 commit comments

Comments
 (0)