Skip to content

Commit 55a773a

Browse files
committed
fix bug
1 parent 329a8b2 commit 55a773a

File tree

2 files changed

+31
-7
lines changed

2 files changed

+31
-7
lines changed

src/analytics.jl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,11 @@ function analyticalrabi(t::AbstractVector{Float64}, ensemble::SpinEnsemble, h::R
5353
end
5454
end
5555

56-
function analyticalfid(t::AbstractVector{Float64}, ensemble::SpinEnsemble)
56+
function analyticalfid(t::AbstractVector{Float64}, ensemble::SpinEnsemble;
57+
spin=1/2::Real)
5758
@assert isdilute(ensemble)
5859

5960
dim=ensemble.dim
6061
T2=coherencetime(ensemble)
61-
return exp.(-(abs.(t/T2).^(1/dim)))
62+
return spin*exp.(-(abs.(t/T2).^(dim/3)))
6263
end

test/test_dynamics.jl

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,39 @@ import Statistics: mean, std
1212
the_curve=analyticalrabi(t,ensemble,h)
1313
mc_curve=rabi(t, ensemble, h; M=400, N=500)
1414

15-
rabi_error=abs.(mc_curve-the_curve)
16-
avg_err=mean(rabi_error); std_err=std(rabi_error);
15+
error=abs.(mc_curve-the_curve)
16+
avg_err=mean(error); std_err=std(error);
1717

18-
scatter(t,mc_curve,labels="Numerical", fmt = :png)
18+
scatter(t,mc_curve,labels="Numerical",
19+
fmt = :png, title="Rabi Oscillation",
20+
xlabel="t",
21+
ylabel="f(t)")
1922
plot!(t, the_curve,labels="Analytical",linestyle=:dash)
2023
savefig("./.figs/rabi_test.png")
2124

2225
println("mean error: ", avg_err)
2326
println("std error: ", std_err)
2427
@test avg_err<0.01
25-
@test std_err<0.1
26-
# fid(ensemble)
28+
@test std_err<0.01
29+
30+
dt=T2/200;
31+
t=0:dt:T2
32+
println("generating free induction decay curve...")
33+
the_curve=analyticalfid(t,ensemble)
34+
mc_curve=fid(t, ensemble; M=400, N=500)
35+
36+
error=abs.(mc_curve-the_curve)
37+
avg_err=mean(error); std_err=std(error);
38+
39+
scatter(t,mc_curve,labels="Numerical",
40+
fmt = :png, title="Free Induction Decay",
41+
xlabel="t",
42+
ylabel="f(t)")
43+
plot!(t, the_curve,labels="Analytical",linestyle=:dash)
44+
savefig("./.figs/fid_test.png")
45+
46+
println("mean error: ", avg_err)
47+
println("std error: ", std_err)
48+
@test avg_err<0.01
49+
@test std_err<0.01
2750
end

0 commit comments

Comments
 (0)