Environment coupling tensor

SpiDy.CouplingType
abstract type Coupling

Abstract type used to represent different forms of the environment coupling tensor.

source
SpiDy.AnisoCouplingType
struct 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 type Matrix{<: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.

source
SpiDy.IsoCouplingType
struct 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)
source