Generic Kagome iPESS¶
Specialized sub-class of ipeps.ipeps_kagome.IPEPS_KAGOME
.
A single on-site tensor representing DoFs on down triangle is built from
five different tensors: two rank-3 trivalent tensors with only auxiliary indices
and three rank-3 bond tensors, each associated to one of the physical DoFs on the vertices
of the down triangle.
- class ipeps.ipess_kagome.IPESS_KAGOME_GENERIC(ipess_tensors, peps_args=<config.PEPSARGS object>, global_args=<config.GLOBALARGS object>)[source]¶
Bases:
IPEPS_KAGOME
- Parameters:
ipess_tensors (dict(str, torch.tensor)) – dictionary of five tensors, which make up Kagome iPESS ansatz
peps_args (PEPSARGS) – ipeps configuration
global_args (GLOBALARGS) – global configuration
iPESS ansatz for Kagome lattice composes five tensors, specified by dictionary:
ipess_tensors = {'T_u': torch.Tensor, 'T_d': ..., 'B_a': ..., 'B_b': ..., 'B_c': ...}
into a single rank-5 on-site tensor of parent IPEPS. These iPESS tensors can be accessed through member
ipess_tensors
.The
'B_*'
are rank-3 tensors, with index structure [p,i,j] where the first index p is for physical degree of freedom, while indices i and j are auxiliary with bond dimension D. These bond tensors reside on corners shared between different triangles of Kagome lattice. Bond tensors are connected by rank-3 trivalent tensors'T_u'
,'T_d'
on up and down triangles respectively. Trivalent tensors have only auxiliary indices of matching bond dimension D.The on-site tensors of corresponding iPEPS is obtained by the following contraction:
2(d) 2(c) a \ / rot. pi | 0(w)==B_a B_b==0(v) clockwise b--\ \ / => \ 1(l) 1(k) s0--s2--d 2(l) 1(k) | / \ / |/ <- down triangle T_d s1 | | 0(j) c 1(j) | B_c==0(u) | 2(i) 0(i) | T_u / \ 1(a) 2(b)
By construction, the degrees of freedom on down triangle are all combined into a single on-site tensor of iPEPS. Instead, DoFs on the upper triangle have to be accessed by construction of 2x2 patch (which is then embedded into environment):
C T T C a a | | T b--\ b--\ \ / \ s0--s2--d s0--s2--d T | / | / |/ |/ s1 s1 | | c c / / a a | | T b--\ b--\ \ / \ s0--s2--d s0--s2--d T | / | / |/ |/ s1 s1 | | c c C T T C
- add_noise(noise)[source]¶
- Parameters:
noise (float) – magnitude of noise
Add uniform random noise to iPESS tensors.
- build_onsite_tensors()[source]¶
- Returns:
elementary unit cell of underlying IPEPS
- Return type:
dict[tuple(int,int): torch.Tensor]
Build rank-5 on-site tensor by contracting the iPESS tensors.
- extend_bond_dim(new_d, peps_args=<config.PEPSARGS object>, global_args=<config.GLOBALARGS object>)[source]¶
- Parameters:
new_d (int) – new enlarged auxiliary bond dimension
- Returns:
wavefunction with enlarged auxiliary bond dimensions
- Return type:
Take IPESS_KAGOME_GENERIC and enlarge all auxiliary bond dimensions of
T_u
,T_d
,B_a
,B_b
, andB_c
tensors to the new sizenew_d
.
- get_checkpoint()[source]¶
- Returns:
all data necessary to reconstruct the state. In this case member
ipess_tensors
- Return type:
dict[str: torch.tensor]
This function is called by optimizer to create checkpoints during the optimization process.
- get_parameters()[source]¶
- Returns:
variational parameters of IPESS_KAGOME_GENERIC
- Return type:
iterable
This function is called by optimizer to access variational parameters of the state. In this case member
ipess_tensors
.
- get_physical_dim()[source]¶
Return physical dimension of a single DoF of the underlying Kagome system. Assume the first dimension of on-site tensor is obtained as a cube of single DoF physical dimension i.e. 3**3 for spin-1
- load_checkpoint(checkpoint_file)[source]¶
- Parameters:
checkpoint_file (str) – path to checkpoint file
Initializes the state according to the supplied checkpoint file.
Note
The vertexToSite mapping function is not a part of checkpoint and must be provided either when instantiating IPEPS_ABELIAN or afterwards.
- ipeps.ipess_kagome.read_ipess_kagome_generic(jsonfile, peps_args=<config.PEPSARGS object>, global_args=<config.GLOBALARGS object>)[source]¶
- Parameters:
jsonfile (str or Path object) – input file describing iPEPS in JSON format`
peps_args (PEPSARGS) – ipeps configuration
global_args (GLOBALARGS) – global configuration
- Returns:
wavefunction
- Return type:
Read state from file.
- ipeps.ipess_kagome.write_ipess_kagome_generic(state, outputfile, tol=1e-14, normalize=False)[source]¶
- Parameters:
state (IPESS_KAGOME_GENERIC) – wavefunction to write out in json format
outputfile – target file
tol (float) – minimum magnitude of tensor elements which are written out
normalize (bool) – if True, on-site tensors are normalized before writing
Write state into file.