Simulate the open-system dynamics of a moving spin under correlated stochastic noise.
Install the package using the Julia package manager.
From the Julia REPL, type ]
to enter the Pkg REPL mode and run
pkg> add SpinShuttling
Consider two spin qubits sited on a close pair of quantum dots (QDots). It can be easily imagined that the two electrons or holes interact with the same ensemble of charge defects, nuclear spins, and other disorders. The same environment will decohere our qubits with similar or, more precisely, correlated noises.
In a more general situation, we can consider a register of spin qubits sited on a 2D array of quantum dots. The statistical fluctuations, or noise, associated with each spin qubit will also share similar properties due to their spatial neighborhoods. That means the noises experienced by any two qubits will have a non-zero cross-covariance. As the distance between the two qubits goes further, their noise will be less correlated since they will share less common environments. For multiple spin qubits sited within a microscopic nano device, their collective dephasing behavior will be non-trivially impacted by the covariance between noises.
From a statistical point of view, this physical picture implies that noises associated with the spins are correlated not only in time but also in space.
A Gaussian random field,
The same random field model of noise can also be used to treat the dephasing of spin shuttling, where a spin qubit is conveyed by a moving potential well.
The moving of the dot can be captured by a simple function, \boldsymbol{x}(t). Then, he noise experienced by the spin can be given the route-specific projection on the noise field
Sequential shuttling of a pair of entangled qubits.
L=10; σ =sqrt(2)/20; M=5000; N=501; T1=100; T0=25; κₜ=1/20; κₓ=1/0.1;
B=OrnsteinUhlenbeckField(0,[κₜ,κₓ],σ)
model=TwoSpinSequentialModel(T0, T1, L, N, B)
Ψ= model.Ψ
ρ=Ψ*Ψ'
w=dephasingmatrix(model)
ρt=w.*ρ
println(ρ)
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)
The quickstart page has a longer example. See the documentation for details.
If you use SpinShuttling.jl in your research, please cite our work.