WignerFamilies
WignerFamilies.classical_wigner3j_m0!
WignerFamilies.f_to_min_m0!
WignerFamilies.get_wigner_array
WignerFamilies.rψ!
WignerFamilies.swap_triangular
WignerFamilies.wigner3j_f
WignerFamilies.ψauxplus!
WignerFamilies.classical_wigner3j_m0!
— Methodclassical_wigner3j_m0!(::Type{T}, j₂, j₃, m₂, m₃) where {T<:Real}
Computes all allowed j₁ given fixed j₂, j₃, m₁, m₂, m₃, subject to m₁ = m₂ = m₃ = 0. This applies the classical three-term recurrence relation and iterates two at a time, since in this special case all symbols with odd ∑jᵢ are zero. Unlike other Wigner symbols, this special case requires iterating outwards, as one must recur towards increasing |fⱼ| for stability.
Arguments
T::Type{<:Real}
: output array typej₂::Tn
: quantum numberj₃::Tn
: quantum numberm₂::Tn
: quantum number
WignerFamilies.f_to_min_m0!
— MethodSpecial case iteration for mᵢ=0. In this case, j₁ must be an integer too, so the index type is restricted to Int.
WignerFamilies.get_wigner_array
— Methodget_wigner_array(w::AbstractWigner{T}) where {T}
Utility function for getting an OffsetArray with indices from jₘᵢₙ to jₘₐₓ.
Arguments
w::AbstractWigner{T}
: contains the quantum numbers and dispatches on the kind of symbol
Returns
OffsetArray{T}
: an array for wigner symbols
WignerFamilies.rψ!
— Methodrψ!(w::AbstractWigner{T}, n::Integer, iterates::AbstractVector{T}) where T
Backward recurrence scheme defined by equation 2 in Luscombe and Luban 1998. Iteratively generates the ratio rψ(n) = ψ(n) / ψ(n+1) in the iterates
vector.
Arguments
w::AbstractWigner{T}
: contains the quantum numbers and dispatches on the kind of symbolnmid::Integer
: current index of the recurrenceψ::AbstractVector{T}
: store the values of rψ here during recursion.
Returns
stop::Int
: the index the iteration stopped
WignerFamilies.swap_triangular
— MethodEvens out an array which scales linearly with difficulty by interleaving elements such that [1,2,3,4,5,6] is mapped to [1,6,2,5,3,4].
WignerFamilies.wigner3j_f
— Methodwigner3j_f(::Type{T}, j₂, j₃, m₂, m₃) where {T<:Real}
Computes all allowed j₁ given fixed j₂, j₃, m₂, m₃, m₁=-m₂-m₃.
Arguments
T::Type{<:Real}
: output array typej₂
: quantum numberj₃
: quantum numberm₂
: quantum numberm₃
: quantum number
Returns
Tuple{Vector{Int}, Vector{T}}
: j₁ values and wigner symbols
WignerFamilies.ψauxplus!
— MethodThree-term recurrence relation for the classical region.