# Engine¶

Inheritance Diagram

Methods

 Engine.__init__(psi, model, options[, …]) Initialize self. (Real-)time evolution with TDVP. Engine.run_one_site([N_steps]) Run the TDVP algorithm with the one site algorithm. Engine.run_two_sites([N_steps]) Run the TDVP algorithm with two sites update. Engine.set_anonymous_svd(U, new_label) 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. Engine.update_s_h0(s, H, dt) Update with the zero site Hamiltonian (update of the singular value) Engine.update_theta_h1(Lp, Rp, theta, W, dt) Update with the one site Hamiltonian. Engine.update_theta_h2(Lp, Rp, theta, W0, W1, dt) Update with the two sites Hamiltonian.

Class Attributes and Properties

 Engine.TDVP_params
class tenpy.algorithms.tdvp.Engine(psi, model, options, environment=None)[source]

Bases: object

Time dependent variational principle ‘Engine’.

Deprecated since version 0.6.0: Renamed parameter/attribute TDVP_params to options.

Parameters
• psi (MPS) – Initial state to be time evolved. Modified in place.

• model (MPOModel) – The model representing the Hamiltonian for which we want to find the ground state.

• options (dict) – Further optional parameters as described in the following table. Use verbose>0 to print the used parameters during runtime.

• environment (:class:'~tenpy.networks.mpo.MPOEnvironment | None) – Initial environment. If None (default), it will be calculated at the beginning.

Options

config TDVP
option summary

active_sites

The number of active sites to be used for the time evolution. [...]

dt

Time step of the Trotter error

Lanczos

Lanczos options as described in :cfg:config:Lanczos.

N_steps

Number of time steps dt to evolve.

start_time

Initial value for :attr:evolved_time

trunc_params

Truncation parameters as described in :func:~tenpy.algorithms.truncation.t [...]

verbose (from Config) in Config

How much to print what's being done; higher means print more. [...]

option active_sites

The number of active sites to be used for the time evolution. If set to 1, run_one_site() is used. The bond dimension will not increase! If set to 2, run_two_sites() is used.

option start_time: float

Initial value for evolved_time

option dt: float

Time step of the Trotter error

option N_steps: int

Number of time steps dt to evolve.

option trunc_params: dict

Truncation parameters as described in truncate()

option Lanczos: dict

Lanczos options as described in Lanczos.

options

Optional parameters.

Type

dict

verbose

Level of verbosity (i.e. how much status information to print); higher=more output.

Type

int

evolved_time

Indicating how long psi has been evolved, psi = exp(-i * evolved_time * H) psi(t=0).

Type

float | complex

psi

The MPS, time evolved in-place.

Type

MPS

environment

The environment, storing the LP and RP to avoid recalculations.

Type

MPOEnvironment

lanczos_options

Options passed on to LanczosEvolution.

Type

Config

run()[source]

(Real-)time evolution with TDVP.

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) –

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

update_theta_h1(Lp, Rp, theta, W, dt)[source]

Update with the one site Hamiltonian.

Parameters
update_theta_h2(Lp, Rp, theta, W0, W1, dt)[source]

Update with the two sites Hamiltonian.

Parameters
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

set_anonymous_svd(U, new_label)[source]

Relabel the svd.

Parameters

U (tenpy.linalg.np_conserved.Array) – the tensor which lacks a leg_label

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