1-site C4v iPEPS

Specialized class for iPEPS with single on-site tensor possesing a (C4v) symmetry with respect to the permutation of its auxilliary indices

\[a_{suldr} = e^{i\theta} a_{s\textrm{p}(uldr)},\]

where \(\textrm{p}\) is an arbitrary permutation. This property in turn implies (\(A_1\)) symmetry for the double-layer tensor \(A_{(uu')(ll')(dd')(rr')}=a_{suldr}a_{su'l'd'r'}\).

class ipeps.ipeps_c4v.IPEPS_C4V(site, peps_args=<config.PEPSARGS object>, global_args=<config.GLOBALARGS object>)[source]

Bases: ipeps.ipeps.IPEPS

Parameters
  • site (torch.tensor) – on-site tensor

  • peps_args (PEPSARGS) – ipeps configuration

  • global_args (GLOBALARGS) – global configuration

The index-position convetion for on-site tensor is defined as follows:

   u s 
   |/ 
l--A--r  <=> a[s,u,l,d,r]
   |
   d

where s denotes physical index, and u,l,d,r label four principal directions up, left, down, right in anti-clockwise order starting from up.

add_noise(noise, symmetrize=False)[source]
Parameters

noise (float) – magnitude of the noise

Take IPEPS and add random uniform noise with magnitude noise to on-site tensor

site(coord=None)[source]
Parameters

coord (tuple(int,int)) – tuple (x,y) specifying vertex on a square lattice

Returns

on-site tensor corresponding to the vertex (x,y)

Return type

torch.tensor

ipeps.ipeps_c4v.read_ipeps_c4v(jsonfile, aux_seq=[0, 1, 2, 3], peps_args=<config.PEPSARGS object>, global_args=<config.GLOBALARGS object>)[source]
Parameters
  • jsonfile (str or Path object) – input file describing IPEPS_C4V in json format

  • aux_seq (list[int]) – array specifying order of auxiliary indices of on-site tensors stored in jsonfile

  • peps_args (PEPSARGS) – ipeps configuration

  • global_args (GLOBALARGS) – global configuration

Returns

wavefunction

Return type

IPEPS_C4V

Parameter aux_seq defines the expected order of auxiliary indices in input file relative to the convention fixed in tn-torch:

 0
1A3 <=> [up, left, down, right]: aux_seq=[0,1,2,3]
 2

for alternative order, eg.

 1
0A2 <=> [left, up, right, down]: aux_seq=[1,0,3,2] 
 3