# lattice

Classes

 Chain(L, site, **kwargs) A chain of L equal sites. HelicalLattice(regular_lattice, N_unit_cells) Translation invariant version of a tilted, regular 2D lattice. Honeycomb(Lx, Ly, sites, **kwargs) A honeycomb lattice. IrregularLattice(regular_lattice[, remove, ...]) A variant of a regular lattice, where we might have extra sites or sites missing. Kagome(Lx, Ly, sites, **kwargs) A Kagome lattice. Ladder(L, sites, **kwargs) A ladder coupling two chains. Lattice(Ls, unit_cell[, order, bc, bc_MPS, ...]) A general, regular lattice. MultiSpeciesLattice(simple_lattice, ...[, ...]) A variant of a SimpleLattice replacing the elementary site with a set of sites. NLegLadder(L, N, sites, **kwargs) A ladder coupling N chains. SimpleBZ(vertices, basis, dim) Helper class to provide an interface for the Brillouin Zone of a given lattice. SimpleLattice(Ls, site, **kwargs) A lattice with a unit cell consisting of just a single site. Square(Lx, Ly, site, **kwargs) A square lattice. Triangular(Lx, Ly, site, **kwargs) A triangular lattice. TrivialLattice(mps_sites, **kwargs) Trivial lattice consisting of a single (possibly large) unit cell in 1D.

Functions

 get_lattice(lattice_name) Given the name of a Lattice class, get the lattice class itself. get_order(shape, snake_winding[, priority]) Built the Lattice.order in (Snake-) C-Style for a given lattice shape. get_order_grouped(shape, groups[, priority]) Variant of get_order(), grouping some sites of the unit cell.

Module description

Classes to define the lattice structure of a model.

The base class Lattice defines the general structure of a lattice, you can subclass this to define you own lattice. The SimpleLattice is a slight simplification for lattices with a single-site unit cell. Further, we have some predefined lattices, namely Chain, Ladder in 1D and Square, Triangular, Honeycomb, and Kagome in 2D.

The IrregularLattice provides a way to remove or add sites to an existing, regular lattice.