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

Methods
|
|
|
Add a two-site coupling term on given MPS sites. |
|
Add terms from |
|
Helping function to call before |
|
Load instance from a HDF5 file. |
Determine the maximal range in |
|
|
Plot coupling terms into a given lattice. |
|
Remove entries close to 0 from |
|
Export self into a HDF5 file. |
Convert |
|
Convert the |
- class tenpy.networks.terms.CouplingTerms(L)[source]
Bases:
Hdf5ExportableOperator names, site indices and strengths representing two-site coupling terms.
- Parameters:
L (int) – Number of sites.
- coupling_terms
Filled by
add_coupling_term(). Nested dictionaries of the form{i: {('opname_i', 'opname_string'): {j: {'opname_j': strength}}}}. Note that alwaysi < j, but entries withj >= Lare allowed forbc_MPS == 'infinite', in which case they indicate couplings between different iMPS unit cells.
- max_range()[source]
Determine the maximal range in
coupling_terms.- Returns:
max_range – The maximum of
j - ifor the i, j occurring in a term ofcoupling_terms.- Return type:
- add_coupling_term(strength, i, j, op_i, op_j, op_string='Id')[source]
Add a two-site coupling term on given MPS sites.
- Parameters:
strength (float) – The strength of the coupling term.
i (int) – The MPS indices of the two sites on which the operator acts. We require
0 <= i < N_sitesandi < j, i.e., op_i acts “left” of op_j. If j >= N_sites, it indicates couplings between unit cells of an infinite MPS.j (int) – The MPS indices of the two sites on which the operator acts. We require
0 <= i < N_sitesandi < j, i.e., op_i acts “left” of op_j. If j >= N_sites, it indicates couplings between unit cells of an infinite MPS.op1 (str) – Names of the involved operators.
op2 (str) – Names of the involved operators.
op_string (str) – The operator to be inserted between i and j.
- coupling_term_handle_JW(strength, term, sites, op_string=None)[source]
Helping function to call before
add_coupling_term().- Parameters:
strength (float) – The strength of the coupling term.
term ([(str, int), (str, int)]) – List of two tuples
[(op_i, i), (op_j, j)]where i is the MPS index of the site the operator named op_i acts on; we require i < j.sites (list of
Site) – Defines the local Hilbert space for each site. Used to check whether the operators need Jordan-Wigner strings.op_string (None | str) –
Operator name to be used as operator string between the operators, or
Noneif the Jordan Wigner string should be figured out.Warning
Nonefigures out for each segment between the operators, whether a Jordan-Wigner string is needed. This is different from a plain'JW', which just applies a string on each segment!
- Returns:
Arguments for
MultiCouplingTerms.add_multi_coupling_term()such that the added term corresponds to the parameters of this function.- Return type:
strength, i, j, op_i, op_j, op_string
- plot_coupling_terms(ax, lat, style_map='default', common_style={'linestyle': '--'}, text=None, text_pos=0.4)[source]
Plot coupling terms into a given lattice.
This function plots the
coupling_terms- Parameters:
ax (
matplotlib.axes.Axes) – The axes on which we should plot.lat (
Lattice) – The lattice for plotting the couplings, most probably theM.latof the corresponding modelM, seelat.style_map (function | None) – Function which get’s called with arguments
i, j, op_i, op_string, op_j, strengthfor each two-site coupling and should return a keyword-dictionary with the desired plot-style for this coupling. By default (None), the linewidth is given by the absolute value of strength, and the linecolor depends on the phase of strength (using the hsv colormap).common_style (dict) – Common style, which overwrites values of the dictionary returned by style_map. A
'label'is only used for the first plotted line.text (format_string | None) – If not
None, we add text labeling the couplings in the plot. Available keywords arei, j, op_i, op_string, op_j, strengthas well asstrength_abs, strength_angle, strength_real.text_pos (float) – Specify where to put the text on the line between i (0.0) and j (1.0), e.g. 0.5 is exactly in the middle between i and j.
See also
tenpy.models.lattice.Lattice.plot_sitesplot the sites of the lattice.
- add_to_graph(graph)[source]
Add terms from
coupling_termsto an MPOGraph.- Parameters:
graph (
MPOGraph) – The graph into which the terms fromcoupling_termsshould be added.
- to_nn_bond_Arrays(sites)[source]
Convert the
coupling_termsinto Arrays on nearest neighbor bonds.- Parameters:
sites (list of
Site) – Defines the local Hilbert space for each site. Used to translate the operator names intoArray.- Returns:
H_bond – The
coupling_termsrewritten assum_i H_bond[i]for MPS indicesi.H_bond[i]acts on sites(i-1, i),Nonerepresents 0. Legs of eachH_bond[i]are['p0', 'p0*', 'p1', 'p1*'].- Return type:
list of {
Array| None}
- remove_zeros(tol_zero=1e-15)[source]
Remove entries close to 0 from
coupling_terms.- Parameters:
tol_zero (float) – Entries in
coupling_termswith strength < tol_zero are considered to be zero and removed.
- to_TermList()[source]
Convert
onsite_termsinto aTermList.- Returns:
term_list – Representation of the terms as a list of terms.
- 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'.