Abelian-symmetric 1-site C4v Environment¶
- class ctm.one_site_c4v_abelian.env_c4v_abelian.ENV_C4V_ABELIAN(chi=1, state=None, settings=None, init=False, init_method=None, ctm_args=<config.CTMARGS object>, global_args=<config.GLOBALARGS object>)[source]¶
- Parameters:
chi (int) – environment bond dimension \(\chi\)
state (IPEPS_ABELIAN_C4V) – wavefunction
settings (NamedTuple or SimpleNamespace (TODO link to definition)) – YAST configuration
init (bool) – initialize environment tensors
init_method (str) – choice of environment initialization. See
init_env()
.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 bystate
orbond_dim
:y\x -1 0 1 -1 C T C 0 T A T 1 C T C
If both
state
andbond_dim
are supplied, thebond_dim
parameter is ignored.The environment tensors of an ENV object
e
are accesed through membersC
andT
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 C(-1) (+1)T(+1) | | | (-1) (-1) 0 2 1 0 0 (+1) | | T(-1) T--2 2--T (+1) | | 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 symmetric under the exchange of environment bond indices \(C_{ij}=C^*_{ji}\) and \(T_{ija}=T^*_{jia}\).
- clone()[source]¶
- Returns:
returns a clone of the environment
- Return type:
Create a clone of environment with all tensors (their blocks) attached to the computational graph.
Note
This operation preserves gradient tracking.
- detach()[source]¶
- Returns:
returns a view of the environment with all C,T tensors detached from computational graph.
- Return type:
In case of using PyTorch backend, get a detached “view” of the environment. See torch.Tensor.detach.
Note
This operation does not preserve gradient tracking.
- to_dense(ctm_args=<config.CTMARGS object>, global_args=<config.GLOBALARGS object>)[source]¶
- Returns:
returns a copy of the environment with all C,T tensors in their dense representation. If the environment already has just dense C,T tensors returns
self
.- Return type:
Create a copy of environment with all on-site tensors as dense possesing no explicit block structure (symmetry). This operations preserves gradients on returned dense environment.
- ctm.one_site_c4v_abelian.env_c4v_abelian.init_env(state, env, init_method=None, ctm_args=<config.CTMARGS object>)[source]¶
- Parameters:
state (IPEPS_ABELIAN_C4V) – wavefunction
env (ENV_C4V_ABELIAN) – C4v symmetric CTM environment
init_method – choice of environment initialization
ctm_args (CTMARGS) – CTM algorithm configuration
Initializes the environment env according to one of the supported options specified inside
CTMARGS.ctm_env_init_type
'CTMRG'
- tensors C and T are built from the on-site tensor of state
- ctm.one_site_c4v_abelian.env_c4v_abelian.init_from_ipeps_pbc(state, env, verbosity=0)[source]¶
- Parameters:
state (IPEPS_ABELIAN_C4V) – wavefunction
env (ENV_C4V_ABELIAN) – C4v symmetric CTM environment
Technically, we decorate the lattice with a single C4v symmetric tensor and in order to define consistent network - change signature on every sublattice B-site:
V ^ -> A <- B -> ^ V <- B -> A <- V ^
where the ingoing arrow signifies +1 and outgoing arrow signifies -1 signature. Tensors A and B are identical in the content & symmetry sectors (thus they have exactly opposite total charge). The C tensor of tensor A is formed from A, while T tensors are formed by B:
C--T-- A--B-- T--A-- <=> B--A-- | | | |