From 67e610002cf55ed24a43e7d47bff13c5ae6c7ffb Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Tue, 27 Aug 2024 15:16:20 +0000 Subject: [PATCH] build based on 310c075 --- dev/.documenter-siteinfo.json | 2 +- dev/guide/1f2edeb3.svg | 44 ++++++++++++++ dev/guide/{1f7f98ff.svg => 458391c0.svg} | 76 ++++++++++++------------ dev/guide/{f03a28e6.svg => 542b7275.svg} | 62 +++++++++---------- dev/guide/{3dab6a67.svg => 8a12b1fb.svg} | 70 +++++++++++----------- dev/guide/b0d296aa.svg | 44 -------------- dev/guide/index.html | 16 ++--- dev/index.html | 2 +- dev/manual/index.html | 2 +- 9 files changed, 159 insertions(+), 159 deletions(-) create mode 100644 dev/guide/1f2edeb3.svg rename dev/guide/{1f7f98ff.svg => 458391c0.svg} (88%) rename dev/guide/{f03a28e6.svg => 542b7275.svg} (93%) rename dev/guide/{3dab6a67.svg => 8a12b1fb.svg} (92%) delete mode 100644 dev/guide/b0d296aa.svg diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index baf1db0..d35795a 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.10.4","generation_timestamp":"2024-08-27T14:50:47","documenter_version":"1.3.0"}} \ No newline at end of file +{"documenter":{"julia_version":"1.10.4","generation_timestamp":"2024-08-27T15:16:17","documenter_version":"1.3.0"}} \ No newline at end of file diff --git a/dev/guide/1f2edeb3.svg b/dev/guide/1f2edeb3.svg new file mode 100644 index 0000000..b48b376 --- /dev/null +++ b/dev/guide/1f2edeb3.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/guide/1f7f98ff.svg b/dev/guide/458391c0.svg similarity index 88% rename from dev/guide/1f7f98ff.svg rename to dev/guide/458391c0.svg index e4bc34e..b0ce87f 100644 --- a/dev/guide/1f7f98ff.svg +++ b/dev/guide/458391c0.svg @@ -1,52 +1,52 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/guide/f03a28e6.svg b/dev/guide/542b7275.svg similarity index 93% rename from dev/guide/f03a28e6.svg rename to dev/guide/542b7275.svg index 73c9709..18e9e2f 100644 --- a/dev/guide/f03a28e6.svg +++ b/dev/guide/542b7275.svg @@ -1,45 +1,45 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - + - + diff --git a/dev/guide/3dab6a67.svg b/dev/guide/8a12b1fb.svg similarity index 92% rename from dev/guide/3dab6a67.svg rename to dev/guide/8a12b1fb.svg index c86edeb..3b3215a 100644 --- a/dev/guide/3dab6a67.svg +++ b/dev/guide/8a12b1fb.svg @@ -1,49 +1,49 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + diff --git a/dev/guide/b0d296aa.svg b/dev/guide/b0d296aa.svg deleted file mode 100644 index cea2b5c..0000000 --- a/dev/guide/b0d296aa.svg +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/guide/index.html b/dev/guide/index.html index f1cd948..26990ae 100644 --- a/dev/guide/index.html +++ b/dev/guide/index.html @@ -28,7 +28,7 @@ (19.809045226130653, 39.618090452261306) (19.90452261306533, 39.80904522613065) (20.0, 40.0)

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))
Example block output

Shuttling of a single spin

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))
Example block output

Shuttling of a single spin

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)
Example block output

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)
Example block output

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.5226628185224098, 0.12416378224951541)

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.5210263631848855, 0.12494002266424573)

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.5226628185224098
+MC:0.5210263631848855
 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)")
Example block output
heatmap(collect(model.R.Σ)*1e3, title="covariance, 2-spin sequential shuttling",
+plot!(model.R.P[N+1:2N,1], label="x2(t)")
Example block output
heatmap(collect(model.R.Σ)*1e3, title="covariance, 2-spin sequential shuttling",
 size=(400,300),
 xlabel="t1", ylabel="t2", dpi=300,
-right_margin=5Plots.mm)
Example block output

We can check the dephasing of the system and calculate its fidelity as before.

f1=statefidelity(model)
+right_margin=5Plots.mm)
Example block output

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.626952105107095
+MC:0.6322664924140344
 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.0im       0.0+0.0im       0.0-0.0im  0.0+0.0im
  0.0+0.0im       0.5+0.0im  -0.12348-0.0im  0.0+0.0im
  0.0+0.0im  -0.12348+0.0im       0.5+0.0im  0.0+0.0im
- 0.0+0.0im       0.0+0.0im       0.0-0.0im  0.0+0.0im
+ 0.0+0.0im 0.0+0.0im 0.0-0.0im 0.0+0.0im diff --git a/dev/index.html b/dev/index.html index b958783..8b777f3 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,2 +1,2 @@ -Home · SpinShuttling.jl

SpinShuttling.jl

Simulate the multiple-spin shuttling problem under correlated stochastic noise.

Installation

SpinShuttling.jl can be installed by cloning the repository from GitHub.

git clone https://github.com/EigenSolver/SpinShuttling.jl.git

Go to the directory of the project in the terminal.

cd ./SpinShuttling.jl

From the Julia REPL, type ] to enter the Pkg REPL mode and run

pkg> add .

What does this package do

This package provides a set of abstractions and numerical tools to simulate the dynamics of multi-spin systems under correlated noises based on the Gaussian random field approach.

While we provided specially optimized models for spin shuttling problems, this package can also be used to simulate more general correlated open-quantum dynamics.

The following two approaches are supported.

  • Direct numerical integration for pure dephasing.
  • Monte-Carlo sampling for open-system dynamics.

About spin shuttling

Spin shuttling has recently emerged as a pivotal technology for large-scale semiconductor quantum computing. By transporting qubits between quantum dots, spin shuttling enables entanglement between non-neighboring qubits, which is essential for quantum error correction. However, the spin qubit becomes decohered by magnetic noise during the shuttling process. Since the noise varies in time and space in a correlated manner, the associated dephasing in a system of several entangled spins often cannot be treated using the standard theory of random processes and requires more advanced mathematical instruments. In our latest work, we employ the Gaussian random field (GRF) to model the magnetic noise varying in both space and time. By projecting trajectories of spin qubits onto the random field, the correlated noises experienced by multi-spin systems can be effectively captured, enabling further study on spin dynamics, dephasing, and quantum information applications.

+Home · SpinShuttling.jl

SpinShuttling.jl

Simulate the multiple-spin shuttling problem under correlated stochastic noise.

Installation

SpinShuttling.jl can be installed by cloning the repository from GitHub.

git clone https://github.com/EigenSolver/SpinShuttling.jl.git

Go to the directory of the project in the terminal.

cd ./SpinShuttling.jl

From the Julia REPL, type ] to enter the Pkg REPL mode and run

pkg> add .

What does this package do

This package provides a set of abstractions and numerical tools to simulate the dynamics of multi-spin systems under correlated noises based on the Gaussian random field approach.

While we provided specially optimized models for spin shuttling problems, this package can also be used to simulate more general correlated open-quantum dynamics.

The following two approaches are supported.

  • Direct numerical integration for pure dephasing.
  • Monte-Carlo sampling for open-system dynamics.

About spin shuttling

Spin shuttling has recently emerged as a pivotal technology for large-scale semiconductor quantum computing. By transporting qubits between quantum dots, spin shuttling enables entanglement between non-neighboring qubits, which is essential for quantum error correction. However, the spin qubit becomes decohered by magnetic noise during the shuttling process. Since the noise varies in time and space in a correlated manner, the associated dephasing in a system of several entangled spins often cannot be treated using the standard theory of random processes and requires more advanced mathematical instruments. In our latest work, we employ the Gaussian random field (GRF) to model the magnetic noise varying in both space and time. By projecting trajectories of spin qubits onto the random field, the correlated noises experienced by multi-spin systems can be effectively captured, enabling further study on spin dynamics, dephasing, and quantum information applications.

diff --git a/dev/manual/index.html b/dev/manual/index.html index 496e6bf..471bbe5 100644 --- a/dev/manual/index.html +++ b/dev/manual/index.html @@ -1,2 +1,2 @@ -Manual · SpinShuttling.jl

APIs

Spin Shuttling Models

SpinShuttling.ShuttlingModelType

Spin shuttling model defined by a stochastic field, the realization of the stochastic field is specified by the paths of the shuttled spins.

Arguments

  • n::Int: Number of spins
  • Ψ::Vector{<:Complex}: Initial state of the spin system, the length of the vector must be `2^n
  • T::Real: Maximum time
  • N::Int: Time discretization
  • B::GaussianRandomField: Noise field
  • X::Vector{Function}: Shuttling paths, the length of the vector must be `n
  • R::RandomFunction: Random function of the sampled noises on paths
source
SpinShuttling.OneSpinModelFunction

General one spin shuttling model initialized at initial state |Ψ₀⟩, with arbitrary shuttling path x(t).

Arguments

  • Ψ::Vector{<:Complex}: Initial state of the spin system, the length of the vector must be `2^n
  • T::Real: Maximum time
  • N::Int: Time discretization
  • B::GaussianRandomField: Noise field
  • x::Function: Shuttling path
source

One spin shuttling model initialzied at |Ψ₀⟩=|+⟩. The qubit is shuttled at constant velocity along the path x(t)=L/T*t, with total time T in μs and length L in μm.

source
SpinShuttling.OneSpinForthBackModelFunction

One spin shuttling model initialzied at |Ψ₀⟩=|+⟩. The qubit is shuttled at constant velocity along a forth-back path x(t, T, L) = t<T/2 ? 2L/T*t : 2L/T*(T-t), with total time T in μs and length L in μm.

Arguments

  • T::Real: Maximum time
  • L::Real: Length of the path
  • N::Int: Time discretization
  • B::GaussianRandomField: Noise field
  • v::Real: Velocity of the shuttling
source
SpinShuttling.TwoSpinModelFunction

General two spin shuttling model initialized at initial state |Ψ₀⟩, with arbitrary shuttling paths x₁(t), x₂(t).

Arguments

  • Ψ::Vector{<:Complex}: Initial state of the spin system, the length of the vector must be `2^n
  • T::Real: Maximum time
  • N::Int: Time discretization
  • B::GaussianRandomField: Noise field
  • x₁::Function: Shuttling path for the first spin
  • x₂::Function: Shuttling path for the second spin
source
SpinShuttling.TwoSpinSequentialModelFunction

Two spin shuttling model initialized at the singlet state |Ψ₀⟩=1/√2(|↑↓⟩-|↓↑⟩). The qubits are shuttled at constant velocity along the path x₁(t)=L/T₁*t and x₂(t)=L/T₁*(t-T₀). The delay between the them is T₀ and the total shuttling time is T₁+T₀. It should be noticed that due to the exclusion of fermions, x₁(t) and x₂(t) cannot overlap.

source
SpinShuttling.TwoSpinParallelModelFunction

Two spin shuttling model initialized at the singlet state |Ψ₀⟩=1/√2(|↑↓⟩-|↓↑⟩). The qubits are shuttled at constant velocity along the 2D path x₁(t)=L/T*t, y₁(t)=0 and x₂(t)=L/T*t, y₂(t)=D. The total shuttling time is T and the length of the path is L in μm.

source
SpinShuttling.dephasingmatrixFunction

Calculate the dephasing matrix of a given spin shuttling model.

source

Sample the dephasing matrix array for a given normal random vector.

Arguments

  • model::ShuttlingModel: The spin shuttling model
  • randseq::Vector{<:Real}: The random sequence
  • isarray::Bool: Return the dephasing matrix array for each time step
source
SpinShuttling.samplingFunction

Sampling an observable that defines on a specific spin shuttling model

Arguments

  • model::ShuttlingModel: The spin shuttling model
  • objective::Function: The objective function objective(mode::ShuttlingModel; randseq)`
  • M::Int: Monte-Carlo sampling size
source
SpinShuttling.statefidelityFunction

Calculate the state fidelity of a spin shuttling model using numerical integration of the covariance matrix.

Arguments

  • model::ShuttlingModel: The spin shuttling model
source

Sample the state fidelity of a spin shuttling model using Monte-Carlo sampling.

Arguments

  • model::ShuttlingModel: The spin shuttling model
  • randseq::Vector{<:Real}: The random sequence
  • isarray::Bool: Return the dephasing matrix array for each time step
source
SpinShuttling.WFunction

Analytical dephasing factor of a one-spin shuttling model.

Arguments

  • T::Real: Total time
  • L::Real: Length of the path
  • B<:GaussianRandomField: Noise field, Ornstein-Uhlenbeck or Pink-Lorentzian
  • path::Symbol: Path of the shuttling model, :straight or :forthback
source

Analytical dephasing factor of a sequenced two-spin EPR pair shuttling model.

source

Stochastics

SpinShuttling.PinkLorentzianFieldType

Pink-Lorentzian Field, the correlation function of which is σ^2 * (expinti(-γ[2]abs(t₁ - t₂)) - expinti(-γ[1]abs(t₁ - t₂)))/log(γ[2]/γ[1]) * exp(-|x₁-x₂|/θ) where expinti is the exponential integral function.

source
SpinShuttling.RandomFunctionType

Similar type of RandomFunction in Mathematica. Can be used to generate a time series on a given time array subject to a Gaussian random process traced from a Gaussian random field.

Arguments

  • μ::Vector{<:Real}: mean of the process
  • P::Vector{<:Point}: time-position array
  • Σ::Symmetric{<:Real}: covariance matrices
  • L::Matrix{<:Real}: lower triangle matrix of Cholesky decomposition
source
SpinShuttling.CompositeRandomFunctionFunction

Create a new random function composed by a linear combination of random processes. The input random function represents the direct sum of these processes. The output random function is a tensor contraction from the input.

Arguments

  • R::RandomFunction: a direct sum of random processes R₁⊕ R₂⊕ ... ⊕ Rₙ
  • c::Vector{Int}: a vector of coefficients

Returns

  • RandomFunction: a new random function composed by a linear combination of random processes
source
SpinShuttling.characteristicvalueFunction

Compute the final phase of the characteristic functional of the process from the numerical quadrature of the covariance matrix. Using Simpson's rule by default.

source
SpinShuttling.covariancematrixFunction

Covariance matrix of a Gaussian random field. When P₁=P₂, it is the auto-covariance matrix of a Gaussian random process. When P₁!=P₂, it is the cross-covariance matrix between two Gaussian random processes.

Arguments

  • P₁::Vector{<:Point}: time-position array
  • P₂::Vector{<:Point}: time-position array
  • process::GaussianRandomField: a Gaussian random field
source

Auto-Covariance matrix of a Gaussian random process.

Arguments

  • P::Vector{<:Point}: time-position array
  • process::GaussianRandomField: a Gaussian random field

Returns

  • Symmetric{Real}: auto-covariance matrix
source
SpinShuttling.covarianceFunction

Covariance function of Gaussian random field.

Arguments

  • p₁::Point: time-position array
  • p₂::Point: time-position array
  • process<:GaussianRandomField: a Gaussian random field, e.g. OrnsteinUhlenbeckField or PinkLorentzianField
source
+Manual · SpinShuttling.jl

APIs

Spin Shuttling Models

SpinShuttling.ShuttlingModelType

Spin shuttling model defined by a stochastic field, the realization of the stochastic field is specified by the paths of the shuttled spins.

Arguments

  • n::Int: Number of spins
  • Ψ::Vector{<:Complex}: Initial state of the spin system, the length of the vector must be `2^n
  • T::Real: Maximum time
  • N::Int: Time discretization
  • B::GaussianRandomField: Noise field
  • X::Vector{Function}: Shuttling paths, the length of the vector must be `n
  • R::RandomFunction: Random function of the sampled noises on paths
source
SpinShuttling.OneSpinModelFunction

General one spin shuttling model initialized at initial state |Ψ₀⟩, with arbitrary shuttling path x(t).

Arguments

  • Ψ::Vector{<:Complex}: Initial state of the spin system, the length of the vector must be `2^n
  • T::Real: Maximum time
  • N::Int: Time discretization
  • B::GaussianRandomField: Noise field
  • x::Function: Shuttling path
source

One spin shuttling model initialzied at |Ψ₀⟩=|+⟩. The qubit is shuttled at constant velocity along the path x(t)=L/T*t, with total time T in μs and length L in μm.

source
SpinShuttling.OneSpinForthBackModelFunction

One spin shuttling model initialzied at |Ψ₀⟩=|+⟩. The qubit is shuttled at constant velocity along a forth-back path x(t, T, L) = t<T/2 ? 2L/T*t : 2L/T*(T-t), with total time T in μs and length L in μm.

Arguments

  • T::Real: Maximum time
  • L::Real: Length of the path
  • N::Int: Time discretization
  • B::GaussianRandomField: Noise field
  • v::Real: Velocity of the shuttling
source
SpinShuttling.TwoSpinModelFunction

General two spin shuttling model initialized at initial state |Ψ₀⟩, with arbitrary shuttling paths x₁(t), x₂(t).

Arguments

  • Ψ::Vector{<:Complex}: Initial state of the spin system, the length of the vector must be `2^n
  • T::Real: Maximum time
  • N::Int: Time discretization
  • B::GaussianRandomField: Noise field
  • x₁::Function: Shuttling path for the first spin
  • x₂::Function: Shuttling path for the second spin
source
SpinShuttling.TwoSpinSequentialModelFunction

Two spin shuttling model initialized at the singlet state |Ψ₀⟩=1/√2(|↑↓⟩-|↓↑⟩). The qubits are shuttled at constant velocity along the path x₁(t)=L/T₁*t and x₂(t)=L/T₁*(t-T₀). The delay between the them is T₀ and the total shuttling time is T₁+T₀. It should be noticed that due to the exclusion of fermions, x₁(t) and x₂(t) cannot overlap.

source
SpinShuttling.TwoSpinParallelModelFunction

Two spin shuttling model initialized at the singlet state |Ψ₀⟩=1/√2(|↑↓⟩-|↓↑⟩). The qubits are shuttled at constant velocity along the 2D path x₁(t)=L/T*t, y₁(t)=0 and x₂(t)=L/T*t, y₂(t)=D. The total shuttling time is T and the length of the path is L in μm.

source
SpinShuttling.dephasingmatrixFunction

Calculate the dephasing matrix of a given spin shuttling model.

source

Sample the dephasing matrix array for a given normal random vector.

Arguments

  • model::ShuttlingModel: The spin shuttling model
  • randseq::Vector{<:Real}: The random sequence
  • isarray::Bool: Return the dephasing matrix array for each time step
source
SpinShuttling.samplingFunction

Sampling an observable that defines on a specific spin shuttling model

Arguments

  • model::ShuttlingModel: The spin shuttling model
  • objective::Function: The objective function objective(mode::ShuttlingModel; randseq)`
  • M::Int: Monte-Carlo sampling size
source
SpinShuttling.statefidelityFunction

Calculate the state fidelity of a spin shuttling model using numerical integration of the covariance matrix.

Arguments

  • model::ShuttlingModel: The spin shuttling model
source

Sample the state fidelity of a spin shuttling model using Monte-Carlo sampling.

Arguments

  • model::ShuttlingModel: The spin shuttling model
  • randseq::Vector{<:Real}: The random sequence
  • isarray::Bool: Return the dephasing matrix array for each time step
source
SpinShuttling.WFunction

Analytical dephasing factor of a one-spin shuttling model.

Arguments

  • T::Real: Total time
  • L::Real: Length of the path
  • B<:GaussianRandomField: Noise field, Ornstein-Uhlenbeck or Pink-Lorentzian
  • path::Symbol: Path of the shuttling model, :straight or :forthback
source

Analytical dephasing factor of a sequenced two-spin EPR pair shuttling model.

source

Stochastics

SpinShuttling.PinkLorentzianFieldType

Pink-Lorentzian Field, the correlation function of which is σ^2 * (expinti(-γ[2]abs(t₁ - t₂)) - expinti(-γ[1]abs(t₁ - t₂)))/log(γ[2]/γ[1]) * exp(-|x₁-x₂|/θ) where expinti is the exponential integral function.

source
SpinShuttling.RandomFunctionType

Similar type of RandomFunction in Mathematica. Can be used to generate a time series on a given time array subject to a Gaussian random process traced from a Gaussian random field.

Arguments

  • μ::Vector{<:Real}: mean of the process
  • P::Vector{<:Point}: time-position array
  • Σ::Symmetric{<:Real}: covariance matrices
  • L::Matrix{<:Real}: lower triangle matrix of Cholesky decomposition
source
SpinShuttling.CompositeRandomFunctionFunction

Create a new random function composed by a linear combination of random processes. The input random function represents the direct sum of these processes. The output random function is a tensor contraction from the input.

Arguments

  • R::RandomFunction: a direct sum of random processes R₁⊕ R₂⊕ ... ⊕ Rₙ
  • c::Vector{Int}: a vector of coefficients

Returns

  • RandomFunction: a new random function composed by a linear combination of random processes
source
SpinShuttling.characteristicvalueFunction

Compute the final phase of the characteristic functional of the process from the numerical quadrature of the covariance matrix. Using Simpson's rule by default.

source
SpinShuttling.covariancematrixFunction

Covariance matrix of a Gaussian random field. When P₁=P₂, it is the auto-covariance matrix of a Gaussian random process. When P₁!=P₂, it is the cross-covariance matrix between two Gaussian random processes.

Arguments

  • P₁::Vector{<:Point}: time-position array
  • P₂::Vector{<:Point}: time-position array
  • process::GaussianRandomField: a Gaussian random field
source

Auto-Covariance matrix of a Gaussian random process.

Arguments

  • P::Vector{<:Point}: time-position array
  • process::GaussianRandomField: a Gaussian random field

Returns

  • Symmetric{Real}: auto-covariance matrix
source
SpinShuttling.covarianceFunction

Covariance function of Gaussian random field.

Arguments

  • p₁::Point: time-position array
  • p₂::Point: time-position array
  • process<:GaussianRandomField: a Gaussian random field, e.g. OrnsteinUhlenbeckField or PinkLorentzianField
source