Corner Transfer Matrix Algorithm

ctm.one_site_c4v.ctmrg_c4v.ctm_MOVE_dl(a, env, f_c2x2_decomp, ctm_args=<config.CTMARGS object>, global_args=<config.GLOBALARGS object>)[source]
Parameters
  • a (torch.Tensor) – on-site C4v symmetric tensor

  • env (ENV_C4V) – C4v symmetric environment

  • f_c2x2_decomp (function(torch.Tensor, int)->torch.Tensor, torch.Tensor) – function performing the truncated spectral decomposition (eigenvalue/svd) of enlarged corner. The f_c2x2_decomp returns a tuple composed of leading chi spectral values and projector on leading chi spectral values.

  • ctm_args (CTMARGS) – CTM algorithm configuration

  • global_args (GLOBALARGS) – global configuration

Executes a single step of C4v symmetric CTM algorithm for 1-site C4v symmetric iPEPS. This variant of CTM step does explicitly build double-layer on-site tensor. Hence, the leading cost in memory usage with bond dimension D is \(O(D^8)\).

ctm.one_site_c4v.ctmrg_c4v.ctm_MOVE_sl(a, env, f_c2x2_decomp, ctm_args=<config.CTMARGS object>, global_args=<config.GLOBALARGS object>, past_steps_data=None)[source]
Parameters
  • a (torch.Tensor) – on-site C4v symmetric tensor

  • env (ENV_C4V) – C4v symmetric environment

  • f_c2x2_decomp (function(torch.Tensor, int)->torch.Tensor, torch.Tensor) – function performing the truncated spectral decomposition (eigenvalue/svd) of enlarged corner. The f_c2x2_decomp returns a tuple composed of leading chi spectral values and projector on leading chi spectral values.

  • ctm_args (CTMARGS) – CTM algorithm configuration

  • global_args (GLOBALARGS) – global configuration

  • past_steps_data – dictionary used for recording diagnostic information during CTM

Executes a single step of C4v symmetric CTM algorithm for 1-site C4v symmetric iPEPS. This variant of CTM step does not explicitly build double-layer on-site tensor.

ctm.one_site_c4v.ctmrg_c4v.run(state, env, conv_check=None, ctm_args=<config.CTMARGS object>, global_args=<config.GLOBALARGS object>)[source]
Parameters
  • state (IPEPS_C4V) – wavefunction

  • env (ENV_C4V) – initial C4v symmetric environment

  • conv_check (function(IPEPS_C4V,ENV_C4V,Object,CTMARGS)->bool) – function which determines the convergence of CTM algorithm. If None, the algorithm performs ctm_args.ctm_max_iter iterations.

  • ctm_args (CTMARGS) – CTM algorithm configuration

  • global_args (GLOBALARGS) – global configuration

Executes specialized CTM algorithm for 1-site C4v symmetric iPEPS starting from the intial environment env. The is a single-layer version, which avoids explicitly building double-layer on-site tensor.

To establish the convergence of CTM before the maximal number of iterations is reached a conv_check function is invoked. Its expected signature is conv_check(IPEPS_C4V,ENV_C4V,Object,CTMARGS) where Object is an arbitary argument. For example it can be a list or dict used for storing CTM data from previous steps to check convergence.

If desired, CTM can be accelerated by fixed-point corner-matrix algorithm (FPCM) controlled by settings in CTMARGS.

Note

Currently, FPCM does not support reverse-mode differentiation.

ctm.one_site_c4v.ctmrg_c4v.run_dl(state, env, conv_check=None, ctm_args=<config.CTMARGS object>, global_args=<config.GLOBALARGS object>)[source]
Parameters
  • state (IPEPS_C4V) – wavefunction

  • env (ENV_C4V) – initial C4v symmetric environment

  • conv_check (function(IPEPS,ENV_C4V,Object,CTMARGS)->bool) – function which determines the convergence of CTM algorithm. If None, the algorithm performs ctm_args.ctm_max_iter iterations.

  • ctm_args (CTMARGS) – CTM algorithm configuration

  • global_args (GLOBALARGS) – global configuration

A double-layer variant (explicitly building double-layer tensor) of CTM algorithm. See run().