mindscience.e3nn.o3.change_basis_real_to_complex

mindscience.e3nn.o3.change_basis_real_to_complex(l, dtype=mindspore.float32)[source]

Transform a real-valued spherical-harmonic basis into its complex-valued counterpart. The routine constructs the unitary matrix Q that maps the real basis functions (often denoted \(y_{l,m}^{real}\)) to the standard complex basis \(Y_{l,m}\) via

\[Y = Q \cdot y.\]

Columns of \(Q\) are ordered by \(m = -l,\ldots,+l\); the resulting complex basis satisfies the usual phase and normalization conventions of quantum mechanics.

Parameters
  • l (int) – degree of spherical harmonics.

  • dtype (mindspore.dtype, optional) – {mindspore.float32, mindspore.float64} data type of the real basis. Default: mindspore.float32.

Returns

Tensor, the complex basis with dtype complex64 for dtype=mindspore.float32 and complex128 for dtype=mindspore.float64.

Examples

>>> from mindscience.e3nn.o3 import change_basis_real_to_complex
>>> m = change_basis_real_to_complex(1)
>>> print(m)
[[-0.70710677+0.j          0.        +0.j          0.        -0.70710677j]
 [ 0.        +0.j          0.        -1.j          0.        +0.j        ]
 [-0.70710677+0.j          0.        +0.j          0.        +0.70710677j]]