TwoSiteH¶
full name: tenpy.algorithms.mps_sweeps.TwoSiteH
parent module:
tenpy.algorithms.mps_sweeps
type: class
Inheritance Diagram
Methods

Initialize self. 
Combine LP and RP with W to form LHeff and RHeff. 


Combine the legs of theta, such that fit to how we combined the legs of self. 

Apply the effective Hamiltonian to theta. 

Apply self to theta, and orthogonalize against self.theta_ortho. 
Contract self to a matrix. 
Class Attributes and Properties

class
tenpy.algorithms.mps_sweeps.
TwoSiteH
(env, i0, combine=False, move_right=True, ortho_to_envs=[])[source]¶ Bases:
tenpy.algorithms.mps_sweeps.EffectiveH
Class defining the twosite effective Hamiltonian for Lanczos.
The effective twosite Hamiltonian looks like this:
 . .       LPW0W1RP       . .
If combine is True, we define LHeff and RHeff, which are the contractions of LP with W0, and RP with W1, respectively.
 Parameters
env (
MPOEnvironment
) – Environment for contraction<psiHpsi>
.i0 (int) – Index of the active site if length=1, or of the leftmost active site if length>1.
combine (bool) – Whether to combine legs into pipes. This combines the virtual and physical leg for the left site (when moving right) or right side (when moving left) into pipes. This reduces the overhead of calculating charge combinations in the contractions, but one
matvec()
is formally more expensive, \(O(2 d^3 \chi^3 D)\).move_right (bool) – Whether the the sweep is moving right or left for the next update.

combine
¶ Whether to combine legs into pipes. This combines the virtual and physical leg for the left site and right site into pipes. This reduces the overhead of calculating charge combinations in the contractions, but one
matvec()
is formally more expensive, \(O(2 d^3 \chi^3 D)\). Type

acts_on
¶ Labels of the state on which self acts. NB: class attribute. Overwritten by normal attribute, if combine.
 Type
list of str

LHeff
¶ Left part of the effective Hamiltonian. Labels
'(vR*.p0)', 'wR', '(vR.p0*)'
for bra, MPO, ket. Type

RHeff
¶ Right part of the effective Hamiltonian. Labels
'(p1*.vL)', 'wL', '(p1.vL*)'
for ket, MPO, bra. Type

LP, W0, W1, RP
Tensors making up the network of self.
 Type

combine_Heff
()[source]¶ Combine LP and RP with W to form LHeff and RHeff.
Combine LP with W0 and RP with W1 to get the effective parts of the Hamiltonian with piped legs.

combine_theta
(theta)[source]¶ Combine the legs of theta, such that fit to how we combined the legs of self.

matvec_theta_ortho
(theta)[source]¶ Apply self to theta, and orthogonalize against self.theta_ortho. __ We implement this by effectively replacing
H > P H P
with the projectorP = 1  sum_o o> <o
projecting out the states fromtheta_ortho
.Parameter and return value as for
matvec()
(which this function replaces, if the class was initialized with nonempty ortho_to_envs.)