@@ -119,16 +119,15 @@ function _mcsolve_generate_statistics(sol, i, states, expvals_all, jump_times, j
119119 return jump_which[i] = sol_i. prob. p. jump_which
120120end
121121
122- function _mcsolve_make_H_eff (H:: QuantumObject , c_ops)
123- # this will be convert to QobjEvo in sesolveProblem (avoid extra ScalarOperator)
124- c_ops isa Nothing && return H
125- return H - 1im * mapreduce (op -> op' * op, + , c_ops) / 2
122+ function _mcsolve_make_Heff_QobjEvo (H:: QuantumObject , c_ops)
123+ c_ops isa Nothing && return QobjEvo (H)
124+ return QobjEvo (H - 1im * mapreduce (op -> op' * op, + , c_ops) / 2 )
126125end
127- function _mcsolve_make_H_eff (H:: Tuple , c_ops)
126+ function _mcsolve_make_Heff_QobjEvo (H:: Tuple , c_ops)
128127 c_ops isa Nothing && return QobjEvo (H)
129128 return QobjEvo ((H... , - 1im * mapreduce (op -> op' * op, + , c_ops) / 2 ))
130129end
131- function _mcsolve_make_H_eff (H:: QuantumObjectEvolution , c_ops)
130+ function _mcsolve_make_Heff_QobjEvo (H:: QuantumObjectEvolution , c_ops)
132131 c_ops isa Nothing && return H
133132 return H + QobjEvo (mapreduce (op -> op' * op, + , c_ops), - 1im / 2 )
134133end
@@ -222,7 +221,7 @@ function mcsolveProblem(
222221
223222 tlist = convert (Vector{_FType (ψ0)}, tlist) # Convert it to support GPUs and avoid type instabilities for OrdinaryDiffEq.jl
224223
225- H_eff = _mcsolve_make_H_eff (H, c_ops)
224+ H_eff_evo = _mcsolve_make_Heff_QobjEvo (H, c_ops)
226225
227226 if e_ops isa Nothing
228227 expvals = Array {ComplexF64} (undef, 0 , length (tlist))
@@ -268,11 +267,11 @@ function mcsolveProblem(
268267 params... ,
269268 )
270269
271- return mcsolveProblem (H_eff , ψ0, tlist, params2, jump_callback; kwargs2... )
270+ return mcsolveProblem (H_eff_evo , ψ0, tlist, params2, jump_callback; kwargs2... )
272271end
273272
274273function mcsolveProblem (
275- H_eff :: AbstractQuantumObject {DT1,OperatorQuantumObject} ,
274+ H_eff_evo :: QuantumObjectEvolution {DT1,OperatorQuantumObject} ,
276275 ψ0:: QuantumObject{DT2,KetQuantumObject} ,
277276 tlist:: AbstractVector ,
278277 params:: NamedTuple ,
@@ -286,11 +285,11 @@ function mcsolveProblem(
286285 haskey (kwargs2, :callback ) ? merge (kwargs2, (callback = CallbackSet (cb1, cb2, kwargs2. callback),)) :
287286 merge (kwargs2, (callback = CallbackSet (cb1, cb2),))
288287
289- return sesolveProblem (H_eff , ψ0, tlist; params = params, kwargs2... )
288+ return sesolveProblem (H_eff_evo , ψ0, tlist; params = params, kwargs2... )
290289end
291290
292291function mcsolveProblem (
293- H_eff :: AbstractQuantumObject {DT1,OperatorQuantumObject} ,
292+ H_eff_evo :: QuantumObjectEvolution {DT1,OperatorQuantumObject} ,
294293 ψ0:: QuantumObject{DT2,KetQuantumObject} ,
295294 tlist:: AbstractVector ,
296295 params:: NamedTuple ,
@@ -310,7 +309,7 @@ function mcsolveProblem(
310309 haskey (kwargs2, :callback ) ? merge (kwargs2, (callback = CallbackSet (cb1, cb2, kwargs2. callback),)) :
311310 merge (kwargs2, (callback = CallbackSet (cb1, cb2),))
312311
313- return sesolveProblem (H_eff , ψ0, tlist; params = params, kwargs2... )
312+ return sesolveProblem (H_eff_evo , ψ0, tlist; params = params, kwargs2... )
314313end
315314
316315@doc raw """
0 commit comments