1.5. J1-J2 Heisenberg model¶
Here, we solve the \(J_{1}-J_{2}\) Heisenberg model on the square lattice, which is a canonical example of the frustrated magnets. Its Hamiltonian is defined as
where \(J_{1}\) (\(J_{2}\)) represents the nearest (next-nearest) neighbor interactions.
An input file (samples/tutorial_1.5/stan1.in
) for treating \(J_{1}-J_{2}\) Heisenberg model is given as
model = "Spin"
method = "CG"
lattice = "square"
L = 4
W = 4
J = 1
J' = 1
2S = 1
2Sz = 0
exct = 4
Here, J (J’) represents \(J_{1}\) (\(J_{2}\)).
1.5.1. Calculations of spin structure factors for ground state¶
First, we calculate the spin structure factors, which are defined as
To calculate \(S({\bf q})\), it is necessary to prepare
a proper input file for two-body Green functions.
By using a python script MakeGreen.py (samples/tutorial_1.5/MakeGreen.py
),
you can generate greentwo.def for calculating \(S({\bf q})\).
To use MakeGreen.py , an input file for specifying lattice geometry (input.txt, samples/tutorial_1.5/input.txt
) is necessary,
whose form is given as follows
Lx 4
Ly 4
Lz 1
orb_num 1
Here, Lx (orb_num) represents the length of the x direction (number of orbitals).
By using a python script CalcSq.py (samples/tutorial_1.5/CalcSq.py
),
you can calculate \(S({\bf q})\) from output/zvo_cisajscktalt_eigen0.dat.
- Procedure for calculating and visualizing \(S({\bf q})\) is given as follows ::
HPhi -sdry stan.in
python3 MakeGreen.py (input.txt is necessary)
HPhi -e namelist.def
python3 CalcSq.py (input.txt is necessary)
You can obtain Sq_eigen0.dat !!
splot “Sq_eigen0.dat” u 1:2:3 (using gnuplot)
Following the procedure, please see how \(S({\bf q})\) changes by changing J’. As an example, we show \(S({\bf q})\) for J1/J2=0 and 1 below.
1.5.2. Calculations of spin structure factors for excited states¶
By changing exct in stan.in, you can obtain several excited states. For those excited states, by changing max_num=1 in CalcSq.py as, for example, max_num=4, you can obtain \(S({\bf q})\) for the excited states. As a practice for editing file, please try to edit CalcSq.py manually (open CalcSq.py, finding variable max_num =1, and changing max_num = 4).
Please see how \(S({\bf q})\) in the excited states changes by changing J’. For example, please check what is the nature of the first excited state J’=0,0.5, and 1.