1-site C4v Environment

class ctm.one_site_c4v.env_c4v.ENV_C4V(chi, state=None, bond_dim=None, ctm_args=<config.CTMARGS object>, global_args=<config.GLOBALARGS object>)[source]
Parameters:
  • chi (int) – environment bond dimension \(\chi\)

  • state (IPEPS_C4V) – wavefunction

  • bond_dim (int) – bond dimension

  • ctm_args (CTMARGS) – CTM algorithm configuration

  • global_args (GLOBALARGS) – global configuration

Assuming C4v symmetric single-site state create corresponding half-row(column) tensor T and corner tensor C. The corner tensor has dimensions \(\chi \times \chi\) and the half-row(column) tensor has dimensions \(\chi \times \chi \times D^2\) with \(D\) given by state or bond_dim:

y\x -1 0 1
 -1  C T C
  0  T A T
  1  C T C

If both state and bond_dim are supplied, the bond_dim parameter is ignored.

The environment tensors of an ENV object e are accesed through members C and T The index-position convention is as follows: For upper left C and left T start from the index in the direction “up” <=> (-1,0) and continue anti-clockwise:

C--1 0--T--1 0--C
|       |       |
0       2       1
0               0
|               |
T--2         2--T
|               |
1               1
0       2       0
|       |       |
C--1 0--T--1 1--C

All C’s and T’s in the above diagram are identical and they are (hermitian) symmetric under the exchange of environment bond indices \(C_{ij}=C^*_{ji}\) and \(T_{ija}=T^*_{jia}\).

clone(ctm_args=<config.CTMARGS object>, global_args=<config.GLOBALARGS object>)[source]
Parameters:
  • ctm_args (CTMARGS) – CTM algorithm configuration

  • global_args (GLOBALARGS) – global configuration

Create a clone of the environment.

Note

This operation preserves gradient tracking.

detach(ctm_args=<config.CTMARGS object>, global_args=<config.GLOBALARGS object>)[source]
Parameters:
  • ctm_args (CTMARGS) – CTM algorithm configuration

  • global_args (GLOBALARGS) – global configuration

Get a detached “view” of the environment. See torch.Tensor.detach.

Note

This operation does not preserve gradient tracking.

extend(new_chi, ctm_args=<config.CTMARGS object>, global_args=<config.GLOBALARGS object>)[source]
Parameters:
  • new_chi (int) – new environment bond dimension

  • ctm_args (CTMARGS) – CTM algorithm configuration

  • global_args (GLOBALARGS) – global configuration

Create a new environment with all environment tensors enlarged up to environment dimension new_chi. The enlarged C, T tensors are padded with zeros.

Note

This operation preserves gradient tracking.

get_C()[source]
Returns:

get corner tensor

Return type:

torch.Tensor

get_T()[source]
Returns:

get half-row/-column tensor

Return type:

torch.Tensor

ctm.one_site_c4v.env_c4v.init_env(state, env, C_and_T=None, ctm_args=<config.CTMARGS object>)[source]
Parameters:
  • state (IPEPS_C4V) – wavefunction

  • env (ENV_C4V) – C4v symmetric CTM environment

  • ctm_args (CTMARGS) – CTM algorithm configuration

Initializes the environment env according to one of the supported options specified inside CTMARGS.ctm_env_init_type

  • "PROD" - C and T tensors have just a single element intialized to a value 1 corresponding to product state environment

  • "RANDOM" - C and T tensors have elements with random numbers drawn from uniform distribution [0,1)

  • "CTMRG" - tensors C and T are built from the on-site tensor of state