full name: tenpy.models.model
Base class for a general model of a Hamiltonian consisting of two-site couplings.
Base class for a model with an MPO representation of the Hamiltonian.
Base class for all models.
Base class for a model of nearest neigbor interactions w.r.t.
This module contains some base classes for models.
A ‘model’ is supposed to represent a Hamiltonian in a generalized way.
Lattice specifies the geometry and
underlying Hilbert space, and is thus common to all models.
It is needed to intialize the common base class
Model of all models.
Different algorithms require different representations of the Hamiltonian.
For example for DMRG, the Hamiltonian needs to be given as an MPO,
while TEBD needs the Hamiltonian to be represented by ‘nearest neighbor’ bond terms.
This module contains the base classes defining these possible representations,
A particular model like the
XXZChain should then
yet another class derived from these classes. In it’s __init__, it needs to explicitly call
MPOModel.__init__(self, lattice, H_MPO), providing an MPO representation of H,
and also the
NearestNeighborModel.__init__(self, lattice, H_bond),
providing a representation of H by bond terms H_bond.
CouplingModel is the attempt to generalize the representation of H
by explicitly specifying the couplings in a general way, and providing functionality
for converting them into H_MPO and H_bond.
This allows to quickly generate new model classes for a very broad class of Hamiltonians.
For simplicity, the
CouplingModel is limited to interactions involving only two sites.
Yet, we also provide the
MultiCouplingModel to generate Models for Hamiltonians
involving couplings between multiple sites.
CouplingMPOModel aims at structuring the initialization for most models and is used
as base class in (most of) the predefined models in TeNPy.
See also the introduction in Models.