diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json
index 716883b..9e8574d 100644
--- a/dev/.documenter-siteinfo.json
+++ b/dev/.documenter-siteinfo.json
@@ -1 +1 @@
-{"documenter":{"julia_version":"1.10.4","generation_timestamp":"2024-07-06T16:34:43","documenter_version":"1.3.0"}}
\ No newline at end of file
+{"documenter":{"julia_version":"1.10.4","generation_timestamp":"2024-07-06T16:38:30","documenter_version":"1.3.0"}}
\ No newline at end of file
diff --git a/dev/guide/ebb453d4.svg b/dev/guide/0af66b7c.svg
similarity index 92%
rename from dev/guide/ebb453d4.svg
rename to dev/guide/0af66b7c.svg
index 83bd7ad..dc30977 100644
--- a/dev/guide/ebb453d4.svg
+++ b/dev/guide/0af66b7c.svg
@@ -1,49 +1,49 @@
diff --git a/dev/guide/20c94f91.svg b/dev/guide/20c94f91.svg
new file mode 100644
index 0000000..7f48146
--- /dev/null
+++ b/dev/guide/20c94f91.svg
@@ -0,0 +1,42 @@
+
+
diff --git a/dev/guide/4748a83f.svg b/dev/guide/4748a83f.svg
deleted file mode 100644
index e95d34d..0000000
--- a/dev/guide/4748a83f.svg
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
diff --git a/dev/guide/c9f42678.svg b/dev/guide/5c49b225.svg
similarity index 93%
rename from dev/guide/c9f42678.svg
rename to dev/guide/5c49b225.svg
index 391ac58..0b39fd9 100644
--- a/dev/guide/c9f42678.svg
+++ b/dev/guide/5c49b225.svg
@@ -1,45 +1,45 @@
diff --git a/dev/guide/4910e8de.svg b/dev/guide/f1fa763e.svg
similarity index 88%
rename from dev/guide/4910e8de.svg
rename to dev/guide/f1fa763e.svg
index 79fc423..3073cd7 100644
--- a/dev/guide/4910e8de.svg
+++ b/dev/guide/f1fa763e.svg
@@ -1,52 +1,52 @@
+
A Gaussian random process (random function) can be obtained by projecting the Gaussian random field along the time-space array P
. Then, we can use R()
to invoke the process and generate a random time series.
R=RandomFunction(P, B)
-plot(t, R(), xlabel="t", ylabel="B(t)", size=(400,300))
We can follow the above approach to define a single-spin shuttling model.
σ = sqrt(2) / 20; # variance of the process
+plot(t, R(), xlabel="t", ylabel="B(t)", size=(400,300))
We can follow the above approach to define a single-spin shuttling model.
σ = sqrt(2) / 20; # variance of the process
κₜ=1/20; # temporal correlation
κₓ=1/0.1; # spatial correlation
B=OrnsteinUhlenbeckField(0,[κₜ,κₓ],σ);
@@ -47,14 +47,14 @@
Shuttling Paths:
The println
function provides us with an overview of the model. It's a single spin shuttling problem with the initial state Ψ₀
and an Ornstein-Uhlenbeck noise. The total time of simulation is T
, which is discretized into N
steps.
The effective noise of this spin qubit is completely characterized by its covariance matrix.
heatmap(collect(sqrt.(model.R.Σ)), title="sqrt cov, 1-spin one-way shuttling",
size=(400,300),
xlabel="t1", ylabel="t2", dpi=300,
-right_margin=5Plots.mm)
The state fidelity after such a quantum process can be obtained using numerical integration of the covariance matrix.
f1=statefidelity(model); # direct integration
+right_margin=5Plots.mm)
The state fidelity after such a quantum process can be obtained using numerical integration of the covariance matrix.
f1=statefidelity(model); # direct integration
-f2, f2_err=sampling(model, statefidelity, M); # Monte-Carlo sampling
(0.5211667032848887, 0.12369871362169353)
An analytical solution is also available for single-spin shuttling at a constant velocity.
f3=1/2*(1+W(T,L,B));
0.5183394145238882
We can compare the results form the three methods and check their consistency.
@assert isapprox(f1, f3,rtol=1e-2)
+f2, f2_err=sampling(model, statefidelity, M); # Monte-Carlo sampling
(0.5166138596873322, 0.1256277422304151)
An analytical solution is also available for single-spin shuttling at a constant velocity.
f3=1/2*(1+W(T,L,B));
0.5183394145238882
We can compare the results form the three methods and check their consistency.
@assert isapprox(f1, f3,rtol=1e-2)
@assert isapprox(f2, f3, rtol=1e-2)
println("NI:", f1)
println("MC:", f2)
println("TH:", f3)
NI:0.5172897445804852
-MC:0.5211667032848887
+MC:0.5166138596873322
TH:0.5183394145238882
The pure dephasing channel is computationally simple and can be represented by a dephasing matrix $w$, such that the final density state after the channel is given by $\mathcal{E}(\rho)=w \odot\rho$. Here $\odot$ is an element-wise Hadmard product.
Ψ= model.Ψ
ρ=Ψ*Ψ'
w=dephasingmatrix(model)
@@ -72,17 +72,17 @@
Shuttling Paths:
The system is initialized in the Bell state $\ket{\Psi^-}$. The model encapsulated a model of two spins shuttled in a sequential manner, as we can see from the two trajectories x1(t)
and x2(t)
. One spin goes first and then follows another, with a waiting time of T0
. This is modeled by the piece-wise linear trajectories. We can see some quite interesting covariance from such a system.
plot(model.R.P[1:N,1], label="x1(t)",
xlabel="t", ylabel="x",size=(400,300), dpi=300
)
-plot!(model.R.P[N+1:2N,1], label="x2(t)")
heatmap(collect(model.R.Σ)*1e3, title="covariance, 2-spin sequential shuttling",
+plot!(model.R.P[N+1:2N,1], label="x2(t)")
heatmap(collect(model.R.Σ)*1e3, title="covariance, 2-spin sequential shuttling",
size=(400,300),
xlabel="t1", ylabel="t2", dpi=300,
-right_margin=5Plots.mm)
We can check the dephasing of the system and calculate its fidelity as before.
f1=statefidelity(model)
+right_margin=5Plots.mm)
We can check the dephasing of the system and calculate its fidelity as before.
f1=statefidelity(model)
f2, f2_err=sampling(model, statefidelity, M)
f3=1/2*(1+W(T0, T1, L,B))
println("NI:", f1)
println("MC:", f2)
println("TH:", f3)
NI:0.6234798910481352
-MC:0.6278533050960324
+MC:0.6226647517717563
TH:0.6238118248013063
The density matrix after the channel can be given by the dephasing matrix.
Ψ= model.Ψ
ρ=Ψ*Ψ'
w=dephasingmatrix(model)
@@ -91,4 +91,4 @@
0.0 0.0 -0.0 0.0
0.0 0.5 -0.12348 0.0
-0.0 -0.12348 0.5 -0.0
- 0.0 0.0 -0.0 0.0
Settings
This document was generated with Documenter.jl version 1.3.0 on Saturday 6 July 2024. Using Julia version 1.10.4.