mindscience.e3nn.o3.wigner_D

mindscience.e3nn.o3.wigner_D(l, alpha, beta, gamma)[source]

Wigner D matrix representation of SO(3).

These matrices describe how quantum-mechanical states with angular-momentum l rotate under a sequence of three Euler angles (Z-Y-Z convention):

  1. Rotate by \(\gamma\) around the original Z axis

  2. Rotate by \(\beta\) around the new Y axis

  3. Rotate by \(\alpha\) around the newest Z axis

The resulting \(D^l(\alpha,\beta,\gamma)\) is a \((2l+1) \times (2l+1)\) unitary matrix whose entries are the famous Wigner D-functions.

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

Parameters
  • l (int) – degree of representation.

  • alpha (Union[Tensor[float32], list[float], tuple[float], ndarray[np.float32], float]) – rotation \(\alpha\) around Y axis, applied third.

  • beta (Union[Tensor[float32], list[float], tuple[float], ndarray[np.float32], float]) – rotation \(\beta\) around X axis, applied second.

  • gamma (Union[Tensor[float32], list[float], tuple[float], ndarray[np.float32], float]) – rotation \(\gamma\) around Y axis, applied first.

Returns

Tensor, Wigner D matrix \(D^l(\alpha, \beta, \gamma)\). The shape of Tensor is \((2l+1, 2l+1)\).

Examples

>>> from mindscience.e3nn.o3 import wigner_D
>>> m = wigner_D(1,1,1,1)
>>> print(m)
[[-0.09064701  0.7080733   0.70029646]
[ 0.7080733   0.54030234 -0.45464867]
[-0.7002964   0.45464864 -0.5503447 ]]