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 a permutation associated to the symmetries of square lattice: rotations by \(\pi/2\) and reflections. 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=None, peps_args=<config.PEPSARGS object>, global_args=<config.GLOBALARGS object>)[source]

Bases: 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)) – vertex (x,y). Can be ignored, since the ansatz is single-site.

Returns:

on-site tensor

Return type:

torch.tensor

write_to_file(outputfile, symmetrize=True, **kwargs)[source]
Parameters:

symmetrize (bool) – symmetrize state before writing out

Writes state into file. See ipeps.ipeps.write_ipeps().

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
ipeps.ipeps_c4v.to_ipeps_c4v(state, normalize=False)[source]
Parameters:
  • state (IPEPS) – single-site IPEPS

  • normalize (bool) – normalize tensor

Returns:

symmetrized state

Return type:

IPEPS_C4V

Symmetrize single-site IPEPS by projecting its on-site tensor to \(A_1\) point-group irrep if the on-site tensor is real, or \(A_1 + iA_2\) if it is complex.