Environment coupling tensor
SpiDy.Coupling
— Typeabstract type Coupling
Abstract type used to represent different forms of the environment coupling tensor.
SpiDy.AnisoCoupling
— Typestruct AnisoCoupling{TT<:AbstractMatrix{T} where {T<:Real}} <: Coupling
A subtype of Coupling
used to represent generic anisotropic coupling between the spin and environment.
Fields
C::TT
: The coupling matrix, which must be a 3x3 matrix (of typeMatrix{<:Real}
).
Examples
For a system with environment coupling where the y
coupling is twice as large as the x
, and the z
three times as large, one can do:
julia> C = [1.0 0.0 0.0; 0.0 2.0 0.0; 0.0 0.0 3.0]
3×3 Matrix{Float64}:
1.0 0.0 0.0
0.0 2.0 0.0
0.0 0.0 3.0
julia> coupling = AnisoCoupling(C)
AnisoCoupling{Matrix{Float64}}([1.0 0.0 0.0; 0.0 2.0 0.0; 0.0 0.0 3.0])
One can define effective 2D couplings by setting all coefficients in one of the dimensions to zero:
julia> C = [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 0.0]
3x3 Matrix{Float64}
1.0 0.0 0.0
0.0 1.0 0.0
0.0 0.0 0.0
julia> coupling_2d = AnisoCoupling(C)
AnisoCoupling{Matrix{Float64}}([1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 0.0])
Similarly, one can define effective 1D couplings by setting two of the components to zero.
SpiDy.IsoCoupling
— Typestruct IsoCoupling{TT<:Real} <: Coupling
A subtype of Coupling
used to represent isotropic coupling between spin and environment.
Fields
C::Real
: The coupling strength.
Examples
julia> coupling = IsoCoupling(2.5)
IsoCoupling{Float64}(2.5)