Abelian-symmetric 1-site C4v iPEPS

Specialized class for iPEPS with single abelian-symmetric 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_abelian_c4v.IPEPS_ABELIAN_C4V(settings, site=None, peps_args=<config.PEPSARGS object>, global_args=<config.GLOBALARGS object>)[source]

Bases: IPEPS_ABELIAN

Parameters:
  • settings (TODO) – YAST configuration

  • site (yast.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:

   (+1)u (+1)s
       |/
(+1)l--a--(+1)r  <=> a[s,u,l,d,r] with reference symmetry signature [1,1,1,1,1]
       |
   (+1)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.

Note

This signature convention leads to the bra interpretation of physical space. The on-site tensor is to be understood as \(a=\sum_{suldr} a_{suldr} \langle s|\langle u|\langle l|\langle d|\langle r|\)

add_noise(noise=0)[source]
Parameters:

noise (float) – magnitude of the noise

Returns:

a copy of state with noisy on-site tensors. For default value of noise being zero self is returned.

Return type:

IPEPS_ABELIAN_C4V

Create a new state by adding random uniform noise with magnitude noise to all copies of on-site tensors. The noise is added to all blocks making up the individual on-site tensors.

site(coord=(0, 0))[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:

yast.Tensor

symmetrize()[source]
Returns:

symmetrize on-site tensor by projecting to \(A_1\) irrep of C4v point group.

Return type:

IPEPS_ABELIAN_C4V

to(device)[source]
Parameters:

device (str) – device identifier

Returns:

returns a copy of the state on device. If the state already resides onthe device returns self.

Return type:

IPEPS_ABELIAN_C4V

Move the entire state to device.

to_dense()[source]
Returns:

returns a copy of the state with all on-site tensors in their dense representation. If the state already has just dense on-site tensors returns self.

Return type:

IPEPS_ABELIAN_C4V

Create a copy of state with all on-site tensors as dense possesing no explicit block structure (symmetry).

Note

This operations preserves gradients on returned dense state.

write_to_file(outputfile, tol=None, symmetrize=True, normalize=False)[source]

Writes state to file. See ipeps.ipeps_abelian.write_ipeps().

ipeps.ipeps_abelian_c4v.read_ipeps_c4v(jsonfile, settings, peps_args=<config.PEPSARGS object>, global_args=<config.GLOBALARGS object>)[source]
Parameters:
  • jsonfile (str or Path object) – input file describing IPEPS_ABELIAN_C4V 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:

IPEPS_ABELIAN_C4V

Read state in JSON format from file.