Engine

Inheritance Diagram

Inheritance diagram of tenpy.algorithms.tdvp.Engine

Methods

Engine.__init__(psi, model, TDVP_params[, …])

Initialize self.

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.

Engine.sweep_left_right()

Performs the sweep left->right of the second order TDVP scheme with one site update.

Engine.sweep_left_right_two()

Performs the sweep left->right of the second order TDVP scheme with two sites update.

Engine.sweep_right_left()

Performs the sweep right->left of the second order TDVP scheme with one site update.

Engine.sweep_right_left_two()

Performs the sweep left->right of the second order TDVP scheme with two sites update.

Engine.theta_svd_left_right(theta)

Performs the SVD from left to right.

Engine.theta_svd_right_left(theta)

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 tenpy.algorithms.tdvp.Engine(psi, model, TDVP_params, environment=None)[source]

Bases: object

Time dependant variational principle ‘Engine’.

You can call run_one_site() for single-site TDVP, or run_two_sites() for two-site TDVP.

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.

  • TDVP_params (dict) –

    Further optional parameters as described in the following table. Use verbose>0 to print the used parameters during runtime.

    key

    type

    description

    start_time

    float

    Initial value for evolved_time

    dt

    float

    Time step of the Trotter error

    trunc_params

    dict

    Truncation parameters as described in truncate()

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

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

TDVP_params

Optional parameters, see run() and run_GS() for more details.

Type

dict

environment

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

Type

MPOEnvironment

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
  • Lp (Array) – tensor representing the left environment

  • Rp (Array) – tensor representing the right environment

  • theta (Array) – the theta tensor which needs to be updated

  • W (Array) – MPO which is applied to the ‘p’ leg of theta

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
  • s (tenpy.linalg.np_conserved.Array) – representing the singular value matrix which is updated

  • H (H0_mixed) – zero site Hamiltonian that we need to apply on the singular value matrix

  • dt (complex number) – time step of the evolution