Irreps#

class cuequivariance.Irreps(*args)#

具有重数的不可约表示的直和。

更多信息,请参阅 群和表示

参数:
  • irrep_class – 不可约表示的类 (例如,SU2, SO3, O3)。

  • input – 每个不可约表示的重数描述。

示例

>>> Irreps("SO3", "16x0 + 4x1")
16x0+4x1
>>> Irreps(cue.SO3, "16x0 + 4x1")
16x0+4x1
>>> Irreps(cue.SO3, [(16, 0), (4, 1)])
16x0+4x1
>>> with cue.assume("SO3"):
...     Irreps("16x0 + 4x1")
16x0+4x1

方法

new_scalars(
mul: int,
) Irreps#

返回一个包含所有标量表示的表示。

示例

>>> Irreps("SO3", "32x1").new_scalars(2)
2x0
count(
rep: str | Irrep,
) int#

计算表示的总重数。

示例

>>> Irreps("SO3", "100x0 + 20x1 + 10x0").count("0")
110
property dim: int#

表示的总维度。

示例

>>> Irreps("SO3", "100x0 + 10x1").dim
130
property num_irreps: int#

返回不可约表示的数量。

示例

>>> Irreps("SO3", "100x0 + 10x1").num_irreps
110
property muls: list[int]#

重数列表。

示例

>>> Irreps("SO3", "100x0 + 10x1").muls
[100, 10]
slices() list[slice]#

表示的每个分段的切片列表。

示例

>>> Irreps("SO3", "100x0 + 10x1").slices()
[slice(0, 100, None), slice(100, 130, None)]
is_scalar() bool#

所有表示都是标量。

注意

此函数不检查表示的重数。

示例

>>> Irreps("SO3", "100x0 + 0x1").is_scalar()
False
>>> Irreps("SO3", "100x0").is_scalar()
True
merge_consecutive() Irreps#

合并具有相同表示的连续分段。

示例

>>> Irreps("SO3", "1 + 1 + 0 + 1").merge_consecutive()
2x1+0+1
remove_zero_multiplicities() Irreps#

移除零重数。

示例

>>> Irreps("SO3", "1 + 0x2 + 1").remove_zero_multiplicities()
1+1
simplify() Irreps#

通过移除零重数和合并连续元组来简化表示。

示例

>>> Irreps("SO3", "1 + 0x2 + 1").simplify()
2x1
sort() SortResult#

排序表示。

返回值:

排序后的表示和相关的置换。

返回类型:

SortResult

示例

>>> Irreps("SO3", "1 + 2 + 0 + 1").sort()
SortResult(irreps=0+1+1+2, perm=(1, 3, 0, 2), inv=(2, 0, 3, 1))
regroup() Irreps#

通过排序和简化来重组表示。

示例

>>> Irreps("SO3", "1 + 2 + 0 + 1").regroup()
0+2x1+2
set_mul(mul: int) Irreps#

设置所有分段的重数。

示例

>>> Irreps("SO3", "3x0 + 2x0 + 4x1").set_mul(2)
2x0+2x0+2x1
filter(
*,
keep: str | Sequence[Irrep] | Callable[[MulIrrep], bool] | None = None,
drop: str | Sequence[Irrep] | Callable[[MulIrrep], bool] | None = None,
mask: Sequence[bool] | None = None,
) Irreps#

过滤表示。

参数:
  • keep (str, list of Irrep, callable, optional) – 仅保留指定的表示。

  • drop (str, list of Irrep, callable, optional) – 丢弃指定的表示。

示例

>>> Irreps("SO3", "4x0 + 4x1 + 2x2").filter(keep="0 + 1")
4x0+4x1
>>> Irreps("SO3", "4x0 + 4x1 + 2x2").filter(drop="0 + 1")
2x2
layout_insensitive() bool#

如果表示对布局不敏感,则为 True。

示例

>>> Irreps("SO3", "100x0 + 1x1 + 1x2").layout_insensitive()
True
>>> Irreps("SO3", "100x0 + 2x1").layout_insensitive()
False