MPOModel

Inheritance Diagram

Inheritance diagram of tenpy.models.model.MPOModel

Methods

MPOModel.__init__(lattice, H_MPO)

Initialize self.

MPOModel.calc_H_bond_from_MPO([tol_zero])

Calculate the bond Hamiltonian from the MPO Hamiltonian.

MPOModel.enlarge_mps_unit_cell([factor])

Repeat the unit cell for infinite MPS boundary conditions; in place.

MPOModel.from_hdf5(hdf5_loader, h5gr, subpath)

Load instance from a HDF5 file.

MPOModel.group_sites([n, grouped_sites])

Modify self in place to group sites.

MPOModel.save_hdf5(hdf5_saver, h5gr, subpath)

Export self into a HDF5 file.

MPOModel.test_sanity()

Class Attributes and Properties

MPOModel.logger

class attribute.

class tenpy.models.model.MPOModel(lattice, H_MPO)[source]

Bases: tenpy.models.model.Model

Base class for a model with an MPO representation of the Hamiltonian.

In this class, the Hamiltonian gets represented by an MPO. Thus, instances of this class are suitable for MPO-based algorithms like DMRG dmrg and MPO time evolution.

Parameters

H_MPO (MPO) – The Hamiltonian rewritten as an MPO.

H_MPO

MPO representation of the Hamiltonian. If the explicit_plus_hc flag of the MPO is True, the represented Hamiltonian is H_MPO + hermitian_cojugate(H_MPO).

Type

tenpy.networks.mpo.MPO

enlarge_mps_unit_cell(factor=2)[source]

Repeat the unit cell for infinite MPS boundary conditions; in place.

This has to be done after finishing initialization and can not be reverted.

Parameters

factor (int) – The new number of sites in the MPS unit cell will be increased from N_sites to factor*N_sites_per_ring. Since MPS unit cells are repeated in the x-direction in our convetion, the lattice shape goes from (Lx, Ly, ..., Lu) to (Lx*factor, Ly, ..., Lu).

group_sites(n=2, grouped_sites=None)[source]

Modify self in place to group sites.

Group each n sites together using the GroupedSite. This might allow to do TEBD with a Trotter decomposition, or help the convergence of DMRG (in case of too long range interactions).

This has to be done after finishing initialization and can not be reverted.

Parameters
  • n (int) – Number of sites to be grouped together.

  • grouped_sites (None | list of GroupedSite) – The sites grouped together.

Returns

grouped_sites – The sites grouped together.

Return type

list of GroupedSite

calc_H_bond_from_MPO(tol_zero=1e-15)[source]

Calculate the bond Hamiltonian from the MPO Hamiltonian.

Parameters

tol_zero (float) – Arrays with norm < tol_zero are considered to be zero.

Returns

H_bond – Bond terms as required by the constructor of NearestNeighborModel. Legs are ['p0', 'p0*', 'p1', 'p1*']

Return type

list of Array

:raises ValueError : if the Hamiltonian contains longer-range terms.:

classmethod from_hdf5(hdf5_loader, h5gr, subpath)[source]

Load instance from a HDF5 file.

This method reconstructs a class instance from the data saved with save_hdf5().

Parameters
  • hdf5_loader (Hdf5Loader) – Instance of the loading engine.

  • h5gr (Group) – HDF5 group which is represent the object to be constructed.

  • subpath (str) – The name of h5gr with a '/' in the end.

Returns

obj – Newly generated class instance containing the required data.

Return type

cls

save_hdf5(hdf5_saver, h5gr, subpath)[source]

Export self into a HDF5 file.

This method saves all the data it needs to reconstruct self with from_hdf5().

This implementation saves the content of __dict__ with save_dict_content(), storing the format under the attribute 'format'.

Parameters
  • hdf5_saver (Hdf5Saver) – Instance of the saving engine.

  • h5gr (:class`Group`) – HDF5 group which is supposed to represent self.

  • subpath (str) – The name of h5gr with a '/' in the end.