TwoSiteMixer¶
full name: tenpy.algorithms.dmrg.TwoSiteMixer
parent module:
tenpy.algorithms.dmrgtype: class
Inheritance Diagram

Methods
|
Initialize self. |
|
Mix extra terms to theta and perform an SVD. |
|
Expand the MPS subspace, to allow the bond dimension to increase. |
|
Update the amplitude, possibly disable the mixer. |
-
class
tenpy.algorithms.dmrg.TwoSiteMixer(options)[source]¶ Bases:
tenpy.algorithms.dmrg.SingleSiteMixerMixer for two-site DMRG.
This is the two-site version of the mixer described in [hubig2015]. Equivalent to the
DensityMatrixMixer, but never construct the full density matrix.-
perturb_svd(engine, theta, i0, move_right)[source]¶ Mix extra terms to theta and perform an SVD.
- Parameters
- Returns
U (
Array) – Left-canonical part of theta. Labels'(vL.p0)', 'vR'.S (1D ndarray | 2D
Array) – Without mixer just the singluar values of the array; with mixer it might be a general matrix; see comment above.VH (
Array) – Right-canonical part of theta. Labels'vL', '(vR.p1)'.err (
TruncationError) – The truncation error introduced.
-
subspace_expand(engine, theta, i0, move_right, next_B)[source]¶ Expand the MPS subspace, to allow the bond dimension to increase.
This is the subspace expansion following [hubig2015].
- Parameters
engine (
SingleSiteDMRGEngine|TwoSiteDMRGEngine) – ‘Engine’ for the DMRG algorithmtheta (
Array) – Optimized guess for the ground state of the effective local Hamiltonian.i0 (int) – Site index at which the local update has taken place.
move_right (bool) – Whether the next i0 of the sweep will be right or left of the current one.
next_B (
Array) – The subspace expansion requires to change the tensor on the next site as well. If move_right, it should correspond toengine.psi.get_B(i0+1, form='B'). If not move_right, it should correspond toengine.psi.get_B(i0-1, form='A').
- Returns
theta – Local MPS tensor at site i0 after subspace expansion.
next_B – MPS tensor at site i0+1 or i0-1 (depending on sweep direction) after subspace expansion.
-