block.symmetry

Classes for handling symmetries and quantum numbers.

class block.symmetry.IrrepSpace(*args, **kwargs)

Bases: object

A wrapper class for molecular point group symmetry irrep.

irrep
class block.symmetry.SpinQuantum(*args, **kwargs)

Bases: object

A collection of quantum numbers associated with a specific state (irreducible representation). One such collection defines a specific sector in the state space.

n

Particle number.

s

Irreducible representation for spin symmetry (\(S\) or \(S_z\)).

symm

Irreducible representation for molecular point group symmetry.

class block.symmetry.SpinSpace(*args, **kwargs)

Bases: object

A wrapper class for the spin irrep.

In \(S_z\) symmetry, the irrep is \(2S_z\). In SU(2) symmetry, the irrep is \(2S\). The behaviour is toggled checking block.io.Global.dmrginp.spin_adapted.

irrep
class block.symmetry.StateInfo(*args, **kwargs)

Bases: object

A collection of symmetry sectors. Each sector can contain several internal states (which can no longer be differentiated by symmetries), the number of which is also stored.

collect_quanta(self: block.symmetry.StateInfo) → None
copy(self: block.symmetry.StateInfo) → block.symmetry.StateInfo
left_state_info
left_unmap_quanta

Index in left StateInfo, for each combined state.

n_states

Number of states per (combined) quantum number.

n_total_states
old_to_new_state

old_to_new_state[i] = [k1, k2, k3, …] where i is the index in the collected StateInfo and k’s are indices in the uncollected StateInfo.

quanta

Quantum numbers for a set of sites.

right_state_info
right_unmap_quanta

Index in right StateInfo, for each combined state.

set_left_state_info(self: block.symmetry.StateInfo, arg0: block.symmetry.StateInfo) → None
set_right_state_info(self: block.symmetry.StateInfo, arg0: block.symmetry.StateInfo) → None
set_uncollected_state_info(self: block.symmetry.StateInfo, arg0: block.symmetry.StateInfo) → None
uncollected_state_info
class block.symmetry.VectorSpinQuantum(*args, **kwargs)

Bases: object

append(self: block.symmetry.VectorSpinQuantum, x: block.symmetry.SpinQuantum) → None

Add an item to the end of the list

count(self: block.symmetry.VectorSpinQuantum, x: block.symmetry.SpinQuantum) → int

Return the number of times x appears in the list

extend(*args, **kwargs)

Overloaded function.

  1. extend(self: block.symmetry.VectorSpinQuantum, L: block.symmetry.VectorSpinQuantum) -> None

Extend the list by appending all the items in the given list

  1. extend(self: block.symmetry.VectorSpinQuantum, L: iterable) -> None

Extend the list by appending all the items in the given list

insert(self: block.symmetry.VectorSpinQuantum, i: int, x: block.symmetry.SpinQuantum) → None

Insert an item at a given position.

pop(*args, **kwargs)

Overloaded function.

  1. pop(self: block.symmetry.VectorSpinQuantum) -> block.symmetry.SpinQuantum

Remove and return the last item

  1. pop(self: block.symmetry.VectorSpinQuantum, i: int) -> block.symmetry.SpinQuantum

Remove and return the item at index i

remove(self: block.symmetry.VectorSpinQuantum, x: block.symmetry.SpinQuantum) → None

Remove the first item from the list whose value is x. It is an error if there is no such item.

class block.symmetry.VectorStateInfo(*args, **kwargs)

Bases: object

append(self: block.symmetry.VectorStateInfo, x: block.symmetry.StateInfo) → None

Add an item to the end of the list

count(self: block.symmetry.VectorStateInfo, x: block.symmetry.StateInfo) → int

Return the number of times x appears in the list

extend(*args, **kwargs)

Overloaded function.

  1. extend(self: block.symmetry.VectorStateInfo, L: block.symmetry.VectorStateInfo) -> None

Extend the list by appending all the items in the given list

  1. extend(self: block.symmetry.VectorStateInfo, L: iterable) -> None

Extend the list by appending all the items in the given list

insert(self: block.symmetry.VectorStateInfo, i: int, x: block.symmetry.StateInfo) → None

Insert an item at a given position.

pop(*args, **kwargs)

Overloaded function.

  1. pop(self: block.symmetry.VectorStateInfo) -> block.symmetry.StateInfo

Remove and return the last item

  1. pop(self: block.symmetry.VectorStateInfo, i: int) -> block.symmetry.StateInfo

Remove and return the item at index i

remove(self: block.symmetry.VectorStateInfo, x: block.symmetry.StateInfo) → None

Remove the first item from the list whose value is x. It is an error if there is no such item.

block.symmetry.get_commute_parity(a: block.symmetry.SpinQuantum, b: block.symmetry.SpinQuantum, c: block.symmetry.SpinQuantum) → float
block.symmetry.state_tensor_product(arg0: block.symmetry.StateInfo, arg1: block.symmetry.StateInfo) → block.symmetry.StateInfo
block.symmetry.state_tensor_product_target(arg0: block.symmetry.StateInfo, arg1: block.symmetry.StateInfo) → block.symmetry.StateInfo
block.symmetry.wigner_9j(arg0: int, arg1: int, arg2: int, arg3: int, arg4: int, arg5: int, arg6: int, arg7: int, arg8: int) → float