# NormDisentangler¶

Inheritance Diagram

Methods

 NormDisentangler.__init__(parent) Initialize self. NormDisentangler.iter(theta, U, trunc_params) Given theta and U, find U2 maximizing ).
class tenpy.algorithms.purification_tebd.NormDisentangler(parent)[source]

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

Reads of the following TEBD_params 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>.