NormDisentangler

Inheritance Diagram

Inheritance diagram of tenpy.algorithms.disentangler.NormDisentangler

Methods

NormDisentangler.__init__(parent)

NormDisentangler.iter(theta, U, trunc_params)

Given theta and U, find U2 maximizing <theta|U2 truncate(U |theta>).

class tenpy.algorithms.disentangler.NormDisentangler(parent)[source]

Bases: Disentangler

Find optimal U for which the truncation of U|theta> has maximal overlap with U|theta>.

Reads of the following options as break criteria for the iteration:

key

type

description

disent_eps

float

Break, if the change in the Renyi entropy S(n=2) per iteration is smaller than this value.

disent_max_iter

float

Maximum number of iterations to perform.

disent_trunc_par

dict

Truncation parameters; defaults to trunc_params.

disent_norm_chi

iterable

To find the optimal U it can help to increase chi_max of disent_trunc_par slowly, the default is range(1, disent_trunc_par['chi_max']+1). However, that’s very slow for large chi_max, so we allow to change it. (In fact, it makes the disentangler scale worse than the rest of TEBD.)

Arguments and return values are the same as for disentangle().

iter(theta, U, trunc_params)[source]

Given theta and U, find U2 maximizing <theta|U2 truncate(U |theta>).

Finds unitary U2 which maximizes Tr(U

Parameters:
  • theta (Array) – Two-site wave function to be disentangled.

  • U (Array) – The previous guess for U; with legs 'q0', 'q1', 'q0*', 'q1*'.

  • trunc_params (dict) – The truncation parameters (similar as self.trunc_params) used to truncate U|theta>.

Returns:

  • trunc_err (TruncationError) – Norm error discarded during the truncation of U|theta>.

  • new_U (Array) – Unitary with legs 'q0', 'q1', 'q0*', 'q1*'. Chosen such that new_U|theta> has maximal overlap with the truncated U|theta>.