ExponentiallyDecayingTerms

  • full name: tenpy.networks.terms.ExponentiallyDecayingTerms

  • parent module: tenpy.networks.terms

  • type: class

Inheritance Diagram

Inheritance diagram of tenpy.networks.terms.ExponentiallyDecayingTerms

Methods

ExponentiallyDecayingTerms.__init__(L)

ExponentiallyDecayingTerms.add_exponentially_decaying_coupling(...)

Add an exponentially decaying long-range coupling.

ExponentiallyDecayingTerms.add_to_graph(graph)

Add terms from onsite_terms to an MPOGraph.

ExponentiallyDecayingTerms.from_hdf5(...)

Load instance from a HDF5 file.

ExponentiallyDecayingTerms.max_range()

Maximum range of the couplings.

ExponentiallyDecayingTerms.save_hdf5(...)

Export self into a HDF5 file.

ExponentiallyDecayingTerms.to_TermList([...])

Convert self into a TermList.

class tenpy.networks.terms.ExponentiallyDecayingTerms(L)[source]

Bases: Hdf5Exportable

Represent a sum of exponentially decaying (long-range) couplings.

MPOs can represent translation invariant, exponentially decaying long-range terms of the following form with a single extra index of the virtual bonds:

\[sum_{i < j} lambda^{|i-j|} A_i B_j\]

For 2D cylinders (or ladders), we need a slight generalization of this, where the operators act only on a subset of the sites in each unit cell, given by a 1D array subsites:

\[strength sum_{i < j} lambda^{|i-j|} A_{subsites[i]} B_{subsites[j]}\]

Note that we still have |i-j|, such that this will give uniformly decaying interactions, independent of the way the MPS winds through the 2D lattice, as long as subsites is sorted. An easy example would be a ladder, where we want the long-range interactions on the first rung only, subsites = lat.mps_idx_fix_u(u=0), see mps_idx_fix_u().

Parameters:

L (int) – Number of sites.

L

Number of sites.

Type:

int

exp_decaying_terms

Each tuple (strength, opname_i, opname_j, lambda, subsites, opname_string) represents one of the terms as described above; see add_exponentially_decaying_coupling() for more details.

Type:

list of tuples

add_exponentially_decaying_coupling(strength, lambda_, op_i, op_j, subsites=None, op_string='Id')[source]

Add an exponentially decaying long-range coupling.

\[strength sum_{i < j} lambda^{|i-j|} A_{subsites[i]} B_{subsites[j]}\]

Where the operator A is given by op_i, and B is given by op_j. Note that the sum over i,j is long-range, for infinite systems beyond the MPS unit cell.

Parameters:
  • strength (float) – Overall prefactor.

  • lambda (float) – Decay-rate

  • op_i (string) – Names for the operators.

  • op_j (string) – Names for the operators.

  • subsites (None | 1D array) – Selects a subset of sites within the MPS unit cell on which the operators act. Needs to be sorted. None selects all sites.

  • op_string (string) – The operator to be inserted between A and B; for Fermions this should be "JW".

add_to_graph(graph, key='exp-decay')[source]

Add terms from onsite_terms to an MPOGraph.

Parameters:
to_TermList(cutoff=0.01, bc='finite')[source]

Convert self into a TermList.

Parameters:
  • cutoff (float) – Drop terms where the overall prefactor is smaller then cutoff.

  • bc ("finite" | "infinite") – Boundary conditions to be used.

Returns:

term_list – Representation of the terms as a list of terms. For “infinite” bc, only terms starting in the first MPS unit cell are included.

Return type:

TermList

max_range()[source]

Maximum range of the couplings.

In this case np.inf.

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.