run, model, options, **kwargs)[source]

Run the DMRG algorithm to find the ground state of the given model.

  • psi (MPS) – Initial guess for the ground state, which is to be optimized in-place.

  • model (MPOModel) – The model representing the Hamiltonian for which we want to find the ground state.

  • options (dict) – Further optional parameters as described in DMRGEngine.

  • **kwargs – Further keyword arguments for the algorithm classes TwoSiteDMRGEngine or SingleSiteDMRGEngine.


info – A dictionary with keys 'E', 'shelve', 'bond_statistics', 'sweep_statistics'

Return type



config DMRG
option summary


The number of active sites to be used by DMRG. [...]

chi_list (from DMRGEngine) in DMRGEngine.reset_stats

A dictionary to gradually increase the `chi_max` parameter of [...]

chi_list_reactivates_mixer (from DMRGEngine) in DMRGEngine.sweep

If True, the mixer is reset/reactivated each time the bond dimension growth [...]

combine (from Sweep) in Sweep

Whether to combine legs into pipes. This combines the virtual and [...]

diag_method (from DMRGEngine) in

Method to be used for diagonalzation, default ``'default'``. [...]

E_tol_max (from DMRGEngine) in

See `E_tol_to_trunc`

E_tol_min (from DMRGEngine) in

See `E_tol_to_trunc`

E_tol_to_trunc (from DMRGEngine) in

It's reasonable to choose the Lanczos convergence criteria [...]

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 :cfg:config:`Lanczos`.

max_E_err (from DMRGEngine) in

Convergence if the change of the energy in each step [...]

max_hours (from DMRGEngine) in

If the DMRG took longer (measured in wall-clock time), [...]

max_N_for_ED (from DMRGEngine) in DMRGEngine.diag

Maximum matrix dimension of the effective hamiltonian [...]

max_S_err (from DMRGEngine) in

Convergence if the relative change of the entropy in each step [...]

max_sweeps (from DMRGEngine) in

Maximum number of sweeps to be performed.

min_sweeps (from DMRGEngine) in

Minimum number of sweeps to be performed. [...]

mixer (from DMRGEngine) in DMRGEngine.mixer_activate

Chooses the :class:`Mixer` to be used. [...]

mixer_params (from DMRGEngine) in DMRGEngine.mixer_activate

Mixer parameters as described in :cfg:config:`Mixer`.

N_sweeps_check (from DMRGEngine) in

Number of sweeps to perform between checking convergence [...]

norm_tol (from DMRGEngine) in

After the DMRG run, update the environment with at most [...]

norm_tol_final (from DMRGEngine) in

After performing `norm_tol_iter`*`update_env` sweeps, if [...]

norm_tol_iter (from DMRGEngine) in

Perform at most `norm_tol_iter`*`update_env` sweeps to [...]

orthogonal_to (from Sweep) in DMRGEngine.init_env

Deprecated in favor of the `orthogonal_to` function argument (forwarded fro [...]

P_tol_max (from DMRGEngine) in

See `P_tol_to_trunc`

P_tol_min (from DMRGEngine) in

See `P_tol_to_trunc`

P_tol_to_trunc (from DMRGEngine) in

It's reasonable to choose the Lanczos convergence criteria [...]

start_env (from Sweep) in DMRGEngine.init_env

Number of sweeps to be performed without optimization to update the environment.

sweep_0 (from DMRGEngine) in DMRGEngine.reset_stats

The number of sweeps already performed. (Useful for re-start).

trunc_params (from Algorithm) in Algorithm

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

update_env (from DMRGEngine) in

Number of sweeps without bond optimizaiton to update the [...]

option active_sites: 1 | 2

The number of active sites to be used by DMRG. If set to 1, SingleSiteDMRGEngine is used. If set to 2, DMRG is handled by TwoSiteDMRGEngine.