Overview
GroupFunctions.jl computes matrix elements of irreducible representations of the unitary group U(n). The code accepts as input both numerical and symbolic matrices. Given a unitary matrix and an irrep label, the package returns the corresponding transformation matrix in a basis of Gelfand-Tsetlin patterns.
For symbolic computations, the same API accepts symbolic block matrices such as su2_block_symbolic:
julia> U = su2_block_symbolic(2,1);
julia> U
2×2 Matrix{SymEngine.Basic}:
v_1_1 v_1_2
v_2_1 v_2_2
julia> group_function([2,0], U)[1]
3×3 Matrix{SymEngine.Basic}:
v_2_2^2 sqrt(2)*v_2_2*v_2_1 v_2_1^2
sqrt(2)*v_1_2*v_2_2 v_1_1*v_2_2 + v_1_2*v_2_1 sqrt(2)*v_1_1*v_2_1
v_1_2^2 sqrt(2)*v_1_1*v_1_2 v_1_1^2The API also allows to compute SU(3) irreps from a symbolic 3×3 matrix:
julia> U = [GroupFunctions.SymEngine.symbols("u_$(i)_$(j)") for i in 1:3, j in 1:3];
julia> U
3×3 Matrix{SymEngine.Basic}:
u_1_1 u_1_2 u_1_3
u_2_1 u_2_2 u_2_3
u_3_1 u_3_2 u_3_3
julia> group_function([2,0,0], U)[1]
6×6 Matrix{SymEngine.Basic}:
u_3_3^2 sqrt(2)*u_3_2*u_3_3 … u_3_1^2
sqrt(2)*u_2_3*u_3_3 u_2_2*u_3_3 + u_2_3*u_3_2 sqrt(2)*u_2_1*u_3_1
sqrt(2)*u_1_3*u_3_3 u_1_2*u_3_3 + u_1_3*u_3_2 sqrt(2)*u_1_1*u_3_1
u_2_3^2 sqrt(2)*u_2_2*u_2_3 u_2_1^2
sqrt(2)*u_2_3*u_1_3 u_2_2*u_1_3 + u_2_3*u_1_2 sqrt(2)*u_2_1*u_1_1
u_1_3^2 sqrt(2)*u_1_2*u_1_3 … u_1_1^2Installation
If you are new to Julia, see the language documentation and tutorials. Then install the package from the Julia registry:
julia> ]
pkg> add GroupFunctionsRequires Julia ≥ 1.6.
Contact
Send questions and suggestions to david.amaroalcala@savba.sk.