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.
 extend(self: block.symmetry.VectorSpinQuantum, L: block.symmetry.VectorSpinQuantum) > None
Extend the list by appending all the items in the given list
 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.
 pop(self: block.symmetry.VectorSpinQuantum) > block.symmetry.SpinQuantum
Remove and return the last item
 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.
 extend(self: block.symmetry.VectorStateInfo, L: block.symmetry.VectorStateInfo) > None
Extend the list by appending all the items in the given list
 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.
 pop(self: block.symmetry.VectorStateInfo) > block.symmetry.StateInfo
Remove and return the last item
 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¶