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
- 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
- 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
- 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
- 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
- Returns
expectation values of observables, labels of observables
- Return type
list[float], list[str]
Computes the following observables in order
average magnetization over the unit cell,
magnetization for each site in the unit cell
\(\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
- 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
- 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 andctm.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
- 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 andctm.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
- Returns
expectation values of observables, labels of observables
- Return type
list[float], list[str]
Computes the following observables in order
magnetization
\(\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}\]