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.ScalingLieGroupType
ScalingLieGroup{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]
source
DecomposingGroupRepresentations.LieGroupType
LieGroup{F} <: AbstractGroup{Lie, F}

Describes a matrix Lie group.

Constructors

LieGroup(type::String, size::Int)

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
source
Note

Supported Lie group types and sizes: SO(3).

Lie algebras

DecomposingGroupRepresentations.algebraMethod
algebra(::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
source
DecomposingGroupRepresentations.basisMethod
basis(::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\}\]

source
DecomposingGroupRepresentations.chevalley_basisMethod
chevalley_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}\]

source