Documentation
Functions
GroupFunctions.group_function — Function
group_function(λ::Irrep, tu::YoungTableau, tv::YoungTableau)Returns the symbolic group function corresponding to irrep
λand Young tableauxtuandtv.
Example:
julia> t = YoungTableau([2,1]); fill!(t, [1,2,3]);
julia> group_function([2,1,0], t, t)group_function(λ::Irrep, tab_u::YTableau, tab_v::YTableau; verbose::Bool = false) -> BasicCompute group theoretical function based on Young tableaux and irreducible representations.
Arguments:
λ::Irrep: Irreducible representationtab_u::YTableau: First Young tableautab_v::YTableau: Second Young tableauverbose::Bool: Flag for detailed output (default: false)
Returns:
Complex: Group function evaluated
Notes:
- Uses SymEngine for symbolic computation
- Involves matrix operations and coset calculations
group_function(λ::Irrep, tu::GTPattern, tv::GTPattern)Returns the symbolic group function corresponding to irrep
λand GT patternstuandtv.
Example:
julia> t = GTPattern([[2,1,0],[2,1],[2]],[2]);
julia> group_function([2,1,0], t, t)group_function(λ::Irrep, pat_u::GTPattern, pat_v::GTPattern; verbose::Bool = false) -> BasicCompute group theoretical function based on Gelfand-Tsetlin patterns and irreducible representations.
Arguments:
λ::Irrep: Irreducible representationpat_u::GTPattern: First Gelfand-Tsetlin patternpat_v::GTPattern: Second Gelfand-Tsetlin patternverbose::Bool: Flag for detailed output (default: false)
Returns:
Basic: Computed polynomial expression in SymEngine format
Notes:
- Converts GT patterns to Young tableaux for calculations
- Uses SymEngine for symbolic computation
group_function(λ::Irrep, tu::GTPattern, tv::GTPattern, mat::Array{Complex{Float64},2})Returns the numeric group function, for an SU(n) member
mat, corresponding to irrepλand a pair of GT patternstuandtv.
julia> using RandomMatrices
julia> mat = rand(Haar(2),3)
julia> t = GTPattern([[2,1,0],[2,1],[2]],[2]);
julia> group_function([2,1,0], t, t, mat)group_function(λ::Irrep, tu::GTPattern, tv::GTPattern, mat::Array{Complex{Float64},2})Returns the numeric group function, for an SU(n) member
mat, corresponding to irrepλand STYTtuandtv.
Example:
julia> using RandomMatrices
julia> mat = rand(Haar(2),3)
julia> t = YoungTableau([2,1]); fill!(t, [1,2,3]);
julia> group_function([2,1,0], t, t, mat)group_function(λ::Irrep; verbose::Bool = false) -> Tuple{Matrix{Basic}, Vector{GTPattern}}Compute all symbolic group functions associated with the partition λ. The routine builds every valid GT pattern for λ and evaluates the group function for each pair.
Arguments:
λ::Irrep: Partition describing the irrepverbose::Bool: Forwarded to the underlying pairwisegroup_function
Returns:
Tuple:(values, patterns)wherevalues[i,j]corresponds togroup_function(λ, patterns[i], patterns[j])andpatternsis the basis returned bybasis_states(λ)
group_function(λ::Irrep, mat::Array{Complex{Float64}, 2}; verbose::Bool = false) -> Tuple{Matrix{ComplexF64}, Vector{GTPattern}}Compute all numeric group functions associated with the partition λ and a matrix mat. Generates the GT patterns for λ and evaluates every pair using the provided matrix.
Arguments:
λ::Irrep: Partition describing the irrepmat::Array{Complex{Float64}, 2}: Matrix representing the SU(n) elementverbose::Bool: Forwarded to the underlying pairwisegroup_function
Returns:
Tuple:(values, patterns)wherevalues[i,j]corresponds togroup_function(λ, patterns[i], patterns[j], mat)andpatternsis the basis returned bybasis_states(λ)
Gelfand-Tsetlin patterns
GT patterns are used to denote the basis states.
GroupFunctions.GTPattern — Type
GTPattern(arrayofarrays) Stucture to hold Gelfand-Tsetlin patterns. Data fields:
- rows
- last_row, copied from rows during initialization (for internal algorithm purposes, mathematically irrelevant)
TODO: either make it immutable, or somehow auto-change last_row upon change in rows (and vice versa).
Example:
julia> gt=GTPattern([[2,1,0],[2,1],[2]])
│ 2 1 0 ╲
│ 2 1 〉
│ 2 ╱
julia> gt.rows
3-element Vector{Vector{Int64}}:
[2, 1, 0]
[2, 1]
[2]
julia> gt.last_row
1-element Vector{Int64}:
2Construction of matrices
SU(2) blocks are used to construct unitary matrices.
GroupFunctions.su2_block — Function
su2_block(size::Int, position::Int, angles::NTuple{3,Float64})Embed a 2×2 SU(2) rotation defined by Euler angles (α, β, γ) into an size × size identity matrix, acting on rows/cols position and position+1.