5.1 List of input variables
1 System Description
suffix Type : String
Description : In each ABACUS run, in the directory where you run ABACUS will generate a subdirectory. This subdirectory will contain all
the information inside it. The subdirectory name will have the format:OUT.suffix, where the ’suffix’ is the name you can pick up for your
convenience.
Default : ABACUS.
ntype Type : Integer
Description : Number of different atom species in this calculations.Whenever you start a ABACUS calculation, please specify this value.
Note that if you accidently choose a wrong number, if the number is smaller than the atom species in the STRU ﬁle, ABACUS only read
the ’wrong number’ of atom information. In opposite, if the number is larger than the atom species in the STRU ﬁle, ABACUS may stop and
quite.
Default : N/A.???
nbands Type : Integer
Description : Number of bands to calculate. It is recommended you setup this value, especially when you use smearing techniques, more
bands should be included. Default value is the number of fully occupied states, in the future we would like to have a more reasonable default
setup of this value.
Default : the number of fully occupied states.
atom file Type : String
Description : This variable speciﬁes the name of atom ﬁle which contains various information about atom species, including pseudopotential
ﬁles, local orbitals ﬁles, nonlocal projectors ﬁles, cell information, atom positions, local orbitals that will be used and whether atoms should be
allowed to move.
Default : STRU.
kpoint file Type : String
Description : This variable speciﬁes the name of kpoints ﬁle. Note that if you use atomic orbitals as basis, and you only use gamma point,
you don’t need to have kpoint ﬁle in your directory, ABACUS will automatically generate ’KPT’ ﬁle. Otherwise, if you use more than
one kpoint, please do remember the algorithm in ABACUS is different for gamma only and various kpoint dependent simulations. So ﬁrst you
should turn off the kpoint algorithm by set gamma only = 0 in INCAR and then you should setup your own kpoints ﬁle.
Default : KPT.
pseudo_dir Type : String
Description : This variable is about pseudopotential directory. All the pseudopotential ﬁle names you write down in STRU ﬁle should exist
in this directory. Due to the structure of our code, the default path of this will look strange to you. Please write down the address of the
pseudopotential ﬁles whatever you think is best convenience for you.
Default : ./
nbands_istate Type : Integer
Description : Only used when calculation = ienvelope or calculation = istate, this variable indicates how many bands around Fermi level you
would like to calculate. ienvelope means to calculate the envelope functions of wave functions Ψi = ∑Ciµ Φµ, where Ψi is the ith wave
function with the band index i. Φmu is the localized atomic orbital set. istate means to calculate the density of each wave function Ψi 2.
Specifically, suppose we have highest occupied bands at 100th wave functions.And if you set this variable to 5, it will print ﬁve wave functions from
96th to 105th. But before all this can be carried out, the wave functions coeffcients Ciµ should be ﬁrst calculated and written into a ﬁle
by setting the ﬂag out lowf = 1.
Default : 5.
nspin Type : Integer
Description : Number of spin components of wave functions. There are only two choices now: 1 or 2, meaning non spin or collinear spin
Default : 1.
calculation Type : String
Description : Specify the type of calculation.
• scf : do selfconsistent electronic structure calculation
• relax: do structure relaxation calculation, one can ues ’nstep’ to decide how many ionic relaxations you want.
• nscf : do the non selfconsistent electronic structure calculations only. For this option, you need a charge density ﬁle.
• istate: Please see the explanation for variable nbands istate.
• ienvelope: Please see the explanation for variable nbands istate.
• md: molecular dynamics
Default : scf.
This part of variables are used to control the plane wave related parameters.
PW Description
ecutwfc Type : Real
Description : Energy cutoff for plane wave functions, the unit is Rydberg. Note that even for localized orbitals basis, you still need to setup
a energy cutoff for this system. Because our local pseudopotential parts and the related force are calculated from plane wave basis set, etc. Also,
because our orbitals are generated by matching localized orbitals to a chosen set of wave functions from certain energy cutoﬀ, so this set of
localize orbitals are most accurate under this same plane wave energy cutoff.
Default : 50.
ethr Type : Real
Description : Only used when you use diago type = cg or diago type = david. It indicates the threshold for the ﬁrst electronic iteration, from
the second iteration the ethr will be updated automatically.
Default : 0.01
start_wfc Type : String
Description : Only useful for plane wave basis only now. It is the name of the starting wave functions. In the future we should also make this
variable available for localized orbitals set.
• atomic:
• file:
Default :atomic.
start_charge Type : String
Description : This variable is used for both plane wave set and local ized orbitals set. It indicates the type of starting density. If set this to’atomic’,
the density is starting from summation of atomic density of single atoms. If set this to ’ﬁle’, the density will be read in from ﬁle. The ﬁle should be
in the output directory. Besides, when you do ’n spin=1’ calculation, you only need the density ﬁle SPIN1_CHGCAR.
However, if you do ’nspin=2’ calculation, you also need the density ﬁle SPIN2_CHGCAR. The density ﬁle should be output with these names
if you set out charge = 1 in INPUT ﬁle.
• atomic:
• file:
Default :atomic.
This part of variables are used to control the electronic structure and force calculations.
Name Description
basis_type Type : String
Description : This is very important parameters to choose basis set in ABACUS.
• pw: Using PlaneWave basis set only.
• lcao_in_ pw: Expand the localized atomic set in PlaneWave basis.
• lcao: Using localized atomic orbital sets.
Default : pw
ks_solver Type : String
Description : It’s about choice of diagonalization methods for hamilto nian matrix expanded in a certain basis set.
• hpseps This method should be used if you choose localized or bitals.
• cg cg method is only used for plane wave basis calculations.
• david david is the Davidson algorithm for plane wave basis cal culations only.
• lapack lapack can be used for localized orbitals, but is only used for single processor.
Default : cg
smearing Type : String
Description : It indicates which occupation and smearing method is used in the calculation.
• fixed: use ﬁxed occupations.
• gauss or gaussian: use gaussian smearing method.
• mp: use methfesselpaxton smearing method.
Default : fixed
sigmaType : Real
Description : energy range for smearing, the unit is Rydberg.
Default : 0.01
mixing_type Type : String
Description : Charge mixing methods.
• plain: Just simple mixing.
• kerker: Use kerker method, which is the mixing method in G
space.
• pulay: Standard Pulay method.
• pulaykerker:
Default : pulay.
mixing_beta Type : Real
Description : mixing parameter: 0 means no new charge
Default : 0.7
mixing_ndim Type : Integer
Description : It indicates the mixing dimensions in Pulay, Pulay method
use the density from previous mixing ndim steps and do a charge mix
ing based on these density.
Default : 8
mixing_gg0 Type : Real
Description : used in pulaykerker mixing method
Default : 1.5
gamma_only Type : Integer
Description : It is an important parameter in localized orbitals set. It you set gamma only = 1, ABACUS use gamma only, the algorithm
is fast and you don’t need to specify the kpoints ﬁle. If you set gamma only = 0, more than one kpoint is used and the ABACUS is slower
compared to gamma only algorithm.
Default : 0
printe Type : Integer
Description : Print out energy for each band for every printe steps
Default : 100
niter Type : Integer
Description :This variable indicates the maximal iteration number for electronic iterations.
Default : 40
diago_cg_maxiter Type : Integer
Description : Only useful when you use diago type = cg or diago type = david. It indicates the maximal iteration number for cg/david method.
Default : 40
diago_david_ndim Type : Integer
Description : Only useful when you use diago type = david. It indicates the maximal dimension for david method.
Default : 10
dr2 Type : Real
Description : An important parameter in ABACUS. It’s the threshold for electronic iteration. It represents the charge density error between
two sequential density from electronic iterations. Usually for local orbitals, usually 10−6 may be accurate enough.
Default :1e09
charge_extrap Type : String
Description : Methods to do extrapolation of density when ABACUS is doing geometry relaxations.
• atomic: atomic extrapolation
• f irstorder: ﬁrstorder extrapolation
• secondorder: secondorder extrapolation
Default :atomic
out_charge Type : Integer
Description : If set to 1, ABACUS will output the charge density on real space grid. The name of the density ﬁle is SPIN1_CHGCAR and
SPIN2_CHGCAR (if nspin = 2). Suppose each density on grid has coordinate (x, y, z). The circle order of the density on real space grid
is: z is the outer loop, then y and ﬁnally x (x is moving fastest).
Default :0
out_dm Type : Integer
Description : If set to 1, ABACUS will output the density matrix of localized orbitals, only useful for localized orbitals set. The name of the
output ﬁle is SPIN1_DM and SPIN2_DMin the output directory.
Default : 0
out_wf Type : Integer
Description : Only used in localized orbitals set. When set this variable to 1, it outputs the coeﬃcients of wave functions. The ﬁle name is
LOWF_GAMMA_S1.dat when using only GAMMA kpoint for spin 1 component and LOWF_GAMMA_S2.dat for spin 2 component.
Default : 0
out_lowf Type : Integer
Description : If set to 1, ABACUS will output the wave functions coefﬁcients.
Default : 0
out_alllog Type : Integer
Description : When set to 1, ABACUS will generate a log ﬁle for each processor when parallel, it is very useful for debugging.
Default : 0
force Type : Integer
Description : If set to 1, calculate the force at the end of the electronic iteration. 0 means the force calculation is turned off..
Default : 0
nstep Type : Integer
Description : The number of ionic iteration steps, the minimal value is 1.
Default : 1
force_thr Type : Real
Description : The threshold of the force convergence, it indicates the largest force among all the atoms, the unit is Ry/Bohr,
Default : 0.000388935 Ry/Bohr = 0.01 eV/Angstrom
force_thr_ev Type : Real
Description : The threshold of the force convergence, has the same function as f orce thr, just the unit is diﬀerent, it is eV /Angstrom, you can
choose either one as you like. The recommendation value for using atomic orbitals is 0.04eV /Angstrom.
Default : 0.01 eV/Angstrom
force_thr_ev2 Type : Real
Description : This may be a very useful parameter in localized orbitals set. Due to numerical issue, the force calculation using atomic orbitals
is not accurate sometimes. When the force of an atom is smaller than force_thr_ev2, we set this force to be 0 and don’t move the atom. This
makes the geometry relaxation more stable.
Default : 0
bfgs_w1 Type : Real
Description : This variable controls the Wolfe condition for BFGS algorithm used in geometry relaxation. You can look into paper
P hys.C hem.C hem.P hys., 2000, 2, 2177 for more information.
Default : 0.01
bfgs_w2 Type : Real
Description : This variable controls the Wolfe condition for BFGS algorithm used in geometry relaxation. You can look into paper
P hys.C hem.C hem.P hys., 2000, 2, 2177 for more information.
Default : 0.5
trust_radius_max Type : Real
Description : This variable is for geometry optimization. It indicates the maximal movement of all the atoms. The sum of the movements from
all atoms can be increased during the optimization steps. However, it will not be larger than trust radius max Bohr.
Default : 0.8
trust_radius_min Type : Real
Description : This variable is for geometry optimization. It indicates the minimal movement of all the atoms. When the movement of all the
atoms is smaller than trust radius min Bohr , and the force convergence is still not achieved, the calculation will break down.
Default : 1e5
trust_radius_ini Type : Real
Description : This variable is for geometry optimization. It indicates the initial movement of all the atoms. The sum of the movements from
all atoms is trust radius ini Bohr.
Default : 0.2
move_method Type : String
Description : The method to do geometry optimizations. If set to bf gs, using BFGS algorithm. If set to cg, using CG algorithm. If set to sd,
using steepestdescent algorithm.
Default : cg
This part of variables are used to control the molecular dynamics calculations.
MD Description
md_type Type : Integer
Description : control the ensemble to run md.
• 0: When set to 0, ABACUS will use NVE ensemble;
• 1: When set to 1, ABACUS will use NVT ensemble with Nose
Hoover method;
• 2: When set to 2, ABACUS will use NVT ensemble with Velosity
Scaling method;
Default : 1
md_rstmd Type : Bool
Description :to control whether restart md.
• 0:When set to 0, ABACUS will calculate md normolly.
• 1:When set to 1, ABACUS will calculate md from last step in your test before.
Default : 0
md_dt Type : Double
Description :This is the time step(fs) used in md simulation .
Default : No default
md_tfirst&md_tlast Type : Double
Description :This is the temperature used in md simulation, md tlast’s default value is md tﬁrst. If md tlast is setted and be different from
the md tﬁrst, ABACUS will automatically generate a linear temperature gradient ﬁle named ”ChangeTemp.dat”, you can also set this ﬁle
according to your needs instead.
Default : No default
md_qmass Type : Double
Description :Inertia of extended system variable. Used only when md type is 1 or 2, you should set a number which is larger than 0.
If you want to autoset this by ABACUS,just set it to 0.
Default : No default
md_nresn&md_nyosh Type : Integer
Description :Used only when md type is 1, control the NoseHoover thermostat extendedsystem, you can only set them at 1,3,5.
Default : md nresn=md nyosh=3
md_dumpmdfred Type : Integer
Description :This is the steps to control the frequence to output md information
Default : 1
md_domsd Type : Integer
Description :when set to 1, ABACUS will calculate mean square displacement and the diﬀusion of each element.
Default : 1
md_fixtemperature Type : Integer
Description :
• n:when set to n(n¿1), ABACUS will read the ﬁle ”ChangeTem p.dat” and change system’s temperature every n steps,
• 0,1:When set to 0 or 1, ABACUS won’t change the temperature during running MD.
Default : 1
md_msdstarttime Type : Integer
Description :when set to n, ABACUS will calculate mean square displacement and the diﬀusion of each element from nth step.
Default : 1
This part of variables are used to control DFTD2 related parameters.
Name Description
vdwD2 Type : Integer
Description : If set to 1, ABACUS will calculate DFTD2 correction, including vdW energy and vdW forces.
Default : 0
vdwD2_scaling Type : Real
Description : The scale factors are to optimize the interaction energy deviations. They are found to be 0.75 (PBE), 1.2 (BLYP), 1.05 (B
P86), 1.0 (TPSS), and 1.05 (B3LYP).
Default : 0.75
vdwD2_d Type : Real
Description : The variable is to control the dumping speed of dumping function of DFTD2.
Default : 20
vdwD2_C6 file Type : String
Description : This variable speciﬁes the name of each elemetent’s C6 Parameters ﬁle. If you don’t setup this, ABACUS will use the default
C6 Parameters stored in the programme already. We’ve stored elements from 1 H to 54 Xe. Otherwise, if you want to use some new C6
Parameters, you should provide a ﬁle contained all the C6 Parameters ordered by periodic table of elements, from 1 H to the last elements you want.
Default : default
vdwD2_C6_unit Type : String
Description : This variable speciﬁes unit of C6 Parameters. Two kinds of unit is available: Jnm6/mol(means J · nm6/mol) and eVA(means eV · ˚A)
Default : Jnm6/mol
vdwD2_R0_file Type : String
Description : This variable speciﬁes the name of each elemetent’s R0 Parameters ﬁle. If you don’t setup this, ABACUS will use the default
R0 Parameters stored in the programme already. We’ve stored elements from 1 H to 54 Xe. Otherwise, if you want to use some new R0
Parameters, you should provide a ﬁle contained all the R0 Parameters ordered by periodic table of elements, from 1 H to the last elements you want.
Default : default
vdwD2_R0_unit Type : String
Description : This variable speciﬁes unit of R0 Parameters. Two kinds of unit is available: A(means ˚A) and Bohr.
Default : A
vdwD2_model Type : String
Description : To calculate the periodic structure, you can assign the number of lattice cells calculated. This variable speciﬁes the kind of
model to assign. If set to period, ABACUS will calculate a cubic peri odic structure as assigned in vdwD2 period. If set to radius, ABACUS
will calculate a cubic periodic structure containing a sphere, whose ra dius is vdwD2 radius and centre is origin point.
Default : radius
vdwD2_radius Type : Real
Description : If vdwD2 model is set to radius, this variable speciﬁes the radius of the calculated sphere.
Default : 56.6918
vdwD2_radius_unit Type : String
Description : If vdwD2 model is set to radius, this variable speciﬁes the unit of vdwD2 radius. Two kinds of unit is available: A(means ˚A) and Bohr.
Default : Bohr
vdwD2_period Type : Int Int Int
Description : If vdwD2 model is set to period, these variables specify the number of x, y and z periodic.
Default : 2 2 2
