Documentation

Functions

GroupFunctions.group_functionFunction
group_function(λ::Irrep, tu::YoungTableau, tv::YoungTableau)

Returns the symbolic group function corresponding to irrep λ and Young tableaux tu and tv.

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) -> Basic

Compute group theoretical function based on Young tableaux and irreducible representations.

Arguments:

  • λ::Irrep: Irreducible representation
  • tab_u::YTableau: First Young tableau
  • tab_v::YTableau: Second Young tableau
  • verbose::Bool: Flag for detailed output (default: false)

Returns:

  • Complex: Group function evaluated

Notes:

  • Uses SymEngine for symbolic computation
  • Involves matrix operations and coset calculations
source
group_function(λ::Irrep, tu::GTPattern, tv::GTPattern)

Returns the symbolic group function corresponding to irrep λ and GT patterns tu and tv.

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) -> Basic

Compute group theoretical function based on Gelfand-Tsetlin patterns and irreducible representations.

Arguments:

  • λ::Irrep: Irreducible representation
  • pat_u::GTPattern: First Gelfand-Tsetlin pattern
  • pat_v::GTPattern: Second Gelfand-Tsetlin pattern
  • verbose::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
source
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 patterns tu and tv.

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)
source
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 STYT tu and tv.

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)
source
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 irrep
  • verbose::Bool: Forwarded to the underlying pairwise group_function

Returns:

  • Tuple: (values, patterns) where values[i,j] corresponds to group_function(λ, patterns[i], patterns[j]) and patterns is the basis returned by basis_states(λ)
source
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 irrep
  • mat::Array{Complex{Float64}, 2}: Matrix representing the SU(n) element
  • verbose::Bool: Forwarded to the underlying pairwise group_function

Returns:

  • Tuple: (values, patterns) where values[i,j] corresponds to group_function(λ, patterns[i], patterns[j], mat) and patterns is the basis returned by basis_states(λ)
source

Gelfand-Tsetlin patterns

GT patterns are used to denote the basis states.

GroupFunctions.GTPatternType

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}:
 2
source

Construction of matrices

SU(2) blocks are used to construct unitary matrices.

GroupFunctions.su2_blockFunction
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.

source