Wigner Functions
- e3nn.o3.wigner_D(l: int, alpha: Tensor, beta: Tensor, gamma: Tensor) Tensor [source]
Wigner D matrix representation of \(SO(3)\).
It satisfies the following properties:
\(D(\text{identity rotation}) = \text{identity matrix}\)
\(D(R_1 \circ R_2) = D(R_1) \circ D(R_2)\)
\(D(R^{-1}) = D(R)^{-1} = D(R)^T\)
\(D(\text{rotation around Y axis})\) has some property that allows us to use FFT in
ToS2Grid
- Parameters:
l (int) – \(l\)
alpha (
torch.Tensor
) – tensor of shape \((...)\) Rotation \(\alpha\) around Y axis, applied third.beta (
torch.Tensor
) – tensor of shape \((...)\) Rotation \(\beta\) around X axis, applied second.gamma (
torch.Tensor
) – tensor of shape \((...)\) Rotation \(\gamma\) around Y axis, applied first.
- Returns:
tensor \(D^l(\alpha, \beta, \gamma)\) of shape \((2l+1, 2l+1)\)
- Return type:
- e3nn.o3.wigner_3j(l1: int, l2: int, l3: int, dtype=None, device=None) Tensor [source]
Wigner 3j symbols \(C_{lmn}\).
It satisfies the following two properties:
\[C_{lmn} = C_{ijk} D_{il}(g) D_{jm}(g) D_{kn}(g) \qquad \forall g \in SO(3)\]where \(D\) are given by
wigner_D
.\[C_{ijk} C_{ijk} = 1\]- Parameters:
l1 (int) – \(l_1\)
l2 (int) – \(l_2\)
l3 (int) – \(l_3\)
dtype (torch.dtype or None) –
dtype
of the returned tensor. IfNone
then set totorch.get_default_dtype()
.device (torch.device or None) –
device
of the returned tensor. IfNone
then set to the default device of the current context.
- Returns:
tensor \(C\) of shape \((2l_1+1, 2l_2+1, 2l_3+1)\)
- Return type: