J1-J2 Heisenberg Model

2x1 and 2x2 unit cell

class models.j1j2.J1J2(j1=1.0, j2=0.0, global_args=<config.GLOBALARGS object>)[source]
Parameters
  • j1 (float) – nearest-neighbour interaction

  • j2 (float) – next nearest-neighbour interaction

  • global_args (GLOBALARGS) – global configuration

Build Spin-1/2 \(J_1-J_2\) Hamiltonian

\[H = J_1\sum_{<i,j>} h2_{ij} + J_2\sum_{<<i,j>>} h2_{ij}\]

on the square lattice. Where the first sum runs over the pairs of sites i,j which are nearest-neighbours (denoted as <.,.>), and the second sum runs over pairs of sites i,j which are next nearest-neighbours (denoted as <<.,.>>):

y\x
   _:__:__:__:_
..._|__|__|__|_...
..._|__|__|__|_...
..._|__|__|__|_...
..._|__|__|__|_...
..._|__|__|__|_...
    :  :  :  :

where

  • \(h2_{ij} = \mathbf{S_i}.\mathbf{S_j}\) with indices of h2 corresponding to \(s_i s_j;s'_i s'_j\)

energy_2x2_1site_BP(state, env)[source]
Parameters
  • state (IPEPS) – wavefunction

  • env (ENV) – CTM environment

Returns

energy per site

Return type

float

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

1x1 C4v => rotation P => 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

A single reduced density matrix ctm.rdm.rdm2x2() of a 2x2 plaquette is used to evaluate the energy.

energy_2x2_2site(state, env)[source]
Parameters
  • state (IPEPS) – wavefunction

  • env (ENV) – CTM environment

Returns

energy per site

Return type

float

We assume iPEPS with 2x1 unit cell containing two tensors A, B. We can tile the square lattice in two ways:

BIPARTITE           STRIPE   

A B A B             A B A B
B A B A             A B A B
A B A B             A B A B
B A B A             A B A B

Taking reduced density matrix \(\rho_{2x2}\) of 2x2 cluster with indexing of sites as follows \(\rho_{2x2}(s_0,s_1,s_2,s_3;s'_0,s'_1,s'_2,s'_3)\):

s0--s1
|   |
s2--s3

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:

   0           
1--A--3
   2

Ex.1 unit cell A B, with BIPARTITE tiling

    A3--1B, B3--1A, A, B, A3  , B3  ,   1A,   1B
                    2  0   \     \      /     / 
                    0  2    \     \    /     /  
                    B  A    1A    1B  A3    B3  

Ex.2 unit cell A B, with STRIPE tiling

    A3--1A, B3--1B, A, B, A3  , B3  ,   1A,   1B
                    2  0   \     \      /     / 
                    0  2    \     \    /     /  
                    A  B    1B    1A  B3    A3  
energy_2x2_4site(state, env)[source]
Parameters
  • state (IPEPS) – wavefunction

  • env (ENV) – CTM environment

Returns

energy per site

Return type

float

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

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

Taking the reduced density matrix \(\rho_{2x2}\) of 2x2 cluster given by ctm.generic.rdm.rdm2x2() with indexing of sites as follows \(\rho_{2x2}(s_0,s_1,s_2,s_3;s'_0,s'_1,s'_2,s'_3)\):

s0--s1
|   |
s2--s3

and without assuming any symmetry on the indices of the individual tensors a set of four \(\rho_{2x2}\)’s are needed over which \(h2\) operators for the nearest and next-neaerest neighbour pairs are evaluated:

A3--1B   B3--1A   C3--1D   D3--1C
2    2   2    2   2    2   2    2
0    0   0    0   0    0   0    0
C3--1D & D3--1C & A3--1B & B3--1A
energy_2x2_8site(state, env)[source]
Parameters
  • state (IPEPS) – wavefunction

  • env (ENV) – CTM environment

Returns

energy per site

Return type

float

We assume iPEPS with 4x2 unit cell containing eight tensors A, B, C, D, E, F, G, H with PBC tiling + SHIFT:

  A B E F
  C D G H
A B E F
C D G H

Taking the reduced density matrix \(\rho_{2x2}\) of 2x2 cluster given by ctm.generic.rdm.rdm2x2() with indexing of sites as follows \(\rho_{2x2}(s_0,s_1,s_2,s_3;s'_0,s'_1,s'_2,s'_3)\):

s0--s1
|   |
s2--s3

and without assuming any symmetry on the indices of the individual tensors a set of eight \(\rho_{2x2}\)’s are needed over which \(h2\) operators for the nearest and next-neaerest neighbour pairs are evaluated:

A3--1B   B3--1E   E3--1F   F3--1A
2    2   2    2   2    2   2    2
0    0   0    0   0    0   0    0
C3--1D & D3--1G & G3--1H & H3--1C 

C3--1D   D3--1G   G3--1H   H3--1C
2    2   2    2   2    2   2    2
0    0   0    0   0    0   0    0
B3--1E & E3--1F & F3--1A & A3--1B 
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

where the on-site magnetization is defined as

\[\begin{split}\begin{align*} m &= \sqrt{ \langle S^z \rangle^2+\langle S^x \rangle^2+\langle S^y \rangle^2 } =\sqrt{\langle S^z \rangle^2+1/4(\langle S^+ \rangle+\langle S^- \rangle)^2 -1/4(\langle S^+\rangle-\langle S^-\rangle)^2} \\ &=\sqrt{\langle S^z \rangle^2 + 1/2\langle S^+ \rangle \langle S^- \rangle)} \end{align*}\end{split}\]

Usual spin components can be obtained through the following relations

\[\begin{split}\begin{align*} S^+ &=S^x+iS^y & S^x &= 1/2(S^+ + S^-)\\ S^- &=S^x-iS^y\ \Rightarrow\ & S^y &=-i/2(S^+ - S^-) \end{align*}\end{split}\]

1x1 C4v

class models.j1j2.J1J2_C4V_BIPARTITE(j1=1.0, j2=0.0, hz_stag=0.0, delta_zz=1.0, global_args=<config.GLOBALARGS object>)[source]
Parameters
  • j1 (float) – nearest-neighbour interaction

  • j2 (float) – next nearest-neighbour interaction

  • hz_stag (float) – staggered magnetic field

  • delta_zz – easy-axis (nearest-neighbour) anisotropy

  • global_args (GLOBALARGS) – global configuration

Build Spin-1/2 \(J_1-J_2\) Hamiltonian

\[H = J_1\sum_{<i,j>} \mathbf{S}_i.\mathbf{S}_j + J_2\sum_{<<i,j>>} \mathbf{S}_i.\mathbf{S}_j = \sum_{p} h_p\]

on the square lattice. Where the first sum runs over the pairs of sites i,j which are nearest-neighbours (denoted as <.,.>), and the second sum runs over pairs of sites i,j which are next nearest-neighbours (denoted as <<.,.>>):

y\x
   _:__:__:__:_
..._|__|__|__|_...
..._|__|__|__|_...
..._|__|__|__|_...
..._|__|__|__|_...
..._|__|__|__|_...
    :  :  :  :

where

  • \(h_p = J_1(S^x_{r}.S^x_{r+\vec{x}} + S^y_{r}.S^y_{r+\vec{x}} + \delta_{zz} S^z_{r}.S^z_{r+\vec{x}} + (x<->y)) + J_2(\mathbf{S}_{r}.\mathbf{S}_{r+\vec{x}+\vec{y}} + \mathbf{S}_{r+\vec{x}}.\mathbf{S}_{r+\vec{y}}) + h_stag (S^z_{r} - S^z_{r+\vec{x}} - S^z_{r+\vec{y}} + S^z_{r+\vec{x}+\vec{y}})\) with indices of spins ordered as follows \(s_r s_{r+\vec{x}} s_{r+\vec{y}} s_{r+\vec{x}+\vec{y}}; s'_r s'_{r+\vec{x}} s'_{r+\vec{y}} s'_{r+\vec{x}+\vec{y}}\)

energy_1x1(state, env_c4v, **kwargs)[source]
Parameters
  • state (IPEPS) – 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 rotates approriately the physical Hilbert space of tensor A on every “odd” site:

1x1 C4v => rotation P => 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 a single reduced density matrix ctm.one_site_c4v.rdm_c4v.rdm2x2() of a 2x2 plaquette. Afterwards, the energy per site e is computed by evaluating a single plaquette term \(h_p\) containing two nearest-nighbour terms \(\bf{S}.\bf{S}\) and two next-nearest neighbour \(\bf{S}.\bf{S}\), as:

\[e = \langle \mathcal{h_p} \rangle = Tr(\rho_{2x2} \mathcal{h_p})\]
energy_1x1_lowmem(state, env_c4v, force_cpu=False)[source]
Parameters
  • state (IPEPS) – 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 rotates approriately the physical Hilbert space of tensor A on every “odd” site:

1x1 C4v => rotation P => 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 two reduced density matrices. In particular, ctm.one_site_c4v.rdm_c4v.rdm2x1() of a NN-neighbour pair and ctm.one_site_c4v.rdm_c4v.rdm2x1_diag() of NNN-neighbour pair. Afterwards, the energy per site e is computed by evaluating a term \(h2_rot\) containing \(\bf{S}.\bf{S}\) for nearest- and \(h2\) term for next-nearest- expectation value as:

\[e = 2*\langle \mathcal{h2} \rangle_{NN} + 2*\langle \mathcal{h2} \rangle_{NNN} = 2*Tr(\rho_{2x1} \mathcal{h2_rot}) + 2*Tr(\rho_{2x1_diag} \mathcal{h2})\]
energy_1x1_tiled(state, env_c4v, force_cpu=False)[source]
Parameters
  • state (IPEPS) – 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 rotates approriately the physical Hilbert space of tensor A on every “odd” site:

1x1 C4v => rotation P => 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 two reduced density matrices. In particular, ctm.one_site_c4v.rdm_c4v.rdm2x1() of a NN-neighbour pair and ctm.one_site_c4v.rdm_c4v.rdm2x1_diag() of NNN-neighbour pair. Afterwards, the energy per site e is computed by evaluating a term \(h2_rot\) containing \(\bf{S}.\bf{S}\) for nearest- and \(h2\) term for next-nearest- expectation value as:

\[e = 2*\langle \mathcal{h2} \rangle_{NN} + 2*\langle \mathcal{h2} \rangle_{NNN} = 2*Tr(\rho_{2x1} \mathcal{h2_rot}) + 2*Tr(\rho_{2x1_diag} \mathcal{h2})\]
eval_obs(state, env_c4v, force_cpu=False)[source]
Parameters
  • state (IPEPS) – 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

\[\begin{split}\begin{align*} m &= \sqrt{ \langle S^z \rangle^2+\langle S^x \rangle^2+\langle S^y \rangle^2 } =\sqrt{\langle S^z \rangle^2+1/4(\langle S^+ \rangle+\langle S^- \rangle)^2 -1/4(\langle S^+\rangle-\langle S^-\rangle)^2} \\ &=\sqrt{\langle S^z \rangle^2 + 1/2\langle S^+ \rangle \langle S^- \rangle)} \end{align*}\end{split}\]

Usual spin components can be obtained through the following relations

\[\begin{split}\begin{align*} S^+ &=S^x+iS^y & S^x &= 1/2(S^+ + S^-)\\ S^- &=S^x-iS^y\ \Rightarrow\ & S^y &=-i/2(S^+ - S^-) \end{align*}\end{split}\]