symmetric_contraction#

cuequivariance.group_theory.descriptors.symmetric_contraction(
irreps_in: Irreps,
irreps_out: Irreps,
degrees: tuple[int, ...],
) EquivariantPolynomial#

Construct the descriptor for a symmetric contraction.

The symmetric contraction is a weighted sum of the input contracted with itself degree times.

Subscripts: weights[u],input[u],output[u]

Parameters:
  • irreps_in (Irreps) – The input irreps, the multiplicity are treated in parallel.

  • irreps_out (Irreps) – The output irreps.

  • degrees (tuple[int, ...]) – List of degrees for the symmetric contractions.

Returns:

The descriptor of the symmetric contraction.

The operands are the weights, the input degree times and the output.

Return type:

EquivariantPolynomial

Example

>>> cue.descriptors.symmetric_contraction(
...    16 * cue.Irreps("SO3", "0 + 1 + 2"),
...    16 * cue.Irreps("SO3", "0 + 1"),
...    (1, 2, 3)
... )
╭ a=32x0+80x0+176x0 b=16x0+16x1+16x2 -> C=16x0+16x1
│  []·a[u]·b[u]➜C[u] ─────────── num_paths=4 u=16
│  []·a[u]·b[u]·b[u]➜C[u] ────── num_paths=37 u=16
╰─ []·a[u]·b[u]·b[u]·b[u]➜C[u] ─ num_paths=437 u=16

Where 32x0+80x0+176x0 are the weights needed for each degree (32 for degree 1, 80 for degree 2, 176 for degree 3).