RealTimeEvolution

Inheritance Diagram

Inheritance diagram of tenpy.simulations.time_evolution.RealTimeEvolution

Methods

RealTimeEvolution.__init__(options)

RealTimeEvolution.final_measurements()

Do nothing.

RealTimeEvolution.fix_output_filenames()

Determine the output filenames.

RealTimeEvolution.from_saved_checkpoint([...])

Re-initialize a given simulation class from checkpoint results.

RealTimeEvolution.get_backup_filename(...)

Extract the name used for backups of output_filename.

RealTimeEvolution.get_output_filename()

Read out the output_filename from the options.

RealTimeEvolution.get_version_info()

Try to save version info which is necessary to allow reproducability.

RealTimeEvolution.group_sites_for_algorithm()

Coarse-grain the model and state for the algorithm.

RealTimeEvolution.group_split()

Split sites of psi that were grouped in group_sites_for_algorithm().

RealTimeEvolution.init_algorithm(**kwargs)

Initialize the algorithm.

RealTimeEvolution.init_cache()

Initialize the cache from the options.

RealTimeEvolution.init_measurements()

Initialize and prepare measurements.

RealTimeEvolution.init_model()

Initialize a model from the model parameters.

RealTimeEvolution.init_state()

Initialize a tensor network psi.

RealTimeEvolution.make_measurements()

Perform measurements and merge the results into self.results['measurements'].

RealTimeEvolution.perform_measurements()

Emits the measurement_event to call measurement functions and collect results.

RealTimeEvolution.prepare_results_for_save()

Bring the results into a state suitable for saving.

RealTimeEvolution.resume_run()

Resume a simulation that was initialized from a checkpoint.

RealTimeEvolution.resume_run_algorithm()

Resume running the algorithm.

RealTimeEvolution.run()

Run the whole simulation.

RealTimeEvolution.run_algorithm()

Run the algorithm.

RealTimeEvolution.save_at_checkpoint(alg_engine)

Save the intermediate results at the checkpoint of an algorithm.

RealTimeEvolution.save_results([results])

Save the results to an output file.

Class Attributes and Properties

RealTimeEvolution.default_algorithm

name of the default algorithm engine class

RealTimeEvolution.default_measurements

tuples as for Simulation.connect_measurements that get added if the Simulation.use_default_measurements is True.

RealTimeEvolution.logger

class attribute.

RealTimeEvolution.verbose

class tenpy.simulations.time_evolution.RealTimeEvolution(options)[source]

Bases: tenpy.simulations.simulation.Simulation

Perform a real-time evolution on a tensor network state.

Parameters

options (dict-like) – The simulation parameters. Ideally, these options should be enough to fully specify all parameters of a simulation to ensure reproducibility.

Options

config TimeEvolution
option summary

algorithm_class (from Simulation) in Simulation.init_algorithm

Class or name of a subclass of :class:`~tenpy.algorithms.algorithm.Algorith [...]

algorithm_params (from Simulation) in Simulation.init_algorithm

Dictionary with parameters for the algortihm; see the decoumentation of the [...]

cache_params (from Simulation) in GroundStateSearch.init_cache

Dictionary with parameters for the cache, see [...]

cache_threshold_chi (from Simulation) in GroundStateSearch.init_cache

If the `algorithm_params.trunc_params.chi_max` in :attr:`options` is smalle [...]

connect_algorithm_checkpoint (from Simulation) in Simulation.init_algorithm

Functions to connect to the :attr:`~tenpy.algorithms.Algorith.checkpoint` e [...]

connect_measurements (from Simulation) in GroundStateSearch.init_measurements

Functions to connect to the :attr:`measurement_event`. [...]

directory (from Simulation) in Simulation

If not None (default), switch to that directory at the beginning of the sim [...]

final_time

Mandatory. Perform time evolution until ``engine.evolved_time`` reaches thi [...]

group_sites (from Simulation) in GroundStateSearch.group_sites_for_algorithm

How many sites to group. 1 means no grouping.

group_to_NearestNeighborModel (from Simulation) in GroundStateSearch.group_sites_for_algorithm

If True, convert the grouped model to a [...]

initial_state_builder_class (from Simulation) in GroundStateSearch.init_state

Class or name of a subclass of :class:`~tenpy.networks.mps.InitialStateBuil [...]

initial_state_params (from Simulation) in GroundStateSearch.init_state

Dictionary with parameters for building `psi`; see the decoumentation of th [...]

log_params (from Simulation) in Simulation

Log parameters; see :cfg:config:`log`.

measure_initial (from Simulation) in GroundStateSearch.init_measurements

Whether to perform a measurement on the initial state, i.e., before startin [...]

model_class (from Simulation) in GroundStateSearch.init_model

Mandatory. Class or name of a subclass of :class:`~tenpy.models.model.Model`.

model_params (from Simulation) in GroundStateSearch.init_model

Dictionary with parameters for the model; see the documentation of the [...]

output_filename (from Simulation) in GroundStateSearch.get_output_filename

If ``None`` (default), no output is written to files. [...]

output_filename_params (from Simulation) in GroundStateSearch.get_output_filename

Instead of specifying the `output_filename` directly, this dictionary descr [...]

overwrite_output (from Simulation) in GroundStateSearch.fix_output_filenames

Only makes a difference if `skip_if_output_exists` is False and the file ex [...]

random_seed (from Simulation) in Simulation

If not ``None``, initialize the numpy random generator with the given seed.

safe_write (from Simulation) in GroundStateSearch.fix_output_filenames

If True (default), perform a "safe" overwrite of `output_filename` as descr [...]

save_every_x_seconds (from Simulation) in GroundStateSearch.save_at_checkpoint

By default (``None``), this feature is disabled. [...]

save_psi (from Simulation) in GroundStateSearch.init_state

Whether the final :attr:`psi` should be included into the output :attr:`res [...]

sequential (from Simulation) in Simulation

Parameters for running simulations sequentially, see :cfg:config:`sequentia [...]

skip_if_output_exists (from Simulation) in GroundStateSearch.fix_output_filenames

If True, raise :class:`Skip` if the output file already exists.

use_default_measurements (from Simulation) in GroundStateSearch.init_measurements

Each Simulation class defines a list of :attr:`default_measurements` in the [...]

option final_time: float

Mandatory. Perform time evolution until engine.evolved_time reaches this value. Note that we can go (slightly) beyond this time if it is not a multiple of the individual time steps.

run_algorithm()[source]

Run the algorithm.

Calls self.engine.run() and make_measurements().

resume_run_algorithm()[source]

Resume running the algorithm.

Calls self.engine.resume_run().

final_measurements()[source]

Do nothing.

We already performed a set of measurements after the evolution in run_algorithm().

fix_output_filenames()[source]

Determine the output filenames.

This function determines the output_filename and writes a one-line text into that file to indicate that we’re running a simulation generating it. Further, _backup_filename is determined.

Options

option Simulation.skip_if_output_exists: bool

If True, raise Skip if the output file already exists.

option Simulation.overwrite_output: bool

Only makes a difference if skip_if_output_exists is False and the file exists. In that case, with overwrite_output, just save everything under that name again, or with overwrite_output`=False, replace ``filename.ext` with filename_01.ext (and further increasing numbers) until we get a filename that doesn’t exist yet.

option Simulation.safe_write: bool

If True (default), perform a “safe” overwrite of output_filename as described in save_results().

classmethod from_saved_checkpoint(filename=None, checkpoint_results=None, **kwargs)[source]

Re-initialize a given simulation class from checkpoint results.

You should probably call resume_run() after sucessfull initialization.

Instead of calling this directly, consider using resume_from_checkpoint().

Parameters
  • filename (None | str) – The filename of the checkpoint to be loaded. You can either specify the filename or the checkpoint_results.

  • checkpoint_results (None | dict) – Alternatively to filename the results of the simulation so far, i.e. directly the data dicitonary saved at a simulation checkpoint.

  • **kwargs – Further keyword arguments given to the Simulation.__init__.

get_backup_filename(output_filename)[source]

Extract the name used for backups of output_filename.

Parameters

output_filename (pathlib.Path) – The filename where data is saved.

Returns

backup_filename – The filename where to keep a backup while writing files to avoid.

Return type

pathlib.Path

get_output_filename()[source]

Read out the output_filename from the options.

You can easily overwrite this method in subclasses to customize the outputfilename depending on the options passed to the simulations.

Options

option Simulation.output_filename: path_like | None

If None (default), no output is written to files. If a string, this filename is used for output (up to modifications by fix_output_filenames() to avoid overwriting previous results).

option Simulation.output_filename_params: dict

Instead of specifying the output_filename directly, this dictionary describes the parameters that should be included into it. Entries of the dictionary are keyword arguments to output_filename_from_dict() with the simulation parameters (Simulation, or equivalently options) as options.

Returns

output_filename – Filename for output; None disables any writing to files. Relative to Simulation.directory, if specified. The file ending determines the output format.

Return type

str | None

get_version_info()[source]

Try to save version info which is necessary to allow reproducability.

group_sites_for_algorithm()[source]

Coarse-grain the model and state for the algorithm.

Options

option Simulation.group_sites: int

How many sites to group. 1 means no grouping.

option Simulation.group_to_NearestNeighborModel: bool

If True, convert the grouped model to a NearestNeighborModel. Use this if you want to run TEBD with a model that was originally next-nearest neighbor.

group_split()[source]

Split sites of psi that were grouped in group_sites_for_algorithm().

init_algorithm(**kwargs)[source]

Initialize the algorithm.

If results has ‘resume_data’, it is read out, used for initialization and removed from the results.

Parameters

**kwargs – Extra keyword arguments passed on to the Algorithm.__init__(), for example the resume_data when calling resume_run.

Options

option Simulation.algorithm_class: str | class

Class or name of a subclass of Algorithm. The engine of the algorithm to be run.

option Simulation.algorithm_params: dict

Dictionary with parameters for the algortihm; see the decoumentation of the algorithm_class.

option Simulation.connect_algorithm_checkpoint: list of tuple

Functions to connect to the checkpoint event of the algorithm. Each tuple can be of length 2 to 4, with entries (module, function, kwargs, priority), the last two optionally. The mandatory module and function specify a callback measurement function. kwargs can specify extra keyword-arguments for the function, priority allows to tune the order in which the measurement functions get called. See connect_by_name() for more details.

init_cache()[source]

Initialize the cache from the options.

This method is only called automatically when the simulation is used in a with ... statement. This is the case if you use run_simulation(), etc.

Options

option Simulation.cache_threshold_chi: int

If the algorithm_params.trunc_params.chi_max in options is smaller than this threshold, do not initialize a (non-trivial) cache.

option Simulation.cache_params: dict

Dictionary with parameters for the cache, see open().

init_measurements()[source]

Initialize and prepare measurements.

Options

option Simulation.connect_measurements: list of tuple

Functions to connect to the measurement_event. Each tuple can be of length 2 to 4, with entries (module, function, kwargs, priority), the last two optionally. The mandatory module and function specify a callback measurement function. kwargs can specify extra keyword-arguments for the function, priority allows to tune the order in which the measurement functions get called. See connect_by_name() for more details.

option Simulation.use_default_measurements: bool

Each Simulation class defines a list of default_measurements in the same format as Simulation.connect_measurements. This flag allows to explicitly disable them.

option Simulation.measure_initial: bool

Whether to perform a measurement on the initial state, i.e., before starting the algorithm run.

init_model()[source]

Initialize a model from the model parameters.

Skips initialization if model is already set.

Options

option Simulation.model_class: str | class

Mandatory. Class or name of a subclass of Model.

option Simulation.model_params: dict

Dictionary with parameters for the model; see the documentation of the corresponding model_class.

init_state()[source]

Initialize a tensor network psi.

Skips initialization if psi is already set.

Options

option Simulation.initial_state_builder_class: str | class

Class or name of a subclass of InitialStateBuilder. Used to initialize psi according to the initial_state_params.

option Simulation.initial_state_params: dict

Dictionary with parameters for building psi; see the decoumentation of the initial_state_builder_class, e.g. InitialStateBuilder.

option Simulation.save_psi: bool

Whether the final psi should be included into the output results.

make_measurements()[source]

Perform measurements and merge the results into self.results['measurements'].

perform_measurements()[source]

Emits the measurement_event to call measurement functions and collect results.

Returns

results – The results from calling the measurement functions.

Return type

dict

prepare_results_for_save()[source]

Bring the results into a state suitable for saving.

For example, this can be used to convert lists to numpy arrays, to add more meta-data, or to clean up unnecessarily large entries.

Options

Cfg:configoptions :

Simulation

save_resume_databool

If True, include data from get_resume_data() into the output as resume_data.

Returns

results – A copy of results containing everything to be saved. Measurement results are converted into a numpy array (if possible).

Return type

dict

resume_run()[source]

Resume a simulation that was initialized from a checkpoint.

Returns

results – The results as returned by prepare_results_for_save().

Return type

dict

run()[source]

Run the whole simulation.

Returns

results – The results as returned by prepare_results_for_save().

Return type

dict

save_at_checkpoint(alg_engine)[source]

Save the intermediate results at the checkpoint of an algorithm.

Parameters

alg_engine (Algorithm) – The engine of the algorithm. Not used in this function, mostly there for compatibility with the tenpy.algorithms.Algorithm.checkpoint event.

Options

option Simulation.save_every_x_seconds: float | None

By default (None), this feature is disabled. If given, save the results obtained so far at each tenpy.algorithm.Algorithm.checkpoint when at least save_every_x_seconds seconds evolved since the last save (or since starting the algorithm). To avoid unnecessary, slow disk input/output, the value will be increased if saving takes longer than 10% of save_every_x_seconds. Use 0. to force saving at each checkpoint.

save_results(results=None)[source]

Save the results to an output file.

Performs a “safe” overwrite of output_filename by first moving the old file to _backup_filename, then writing the new file, and finally removing the backup.

Parameters

results (dict | None) – The results to be safed. If not specified, call prepare_results_for_save() to allow last-minute adjustments to the saved results.