ExponentiallyDecayingTerms
full name: tenpy.networks.terms.ExponentiallyDecayingTerms
parent module:
tenpy.networks.termstype: class
Inheritance Diagram

Methods
|
|
|
Add exponentially decaying terms centered around a single site. |
|
Add an exponentially decaying long-range coupling. |
Add terms from |
|
Load instance from a HDF5 file. |
|
Maximum range of the couplings. |
|
Export self into a HDF5 file. |
|
Convert self into a |
Class Attributes and Properties
|
- class tenpy.networks.terms.ExponentiallyDecayingTerms(L)[source]
Bases:
Hdf5ExportableRepresent 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), seemps_idx_fix_u().Suppose we want long-range (LR) couplings between all sites on a strip of width Ly. The subsites parameters allows us to implement LR couplings along each leg of the strip. We want LR couplings between sites that have both vertical and horizontal offset according to the Euclidean distance. To do this, we use subsites_start. For each site in subsites_start, we couple to all sites to the right of subsites. In our example, the sites in one leg can be coupled to all sites with larger index in another leg.
\[strength sum_{subsites_start[i] < subsites[j]} \ lambda^{|j-argmin(subsites>subsites_start[i])|} A_{subsites_start[i]} B_{subsites[j]}\]- Parameters:
L (int) – Number of sites.
- exp_decaying_terms
Each tuple
(strength, opname_i, opname_j, lambda, subsites, subsites_start, opname_string)represents one of the terms as described above; seeadd_exponentially_decaying_coupling()for more details.- Type:
list of tuples
- centered_terms
Each tuple
(strength, opname_i, opname_j, lambda_, subsites, opname_string)represents one of the centered terms as described inadd_centered_exponentially_decaying_term().- Type:
list of tuples
- add_exponentially_decaying_coupling(strength, lambda_, op_i, op_j, subsites=None, subsites_start=None, op_string='Id')[source]
Add an exponentially decaying long-range coupling.
\[strength \sum_{i} \sum_{j > i} \lambda^{|i-j|} A_i B_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.
They can be generalized in several ways, see lambda_, subsites, subsites_start, as well as the notes below.
- Parameters:
strength (float) – Overall prefactor.
lambda (float | 1D array) – Decay-rate. Either a single number, applied uniformly or a sequence of length
L.op_i (string) – Names for the operators.
op_j (string) – Names for the operators.
subsites (1D array, optional) – Selects a subset of sites within the MPS unit cell on which the operators act. See docs in
add_exponentially_decaying_coupling.subsites_start (1D array, optional) – Selects a subset of sites within the MPS unit cell on which the operators act. See docs in
add_exponentially_decaying_coupling.op_string (string) – The operator to be inserted between A and B; for Fermions this should be
"JW".
- add_centered_exponentially_decaying_term(strength, lambda_, op_i, op_j, i, subsites=None, op_string='Id')[source]
Add exponentially decaying terms centered around a single site.
See
add_centered_exponentially_decaying_term()for details.
- add_to_graph(graph, key='exp-decay')[source]
Add terms from
onsite_termsto an MPOGraph.- Parameters:
graph (
MPOGraph) – The graph into which the terms fromexp_decaying_termsshould be added.key (str) – Key to distinguish from other states in the
MPOGraph. We find integers key_nr and use(key_nr, key)as state for the different entries inexp_decaying_terms.
- 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:
- 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__withsave_dict_content(), storing the format under the attribute'format'.