ExactDiag¶
full name: tenpy.algorithms.exact_diag.ExactDiag
parent module:
tenpy.algorithms.exact_diag
type: class
Inheritance Diagram

Methods
|
|
Calculate self.full_H from self.mpo. |
|
Calculate self.full_H from self.mpo. |
|
|
Return |
|
Wrapper taking directly an MPO instead of a Model. |
|
Full diagonalization to obtain all eigenvalues and eigenvectors. |
|
Convert a full state (with a single leg) to an MPS. |
|
Pick the ground state energy and ground state from |
|
Allow to use self as LinearOperator for lanczos. |
Contract an MPS along the virtual bonds and combine its legs. |
|
|
Call |
- class tenpy.algorithms.exact_diag.ExactDiag(model, charge_sector=None, sparse=False, max_size=2000000.0)[source]¶
Bases:
object
(Full) exact diagonalization of the Hamiltonian.
- Parameters
model (
MPOmodel
|CouplingModel
) – The model which is to be diagonalized.charge_sector (
None
| charges) – If notNone
, project onto the given charge sector.sparse (bool) – If
True
, don’t sort/bunch the LegPipe used to combine the physical legs. This results in array blocks with just one entry, requires much more charge data, and is not what np_conserved was designed for, so it’s not recommended.max_size (int) – The build_H_* functions will do nothing (but emit a warning) if the total size of the Hamiltonian would be larger than this.
- model¶
The model which is to be diagonalized.
- Type
MPOmodel
|CouplingModel
- chinfo¶
The nature of the charge (which is the same for all sites).
- Type
- charge_sector¶
If not
None
, we project onto the given charge sector.- Type
None
| charges
- max_size¶
The
build_H_*
functions will do nothing (but emit a warning) if the total size of the Hamiltonian would be larger than this.- Type
- full_H¶
The full Hamiltonian to be diagonalized with legs
'(p0.p1....)', '(p0*,p1*...)'
(in that order).None
if thebuild_H_*
functions haven’t been called yet, or if max_size would have been exceeded.- Type
Array
|None
- E¶
1D array of eigenvalues.
- Type
ndarray |
None
- V¶
Eigenvectors. First leg ‘ps’ are physical legs, the second leg
'ps*'
corresponds to the eigenvalues.- Type
Array
|None
- _labels_p¶
The labels use for the physical legs; just
['p0', 'p1', ...., 'p{L-1}']
.
- _mask¶
Bool mask, which of the indices of the pipe are in the desired charge_sector.
- Type
1D bool ndarray |
None
- classmethod from_H_mpo(H_MPO, *args, **kwargs)[source]¶
Wrapper taking directly an MPO instead of a Model.
- Parameters
H_MPO (
MPO
) – The MPO representing the Hamiltonian.*args – Further keyword arguments as for the
__init__
of the class.**kwargs – Further keyword arguments as for the
__init__
of the class.
- full_diagonalization(*args, **kwargs)[source]¶
Full diagonalization to obtain all eigenvalues and eigenvectors.
Arguments are given to
eigh
.
- groundstate(charge_sector=None)[source]¶
Pick the ground state energy and ground state from
self.V
.- Parameters
charge_sector (None | 1D ndarray) – By default (
None
), consider all charge sectors. Alternatively, give the qtotal which the returned state should have.- Returns
E0 (float) – Ground state energy (possibly in the given sector).
psi0 (
Array
) – Ground state (possibly in the given sector).