QuantumLattices.DegreesOfFreedom.Hilbert
— MethodHilbert(hilbert::Hilbert{<:Spin}, magneticstructure::MagneticStructure)
Get the corresponding Hilbert space of the original one after the Holstein-Primakoff transformation.
QuantumLattices.DegreesOfFreedom.Metric
— MethodMetric(::Magnonic, hilbert::Hilbert{<:Fock{:b}}) -> OperatorIndexToTuple
Get the index-to-tuple metric for a quantum spin system after the Holstein-Primakoff transformation.
SpinWaveTheory.HolsteinPrimakoff
— TypeHolsteinPrimakoff{S<:Operators, U<:CoordinatedIndex, M<:MagneticStructure} <: UnitSubstitution{U, S}
Holstein-Primakoff transformation.
SpinWaveTheory.LSWT
— TypeLSWT{
K<:TBAKind{:BdG},
L<:AbstractLattice,
S<:OperatorGenerator,
HP<:HolsteinPrimakoff,
H₀<:CategorizedGenerator,
H₂<:CategorizedGenerator,
H<:CategorizedGenerator{<:OperatorSum{<:Quadratic}},
C<:AbstractMatrix
} <: TBA{K, H, C}
Linear spin wave theory for magnetically ordered quantum lattice systems.
SpinWaveTheory.LSWT
— MethodLSWT(lattice::AbstractLattice, hilbert::Hilbert{<:Spin}, terms::OneOrMore{Term}, magneticstructure::MagneticStructure; neighbors::Union{Int, Neighbors}=nneighbor(terms))
Construct a LSWT.
SpinWaveTheory.MagneticStructure
— TypeMagneticStructure{L<:AbstractLattice, D<:Number}
The magnetic structure of an ordered quantum lattice system.
SpinWaveTheory.MagneticStructure
— MethodMagneticStructure(cell::AbstractLattice, moments::Dict{Int, <:Union{AbstractVector, NTuple{2, Number}}}; unit::Symbol=:radian)
Construct the magnetic structure on a given lattice with the given moments.
SpinWaveTheory.Magnonic
— TypeMagnonic <: TBAKind{:BdG}
Magnonic quantum lattice system.
QuantumLattices.add!
— Methodadd!(dest::OperatorSum, qf::Quadraticization{Magnonic}, m::Operator{<:Number, <:ID{CoordinatedIndex{<:Index{<:FockIndex{:b}}}, 2}}; kwargs...) -> typeof(dest)
Get the unified quadratic form of a rank-2 operator and add it to destination
.
SpinWaveTheory.rotation
— Methodrotation(destination::AbstractVector{<:Number}; kwargs...) -> SMatrix{3, 3}
rotation(destination::Tuple{Number, Number}; unit::Symbol=:radian) -> SMatrix{3, 3}
Get the rotation matrix which rotates [0, 0, 1]
to the direction of the destination
vector.
TightBindingApproximation.commutator
— Methodcommutator(::Magnonic, hilbert::Hilbert{<:Fock{:b}}) -> Diagonal
Get the commutation relation of the Holstein-Primakoff bosons.