SU(2) model on Kagome lattice

Dense

This implementation of SU(2)-symmetric model on Kagome lattice does not assume any symmetry and hence works with dense tensors.

class models.spin_half_kagome.S_HALF_KAGOME(j1=1.0, JD=0, j1sq=0, j2=0, j2sq=0, jtrip=0.0, jperm=0j, h=0, phys_dim=2, global_args=<config.GLOBALARGS object>)[source]
Parameters:
  • j1 (float) – nearest-neighbour spin-spin interaction

  • JD (float) – Dzyaloshinskii-Moriya interaction

  • jtrip (float) – scalar chirality

  • jperm (complex) – triangle exchange

  • global_args (GLOBALARGS) – global configuration

Build spin-1/2 Hamiltonian on Kagome lattice

\[\begin{split}H &= J_1 \sum_{<ij>} S_i.S_j + J_2 \sum_{<<ij>>} S_i.S_j - J_{trip} \sum_t (S_{t_1} \times S_{t_2}).S_{t_3} \\ &+ J_{perm} \sum_t P_t + J^*_{perm} \sum_t P^{-1}_t\end{split}\]

where the first sum runs over the pairs of sites i,j which are nearest-neighbours (denoted as <.,.>), the second sum runs over pairs of sites i,j which are next nearest-neighbours (denoted as <<.,.>>). The \(J_{trip}\) and \(J_{perm}\) terms represent scalar chirality and triangle exchange respectively. The \(\sum_t\) runs over all triangles. The sites \(t_1,t_2,t_3\) on the triangles are always ordered anti-clockwise.

energy_triangle_dn(state, env, force_cpu=False, **kwargs)[source]
Parameters:
  • state (IPEPS_KAGOME) – wavefunction

  • env (ENV) – CTM environment

  • force_cpu (bool) – perform computation on CPU

Returns:

energy per site

Return type:

float

Evaluate energy contribution from down triangle within 2x2 subsystem embedded in environment, see ctm.pess_kagome.rdm_kagome.rdm2x2_dn_triangle_with_operator().

energy_triangle_dn_1x1(state, env, force_cpu=False, **kwargs)[source]
Parameters:
  • state (IPEPS_KAGOME) – wavefunction

  • env (ENV) – CTM environment

  • force_cpu (bool) – perform computation on CPU

Returns:

energy per site

Return type:

float

Evaluate energy contribution from down triangle within 1x1 subsystem embedded in environment, see ctm.pess_kagome.rdm_kagome.rdm1x1_kagome().

energy_triangle_up(state, env, force_cpu=False, **kwargs)[source]
Parameters:
  • state (IPEPS_KAGOME) – wavefunction

  • env (ENV) – CTM environment

  • force_cpu (bool) – perform computation on CPU

Returns:

energy per site

Return type:

float

Evaluate energy contribution from up triangle within 2x2 subsystem embedded in environment, see ctm.pess_kagome.rdm_kagome.rdm2x2_up_triangle_open().

eval_corrf_SS(coord, direction, state, env, dist, site=0)[source]
Parameters:
  • coord (tuple(int,int)) – reference site

  • direction (tuple(int,int)) –

  • state (IPEPS_KAGOME) – wavefunction

  • env (ENV) – CTM environment

  • dist (int) – maximal distance of correlator

  • site (int) – selects one of the non-equivalent physical degrees of freedom within the unit cell

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 in given direction. See ctm.generic.corrf.corrf_1sO1sO().

The on-site tensor of the underlying IPEPS_KAGOME contains all three DoFs of the down triangle. Choosing site selects one of them to be used for evaluating correlation function:

   a
   |
b--\
    \
    s0--s2--d
     | /
     |/   <- down triangle
    s1
     |
     c
eval_obs(state, env, force_cpu=True, cast_real=False, disp_corre_len=False, **kwargs)[source]
Parameters:
  • state (IPEPS_KAGOME) – wavefunction

  • env (ENV) – CTM environment

  • force_cpu (bool) – perform computation on CPU

  • cast_real (bool) – if False keep imaginary part of energy contributions from up and down triangles

  • disp_corre_len (bool) – compute correlation lengths from transfer matrices

Returns:

expectation values of observables, labels of observables

Return type:

list[float], list[str]

Evaluate observables for IPESS_KAGOME wavefunction. In particular

  • energy contributions from up and down triangles

  • vector of spontaneous magnetization \(\langle \vec{S} \rangle\) for each site and its length \(m=|\langle \vec{S} \rangle|\)

  • nearest-neighbour spin-spin correlations for all bonds in the unit cell

  • (optionally) correlation lengths

With explict U(1) symmetry

This implementation of SU(2)-symmetric model on Kagome lattice assumes explicit U(1) abelian symmetry (subgroup) of iPEPS tensors.

class models.abelian.kagome_u1.KAGOME_U1(settings, j1=1.0, JD=0, j1sq=0.0, j2=0.0, j2sq=0.0, jtrip=0, jperm=0j, h=0, phys_dim=2, global_args=<config.GLOBALARGS object>)[source]
Parameters:
  • settings (NamedTuple or SimpleNamespace (TODO link to definition)) – YAST configuration

  • j1 (float) – nearest-neighbour spin-spin interaction

  • JD (float) – Dzyaloshinskii-Moriya interaction

  • jtrip (float) – scalar chirality

  • jperm (complex) – triangle exchange

  • global_args (GLOBALARGS) – global configuration

Build spin-1/2 Hamiltonian on Kagome lattice

\[\begin{split}H &= J_1 \sum_{<ij>} S_i.S_j + J_2 \sum_{<<ij>>} S_i.S_j - J_{trip} \sum_t (S_{t_1} \times S_{t_2}).S_{t_3} \\ &+ J_{perm} \sum_t P_t + J^*_{perm} \sum_t P^{-1}_t\end{split}\]

where the first sum runs over the pairs of sites i,j which are nearest-neighbours (denoted as <.,.>), the second sum runs over pairs of sites i,j which are next nearest-neighbours (denoted as <<.,.>>). The \(J_{trip}\) and \(J_{perm}\) terms represent scalar chirality and triangle exchange respectively. The \(\sum_t\) runs over all triangles. The sites \(t_1,t_2,t_3\) on the triangles are always ordered anti-clockwise.

energy_down_t_1x1subsystem(state, env, force_cpu=False, **kwargs)[source]
Parameters:
Returns:

energy per site

Return type:

float

Evaluate energy contribution from down triangle within 1x1 subsystem embedded in environment, see ctm.pess_kagome_abelian.rdm_kagome.trace1x1_dn_kagome().

energy_down_t_2x2subsystem(state, env, force_cpu=False, **kwargs)[source]
Parameters:
Returns:

energy per site

Return type:

float

Evaluate energy contribution from down triangle within 2x2 subsystem embedded in environment, see ctm.pess_kagome_abelian.rdm_kagome.rdm2x2_dn_triangle_with_operator().

energy_up_t_2x2subsystem(state, env, force_cpu=False, **kwargs)[source]
Parameters:
Returns:

energy per site

Return type:

float

Evaluate energy contribution from up triangle within 2x2 subsystem embedded in environment, see ctm.pess_kagome_abelian.rdm_kagome.rdm2x2_up_triangle_open().

eval_obs(state, env, force_cpu=True, cast_real=False, disp_corre_len=False)[source]
Parameters:
  • state (IPEPS_KAGOME_ABELIAN) – wavefunction

  • env (ENV_ABELIAN) – CTM environment

  • force_cpu (bool) – perform computation on CPU

  • cast_real (bool) – if False keep imaginary part of energy contributions from up and down triangles

  • disp_corre_len (bool) – compute correlation lengths from transfer matrices

Returns:

expectation values of observables, labels of observables

Return type:

list[float], list[str]

Evaluate observables for IPESS_KAGOME wavefunction. In particular

  • energy contributions from up and down triangles

  • vector of spontaneous magnetization \(\langle \vec{S} \rangle\) for each site and its length \(m=|\langle \vec{S} \rangle|\)

  • nearest-neighbour spin-spin correlations for all bonds in the unit cell

  • (optionally) correlation lengths