quantax.symmetry.Translation#

class quantax.symmetry.Translation#

Bases: Symmetry

Translation symmetry.

__init__(vectors: Sequence[int] | NDArray[integer], sector: int | Sequence[int] = 0)#

Translation symmetry.

Parameters:
  • vectors – The translation vectors, in the unit of lattice basis vectors.

  • sector – The symmetry sector.

property vectors: ndarray#

The translation vectors.

get_sublattice_coord() ndarray#

Get the coordinate of lattice sites in the sublattice.

property Nmodes: int#

The length of a configuration array, i.e. the number of local modes per sample. This is Nsites for spins or spinless fermions and 2 * Nsites for spinful fermions.

property Nparticles: int | tuple[int, int] | None#

The number of particles.

  • None: No particle conservation.

  • int: Conservation of total particle number.

  • Tuple[int, int]: Conservation of spin-up and spin-down particle numbers.

property Nsites: int#

The number of sites.

property Z2_inversion: int#

The Z2 inversion symmetry. It represents the spin flip in spin-1/2 systems, and the particle-hole symmetry in fermionic systems. The meaning of each number is

  • 1: Eigenvalue 1 after Z2 inversion

  • 0: No Z2 inversion symmetry

  • -1: Eigenvalue -1 after Z2 inversion

property basis#

The QuSpin basis corresponding to the symmetry.

basis_make() None#

Make the QuSpin basis stored in the symmetry.

property character: Array#

Characters \(\chi\) of all group elements.

property double_occ: bool#

Whether the system allows double occupancy.

get_symm_spins(spins: Array) Array#

Get all symmetrized bases \(s'=Ts\) generated by the symmetry permutations.

Parameters:

spins – Input spin or fermion configuration \(s\).

Note

This function is jittable.

property is_fermion: bool#

Whether the system is made of fermions.

property is_spinful: bool#

Whether the system is spinful.

property nsymm: int#

Number of elements in the symmetry group.

property particle_type: PARTICLE_TYPE#

The type of particle in the system. See PARTICLE_TYPE.

symmetrize(psi: NDArray | Array | LogArray | ScaleArray, spins: Array | None = None) NDArray | Array | LogArray | ScaleArray#

Symmetrize the wavefunction as

\[\psi^{\mathrm{symm}}(s) = \frac{d}{|G|} \sum_g \mathrm{sign}(s, g) \chi_g \psi(T_g s),\]

where \(d\) is the dimension of the group representation, \(|G|\) is the number of elements in the symmetry group, and \(\mathrm{sign}(s, g)\) is the additional sign generated by the symmetry depending on the input Fock state (only for fermionic systems).

Parameters:
  • psi – Wavefunctions \(\psi(T_i s)\).

  • spins – Input spin or fermion configuration \(s\). This is only necessary in fermionic systems, where additional minus signs \(\mathrm{sign}(s, g)\) can be generated by the symmetry.

Returns:

The symmetrized wave function

Note

This function is jittable.