netket._src.symmetry.labeled_representation_coset_filter.LabeledRepresentationCosetFilter#

class netket._src.symmetry.labeled_representation_coset_filter.LabeledRepresentationCosetFilter[source]#

Bases: object

Coset refinement operator for G/H where G and H are finite groups.

Used to extend the symmetry of a variational state one step at a time: if a state is already projected onto the H-symmetric sector (irrep ρ|_H), applying F_C(ρ) promotes it to the full G-symmetric sector (irrep ρ) using only len(G)/len(H) operator terms instead of the len(G) terms of the full projector.

The refinement operator F_C(ρ) for irrep ρ of G satisfies:

P_G(ρ) = F_C(ρ) @ P_H(ρ|_H)

where C is a set of left-coset representatives of G/H.

Obtained via:

C = full_rep.coset_filter(sub_rep)
F = C.projector_refinement(label="A1")  # |C| terms

Chaining:

C_d4_c2 = rep_d4.coset_filter(rep_c4).coset_filter(rep_c2)
Inheritance
Inheritance diagram of netket._src.symmetry.labeled_representation_coset_filter.LabeledRepresentationCosetFilter
Attributes
full_rep#

The full-group representation G.

n_coset_reps#

len(G) / len(H) — number of coset representatives.

sub_rep#

The subgroup representation H.

Methods
chars(label)[source]#

Character values χ_ρ(c) for each coset representative c.

Parameters:

label (str) – Irrep label from full_rep.irrep_labels.

Return type:

ndarray

Returns:

Complex array of shape (P,).

coset_filter(subgroup)[source]#

Build the next coset filter in a refinement chain.

Delegates to sub_rep.coset_filter(subgroup), so the result has full_rep = self.sub_rep and sub_rep = subgroup:

C = rep_d4.coset_filter(rep_c4).coset_filter(rep_c2)
# equivalent to: rep_c4.coset_filter(rep_c2)

See LabeledRepresentation.coset_filter for the full documentation.

Return type:

LabeledRepresentationCosetFilter

projector_refinement(*, label, atol=1e-15)[source]#

Build the coset refinement operator F_C(ρ).

This returns F_C alone (len(G)/len(H) terms). To obtain the full projector compose with the sub-group projector:

F_C @ sub_rep.projector(label=sub_label)  ==  full_rep.projector(label)
Parameters:
  • label (str) – Irrep label from full_rep.irrep_labels.

  • atol (float) – Drop operator terms with abs(coefficient) < atol.

Raises:

ValueError – if label is unknown.

Return type:

DiscreteJaxOperator