Spin S=2 AKLT Model

2x1 and 2x2 unit cell

class models.akltS2.AKLTS2(global_args=<config.GLOBALARGS object>)[source]
Parameters:

global_args (GLOBALARGS) – global configuration

Build AKLT S=2 Hamiltonian, equivalent to projector from product of two S=2 DOFs to S=4 DOF

\[H = \sum_{<ij>} h_{ij},\ \ \ h_{ij}= \frac{1}{14} \vec{S}_i\cdot\vec{S}_j + \frac{7}{10} (\vec{S}_i\cdot\vec{S}_j)^2 + \frac{7}{45} (\vec{S}_i\cdot\vec{S}_j)^3 + \frac{1}{90} (\vec{S}_i\cdot\vec{S}_j)^4\]

where <ij> denote nearest neighbours.

energy_2x1_1x2(state, env, **kwargs)[source]
Parameters:
  • state (IPEPS) – wavefunction

  • env (ENV) – CTM environment

Returns:

energy per site

Return type:

float

We assume iPEPS with 2x1 unit cell with tensors A, B and bipartite tiling or 2x2 unit cell containing four tensors A, B, C, and D with a simple PBC tiling:

A B A B  or  A B A B
B A B A      C D C D
A B A B      A B A B
B A B A      C D C D

Taking the reduced density matrix \(\rho_{2x1}\) (\(\rho_{1x2}\)) of 2x1 (1x2) cluster given by rdm.rdm2x1() (rdm.rdm1x2()) with indexing of sites as follows \(s_0,s_1;s'_0,s'_1\) for both types of density matrices:

rdm2x1   rdm1x2

s0--s1   s0
         |
         s1

and without assuming any symmetry on the indices of individual tensors a following set of terms has to be evaluated in order to compute energy-per-site for the case of 2x1 unit cell with bipartite tiling:

   0       0
1--A--3 1--B--3
   2       2                              A  B
   0       0                              2  2
1--B--3 1--A--3           A--3 1--B,      0  0
   2       2      , terms B--3 1--A, and  B, A

and for the case of 2x2 unit cell:

   0       0       0
1--A--3 1--B--3 1--A--3
   2       2       2
   0       0       0
1--C--3 1--D--3 1--C--3
   2       2       2             A--3 1--B,      A  B  C  D
   0       0                     B--3 1--A,      2  2  2  2
1--A--3 1--B--3                  C--3 1--D,      0  0  0  0
   2       2             , terms D--3 1--C, and  C, D, A, B
eval_obs(state, env)[source]
Parameters:
  • state (IPEPS) – wavefunction

  • env (ENV) – CTM environment

Returns:

expectation values of observables, labels of observables

Return type:

list[float], list[str]

Computes the following observables in order

  1. average magnetization over the unit cell,

  2. magnetization for each site in the unit cell

  3. \(\langle S^z \rangle,\ \langle S^+ \rangle,\ \langle S^- \rangle\) for each site in the unit cell

  4. nearest-neighbour spin-spin correlations on non-equivalent bonds

where the on-site magnetization is defined as

\[m = \sqrt{ \langle S^z \rangle^2+\langle S^x \rangle^2+\langle S^y \rangle^2 }\]

1x1 C4v

class models.akltS2.AKLTS2_C4V_BIPARTITE(global_args=<config.GLOBALARGS object>)[source]
Parameters:

global_args (GLOBALARGS) – global configuration

Build AKLT S=2 Hamiltonian, equivalent to projector from product of two S=2 DOFs to S=4 DOF

\[H = \sum_{<ij>} h_{ij},\ \ \ h_{ij}= \frac{1}{14} \vec{S}_i\cdot\vec{S}_j + \frac{7}{10} (\vec{S}_i\cdot\vec{S}_j)^2 + \frac{7}{45} (\vec{S}_i\cdot\vec{S}_j)^3 + \frac{1}{90} (\vec{S}_i\cdot\vec{S}_j)^4\]

where <ij> denote nearest neighbours.

energy_1x1(state, env_c4v, **kwargs)[source]
Parameters:
  • state (IPEPS_C4V) – wavefunction

  • env_c4v (ENV_C4V) – CTM c4v symmetric environment

Returns:

energy per site

Return type:

float

We assume 1x1 C4v iPEPS which tiles the lattice with a bipartite pattern composed of two tensors A, and B=RA, where R appropriately rotates the physical Hilbert space of tensor A on every “odd” site:

1x1 C4v => rotation R => BIPARTITE
A A A A                  A B A B
A A A A                  B A B A
A A A A                  A B A B
A A A A                  B A B A

Due to C4v symmetry it is enough to construct just a single nearest-neighbour reduced density matrix

\[e= \langle \mathcal{h} \rangle = Tr(\rho_{2x1} \mathcal{h})\]
eval_corrf_DD_H(state, env_c4v, dist, verbosity=0)[source]
Parameters:
  • state (IPEPS_C4V) – wavefunction

  • env_c4v (ENV_C4V) – CTM c4v symmetric environment

  • dist (int) – maximal distance of correlator

Returns:

dictionary with horizontal dimer-dimer correlation function

Return type:

dict(str: torch.Tensor)

Evaluate horizontal dimer-dimer correlation functions

\[\langle(\mathbf{S}(r+3).\mathbf{S}(r+2))(\mathbf{S}(1).\mathbf{S}(0))\rangle\]

up to r = dist .

eval_corrf_SS(state, env_c4v, dist)[source]
Parameters:
  • state (IPEPS_C4V) – wavefunction

  • env_c4v (ENV_C4V) – CTM c4v symmetric environment

  • dist (int) – maximal distance of correlator

Returns:

dictionary with full and spin-resolved spin-spin correlation functions

Return type:

dict(str: torch.Tensor)

Evaluate spin-spin correlation functions \(\langle\mathbf{S}(r).\mathbf{S}(0)\rangle\) up to r = dist .

eval_obs(state, env_c4v)[source]
Parameters:
  • state (IPEPS_C4V) – wavefunction

  • env_c4v (ENV_C4V) – CTM c4v symmetric environment

Returns:

expectation values of observables, labels of observables

Return type:

list[float], list[str]

Computes the following observables in order

  1. magnetization

  2. \(\langle S^z \rangle,\ \langle S^+ \rangle,\ \langle S^- \rangle\)

where the on-site magnetization is defined as

\[m = \sqrt{ \langle S^z \rangle^2+\langle S^x \rangle^2+\langle S^y \rangle^2 }\]