util.symmetries

class jVMC.util.symmetries.LatticeSymmetry(orbit, factor)

A wrapper class for lattice symmetries.

Wrapping the orbit in this class is a workaround to make the jax.numpy.array hashable so that they can be passed as arguments to Flax modules.

Initializer arguments:
  • orbit: A jax.numpy.array of rank three, which contains the permutation matrix of lattice indices for each symmetry operation.

  • factor: A jax.numpy.array of rank one, which contains the phase factor associated with each element in the orbit due to the chosen quantum number.

jVMC.util.symmetries.get_maps_1D(L, **kwargs)

Compute the effect of symmetry operations on a 2D square lattice.

jVMC.util.symmetries.get_maps_2D(L, **kwargs)

Compute the effect of symmetry operations on a 2D square lattice.

jVMC.util.symmetries.get_orbit_1D(L, *args, translation_factor=1.0, reflection_factor=1.0, spinflip_factor=1.0)

This function generates the group of lattice symmetries in a one-dimensional lattice.

Arguments:
  • L: Linear dimension of the lattice.

  • *args: Any choice of “reflection”, “rotation”, “translation”, or “spinflip”.

  • *_factor: Prefactor for the symmetrization corresponding to the quantum number. Replace * by the name of the symmetry (“reflection”, “rotation”, “translation”, or “spinflip”).

Returns:

An object of type LatticeSymmetry.

jVMC.util.symmetries.get_orbit_2D_square(L, *args, translation_factor=1.0, reflection_factor=1.0, rotation_factor=1.0, spinflip_factor=1.0)

This function generates the group of lattice symmetries in a two-dimensional square lattice.

Arguments:
  • L: Linear dimension of the lattice.

  • *args: Any choice of “reflection”, “rotation”, “translation”, or “spinflip”.

  • *_factor: Prefactor for the symmetrization corresponding to the quantum number. Replace * by the name of the symmetry (“reflection”, “rotation”, “translation”, or “spinflip”).

Returns:

An object of type LatticeSymmetry.

jVMC.util.symmetries.get_orbits_from_maps_1D(L, translation, reflection)

Given the site ids that are displaced by the desired symmetry operation, obtain the matrices that perform the desired symmetry operation.

jVMC.util.symmetries.get_orbits_from_maps_2D(L, translation, rotation, reflection)

Given the site ids that are displaced by the desired symmetry operation, obtain the matrices that perform the desired symmetry operation.