ExpMPOEvolution¶
full name: tenpy.algorithms.mpo_evolution.ExpMPOEvolution
parent module:
tenpy.algorithms.mpo_evolutiontype: class
Inheritance Diagram

Methods
|
Initialize self. |
|
Calculate |
Run the real-time evolution with the WI/WII approximation. |
|
|
Time evolve by N_steps steps. |
-
class
tenpy.algorithms.mpo_evolution.ExpMPOEvolution(psi, model, options)[source]¶ Bases:
objectTime evolution of an MPS using the W_I or W_II approximation for
exp(H dt).[zaletel2015] described a method to obtain MPO approximations \(W_I\) and \(W_{II}\) for the exponential
U = exp(i H dt)of an MPO H, implemented inmake_U_I()andmake_U_II(). This class uses it for real-time evolution.- Parameters
psi (
MPS) – Initial state to be time evolved. Modified in place.model (
MPOModel) – The model representing the Hamiltonian which we want to time evolve psi with.options (dict) – Further optional parameters are described in
ExpMPOEvolution.
Options
-
config
ExpMPOEvolution¶ option summary approximation in ExpMPOEvolution.run
Specifies which approximation is applied. The default 'II' is more precise. [...]
Whether to combine legs into pipes. This combines the virtual and [...]
compression_method (from ApplyMPO) in MPO.apply
Mandatory. [...]
dt in ExpMPOEvolution.run
Time step.
init_env_data (from Sweep) in DMRGEngine.init_env
Dictionary as returned by ``self.env.get_initialization_data()`` from [...]
lanczos_params (from Sweep) in Sweep
Lanczos parameters as described in [...]
m_temp (from ZipUpApplyMPO) in MPO.apply_zipup
bond dimension will be truncated to `m_temp * chi_max`
N_steps in ExpMPOEvolution.run
Number of time steps `dt` to evolve
N_sweeps (from VariationalCompression) in VariationalCompression
Number of sweeps to perform.
order in ExpMPOEvolution.run
Order of the algorithm. The total error scales as ``O(t*dt^order)``. [...]
orthogonal_to (from Sweep) in DMRGEngine.init_env
List of other matrix product states to orthogonalize against. [...]
Number of sweeps to be performed without optimization to update [...]
Initial value for :attr:`evolved_time`.
Initial truncation error for :attr:`trunc_err`
Number of sweeps that have already been performed.
Truncation parameters as described in :cfg:config:`truncate`.
trunc_weight (from ZipUpApplyMPO) in MPO.apply_zipup
reduces cut for Schmidt values to `trunc_weight * svd_min`
Level of verbosity (i.e. how much status information to print); higher=more [...]
-
option
trunc_params: dict¶ Truncation parameters as described in
truncate.
-
option
start_time: float¶ Initial value for
evolved_time.
-
option
start_trunc_err:TruncationError¶ Initial truncation error for
trunc_err
-
option
-
evolved_time¶ Indicating how long psi has been evolved,
psi = exp(-i * evolved_time * H) psi(t=0).- Type
-
trunc_err¶ The error of the represented state which is introduced due to the truncation during the sequence of update steps
- Type
-
_U¶ Exponentiated H_MPO;
- Type
list of
MPO
-
_U_param¶ A dictionary containing the information of the latest created _U. We won’t recalculate _U if those parameters didn’t change.
- Type
-
run()[source]¶ Run the real-time evolution with the WI/WII approximation.
Options
-
option
ExpMPOEvolution.dt: float¶ Time step.
-
option
ExpMPOEvolution.N_steps: int¶ Number of time steps dt to evolve
-
option
ExpMPOEvolution.approximation: 'I' or 'II'¶ Specifies which approximation is applied. The default ‘II’ is more precise. See [zaletel2015] and
make_U()for more details.
-
option
ExpMPOEvolution.order: int¶ Order of the algorithm. The total error scales as
O(t*dt^order). Implemented are order = 1 and order = 2.
-
option
-
calc_U(dt, order=2, approximation='II')[source]¶ Calculate
self._U_MPOThis function calculates the approximation
U ~= exp(-i dt_ H)withdt_ = dt` for ``order=1, ordt_ = (1 - 1j)/2 dtanddt_ = (1 + 1j)/2 dtfororder=2.