Lie groups
Lie groups in this Julia package are represented by the abstract type
AbstractGroup{Lie, F}
where F
defines the field (or number type) over which the group is defined.
The computations with Lie groups are done by passing to their associated Lie algebras. We distinguish between Lie groups that act by scalings (represented by ScalingLieGroup
) and basic reductive matrix Lie groups, like $\mathrm{SO}(n)$ (represented by LieGroup
).
Lie groups
DecomposingGroupRepresentations.ScalingLieGroup
— TypeScalingLieGroup{F} <: AbstractGroup{Lie, F}
Represents a scaling Lie group. The group elements are diagonal matrices.
Constructors
ScalingLieGroup{F}(size::Int) where F
ScalingLieGroup{F}(exps::Matrix{Int}) where F
Examples
julia> ScalingLieGroup{ComplexF64}(5)
ScalingLieGroup ℂˣ
number type (or field): ComplexF64
Lie algebra properties:
dimension: 1
basis (diagonal matrices):
[1, 1, 1, 1, 1]
julia> exps = [1 1 1 0 0 0; 0 0 0 1 -2 0];
julia> ScalingLieGroup{ComplexF64}(exps)
ScalingLieGroup (ℂˣ)²
number type (or field): ComplexF64
Lie algebra properties:
dimension: 2
basis (diagonal matrices):
[1, 1, 1, 0, 0, 0]
[0, 0, 0, 1, -2, 0]
DecomposingGroupRepresentations.LieGroup
— TypeLieGroup{F} <: AbstractGroup{Lie, F}
Describes a matrix Lie group.
Constructors
LieGroup(type::String, size::Int)
Supported Lie group types: SO (special orthogonal).
Examples
julia> SO3 = LieGroup("SO", 3)
LieGroup SO(3)
number type (or field): ComplexF64
weight type: Int64
Lie algebra properties:
dimension: 3
rank (dimension of Cartan subalgebra): 1
Lie algebras
DecomposingGroupRepresentations.AbstractLieAlgebra
— TypeAbstractLieAlgebra{F}
An abstract type representing a Lie algebra. The type F
represents the number field (or number type) over which the Lie algebra is defined.
DecomposingGroupRepresentations.algebra
— Methodalgebra(::AbstractGroup{Lie, F}) -> AbstractLieAlgebra{F}
Returns the Lie algebra of a given Lie group.
Examples
julia> SO3 = LieGroup("SO", 3);
julia> algebra(SO3)
LieAlgebra 𝖘𝖔(3)
number type (or field): ComplexF64
weight type: Int64
dimension: 3
rank (dimension of Cartan subalgebra): 1
DecomposingGroupRepresentations.name
— Methodname(::AbstractLieAlgebra) -> String
Returns the name of the given Lie algebra.
DecomposingGroupRepresentations.basis
— Methodbasis(::AbstractLieAlgebra)
Returns a basis of the given Lie algebra. For example, the Lie algebra $\mathfrak{so}(3, \mathbb{C})$, consists of skew-symmetric matrices and hence its (standard) basis is given by the matrices
\[\left\{ \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{bmatrix}, \begin{bmatrix} 0 & 0 & 1 \\ 0 & 0 & 0 \\ -1 & 0 & 0 \end{bmatrix}, \begin{bmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix} \right\}\]
DecomposingGroupRepresentations.chevalley_basis
— Methodchevalley_basis(::AbstractLieAlgebra)
Returns the Chevalley basis of the given Lie algebra. For example, for the Lie algebra $\mathfrak{so}(3, \mathbb{C})$ returns
\[\left\{ \underbrace{\begin{bmatrix} 0 & 0 & -1 \\ 0 & 0 & -i \\ 1 & i & 0 \end{bmatrix}}_{J_+}, \underbrace{\begin{bmatrix} 0 & 0 & 1 \\ 0 & 0 & -i \\ -1 & i & 0 \end{bmatrix}}_{J_-}, \underbrace{\begin{bmatrix} 0 & -i & 0 \\ i & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix}}_{J_3} \right\}\]
with the commutation relations
\[\begin{aligned} [J_3, J_+] &= J_+ \\ [J_3, J_-] &= -J_- \\ [J_+, J_-] &= 2J_3 \end{aligned}\]
DecomposingGroupRepresentations.dim
— Methoddim(::AbstractLieAlgebra) -> Int
Returns the dimension of the given Lie algebra.
DecomposingGroupRepresentations.rank
— Methodrank(::AbstractLieAlgebra) -> Int
Returns the rank (i.e. the dimension of the Cartan subalgebra) of the given Lie algebra.