3.2. Quick guide to Expert mode¶
For Expert mode, the following input files are needed.
- A file list for input files
- Files for basic parameters
- Files for constructing Hamiltonian
- Files for setting output components.
The process after calculation is the same as in Standard mode. In this section, we demonstrate Expert mode in the directory where the tutorial at the previous section was performed.
3.2.1. File list for input files¶
In namelist.def, the types of input files and filenames are defined as shown below. By writing the keyword and filenames at each line, the types of files are distinguished. The details of namelist.def are shown in List file for the input files.
ModPara modpara.def
LocSpin locspn.def
CoulombInter coulombinter.def
Hund hund.def
Exchange exchange.def
OneBodyG greenone.def
TwoBodyG greentwo.def
CalcMod calcmod.def
PairExcitation pair.def
SpectrumVec zvo_eigenvec_0
3.2.2. Files for basic parameters¶
In this subsection, we show how to set a calculation mode, the parameters for the calculation, and the positions of the localized spins.
Setting a calculation mode¶
The calculation mode is set in a CalcMod file (in this sample file, calcmod.def). The contents of the files are as follows.
#CalcType = 0:Lanczos, 1:TPQCalc, 2:FullDiag, 3:CG
#CalcModel = 0:Hubbard, 1:Spin, 2:Kondo, 3:HubbardGC, ..
#Restart = 0:None, 1:Save, 2:Restart&Save, 3:Restart
#CalcSpec = 0:None, 1:Normal, 2:No H*Phi, 3:Save, ...
CalcType 3
CalcModel 1
ReStart 0
CalcSpec 0
CalcEigenVec 0
InitialVecType 0
InputEigenVec 0
We select a calculation method in CalcType and a target model in CalcModel. In this sample, we set the Lanczos method as a calculation method and the target model as the spin system (canonical ensemble). The details of a CalcMod file are shown in CalcMod file.
Setting parameters for calculation¶
The parameters for the calculation are set in a ModPara file(in this sample, modpara.def). The contents of this file are as follows.
--------------------
Model_Parameters 0
--------------------
HPhi_Cal_Parameters
--------------------
CDataFileHead zvo
CParaFileHead zqp
--------------------
Nsite 16
2Sz 0
Lanczos_max 2000
initial_iv -1
exct 1
LanczosEps 14
LanczosTarget 2
LargeValue 4.500000000000000e+00
NumAve 5
ExpecInterval 20
NOmega 200
OmegaMax 7.200000000000000e+01 4.000000000000000e-02
OmegaMin -7.200000000000000e+01 4.000000000000000e-02
OmegaOrg 0.0 0.0
In this file, we set the parameters for the calculation, such as the site number, the total number of conduction electrons, the total \(S_z\) and the number of Lanczos steps. The details of the ModPara file are shown in ModPara file.
Setting positions of localized spins¶
The positions \(S\) of the localized spins are defined by a LocSpin file (in this sample, locspn.def). The contents of the files are as follows.
================================
NlocalSpin 16
================================
========i_0LocSpn_1IteElc ======
================================
0 1
1 1
2 1
3 1
4 1
5 1
...
When CalcModel in a CalcMod file is set as the spin system, all the sites are automatically treated as localized spins. The details of a LocSpin file are shown in LocSpin file.
3.2.3. Files for constructing Hamiltonian¶
After setting the basic parameters, we create input files for constructing the Hamiltonian. Since the calculations are performed by using the representation of the fermion operators in HPhi++, we must rewrite the spin operator. For example, in the case of \(S = 1/2\), we rewrite the equation by using the relation
Setting transfer integrals¶
In a Trans file (in this sample, zTrans.def), we set the transfer part of the Hamiltonian,
The contents of the files are as follows.
========================
NTransfer 0
========================
========i_j_s_tijs======
========================
We can use this term when an electric magnetic field is added in the spin system. For example, when a magnetic field is added at a site 1 such as \(-0.5 S_z^{(1)}\) for \(S=1/2\), this term can be rewritten as \(-0.5/2(c_{1\uparrow}^{\dagger}c_{1\uparrow}-c_{1\downarrow}^{\dagger}c_{1\downarrow})\). Thus, the input file becomes as follows.
========================
NTransfer 1
========================
========i_j_s_tijs======
========================
1 0 1 0 -0.25 0
1 1 1 1 0.25 0
The details for a Trans file are shown in Trans file.
Setting general two-body interactions¶
In an InterAll file (in this sample, zInterall.def), we set the general two-body interaction part of the Hamiltonian,
The contents of the files are as follows.
======================
NInterAll 96
======================
========zInterAll=====
======================
0 0 0 0 1 0 1 0 0.500000 0.000000
0 0 0 0 1 1 1 1 -0.500000 0.000000
0 1 0 1 1 0 1 0 -0.500000 0.000000
0 1 0 1 1 1 1 1 0.500000 0.000000
0 0 0 1 1 1 1 0 1.000000 0.000000
0 1 0 0 1 0 1 1 1.000000 0.000000
...
Here, we explain the interaction between site \(i\) and site \(j\) in the case of \(S = 1/2\), for simplicity. Using fermion operators, the interaction terms for the spin operators can be rewritten as
Thus, the interaction \(S_z^{(i)}S_z^{(i+1)}\) for \(J=2\) can be written as
i 0 i 0 i+1 0 i+1 0 0.500000 0.000000
i 0 i 0 i+1 1 i+1 1 -0.500000 0.000000
i 1 i 1 i+1 0 i+1 0 -0.500000 0.000000
i 1 i 1 i+1 1 i+1 1 0.500000 0.000000
in the format of an InterAll file. The other terms can be written as follows.
i 0 i 1 i+1 1 i+1 0 1.000000 0.000000
i 1 i 0 i+1 0 i+1 1 1.000000 0.000000
There are other file formats for constructing the Hamiltonian. The details of the input formats of two-body interactions are shown in InterAll file - PairLift file.
3.2.4. Setting output components¶
In OneBodyG and TwoBodyG files, the indices of one-body and two-body Green’s functions are defined, respectively.
Setting indices of one-body Green’s functions¶
In a OneBodyG file (in this sample, greenone.def), the indices of \(\langle c_{i\sigma_1}^{\dagger}c_{j\sigma_2} \rangle\) are defined. The contents of files are as follows.
===============================
NCisAjs 32
===============================
======== Green functions ======
===============================
0 0 0 0
0 1 0 1
1 0 1 0
1 1 1 1
2 0 2 0
...
The details of the input formats of a OneBodyG file are shown in OneBodyG file.
Setting indices of two-body Green’s functions¶
In the TwoBodyG file (in this sample, greentwo.def), the indices of \(\langle c_{i\sigma_1}^{\dagger}c_{j\sigma_2}c_{k\sigma_3}^{\dagger}c_{l\sigma_4} \rangle\) are defined. The contents of this file are as follows.
=============================================
NCisAjsCktAltDC 1024
=============================================
======== Green functions for Sq AND Nq ======
=============================================
0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 1
0 0 0 0 1 0 1 0
0 0 0 0 1 1 1 1
0 0 0 0 2 0 2 0
...
The details of the input formats of the TwoBodyG file are shown in TwoBodyG file.
3.2.5. Running¶
After creating all the input files above, we are ready to run a program. For Expert mode, we must set an option “-e” and a file name list (in this sample, namelist.def) as arguments to run HPhi++.
$ Path/HPhi -e namelist.def
The process after the calculation is the same as that of Standard mode.