Engine¶
full name: tenpy.algorithms.tdvp.Engine
parent module:
tenpy.algorithms.tdvp
type: class
Inheritance Diagram
Methods
|
|
|
Return necessary data to resume a |
Resume a run that was interrupted. |
|
(Real-)time evolution with TDVP. |
|
|
Run the TDVP algorithm with the one site algorithm. |
|
Run the TDVP algorithm with two sites update. |
|
Relabel the svd. |
Performs the sweep left->right of the second order TDVP scheme with one site update. |
|
Performs the sweep left->right of the second order TDVP scheme with two sites update. |
|
Performs the sweep right->left of the second order TDVP scheme with one site update. |
|
Performs the sweep left->right of the second order TDVP scheme with two sites update. |
|
|
Performs the SVD from left to right. |
|
Performs the SVD from right to left. |
|
Update with the zero site Hamiltonian (update of the singular value) |
|
Update with the one site Hamiltonian. |
|
Update with the two sites Hamiltonian. |
Class Attributes and Properties
|
|
|
whether the algorithm supports time-dependent H |
|
- class tenpy.algorithms.tdvp.Engine(psi, model, options, **kwargs)[source]¶
Bases:
tenpy.algorithms.tdvp.TDVPEngine
Deprecated old name of
TDVPEngine
.- get_resume_data(sequential_simulations=False)[source]¶
Return necessary data to resume a
run()
interrupted at a checkpoint.At a
checkpoint
, you can savepsi
,model
andoptions
along with the data returned by this function. When the simulation aborts, you can resume it using this saved data with:eng = AlgorithmClass(psi, model, options, resume_data=resume_data) eng.resume_run()
An algorithm which doesn’t support this should override resume_run to raise an Error.
- Parameters
sequential_simulations (bool) – If True, return only the data for re-initializing a sequential simulation run, where we “adiabatically” follow the evolution of a ground state (for variational algorithms), or do series of quenches (for time evolution algorithms); see
run_seq_simulations()
.- Returns
resume_data – Dictionary with necessary data (apart from copies of psi, model, options) that allows to continue the simulation from where we are now. It might contain an explicit copy of psi.
- Return type
- resume_run()[source]¶
Resume a run that was interrupted.
In case we saved an intermediate result at a
checkpoint
, this function allows to resume therun()
of the algorithm (after re-initialization with the resume_data). Since most algorithms just have a while loop with break conditions, the default behaviour implemented here is to just callrun()
.
- run_one_site(N_steps=None)[source]¶
Run the TDVP algorithm with the one site algorithm.
Warning
Be aware that the bond dimension will not increase!
- Parameters
N_steps (integer. Number of steps) –
- run_two_sites(N_steps=None)[source]¶
Run the TDVP algorithm with two sites update.
The bond dimension will increase. Truncation happens at every step of the sweep, according to the parameters set in trunc_params.
- Parameters
N_steps (integer. Number of steps) –
- set_anonymous_svd(U, new_label)[source]¶
Relabel the svd.
- Parameters
U (
tenpy.linalg.np_conserved.Array
) – the tensor which lacks a leg_label
- sweep_left_right()[source]¶
Performs the sweep left->right of the second order TDVP scheme with one site update.
Evolve from 0.5*dt.
- sweep_left_right_two()[source]¶
Performs the sweep left->right of the second order TDVP scheme with two sites update.
Evolve from 0.5*dt
- sweep_right_left()[source]¶
Performs the sweep right->left of the second order TDVP scheme with one site update.
Evolve from 0.5*dt
- sweep_right_left_two()[source]¶
Performs the sweep left->right of the second order TDVP scheme with two sites update.
Evolve from 0.5*dt
- theta_svd_left_right(theta)[source]¶
Performs the SVD from left to right.
- Parameters
theta (
tenpy.linalg.np_conserved.Array
) – the theta tensor on which the SVD is applied
- theta_svd_right_left(theta)[source]¶
Performs the SVD from right to left.
- Parameters
theta (
tenpy.linalg.np_conserved.Array
,) – The theta tensor on which the SVD is applied
- update_s_h0(s, H, dt)[source]¶
Update with the zero site Hamiltonian (update of the singular value)
- Parameters
s (
tenpy.linalg.np_conserved.Array
) – representing the singular value matrix which is updatedH (H0_mixed) – zero site Hamiltonian that we need to apply on the singular value matrix
dt (complex number) – time step of the evolution
- update_theta_h2(Lp, Rp, theta, W0, W1, dt)[source]¶
Update with the two sites Hamiltonian.
- Parameters
Lp (
tenpy.linalg.np_conserved.Array
) – tensor representing the left environmentRp (
tenpy.linalg.np_conserved.Array
) – tensor representing the right environmenttheta (
tenpy.linalg.np_conserved.Array
) – the theta tensor which needs to be updatedW (
tenpy.linalg.np_conserved.Array
) – MPO which is applied to the ‘p0’ leg of thetaW1 (
tenpy.linalg.np_conserved.Array
) – MPO which is applied to the ‘p1’ leg of theta