@@ -157,35 +157,43 @@ end
157157 e_ops = TESetup. e_ops
158158
159159 g = 0.01
160+
161+ ψ_0_e = tensor (fock (N, 0 ), basis (2 , 0 ))
162+ ψ_1_g = tensor (fock (N, 1 ), basis (2 , 1 ))
163+
164+ ψ0_list = [ψ_0_e, ψ_1_g]
160165 ωc_list = [1 , 1.01 , 1.02 ]
161166 ωq_list = [0.96 , 0.97 , 0.98 , 0.99 ]
167+
162168 tlist = range (0 , 20 * 2 π / g, 1000 )
163169
164- ωc (p, t) = p[1 ]
165- ωq (p, t) = p[2 ]
166- H = g * (a' * σm + a * σm ' ) + QobjEvo (a ' * a, ωc ) + QobjEvo (σz / 2 , ωq )
170+ ωc_fun (p, t) = p[1 ]
171+ ωq_fun (p, t) = p[2 ]
172+ H = QobjEvo (a' * a, ωc_fun ) + QobjEvo (σz / 2 , ωq_fun ) + g * (a ' * σm + a * σm ' )
167173
168- sols1 = sesolve_map (H, ψ0 , tlist; e_ops = e_ops, params = [ ωc_list, ωq_list] )
169- sols2 = sesolve_map (H, [ψ0, ψ0], tlist; e_ops = e_ops, params = [ ωc_list, ωq_list] , progress_bar = Val (false ))
174+ sols1 = sesolve_map (H, ψ_0_e , tlist; e_ops = e_ops, params = ( ωc_list, ωq_list) )
175+ sols2 = sesolve_map (H, ψ0_list, tlist; e_ops = e_ops, params = ( ωc_list, ωq_list) , progress_bar = Val (false ))
170176
171177 @test size (sols1) == (1 , 3 , 4 )
172- @test typeof ( sols1) isa Array{<: TimeEvolutionSol }
178+ @test sols1 isa Array{<: TimeEvolutionSol }
173179 @test size (sols2) == (2 , 3 , 4 )
174- @test typeof ( sols2) isa Array{<: TimeEvolutionSol }
180+ @test sols2 isa Array{<: TimeEvolutionSol }
175181 for (i, ωc) in enumerate (ωc_list)
176182 for (j, ωq) in enumerate (ωq_list)
177- sol = sols1[1 , i, j]
183+ sol_0_e = sols2[1 , i, j]
184+ sol_1_g = sols2[2 , i, j]
178185
179186 # # Analytical solution for the expectation value of a' * a
180187 Ω_rabi = sqrt (g^ 2 + ((ωc - ωq) / 2 )^ 2 )
181188 amp_rabi = g^ 2 / Ω_rabi^ 2
182189
183- @test sum (abs .(sol. expect[1 , :] .- amp_rabi .* sin .(Ω_rabi * tlist) .^ 2 )) / length (tlist) < 0.1
190+ @test sol_0_e. expect[1 , :] ≈ amp_rabi .* sin .(Ω_rabi * tlist) .^ 2 atol = 1e-2
191+ @test sol_1_g. expect[1 , :] ≈ 1 .- amp_rabi .* sin .(Ω_rabi * tlist) .^ 2 atol = 1e-2
184192 end
185193 end
186194
187195 @testset " Type Inference sesolve_map" begin
188- @inferred sesolve_map (H, [ψ0, ψ0], tlist; e_ops = e_ops, params = [ ωc_list, ωq_list] , progress_bar = Val (false ))
196+ @inferred sesolve_map (H, ψ0_list, tlist; e_ops = e_ops, params = ( ωc_list, ωq_list) , progress_bar = Val (false ))
189197 end
190198end
191199
0 commit comments