ChargeInfo
full name: tenpy.linalg.charges.ChargeInfo
parent module:
tenpy.linalg.charges
type: class
Inheritance Diagram
Methods
|
|
|
Create a |
|
Change the qmod of a given charge. |
|
Check, if charges has all entries as expected from self.mod. |
|
Remove a charge from a |
|
Load instance from a HDF5 file. |
|
Take charges modulo self.mod. |
|
Export self into a HDF5 file. |
Sanity check, raises ValueErrors, if something is wrong. |
Class Attributes and Properties
Modulo how much each of the charges is taken. |
|
The number of charges. |
- class tenpy.linalg.charges.ChargeInfo(mod=[], names=None)[source]
Bases:
object
Meta-data about the charge of a tensor.
Saves info about the nature of the charge of a tensor. Provides
make_valid()
for taking modulo m.(This class is implemented in
tenpy.linalg.charges
but also imported intenpy.linalg.np_conserved
for convenience.)- Parameters:
- _mask
mask
(mod == 1)
, to speed up make_valid in pure python.- Type:
1D array bool
- _mod_masked
Equivalent to
self.mod[self._mask]
- Type:
1D array QTYPE
Notes
Instances of this class can (should) be shared between different LegCharge and Array’s.
- 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()
.It stores the
names
under the path"names"
, andmod
as dataset"U1_ZN"
.
- 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()
.The
"U1_ZN"
dataset is mandatory,'names'
are optional.- 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
- classmethod add(chinfos)[source]
Create a
ChargeInfo
combining multiple charges.- Parameters:
chinfos (iterable of
ChargeInfo
) – ChargeInfo instances to be combined into a single one (in the given order).- Returns:
chinfo – ChargeInfo combining all the given charges.
- Return type:
- classmethod drop(chinfo, charge=None)[source]
Remove a charge from a
ChargeInfo
.- Parameters:
chinfo (
ChargeInfo
) – The ChargeInfo from where to drop/remove a charge.charge (int | str) – Number or name of the charge (within chinfo) which is to be dropped.
None
means dropping all charges.
- Returns:
chinfo – ChargeInfo where the specified charge is dropped.
- Return type:
- classmethod change(chinfo, charge, new_qmod, new_name='')[source]
Change the qmod of a given charge.
- Parameters:
chinfo (
ChargeInfo
) – The ChargeInfo for which qmod of charge should be changed.new_qmod (int) – The new qmod to be set.
new_name (str) – The new name of the charge.
- Returns:
chinfo – ChargeInfo where qmod of the specified charge was changed.
- Return type:
- property qnumber
The number of charges.
- property mod
Modulo how much each of the charges is taken.
Entries are 1 for a \(U(1)\) charge, and N for a \(Z_N\) symmetry.
- make_valid(charges=None)[source]
Take charges modulo self.mod.
- Parameters:
charges (array_like or None) – 1D or 2D array of charges, last dimension self.qnumber None defaults to trivial charges
np.zeros(qnumber, dtype=QTYPE)
.- Returns:
A copy of charges taken modulo mod, but with
x % 1 := x
- Return type:
charges