SpinHalfSite¶
full name: tenpy.networks.site.SpinHalfSite
parent module:
tenpy.networks.site
type: 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.SpinHalfSite(conserve='Sz', sort_charge=None)[source]¶
Bases:
Site
Spin-1/2 site.
Local states are
up
(0) anddown
(1). Local operators are the usual spin-1/2 operators, e.g.Sz = [[0.5, 0.], [0., -0.5]]
,Sx = 0.5*sigma_x
for the Pauli matrix sigma_x.operator
description
Id, JW
Identity \(\mathbb{1}\)
Sx, Sy, Sz
Spin components \(S^{x,y,z}\), equal to half the Pauli matrices.
Sigmax, Sigmay, Sigmaz
Pauli matrices \(\sigma^{x,y,z}\)
Sp, Sm
Spin flips \(S^{\pm} = S^{x} \pm i S^{y}\)
conserve
qmod
excluded onsite operators
'Sz'
[1]
Sx, Sy, Sigmax, Sigmay
'parity'
[2]
–
'None'
[]
–
- Parameters
conserve (str | None) – Defines what is conserved, see table above.
sort_charge (bool) – Whether
sort_charge()
should be called at the end of initialization. This is usually a good idea to reduce potential overhead when using charge conservation. Note that this permutes the order of the local basis states! For backwards compatibility with existing data, it is not (yet) enabled by default.
- 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
perm
to account for permutations induced by sorting charges; False disables the permutations. By default (None
), the value ofused_sort_charge
is 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_labels
andperm
. 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
leg
charges (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.