TimeDependentExpMPOEvolution¶
full name: tenpy.algorithms.mpo_evolution.TimeDependentExpMPOEvolution
parent module:
tenpy.algorithms.mpo_evolution
type: class
Inheritance Diagram
Methods
|
|
|
Calculate |
Return necessary data to resume a |
|
Re-initialize a new model at current time. |
|
Resume a run that was interrupted. |
|
Run the real-time evolution with the W_I/W_II approximation. |
|
|
Time evolve by N_steps steps. |
Class Attributes and Properties
|
whether the algorithm supports time-dependent H |
|
- class tenpy.algorithms.mpo_evolution.TimeDependentExpMPOEvolution(psi, model, options, **kwargs)[source]¶
Bases:
tenpy.algorithms.mpo_evolution.ExpMPOEvolution
Variant of
ExpMPOEvolution
that can handle time-dependent hamiltonians.As of now, it only supports first
ExpMPOEvolution.order
with a very basic implementation, that just reinitializes the model after each time evolution steps with an updated model parameter time set toevolved_time
. The model class should read that parameter.Todo
This is still under development and lacks rigorous tests.
- update(N_steps)[source]¶
Time evolve by N_steps steps.
- Parameters
N_steps (int) – The number of time steps psi is evolved by.
- Returns
trunc_err – Truncation error induced during the update.
- Return type
- calc_U(dt, order, approximation)[source]¶
Calculate
self._U_MPO
.This function calculates the approximation
U ~= exp(-i dt_ H)
withdt_ = dt` for ``order=1
, ordt_ = (1 - 1j)/2 dt
anddt_ = (1 + 1j)/2 dt
fororder=2
.
- reinit_model()[source]¶
Re-initialize a new model at current time.
- Returns
New instance of the model initialized at
model_params['time'] = self.evolved_time
.- Return type
model
- 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()
.