BosonSite¶
full name: tenpy.networks.site.BosonSite
parent module:
tenpy.networks.sitetype: class
Inheritance Diagram

Methods
|
|
|
Add one on-site operators. |
|
Change the charges of the site (in place). |
|
Load instance from a HDF5 file. |
|
Return the hermitian conjugate of a given operator. |
|
Return operator of given name. |
|
Multiply operator names together. |
|
Multiply local operators (possibly given by their names) together. |
|
Whether an (composite) onsite operator is fermionic and needs a Jordan-Wigner string. |
|
Remove an added operator. |
|
Rename an added operator. |
|
Export self into a HDF5 file. |
|
Sort the |
|
Return index of a basis state from its label. |
|
Same as |
Sanity check, raises ValueErrors, if something is wrong. |
|
|
Check whether 'name' labels a valid onsite-operator. |
Class Attributes and Properties
Dimension of the local Hilbert space. |
|
Dictionary of on-site operators for iteration. |
- class tenpy.networks.site.BosonSite(Nmax=1, conserve='N', filling=0.0)[source]¶
Bases:
SiteCreate a
Sitefor up to Nmax bosons.Local states are
vac, 1, 2, ... , Nc. (Exception: for parity conservation, we sort asvac, 2, 4, ..., 1, 3, 5, ....)operator
description
Id, JWIdentity \(\mathbb{1}\)
BAnnihilation operator \(b\)
BdCreation operator \(b^\dagger\)
NNumber operator \(n= b^\dagger b\)
NN\(n^2\)
dN\(\delta n := n - filling\)
dNdN\((\delta n)^2\)
PParity \(Id - 2 (n \mod 2)\).
conserve
qmod
excluded onsite operators
'N'[1]
–
'parity'[2]
–
'None'[]
–
- Parameters
- add_op(name, op, need_JW=False, hc=None, permute_dense=None)[source]¶
Add one on-site operators.
- Parameters
name (str) – A valid python variable name, used to label the operator. The name under which op is added as attribute to self.
op (np.ndarray |
Array) – A matrix acting on the local hilbert space representing the local operator. Dense numpy arrays are automatically converted toArray. LegCharges have to be[leg, leg.conj()]. We set labels'p', 'p*'.need_JW (bool) – Whether the operator needs a Jordan-Wigner string. If
True, add name toneed_JW_string.hc (None | False | str) – The name for the hermitian conjugate operator, to be used for
hc_ops. By default (None), try to auto-determine it. IfFalse, disable adding antries tohc_ops.permute_dense (bool | None) – Flag to enable/disable permuations when converting op from numpy to np_conserved arrays. If True, the operator is permuted with
permto account for permutations induced by sorting charges; False disables the permutations. By default (None), the value ofused_sort_chargeis used.
- change_charge(new_leg_charge=None, permute=None)[source]¶
Change the charges of the site (in place).
- Parameters
new_leg_charge (
LegCharge| None) – The new charges to be used. IfNone, use trivial charges.permute (ndarray | None) – The permuation applied to the physical leg, which also gets used to adjust
state_labelsandperm. If you sorted the previous leg withperm_qind, new_leg_charge = leg.sort(), useold_leg.perm_flat_from_perm_qind(perm_qind). Ignored ifNone.
- property dim¶
Dimension of the local Hilbert space.
- 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
- get_op(name)[source]¶
Return operator of given name.
- Parameters
name (str) – The name of the operator to be returned. In case of multiple operator names separated by whitespace, we multiply them together to a single on-site operator (with the one on the right acting first).
- Returns
op – The operator given by name, with labels
'p', 'p*'. If name already was an npc Array, it’s directly returned.- Return type
- multiply_op_names(names)[source]¶
Multiply operator names together.
Join the operator names in names such that get_op returns the product of the corresponding operators.
- multiply_operators(operators)[source]¶
Multiply local operators (possibly given by their names) together.
- Parameters
operators (list of {str |
Array}) – List of valid operator names (to be translated withget_op()) or directly on-site operators in the form of npc arrays with'p', 'p*'label. The operators are multiplied left-to-right.- Returns
combined_operator – The product of the given operators in a left-to-right multiplication following the usual mathematical convention. For example, if
operators=['Sz', 'Sp', 'Sx'], the final operator is equivalent tosite.get_op('Sz Sp Sx'), with the'Sx'operator acting first on any physical state.- Return type
- property onsite_ops¶
Dictionary of on-site operators for iteration.
Single operators are accessible as attributes.
- op_needs_JW(name)[source]¶
Whether an (composite) onsite operator is fermionic and needs a Jordan-Wigner string.
- remove_op(name)[source]¶
Remove an added operator.
- Parameters
name (str) – The name of the operator to be removed.
- 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'.
- sort_charge(bunch=True)[source]¶
Sort the
legcharges (in place).- Parameters
bunch (bool) – Whether to also group equal charges into larger blocks (usually a good idea).
- Returns
perm – The permutation
- Return type
1D ndarray
- state_indices(labels)[source]¶
Same as
state_index(), but for multiple labels.