Abelian-symmetric generic Kagome iPESS¶
Specialized sub-class of ipeps.ipeps_kagome_abelian.IPEPS_KAGOME_ABELIAN
.
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_abelian.IPESS_KAGOME_GENERIC_ABELIAN(settings, ipess_tensors, build_sites=True, peps_args=<config.PEPSARGS object>, global_args=<config.GLOBALARGS object>)[source]¶
Bases:
IPEPS_KAGOME_ABELIAN
- Parameters:
settings (NamedTuple or SimpleNamespace (TODO link to definition)) – YAST configuration
ipess_tensors (dict(str, yast.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': yast.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. 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.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_T T_d s1 | | 0(j) c(+) 1(j) | B_c==0(u) | 2(i) 0(i) | T_u / \ 1(a) 2(b)
where the signature convetions of trivalent and bond tensors are as follows:
(-)\ /(-) (-)| |(-) T_d , T_u , (+)--B--(+) |(-) (-)/ \(-)
This choice guarantees that the signature of on-site tensor of equivalent single-site IPEPS_KAGOME_ABELIAN is compatible.
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=0, peps_args=<config.PEPSARGS object>)[source]¶
- Parameters:
noise (float) – magnitude of the noise
- Returns:
a copy of state with noisy
ipess_tensors
. For default value ofnoise
being zeroself
is returned.- Return type:
Create a new state by adding random uniform noise with magnitude
noise
to all copies ofipess_tensors
. The noise is added to all allowed blocks making up the individual tensors. If noise is 0, returnsself
.
- build_onsite_tensors()[source]¶
- Returns:
elementary unit cell of underlying IPEPS
- Return type:
dict[tuple(int,int): yast.Tensor]
Build on-site tensor of corresponding IPEPS_KAGOME_ABELIAN be performing following contraction of
ipess_tensors
:2(-7) 2(-6) (-)(-4) \ / rot. pi | 0(-3)==B_a B_b==0(-2) clockwise (-)(-5)--\ \ / => \ 1(3) 1(2) s0(-1)--s2(-3)--(-7)(+) 2(3) 1(2) | / \ / |/ <- DOWN_T T_d s1(-2) | | 0(1) (-6)(+) 1(1) | B_c==0(-1) | 2(0) 0(0) | T_u / \ 1(-4) 2(-5)
- generate_weights()[source]¶
- Returns:
dictionary of weights on non-equivalent bonds of the iPESS ansatz
- Return type:
dict( str: yast.Tensor )
Generate a set of identity tensors, weights W, for each non-equivalent link in the iPESS ansatz:
2(d) 2(c) (-)a \ / rot. pi | 0(w)==B_a B_b==0(v) clockwise (-)b--\ \ / => \ 1(l) 1(k) s0--s2--d(+) W_down_a W_down_b | / 2(l) 1(k) | / \ / |/ <- DOWN_T T_d s1 | | 0(j) c(+) W_down_c 1(j) | B_c==0(u) | 2(i) W_up_c 0(i) | T_u / \ 1(a) 2(b) W_up_b W_up_a
- get_checkpoint()[source]¶
- Returns:
serializable representation of IPESS_KAGOME_GENERIC_ABELIAN state
- Return type:
dict
Return dict containing serialized
ipess_tensors
(block-sparse) tensors. The individual blocks are serialized into Numpy ndarrays. This function is called by optimizer to create checkpoints during the optimization process.
- get_parameters()[source]¶
- Returns:
variational parameters of IPESS_KAGOME_GENERIC_ABELIAN
- Return type:
iterable
This function is called by optimizer to access variational parameters of the state. In this case member
ipess_tensors
.
- load_checkpoint(checkpoint_file)[source]¶
- Parameters:
checkpoint_file (str or file object) – path to checkpoint file
Initializes IPESS_KAGOME_GENERIC_ABELIAN from checkpoint file.
- to_dense(peps_args=<config.PEPSARGS object>, global_args=<config.GLOBALARGS object>)[source]¶
- Returns:
returns equivalent dense state with all on-site tensors in their dense representation on PyTorch backend.
- Return type:
Create an IPESS_KAGOME_GENERIC state with all
ipess_tensors
as dense possesing no explicit block structure (symmetry). This operations preserves gradients on the returned dense state.
- ipeps.ipess_kagome_abelian.read_ipess_kagome_generic(jsonfile, settings, peps_args=<config.PEPSARGS object>, global_args=<config.GLOBALARGS object>)[source]¶
- Parameters:
jsonfile (str or Path object) – input file describing IPESS_KAGOME_GENERIC_ABELIAN in json format
settings (NamedTuple or SimpleNamespace (TODO link to definition)) – YAST configuration
peps_args (PEPSARGS) – ipeps configuration
global_args (GLOBALARGS) – global configuration
- Returns:
wavefunction
- Return type:
Read IPESS_KAGOME_GENERIC_ABELIAN from file.
- ipeps.ipess_kagome_abelian.write_ipess_kagome_generic(state, outputfile, tol=None, normalize=False, peps_args=<config.PEPSARGS object>, global_args=<config.GLOBALARGS object>)[source]¶
- Parameters:
state (IPESS_KAGOME_GENERIC_ABELIAN) – 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, ipess tensors are normalized before writing
Write IPESS_KAGOME_GENERIC_ABELIAN to file.