Algorithm

Inheritance Diagram

Inheritance diagram of tenpy.algorithms.algorithm.Algorithm

Methods

Algorithm.__init__(psi, model, options, *[, …])

Initialize self.

Algorithm.get_resume_data([…])

Return necessary data to resume a run() interrupted at a checkpoint.

Algorithm.resume_run()

Resume a run that was interrupted.

Algorithm.run()

Actually run the algorithm.

Class Attributes and Properties

Algorithm.verbose

class tenpy.algorithms.algorithm.Algorithm(psi, model, options, *, resume_data=None)[source]

Bases: object

Base class and common interface for a tensor-network based algorithm in TeNPy.

Parameters
  • psi – Tensor network to be updated by the algorithm.

  • model (Model | None) – Model with the representation of the hamiltonian suitable for the algorithm. None for algorithms which don’t require a model.

  • options (dict-like) – Optional parameters for the algorithm. In the online documentation, you can find the correct set of options in the Config Index.

  • resume_data (None | dict) – Can only be passed as keyword argument. By default (None) ignored. If a dict, it should contain the data returned by get_resume_data() when intending to continue/resume an interrupted run.

Options

config Algorithm
option summary

trunc_params

Truncation parameters as described in :cfg:config:`truncation`.

option trunc_params: dict

Truncation parameters as described in truncation.

psi

Tensor network to be updated by the algorithm.

model

Model with the representation of the hamiltonian suitable for the algorithm.

Type

Model

options

Optional parameters.

Type

Config

checkpoint

An event that the algorithm emits at regular intervalls when it is in a “well defined” step, where an intermediate status report, measurements and/or interrupting and saving to disk for later resume make sense.

Type

EventHandler

run()[source]

Actually run the algorithm.

Needs to be implemented in subclasses.

resume_run()[source]

Resume a run that was interrupted.

In case we saved an intermediate result at a checkpoint, this function allows to resume the run() 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 call run().

get_resume_data(sequential_simulations=False)[source]

Return necessary data to resume a run() interrupted at a checkpoint.

At a checkpoint, you can save psi, model and options 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.

Return type

dict