Corner Transfer Matrix Algorithm¶
- ctm.generic.ctmrg.ctm_MOVE(direction, state, env, ctm_args=<config.CTMARGS object>, global_args=<config.GLOBALARGS object>, verbosity=0, diagnostics=None)[source]¶
- Parameters:
direction (tuple(int,int)) – one of Up=(0,-1), Left=(-1,0), Down=(0,1), Right=(1,0)
state (IPEPS) – wavefunction
env (ENV) – environment
ctm_args (CTMARGS) – CTM algorithm configuration
global_args (GLOBALARGS) – global configuration
Executes a single directional CTM move in one of the directions. First, build projectors for each non-equivalent bond (to be truncated) in the unit cell of iPEPS. Second, construct enlarged environment tensors and then truncate them to obtain updated environment tensors.
- ctm.generic.ctmrg.run(state, env, conv_check=None, ctm_args=<config.CTMARGS object>, global_args=<config.GLOBALARGS object>)[source]¶
- Parameters:
state (IPEPS) – wavefunction
env (ENV) – environment
conv_check (function(IPEPS,ENV,list[float],CTMARGS)->bool) – function which determines the convergence of CTM algorithm. If
None
, the algorithm performsctm_args.ctm_max_iter
iterations.ctm_args (CTMARGS) – CTM algorithm configuration
global_args (GLOBALARGS) – global configuration
Executes directional CTM algorithm for generic iPEPS starting from the intial environment
env
.To establish the convergence of CTM before the maximal number of iterations is reached a
conv_check
function is invoked. Its expected signature isconv_check(IPEPS,ENV,Object,CTMARGS)
whereObject
is an arbitary argument. For example it can be a list or dict used for storing CTM data from previous steps to check convergence.