mindchemistry.e3.o3.Irrep

查看源文件
class mindchemistry.e3.o3.Irrep(l, p=None)[源代码]

O(3) 的不可约表示。这个类不包含任何数据,它是描述表示的结构。 通常用作库中其他类的参数,以定义函数的输入和输出表示。

参数:
  • l (Union[int, str]) - 非负整数,表示的阶数,\(l = 0, 1, \dots\)。或者用字符串表示阶数和奇偶性。

  • p (int) - {1,-1}, 表示的奇偶性, 默认值: None

异常:
  • NotImplementedError - 如果方法未实现。

  • ValueError - 如果 l 为负数或 p 不在 {1, -1} 中。

  • ValueError - 如果 l 不能转换为 Irrep

  • TypeError - 如果 l 不是 int 或 str。

支持平台:

Ascend

样例:

>>> from mindchemistry.e3.o3 import Irrep
>>> Irrep(0, 1)
0e
>>> Irrep("1y")
1o
>>> Irrep("2o").dim
5
>>> Irrep("2e") in Irrep("1o") * Irrep("1o")
True
>>> Irrep("1o") + Irrep("2o")
1x1o+1x2o
wigD_from_angles(alpha, beta, gamma, k=None)

从欧拉角计算 O(3) 的 Wigner D 矩阵表示。

参数:
  • alpha (Union[Tensor[float32], List[float], Tuple[float], ndarray[np.float32], float]) - 围绕Y轴旋转 \(\alpha\),第三个作用。

  • beta (Union[Tensor[float32], List[float], Tuple[float], ndarray[np.float32], float]) - 围绕X轴旋转 \(\beta\),第二个作用。

  • gamma (Union[Tensor[float32], List[float], Tuple[float], ndarray[np.float32], float]) - 围绕Y轴旋转 \(\gamma\),第一个作用。

  • k (Union[None, Tensor[float32], List[float], Tuple[float], ndarray[np.float32], float]) - 应用奇偶校验的次数。默认值: None

返回:

张量,O(3) 的 Wigner D 矩阵表示。张量形状为 \((..., 2l+1, 2l+1)\)

样例:

>>> m = Irrep(1, -1).wigD_from_angles(0, 0 ,0, 1)
>>> print(m)
[[-1,  0,  0],
[ 0, -1,  0],
[ 0,  0, -1]]
wigD_from_matrix(R)

从旋转矩阵中得到 O(3) 的 Wigner D 矩阵表示。

参数:
  • R (Tensor) - 旋转矩阵。形状为 \((..., 3, 3)\) 的张量。

返回:

O(3)的张量表示wigner D矩阵。形状为 \((..., 2l+1, 2l+1)\) 的张量。

异常:
  • TypeError - 如果 R 不是张量。

样例:

>>> from mindspore import ops
>>> m = Irrep(1, -1).wigD_from_matrix(-ops.eye(3))
>>> print(m)
[[-1,  0,  0],
[ 0, -1,  0],
[ 0,  0, -1]]