Full List of INPUT Keywords

suffix  ntype  calculation  esolver_type  symmetry  kpar  bndpar  latname  init_wfc  init_chg  init_vel  nelec  nupdown  dft_functional  xc_temperature  pseudo_rcut  pseudo_mesh  mem_saver  diago_proc  nbspline  kspacing  min_dist_coef  symmetry_prec  device
Variables related to input files
stru_file  kpoint_file  pseudo_dir  orbital_dir  read_file_dir  wannier_card

ecutwfc  nx,ny,nz  pw_seed  pw_diag_thr  pw_diag_nmax  pw_diag_ndim
Numerical atomic orbitals related variables
nb2d  lmaxmax  lcao_ecut  lcao_dk  lcao_dr  lcao_rmax  search_radius  search_pbc  bx,by,bz

basis_type  ks_solver  nbands  nbands_istate  nspin  smearing_method  smearing_sigma  smearing_sigma_temp  mixing_type  mixing_beta  mixing_ndim  mixing_gg0  mixing_tau  gamma_only  printe  scf_nmax  scf_thr  chg_extrap  lspinorb  noncolin  soc_lambda

method_sto  nbands_sto  nche_sto  emin_sto  emax_sto  seed_sto  initsto_freq  npart_sto

relax_nmax  relax_method  relax_cg_thr  relax_bfgs_w1  relax_bfgs_w2  relax_bfgs_rmax  relax_bfgs_rmin  relax_bfgs_init  cal_force  force_thr  force_thr_ev  force_thr_ev2  cal_stress  stress_thr  press1, press2, press3  fixed_axes  cell_factor  fixed_ibrav  relax_new  relax_scale_force
Variables related to output information
out_force  out_mul  out_freq_elec  out_freq_ion  out_chg  out_pot  out_dm  out_wfc_pw  out_wfc_r  out_wfc_lcao  out_dos  out_band  out_proj_band  out_stru  out_bandgap  out_level  out_alllog  out_mat_hs  out_mat_r  out_mat_hs2  out_hs2_interval out_element_info  restart_save  restart_load  dft_plus_dmft  rpa

dos_edelta_ev  dos_sigma  dos_scale  dos_emin_ev  dos_emax_ev  dos_nche
Exact exchange (Under tests)
exx_hybrid_alpha  exx_hse_omega  exx_separate_loop  exx_hybrid_step  exx_lambda  exx_pca_threshold  exx_c_threshold  exx_v_threshold  exx_dm_threshold  exx_schwarz_threshold  exx_cauchy_threshold  exx_ccp_threshold  exx_ccp_rmesh_times  exx_distribute_type  exx_opt_orb_lmax  exx_opt_orb_ecut  exx_opt_orb_tolerence

md_type  md_thermostat  md_nstep  md_restart  md_dt  md_tfirst, md_tlast  md_dumpfreq  md_restartfreq  md_seed  md_tfreq  md_tchain  md_pmode  md_pcouple  md_pfirst, md_plast  md_pfreq  md_pchain  lj_rcut  lj_epsilon  lj_sigma  pot_file  msst_direction  msst_vel  msst_vis  msst_tscale  msst_qmass  md_damp  md_tolerance  md_nraise

vdw_method  vdw_s6  vdw_s8  vdw_a1  vdw_a2  vdw_d  vdw_abc  vdw_C6_file  vdw_C6_unit  vdw_R0_file  vdw_R0_unit  vdw_cutoff_type  vdw_cutoff_radius  vdw_radius_unit  vdw_cutoff_period  vdw_cn_thr  vdw_cn_thr_unit
Berry phase and wannier90 interface
berry_phase  gdir  towannier90  nnkpfile  wannier_spin
TDDFT: time dependent density functional theory (Under tests)
td_scf_thr  td_dt  td_force_dt  td_vext  td_vext_dire  td_timescale  td_vexttype  td_vextout  td_dipoleout  ocp  ocp_set  td_val_elec_01  td_val_elec_02 td_val_elec_03
DFT+U correction (Under development)
dft_plus_u  orbital_corr  hubbard_u  yukawa_potential  yukawa_lambda  omc
Variables useful for debugging
nurse  t_in_h  vl_in_h  vnl_in_h  vh_in_h  vion_in_h  test_force  test_stress  colour  test_skip_ewald

deepks_out_labels  deepks_scf  deepks_model  bessel_lmax  bessel_rcut  bessel_tol  deepks_bandgap  deepks_out_unittest
OFDFT: orbital free density functional theory
of_kinetic  of_method  of_conv  of_tole  of_tolp  of_tf_weight  of_vw_weight  of_wt_alpha  of_wt_beta  of_wt_rho0  of_hold_rho0  of_read_kernel  of_kernel_file  of_full_pw  of_full_pw_dim
Electric field and dipole correction
efield_flag  dip_cor_flag  efield_dir  efield_pos_max  efield_pos_dec  efield_amp
Gate field (compensating charge)
gate_flag  zgate  block  block_down  block_up  block_height

cal_cond  cond_nche  cond_dw  cond_wcut  cond_wenlarge  cond_fwhm  cond_nonlocal
System variables
These variables are used to control general system parameters.
suffix
Type: String
Description: In each run, ABACUS will generate a subdirectory in the working directory. This subdirectory contains all the information of the run. The subdirectory name has 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 calculation. If this value is not equal to the atom species in the STRU file, ABACUS will stop and quit. If not set or set to 0, ABACUS will automatically set it to the atom species in the STRU file.
Default: 0
calculation
Type: String
Description: Specify the type of calculation.
scf: do selfconsistent electronic structure calculation
relax: do structure relaxation calculation, one can use
relax_nmax
to decide how many ionic relaxations you want.cellrelax: do variablecell relaxation calculation.
nscf: do the non selfconsistent electronic structure calculations. For this option, you need a charge density file. For nscf calculations with planewave basis set, pw_diag_thr should be <= 1e3.
istate: For LCAO basis. Please see the explanation for variable
nbands_istate
.ienvelope: Envelope function for LCAO basis. Please see the explanation for variable
nbands_istate
.md: molecular dynamics
test_memory : checks memory required for the calculation. The number is not quite reliable, please use it with care
test_neighbour : only performs neighbouring atom search
gen_bessel : generates projectors (a series of Bessel functions) for DeePKS; see also keywords bessel_lmax, bessel_rcut and bessel_tol. A file named
jle.orb
will be generated which contains the projectors. An example is provided in examples/H2Odeepkspw.get_S : only works for multik calculation with LCAO basis. Generates and writes the overlap matrix to a file names
SR.csr
in the working directory. The format of the file will be the same as that generated by out_mat_hs2.
Default: scf
esolver_type
Type: String
Description: choose the energy solver.
ksdft: KohnSham density functional theory;
ofdft: orbitalfree density functional theory;
tddft: realtime timedependent density functional theory (TDDFT);
lj: Leonard Jones potential;
dp: DeeP potential;
Default: ksdft
symmetry
Type: Integer
Description: takes value 1, 0 or 1.
if set to 1, symmetry analysis will be performed to determine the type of Bravais lattice and associated symmetry operations. (point groups only)
if set to 0, only time reversal symmetry would be considered in symmetry operations, which implied k point and k point would be treated as a single k point with twice the weight.
if set to 1, no symmetry will be considered.
Default: 0
kpar
Type: Integer
Description: divide all processors into kpar groups, and k points will be distributed among each group. The value taken should be less than or equal to the number of k points as well as the number of MPI threads.
Default: 1
bndpar
Type: Integer
Description: divide all processors into bndpar groups, and bands (only stochastic orbitals now) will be distributed among each group. It should be larger than 0.
Default: 1
latname
Type: String
Description: Specifies the type of Bravias lattice. When set to
none
, the three lattice vectors are supplied explicitly in STRU file. When set to a certain Bravais lattice type, there is no need to provide lattice vector, but a few lattice parameters might be required. For more information regarding this parameter, consult the page on STRU file. Available options are (correspondence with ibrav in QE is given in parenthesis):none
: free structure.sc
: simple cubic. (1)fcc
: facecentered cubic. (2)bcc
: bodycentered cubic. (3)hexagonal
: hexagonal. (4)trigonal
: trigonal. (5)st
: simple tetragonal. (6)bct
: bodycentered tetragonal. (7)so
: orthorhombic. (8)baco
: basecentered orthorhombic. (9)fco
: facecentered orthorhombic. (10)bco
: bodycentered orthorhombic. (11)sm
: simple monoclinic. (12)bacm
: basecentered monoclinic. (13)triclinic
: triclinic. (14)
Default:
none
init_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. Available options are:
atomic
: from atomic pseudo wave functions. If they are not enough, other wave functions are initialized with random numbers.atomic+random
: add small random numbers on atomic pseudowavefunctionsfile
: from filerandom
: random numbers
Default:
atomic
init_chg
Type: String
Description: This variable is used for both plane wave set and localized orbitals set. It indicates the type of starting density. If set to
atomic
, the density is starting from the summation of the atomic density of single atoms. If set this tofile
, the density will be read in from a file. Besides, when you donspin=1
calculation, you only need the density file SPIN1_CHGCAR. However, if you donspin=2
calculation, you also need the density file SPIN2_CHGCAR. The density file should be output with these names if you set out_chg = 1 in INPUT file.Default: atomic
init_vel
Type: Boolean
Description: Read the atom velocity from the atom file (STRU) if set to true.
Default: false
nelec
Type: Real
Description: If >0.0, this denotes the total number of electrons in the system. Must be less than 2*nbands. If set to 0.0, the total number of electrons will be calculated by the sum of valence electrons (i.e. assuming neutral system).
Default: 0.0
nupdown
Type: Real
Description: If >0.0, this denotes the difference number of electrons between spinup and spindown in the system. The range of value must in [nelec ~ nelec]. It is one method of constraint DFT, the fermi energy level will separate to E_Fermi_up and E_Fermi_down. If set to 0.0, no constrain apply to system.
Default: 0.0
dft_functional
Type: String
Description: In our package, the XC functional can either be set explicitly using the
dft_functional
keyword inINPUT
file. Ifdft_functional
is not specified, ABACUS will use the xc functional indicated in the pseudopotential file. On the other hand, if dft_functional is specified, it will overwrite the functional from pseudopotentials and performs calculation with whichever functional the user prefers. We further offer two ways of supplying exchangecorrelation functional. The first is using ‘shorthand’ names such as ‘LDA’, ‘PBE’, ‘SCAN’. A complete list of ‘shorthand’ expressions can be found in the source code. The other way is only available when compiling with LIBXC, and it allows for supplying exchangecorrelation functionals as combinations of LIBXC keywords for functional components, joined by a plus sign, for example, ‘dft_functional=‘LDA_X_1D_EXPONENTIAL+LDA_C_1D_CSC’. The list of LIBXC keywords can be found on its website. In this way, we support all the LDA,GGA and mGGA functionals provided by LIBXC.Furthermore, the old INPUT parameter exx_hybrid_type for hybrid functionals has been absorbed into dft_functional. Options are
hf
(pure HartreeFock),pbe0
(PBE0),hse
(Note: in order to use HSE functional, LIBXC is required). Note also that HSE has been tested while PBE0 has NOT been fully tested yet, and the maximum CPU cores for running exx in parallel is \(N(N+1)/2\), with N being the number of atoms. And forces for hybrid functionals are not supported yet.If set to
opt_orb
, the program will not perform hybrid functional calculation. Instead, it is going to generate optABFs as discussed in this article.Default: same as UPF file.
xc_temperature
Type: Real
Description: specifies temperature when using temperaturedependent XC functionals (KSDT and so on); unit in Rydberg
Default : 0.0
pseudo_rcut
Type: Real
Description: Cutoff of radial integration for pseudopotentials, in Bohr.
Default: 15
pseudo_mesh
Type: Integer
Description: If set to 0, then use our own mesh for radial integration of pseudopotentials; if set to 1, then use the mesh that is consistent with quantum espresso.
Default: 0
mem_saver
Type: Boolean
Description: Used only for nscf calculations. If set to 1, then a memory saving technique will be used for many k point calculations.
Default: 0
diago_proc
Type: Integer
Description: If set to a positive number, then it specifies the number of threads used for carrying out diagonalization. Must be less than or equal to total number of MPI threads. Also, when cg diagonalization is used, diago_proc must be the same as the total number of MPI threads. If set to 0, then it will be set to the number of MPI threads. Normally, it is fine just leave it to the default value. Only used for pw base.
Default: 0
nbspline
Type: Integer
Description: If set to a natural number, a Cardinal Bspline interpolation will be used to calculate Structure Factor.
nbspline
represents the order of Bspline basis and a larger one can get more accurate results but cost more. It is turned off by default.Default: 1
kspacing
Type: Real
Description: Set the smallest allowed spacing between k points, unit in 1/bohr. It should be larger than 0.0, and suggest smaller than 0.25. When you have set this value > 0.0, then the KPT file is unnecessary, and the number of K points nk_i = max(1, int(b_i/KSPACING)+1), where b_i is the reciprocal lattice vector. The default value 0.0 means that ABACUS will read the applied KPT file. Notice: if gamma_only is set to be true, kspacing is invalid.
Default: 0.0
min_dist_coef
Type: Real
Description: a factor related to the allowed minimum distance between two atoms. At the beginning, ABACUS will check the structure, and if the distance of two atoms is shorter than min_dist_coef*(standard covalent bond length), we think this structure is unreasonable. If you want to calculate some structures in extreme conditions like high pressure, you should set this parameter as a smaller value or even 0.
Default: 0.2
symmetry_prec
Type: Real
Description: The accuracy for symmetry judgment. The unit is Bohr.
Default: 1.0e5
device
Type: String
Description: Specifies the computing device for ABACUS.
Available options are:
cpu
: for CPUs via Intel, AMD, or Other supported CPU devicesgpu
: for GPUs via CUDA.
Known limitations:
pw basis
: required by thegpu
acceleration optionscg ks_solver
: required by thegpu
acceleration options
Default:
cpu
Electronic structure
These variables are used to control the electronic structure and geometry relaxation calculations.
basis_type
Type: String
Description: This is an important parameter 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 the choice of diagonalization methods for the hamiltonian matrix expanded in a certain basis set.
For planewave basis,
cg: cg method.
dav: the Davidson algorithm. (Currently not working with Intel MKL library).
For atomic orbitals basis,
genelpa: This method should be used if you choose localized orbitals.
scalapackgvx: scalapack can also be used for localized orbitals.
cusolver: this method needs building with the cusolver component for lcao and at least one gpu is available.
If you set ks_solver=
genelpa
for basis_type=pw
, the program will be stopped with an error message:genelpa can not be used with plane wave basis.
Then the user has to correct the input file and restart the calculation.
Default:
cg
(pw) orgenelpa
(lcao)
nbands
Type: Integer
Description: Number of KohnSham orbitals to calculate. It is recommended you setup this value, especially when you use smearing techniques, more bands should be included.
Default:
nspin=1: 1.2*occupied_bands, occupied_bands + 10)
nspin=2: max(1.2*nelec_spin, nelec_spin + 10) , nelec_spin = max(nelec_spin_up, nelec_spin_down)
nspin=4: 1.2*nelec, nelec + 20)
nbands_istate
Type: Integer
Description: Only used when
calculation = ienvelope
orcalculation = istate
, this variable indicates how many bands around the Fermi level you would like to calculate.ienvelope
means to calculate the envelope functions of wave functions \(\Psi_{i}=\Sigma_{\mu}C_{i\mu}\Phi_{\mu}\), where \(\Psi_{i}\) is the ith wave function with the band index \(i\) and \(\Phi_{\mu}\) is the localized atomic orbital set.istate
means to calculate the density of each wave function \(\Psi_{i}^{2}\). Specifically, suppose we have highest occupied bands at 100th wave functions. And if you set this variable to 5, it will print five wave functions from 96th to 105th. But before all this can be carried out, the wave functions coefficients should be first calculated and written into a file by setting the flagout_wfc_lcao = 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. For the case of noncollinear polarized, nspin will be automatically set to 4 without being specified in user input.
Default: 1
smearing_method
Type: String
Description: It indicates which occupation and smearing method is used in the calculation.
fixed: use fixed occupations.
gauss or gaussian: use Gaussian smearing method.
mp: use methfesselpaxton smearing method; recommended for metals.
fd: FermiDirac smearing method: \(f=1/\{1+\exp[(E\mu)/kT]\}\) and smearing_sigma below is the temperature \(T\) (in Ry).
Default: fixed
smearing_sigma
Type: Real
Description: energy range for smearing, the unit is Rydberg.
Default: 0.001
smearing_sigma_temp
Type: Real
Description: energy range for smearing, and is the same as smearing_sigma, but the unit is K. smearing_sigma = 1/2 * kB * smearing_sigma_temp.
mixing_type
Type: String
Description: Charge mixing methods. We offer the following 3 options:
plain: Just simple mixing.
pulay: Standard Pulay method.
broyden: Broyden method.
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 uses the density from previous mixing_ndim steps and do a charge mixing based on this density.
Default: 8
mixing_gg0
Type: Real
Description: When set to a positive number, the high frequency wave vectors will be suppressed by multiplying a scaling factor \(\frac{k^2}{k^2+gg0^2}\); if set to 0, then no Kerker scaling is performed.
Default: 0.0
mixing_tau
Type: Boolean
Description: Only relevant for metaGGA calculations. If set to true, then the kinetic energy density will also be mixed. It seems for general cases, SCF converges fine even without this mixing. However, if there is difficulty in converging SCF for metaGGA, it might be helpful to turn this on.
Default: False
gamma_only
Type: Integer
Description: It is an important parameter only to be used in localized orbitals set. If you set gamma_only = 1, ABACUS uses gamma only, the algorithm is faster and you don’t need to specify the kpoints file. If you set gamma_only = 0, more than one kpoint is used and the ABACUS is slower compared to the gamma only algorithm.
Note: If gamma_only is set to 1, the KPT file will be overwritten. So make sure to turn off gamma_only for multik calculations.
Default: 0
printe
Type: Integer
Description: Print out energy for each band for every printe step
Default: 100
scf_nmax
Type: Integer
Description: This variable indicates the maximal iteration number for electronic iterations.
Default: 40
scf_thr
Type: Real
Description: An important parameter in ABACUS. It’s the threshold for electronic iteration. It represents the charge density error between two sequential densities from electronic iterations. Usually for local orbitals, usually 1e6 may be accurate enough.
Default: 1.0e9
chg_extrap
Type: String
Description: Methods to do extrapolation of density when ABACUS is doing geometry relaxations.
atomic: atomic extrapolation
firstorder: firstorder extrapolation
secondorder: secondorder extrapolation
Default: atomic
lspinorb
Type: Boolean
Description: whether to consider spinorbital coupling effect in the calculation. When set to 1,
nspin
is also automatically set to 4.Default: 0
noncolin
Type: Boolean
Description: whether to allow noncollinear polarization, in which case the coupling between spin up and spin down will be taken into account. If set to 1,
nspin
is also automatically set to 4.Default: 0
soc_lambda
Type: Real
Description: Relevant for soc calculations. Sometimes, for some real materials, both scalarrelativistic and fullrelativistic can not describe the exact spinorbit coupling. Artificial modulation may help in such cases.
soc_lambda
, which has value range [0.0, 1.0] , is used for modulate SOC effect.In particular,
soc_lambda 0.0
refers to scalarrelativistic case andsoc_lambda 1.0
refers to fullrelativistic case.Default: 1.0
Electronic structure (SDFT)
These variables are used to control the parameters of stochastic DFT (SDFT), mix stochasticdeterministic DFT (MDFT), or completebasis Chebyshev method (CT). We suggest using SDFT to calculate hightemperature systems and we only support smearing_method “fd”.
method_sto
Type: Integer
Description:
Different method to do SDFT.
1: SDFT calculates \(T_n(\hat{h})\ket{\chi}\) twice, where \(T_n(x)\) is the nth order Chebyshev polynomial and \(\hat{h}=\frac{\hat{H}\bar{E}}{\Delta E}\) owning eigenvalue \(\in(1,1)\). This method cost less memory but is slower.
2: SDFT calculates \(T_n(\hat{h})\ket{\chi}\) once but need much more memory. This method is much faster. Besides, it calculates \(N_e\) with \(\bra{\chi}\sqrt{\hat f}\sqrt{\hat f}\ket{\chi}\), which needs a smaller nche_sto. However, when memory is not enough, only method 1 can be used.
other: use 2
Default: 2
nbands_sto
Type: Integer
Description:
nbands_sto>0: Number of stochastic orbitals to calculate in SDFT and MDFT. More bands obtain more precise results or smaller stochastic errors (\( \propto 1/\sqrt{N_{\chi}}\));
nbands_sto=0: Complete basis will be used to replace stochastic orbitals with the Chebyshev method (CT) and it will get the results the same as KSDFT without stochastic errors.
If you want to do MDFT. nbands which represents the number of KS orbitals should be set.
Default: 256
nche_sto
Type: Integer
Description: Chebyshev expansion orders for SDFT, MDFT, CT methods.
Default:100
emin_sto
Type: Real
Description: Trial energy to guess the lower bound of eigen energies of the Hamitonian Operator \(\hat{H}\). The unit is Ry.
Default:0.0
emax_sto
Type: Real
Description: Trial energy to guess the upper bound of eigen energies of the Hamitonian Operator \(\hat{H}\). The unit is Ry.
Default:0.0
seed_sto
Type: Integer
Description: The random seed to generate stochastic orbitals.
seed_sto>=0: Stochastic orbitals have the form of \(\exp(i2\pi\theta(G))\), where \(\theta\) is a uniform distribution in \((0,1)\). If seed_sto = 0, the seed is decided by time(NULL).
seed_sto<=1: Stochastic orbitals have the form of \(\pm1\) with equal probability. If seed_sto = 1, the seed is decided by time(NULL).
Default:0
initsto_freq
Type: Integer
Description: Frequency (once each initsto_freq steps) to generate new stochastic orbitals when running md.
positive integer: Update stochastic orbitals
0: Never change stochastic orbitals.
Default:0
npart_sto
Type: Integer
Description: Make memory cost to 1/npart_sto times of the previous one when running post process of SDFT like DOS with method_sto = 2.
Default:1
Geometry relaxation
These variables are used to control the geometry relaxation.
relax_nmax
Type: Integer
Description: The maximal number of ionic iteration steps, the minimum value is 1.
Default: 1
cal_force
Type: Boolean
Description: If set to 1, calculate the force at the end of the electronic iteration. 0 means the force calculation is turned off. It is automatically set to 1 if
calculation
iscellrelax
,relax
, ormd
.Default: 0
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.001 Ry/Bohr = 0.0257112 eV/Angstrom
force_thr_ev
Type: Real
Description: The threshold of the force convergence, has the same function as force_thr, just the unit is different, it is eV/Angstrom, you can choose either one as you like. The recommended value for using atomic orbitals is 0.04 eV/Angstrom.
Default: 0.0257112 eV/Angstrom
force_thr_ev2
Type: Real
Description: The calculated force will be set to 0 when it is smaller than force_thr_ev2.
Default: 0.0 eV/Angstrom
relax_bfgs_w1
Type: Real
Description: This variable controls the Wolfe condition for BFGS algorithm used in geometry relaxation. You can look into the paper Phys.Chem.Chem.Phys.,2000,2,2177 for more information.
Default: 0.01
relax_bfgs_w2
Type: Real
Description: This variable controls the Wolfe condition for BFGS algorithm used in geometry relaxation. You can look into the paper Phys.Chem.Chem.Phys.,2000,2,2177 for more information.
Default: 0.5
relax_bfgs_rmax
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 relax_bfgs_rmax Bohr.
Default: 0.8
relax_bfgs_rmin
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 relax_bfgs_rmin Bohr, and the force convergence is still not achieved, the calculation will break down.
Default: 1e5
relax_bfgs_init
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 relax_bfgs_init Bohr.
Default: 0.5
cal_stress
Type: Integer
Description: If set to 1, calculate the stress at the end of the electronic iteration. 0 means the stress calculation is turned off. It is automatically set to 1 if
calculation
iscellrelax
.Default: 0
stress_thr
Type: Real
Description: The threshold of the stress convergence, it indicates the largest stress among all the directions, the unit is KBar,
Default: 0.01
press1, press2, press3
Type: Real
Description: the external pressures along three axes, the compressive stress is taken to be positive, and the unit is KBar.
Default: 0
fixed_axes
Type: String
Description: which axes are fixed when do cell relaxation. Possible choices are:
None : default; all can relax
volume : relaxation with fixed volume
shape : fix shape but change volume (i.e. only lattice constant changes)
a : fix a axis during relaxation
b : fix b axis during relaxation
c : fix c axis during relaxation
ab : fix both a and b axes during relaxation
ac : fix both a and c axes during relaxation
bc : fix both b and c axes during relaxation
Note : fixed_axes = “shape” and “volume” are only available for relax_new = 1
Default: None
fixed_ibrav
Type: Boolean
Description: when set to true, the lattice type will be preserved during relaxation. Must be used along with relax_new set to true, and a specific latname must be provided
Note: it is possible to use fixed_ibrav with fixed_axes, but please make sure you know what you are doing. For example, if we are doing relaxation of a simple cubic lattice (latname = “sc”), and we use fixed_ibrav along with fixed_axes = “volume”, then the cell is never allowed to move and as a result, the relaxation never converges.
Default: False
fixed_atoms
Type: Boolean
Description: when set to true, the direct coordinates of atoms will be preserved during variablecell relaxation. If set to false, users can still fix certain components of certain atoms by using the
m
keyword inSTRU
file. For the latter option, check the end of this instruction.Default: False
relax_method
Type: String
Description: The method to do geometry optimizations, note that there are two implementations of the CG method, see relax_new:
bfgs: using BFGS algorithm.
sd: using steepestdescent algorithm.
cg: using cg algorithm.
Default: cg
relax_cg_thr
Type: Real
Description: When movemethod is set to ‘cgbfgs’, a mixed cgbfgs algorithm is used. The ions first move according to cg method, then switched to bfgs when the maximum of force on atoms is reduced below cgthreshold. The unit is eV/Angstrom.
Default: 0.5
relax_new
Type: Boolean
Description: At around the end of 2022 we made a new implementation of the CG method for relax and cellrelax calculations. But the old implementation was also kept. To use the new method, set relax_new to true. To use the old one, set it to false.
Default: True
relax_scale_force
Type: Real
Description: This parameter is only relavant when
relax_new
is set to True. It controls the size of the first CG step. A smaller value means the first step along a new CG direction is smaller. This might be helpful for large systems, where it is safer to take a smaller initial step to prevent the collapse of the whole configuration.Default: 0.5
cell_factor
Type: Real
Description: Used in the construction of the pseudopotential tables. It should exceed the maximum linear contraction of the cell during a simulation.
Default: 1.2
Density of states
These variables are used to control the calculation of DOS.
dos_edelta_ev
Type: Real
Description: controls the step size in writing DOS (in eV).
Default: 0.01
dos_sigma
Type: Real
Description: controls the width of Gaussian factor when obtaining smeared DOS (in eV).
Default: 0.07
dos_scale
Type: Real
Description: the energy range of dos output is given by (emaxemin)*(1+dos_scale), centered at (emax+emin)/2. This parameter will be used when dos_emin and dos_emax are not set.
Default: 0.01
dos_emin_ev
Type: Real
Description: minimal range for dos (in eV). If we set it, “dos_scale” will be ignored.
Default: minimal eigenenergy of \(\hat{H}\)
dos_emax_ev
Type: Real
Description: maximal range for dos (in eV). If we set it, “dos_scale” will be ignored.
Default: maximal eigenenergy of \(\hat{H}\)
dos_nche
Type: Integer
Description: orders of Chebyshev expansions when using SDFT to calculate DOS
Default: 100
DeePKS
These variables are used to control the usage of DeePKS method (a comprehensive datadriven approach to improve the accuracy of DFT). Warning: this function is not robust enough for the current version. Please try the following variables at your own risk:
deepks_out_labels
Type: Boolean
Description: when set to 1, ABACUS will calculate and output descriptor for DeePKS training. In
LCAO
calculation, a path of *.orb file is needed to be specified underNUMERICAL_DESCRIPTOR
inSTRU
file. For example:NUMERICAL_ORBITAL H_gga_8au_60Ry_2s1p.orb O_gga_7au_60Ry_2s2p1d.orb NUMERICAL_DESCRIPTOR jle.orb
NUMERICAL_DESCRIPTOR jle.orb
Default: 0
deepks_scf
Type: Boolean
Description: only when deepks is enabled in
LCAO
calculation can this variable set to 1. Then, a trained, traced model file is needed for selfconsistent field iteration in DeePKS method.Default: 0
deepks_model
Type: String
Description: the path of the trained, traced NN model file (generated by deepkskit). used when deepks_scf is set to 1.
Default: None
bessel_lmax
Type: Integer
Description: the projectors used in DeePKS are bessel functions. To generate such projectors, set calculation type to
gen_bessel
and run ABACUS. The lmax of Bessel functions is specified using bessel_lmax. See also calculation.Default: 2
bessel_rcut
Type: Real
Description: cutoff radius of bessel functions. See also
bessel_lmax
.Default: 6.0
bessel_tol
Type: Real
Description: tolerance when searching for the zeros of bessel functions. See also
bessel_lmax
.Default: 1.0e12
deepks_bandgap
Type: Boolean
Description: whether to include deepks bandgap correction.
Default: False
deepks_out_unittest
Type: Boolean
Description: this is used to generate some files for constructing DeePKS unit test. Not relevant when running actual calculations. When set to 1, ABACUS needs to be run with only 1 process.
Default: False
OFDFT: orbital free density functional theory
of_kinetic
Type: string
Description: the type of kinetic energy density functional, including tf, vw, wt, and tf+.
Default: wt
of_method
Type: string
Description: the optimization method used in OFDFT.
cg1: PolakRibiere. Standard CG algorithm.
cg2: HagerZhang (generally faster than cg1).
tn: Truncated Newton algorithm.
Default:tn
of_conv
Type: string
Description: criterion used to check the convergence of OFDFT.
energy: total energy changes less than ‘of_tole’.
potential: the norm of potential is less than ‘of_tolp’.
both: both energy and potential must satisfy the convergence criterion.
Default: energy
of_tole
Type: Double
Description: tolerance of the energy change (in Ry) for determining the convergence.
Default: 2e6
of_tolp
Type: Double
Description: tolerance of potential (in a.u.) for determining the convergence.
Default: 1e5
of_tf_weight
Type: Double
Description: weight of TF KEDF.
Default: 1
of_vw_weight
Type: Double
Description: weight of vW KEDF.
Default: 1
of_wt_alpha
Type: Double
Description: parameter alpha of WT KEDF.
Default: \(5/6\)
of_wt_beta
Type: Double
Description: parameter beta of WT KEDF.
Default: \(5/6\)
of_wt_rho0
Type: Double
Description: the average density of system, in Bohr^3.
Default: 0
of_hold_rho0
Type: Boolean
Description: If set to 1, the rho0 will be fixed even if the volume of system has changed, it will be set to 1 automatically if of_wt_rho0 is not zero.
Default: 0
of_read_kernel
Type: Boolean
Description: If set to 1, the kernel of WT KEDF will be filled from file of_kernel_file, not from formula. Only usable for WT KEDF.
Default: 0
of_kernel_file
Type: String
Description: The name of WT kernel file.
Default: WTkernel.txt
of_full_pw
Type: Boolean
Description: If set to 1, ecut will be ignored while collecting planewaves, so that all planewaves will be used in FFT.
Default: 1
of_full_pw_dim
Type: Integer
Description: If of_full_pw = 1, the dimension of FFT will be restricted to be (0) either odd or even; (1) odd only; (2) even only. Note that even dimensions may cause slight errors in FFT. It should be ignorable in ofdft calculation, but it may make Cardinal Bspline interpolation unstable, so set
of_full_pw_dim = 1
ifnbspline != 1
.Default: 0
Electric field and dipole correction
These variables are relevant to electric field and dipole correction
efield_flag
Type: Boolean
Description: If set to true, a sawlike potential simulating an electric field is added to the bare ionic potential.
Default: false
dip_cor_flag
Type: Boolean
Description: If dip_cor_flag == true and efield_flag == true, a dipole correction is also added to the bare ionic potential. If you want no electric field, parameter efield_amp should be zero. Must be used ONLY in a slab geometry for surface calculations, with the discontinuity FALLING IN THE EMPTY SPACE.
Default: false
efield_dir
Type: Integer
Description: The direction of the electric field or dipole correction is parallel to the reciprocal lattice vector, so the potential is constant in planes defined by FFT grid points, efield_dir = 0, 1 or 2. Used only if efield_flag == true.
Default: 2
efield_pos_max
Type: Real
Description: Position of the maximum of the sawlike potential along crystal axis efield_dir, within the unit cell, 0 < efield_pos_max < 1. Used only if efield_flag == true.
Default: 0.5
efield_pos_dec
Type: Real
Description: Zone in the unit cell where the sawlike potential decreases, 0 < efield_pos_dec < 1. Used only if efield_flag == true.
Default: 0.1
efield_amp
Type: Real
Description: Amplitude of the electric field, in Hartree a.u.; 1 a.u. = 51.4220632*10^10 V/m. Used only if efield_flag == true. The sawlike potential increases with slope efield_amp in the region from (efield_pos_max+efield_pos_dec1) to (efield_pos_max), then decreases until (efield_pos_max+efield_pos_dec), in units of the crystal vector efield_dir. Important: the change of slope of this potential must be located in the empty region, or else unphysical forces will result.
Default: 0.0
Gate field (compensating charge)
These variables are relevant to gate field (compensating charge)
gate_flag
Type: Boolean
Description: In the case of charged cells, setting gate_flag == true represents the addition of compensating charge by a charged plate, which is placed at zgate. Note that the direction is specified by efield_dir.
Default: false
zgate
Type: Real
Description: Specify the position of the charged plate in units of the unit cell (0 <= zgate < 1).
Default: 0.5
block
Type: Boolean
Description: Add a potential barrier to the total potential to avoid electrons spilling into the vacuum region for electron doping. Potential barrier is from block_down to block_up and has a height of block_height. If dip_cor_flag == true, efield_pos_dec is used for a smooth increase and decrease of the potential barrier.
Default: false
block_down
Type: Real
Description: Lower beginning of the potential barrier in units of the unit cell size (0 <= block_down < block_up < 1).
Default: 0.45
block_up
Type: Real
Description: Upper beginning of the potential barrier in units of the unit cell size (0 <= block_down < block_up < 1).
Default: 0.55
block_height
Type: Real
Description: Height of the potential barrier in Rydberg.
Default: 0.1
Exact Exchange
These variables are relevant when using hybrid functionals
exx_hybrid_alpha
Type: Real
Description: fraction of Fock exchange in hybrid functionals, so that \(E_{X}=\alpha F_{X}+(1\alpha)E_{X,LDA/GGA}\)
Default: 0.25
exx_hse_omega
Type: Real
Description: rangeseparation parameter in HSE functional, such that \(1/r=erfc(\omega r)/r+erf(\omega r)/r\).
Default: 0.11
exx_separate_loop
Type: Boolean
Description: There are two types of iterative approaches provided by ABACUS to evaluate Fock exchange. If this parameter is set to 0, it will start with a GGALoop, and then HybridLoop, in which EXX Hamiltonian \(H_{exx}\) is updated with electronic iterations. If this parameter is set to 1, a twostep method is employed, i.e. in the inner iterations, density matrix is updated, while in the outer iterations, \(H_{exx}\) is calculated based on density matrix that converges in the inner iteration.
Default: 1
exx_hybrid_step
Type: Integer
Description: This variable indicates the maximal electronic iteration number in the evaluation of Fock exchange.
Default: 100
exx_lambda
Type: Real
Description: It is used to compensate for divergence points at G=0 in the evaluation of Fock exchange using lcao_in_pw method.
Default: 0.3
exx_pca_threshold
Type: Real
Description: To accelerate the evaluation of fourcenter integrals (\(ikjl\)), the product of atomic orbitals are expanded in the basis of auxiliary basis functions (ABF): \(\Phi_{i}\Phi_{j}\sim C^{k}_{ij}P_{k}\). The size of the ABF (i.e. number of \(P_{k}\)) is reduced using principal component analysis. When a large PCA threshold is used, the number of ABF will be reduced, hence the calculation becomes faster. However, this comes at the cost of computational accuracy. A relatively safe choice of the value is 1e4.
Default: 0
exx_c_threshold
Type: Real
Description: See also the entry exx_pca_threshold. Smaller components (less than exx_c_threshold) of the \(C^{k}_{ij}\) matrix are neglected to accelerate calculation. The larger the threshold is, the faster the calculation and the lower the accuracy. A relatively safe choice of the value is 1e4.
Default: 0
exx_v_threshold
Type: Real
Description: See also the entry exx_pca_threshold. With the approximation \(\Phi_{i}\Phi_{j}\sim C^{k}_{ij}P_{k}\), the fourcenter integral in Fock exchange is expressed as \((ikjl)=\Sigma_{a,b}C^{a}_{ij}V_{ab}C^{b}_{kl}\), where \(V_{ab}=(P_{a}P_{b})\) is a doublecenter integral. Smaller values of the V matrix can be truncated to accelerate calculation. The larger the threshold is, the faster the calculation and the lower the accuracy. A relatively safe choice of the value is 0, i.e. no truncation.
Default: 0
exx_dm_threshold
Type: Real
Description: The Fock exchange can be expressed as \(\Sigma_{k,l}(ikjl)D_{kl}\) where D is the density matrix. Smaller values of the density matrix can be truncated to accelerate calculation. The larger the threshold is, the faster the calculation and the lower the accuracy. A relatively safe choice of the value is 1e4.
Default: 0
exx_schwarz_threshold
Type: Real
Description: In practice the fourcenter integrals are sparse, and using CauchySchwartz inequality, we can find an upper bound of each integral before carrying out explicit evaluations. Those that are smaller than exx_schwarz_threshold will be truncated. The larger the threshold is, the faster the calculation and the lower the accuracy. A relatively safe choice of the value is 1e5.
Default: 0
exx_cauchy_threshold
Type: Real
Description: In practice the Fock exchange matrix is sparse, and using CauchySchwartz inequality, we can find an upper bound of each matrix element before carrying out explicit evaluations. Those that are smaller than exx_cauchy_threshold will be truncated. The larger the threshold is, the faster the calculation and the lower the accuracy. A relatively safe choice of the value is 1e7.
Default: 0
exx_ccp_threshold
Type: Real
Description: It is related to the cutoff of onsite Coulomb potentials, currently not used.
Default: 1e8
exx_ccp_rmesh_times
Type: Real
Description: This parameter determines how many times larger the radial mesh required for calculating Columb potential is to that of atomic orbitals. For HSE1, setting it to 1 is enough. But for PBE0, a much larger number must be used.
Default: 10
exx_distribute_type
Type: String
Description: When running in parallel, the evaluation of Fock exchange is done by distributing atom pairs on different threads, then gather the results. exx_distribute_type governs the mechanism of distribution. Available options are
htime
,order
,kmean1
andkmeans2
.order
is where atom pairs are simply distributed by their orders.hmeans
is a distribution where the balance in time is achieved on each processor, hence if the memory is sufficient, this is the recommended method.kmeans1
andkmeans2
are two methods where the kmeans clustering method is used to reduce memory requirement. They might be necessary for very large systems.Default:
htime
exx_opt_orb_lmax
Type: Integer
Description: See also the entry dft_functional. This parameter is only relevant when dft_functional=
opt_orb
. The radial part of optABFs are generated as linear combinations of spherical Bessel functions. exx_opt_orb_lmax gives the maximum l of the spherical Bessel functions. A reasonable choice is 2.Default: 0
exx_opt_orb_ecut
Type: Real
Description: See also the entry dft_functional. This parameter is only relevant when dft_functional=
opt_orb
. A plane wave basis is used to optimize the radial ABFs. This parameter thus gives the cutoff of plane wave expansion, in Ry. A reasonable choice is 60.Default: 0
exx_opt_orb_tolerence
Type: Real
Description: See also the entry dft_functional. This parameter is only relevant when dft_functional=
opt_orb
. exx_opt_orb_tolerence determines the threshold when solving for the zeros of spherical Bessel functions. A reasonable choice is 1e12.Default: 0
exx_real_number
Type: Boolen
Description: If set to 1, it will enforce LIBRI to use
double
data type, otherwise, it will enforce LIBRI to usecomplex
data type. The default value depends on the gamma_only option.Default: 1 if gamma_only else 0
Molecular dynamics
These variables are used to control the molecular dynamics calculations.
md_type
Type: Integer
Description: control the algorithm to integrate the equation of motion for md. When
md_type
is set to 0,md_thermostat
is used to specify the thermostat based on the velocity Verlet algorithm.1: FIRE method to relax;
0: velocity Verlet algorithm (default: NVE ensemble);
1: NoseHoover style nonHamiltonian equations of motion;
2: NVT ensemble with Langevin method;
4: MSST method;
Note: when md_type is set to 1, md_tfreq is required to stablize temperature. It is an empirical parameter whose value is systemdependent, ranging from 1/(40*md_dt) to 1/(100*md_dt). An improper choice of its value might lead to failure of job.
Default: 1
md_thermostat
Type: String
Description: specify the thermostat based on the velocity Verlet algorithm (useful when
md_type
is set to 0).nve: NVE ensemble.
anderson: NVT ensemble with Anderson thermostat, see the parameter
md_nraise
.berendsen: NVT ensemble with Berendsen thermostat, see the parameter
md_nraise
.rescaling: NVT ensemble with velocity Rescaling method 1, see the parameter
md_tolerance
.rescale_v: NVT ensemble with velocity Rescaling method 2, see the parameter
md_nraise
.
Default: NVE
md_nstep
Type: Integer
Description: the total number of md steps.
Default: 10
md_restart
Type: Boolean
Description: to control whether restart md.
0: When set to 0, ABACUS will calculate md normally.
1: When set to 1, ABACUS will calculate md from the last step in your test before.
Default: 0
md_dt
Type: Real
Description: This is the time step(fs) used in md simulation.
Default: 1.0
md_tfirst, md_tlast
Type: Real
Description: This is the temperature (K) used in md simulation. The default value of md_tlast is md_tfirst. If md_tlast is set to be different from md_tfirst, ABACUS will automatically change the temperature from md_tfirst to md_tlast.
Default: No default
md_dumpfreq
Type: Integer
Description: This is the frequency to dump md information.
Default: 1
md_restartfreq
Type: Integer
Description: This is the frequency to output restart information.
Default: 5
md_seed
Type: Integer
Description:
md_seed < 0: No srand() in MD initialization.
md_seed >= 0: srand(md_seed) in MD initialization.
Default: 1
md_tfreq
Type: Real
Description: control the frequency of the temperature oscillations during the simulation. If it is too large, the temperature will fluctuate violently; if it is too small, the temperature will take a very long time to equilibrate with the atomic system.
Default: 1/40/md_dt
md_tchain
Type: Integer
Description: number of thermostats coupled with the particles in the Nose Hoover Chain method.
Default: 1
md_pmode
Type: String
Description: specify the NVT or NPT ensemble based on the NoseHoover style nonHamiltonian equations of motion.
none: NVT ensemble.
iso: NPT ensemble with isotropic cetl fluctuations.
aniso: NPT ensemble with anisotropic cetl fluctuations.
tri: NPT ensemble with nonorthogonal (triclinic) simulation box.
Default: none
md_pcouple
Type: String
Description: the coupled lattice vectors will scale proportionally.
none: three lattice vectors scale independently.
xyz: lattice vectors x, y, and z scale proportionally.
xy: lattice vectors x and y scale proportionally.
xz: lattice vectors x and z scale proportionally.
yz: lattice vectors y and z scale proportionally.
Default: none
md_pfirst, md_plast
Type: Real
Description: This is the target pressure (KBar) used in npt ensemble simulation, the default value of
md_plast
ismd_pfirst
. Ifmd_plast
is set to be different frommd_pfirst
, ABACUS will automatically change the target pressure frommd_pfirst
tomd_plast
.Default: No default
md_pfreq
Type: Real
Description: control the frequency of the pressure oscillations during the NPT ensemble simulation. If it is too large, the pressure will fluctuate violently; if it is too small, the pressure will take a very long time to equilibrate with the atomic system.
Default: 1/400/md_dt
md_pchain
Type: Integer
Description: number of thermostats coupled with the barostat in the Nose Hoover Chain method.
Default: 1
lj_rcut
Type: Real
Description: Cutoff radius for Leonard Jones potential (angstrom).
Default: 8.5 (for He)
lj_epsilon
Type: Real
Description: The value of epsilon for Leonard Jones potential (eV).
Default: 0.01032 (for He)
lj_sigma
Type: Real
Description: The value of sigma for Leonard Jones potential (angstrom).
Default: 3.405 (for He)
pot_file
Type: String
Description: The filename of potential files for CMD such as DP.
Default: graph.pb
msst_direction
Type: Integer
Description: the direction of shock wave for MSST.
Default: 2 (z direction)
msst_vel
Type: Real
Description: the velocity of shock wave (Angstrom/fs) for MSST.
Default: 0.0
msst_vis
Type: Real
Description: artificial viscosity (mass/length/time) for MSST.
Default: 0.0
msst_tscale
Type: Real
Description: reduction in initial temperature (0~1) used to compress volume in MSST.
Default: 0.01
msst_qmass
Type: Real
Description: Inertia of extended system variable. Used only when md_type is 4, you should set a number that is larger than 0. Note that Qmass of NHC is set by md_tfreq.
Default: No default
md_damp
Type: Real
Description: damping parameter (fs) used to add force in Langevin method.
Default: 1.0
md_tolerance
Type: Real
Description: Tolerance for velocity rescaling. Velocities are rescaled if the current and target temperature differ more than
md_tolerance
(Kelvin).Default: 100.0
md_nraise
Type: Integer
Description:
Anderson: the “collision frequency” parameter is given as 1/
md_nraise
;Berendsen: the “rise time” parameter is given in units of the time step: tau =
md_nraise
*md_dt
, somd_dt
/tau = 1/md_nraise
;Rescale_v: every
md_nraise
steps the current temperature is rescaled to the target temperature;
Default: 1
DFT+U correction
These variables are used to control DFT+U correlated parameters
dft_plus_u
Type: Boolean
Description: If set to 1, ABCUS will calculate plus U correction, which is especially important for correlated electron.
Default: 0
orbital_corr
Type: Integer
Description: \(l_1,l_2,l_3,\ldots\) for atom type 1,2,3 respectively.(usually 2 for d electrons and 3 for f electrons) .Specify which orbits need plus U correction for each atom. If set to 1, the correction would not be calculated for this atom.
Default: None
hubbard_u
Type: Real
Description: Hubbard Coulomb interaction parameter U(ev) in plus U correction, which should be specified for each atom unless Yukawa potential is used.
Note : since we only implemented the simplified scheme by Duradev, the ‘U’ here is actually Ueff which is given by hubbard U minus hund J.
Default: 0.0
yukawa_potential
Type: Boolean
Description: whether to use the local screen Coulomb potential method to calculate the values of U and J. If this is set to 1, hubbard_u does not need to be specified.
Default: 0
yukawa_lambda
Type: Real
Description: The screen length of Yukawa potential. Relevant if
yukawa_potential
is set to 1. If left to default, we will calculate the screen length as an average of the entire system. It’s better to stick to the default setting unless there is a very good reason.Default: calculated on the fly.
omc
Type: Integer
Description: The parameter controls what form of occupation matrix control we are using. If set to 0, then no occupation matrix control is performed, and the onsite density matrix will be calculated from wavefunctions in each SCF step. If set to 1, then the first SCF step will use an initial density matrix read from a file named
initial_onsite.dm
, but for later steps, the onsite density matrix will be updated. If set to 2, the same onsite density matrix frominitial_onsite.dm
will be used throughout the entire calculation.
Note : The easiest way to create
initial_onsite.dm
is to run a DFT+U calculation, look for a file namedonsite.dm
in the OUT.prefix directory, and make replacements there. The format of the file is rather straightforward.
Default: 0
vdW correction
These variables are used to control vdWcorrected related parameters.
vdw_method
Type: String
Description: If set to d2 ,d3_0 or d3_bj, ABACUS will calculate corresponding vdW correction, which is DFTD2, DFTD3(0) or DFTD3(BJ) method. And this correction includes energy and forces.
none
means that no vdWcorrected method has been used.Default: none
vdw_s6
Type: Real
Description: This scale factor is to optimize the interaction energy deviations. For DFTD2, it is found to be 0.75 (PBE), 1.2 (BLYP), 1.05 (BP86), 1.0 (TPSS), and 1.05 (B3LYP). For DFTD3, recommended values of this parameter with different DFT functionals can be found on the webpage. The default value of this parameter in ABACUS is set to be the recommended value for PBE.
Default: 0.75 if vdw_method is chosen to be d2; 1.0 if vdw_method is chosen to be d3_0 or d3_bj
vdw_s8
Type: Real
Description: This scale factor is only relevant for D3(0) and D3(BJ) methods. Recommended values of this parameter with different DFT functionals can be found on the webpage. The default value of this parameter in ABACUS is set to be the recommended value for PBE.
Default: 0.722 if vdw_method is chosen to be d3_0; 0.7875 if vdw_method is chosen to be d3_bj
vdw_a1
Type: Real
Description: This damping function parameter is relevant for D3(0) and D3(BJ) methods. Recommended values of this parameter with different DFT functionals can be found on the webpage. The default value of this parameter in ABACUS is set to be the recommended value for PBE.
Default: 1.217 if vdw_method is chosen to be d3_0; 0.4289 if vdw_method is chosen to be d3_bj
vdw_a2
Type: Real
Description: This damping function parameter is only relevant for the DFTD3(BJ) approach. Recommended values of this parameter with different DFT functionals can be found on the webpage. The default value of this parameter in ABACUS is set to be the recommended value for PBE.
Default: 1.0 if vdw_method is chosen to be d3_0; 4.4407 if vdw_method is chosen to be d3_bj
vdw_d
Type: Real
Description: The variable is to control the damping rate of damping function of DFTD2.
Default: 20
vdw_abc
Type: Integer
Description: The variable is to control whether threebody terms are calculated for DFTD3 approaches, including D3(0) and D3(BJ). If set to 1, ABACUS will calculate threebody term, otherwise, the threebody term is not included.
Default: 0
vdw_C6_file
Type: String
Description: This variable is relevant if the user wants to manually set the \(C_6\) parameters in D2 method. It gives the name of the file which contains the list of \(C_6\) parameters for each element.
If not set, ABACUS will use the default \(C_6\) Parameters stored in the program. The default values of \(C_6\) for elements 1_H up to 86_Rn can be found by searching for
C6_default
in the source code. The unit is Jnm6/mol.Otherwise, if user wants to manually set the \(C_6\) Parameters, they should provide a file containing the \(C_6\) parameters to be used. An example is given by:
H 0.1 Si 9.0
Namely, each line contains the element name and the corresponding \(C_6\) parameter.
Default: default
vdw_C6_unit
Type: String
Description: This variable is relevant if the user wants to manually set the \(C_6\) parameters in D2 method. It specified the unit of the supplied \(C_6\) parameters. Allowed values are:
Jnm6/mol
(meaning J·nm^{6}/mol) andeVA
(meaning eV·Angstrom)Default: Jnm6/mol
vdw_R0_file
Type: String
Description: This variable is relevant if the user wants to manually set the \(R_0\) parameters in D2 method. If not set, ABACUS will use the default \(C_6\) Parameters stored in the program. The default values of \(C_6\) for elements 1_H up to 86_Rn can be found by searching for
R0_default
in the source code. The unit is Angstrom.Otherwise, if the user wants to manually set the \(C_6\) Parameters, they should provide a file containing the \(C_6\) parameters to be used. An example is given by:
Li 1.0 Cl 2.0
Namely, each line contains the element name and the corresponding \(R_0\) parameter.
Default: default
vdw_R0_unit
Type: String
Description: This variable is relevant if the user wants to manually set the \(R_0\) parameters in D2 method. It specified the unit of the supplied \(C_6\) parameters. Allowed values are:
A
(meaning Angstrom) andBohr
.Default: A
vdw_cutoff_type
Type: String
Description: When applying VanderWaals correction in periodic systems, a cutoff radius needs to be supplied to avoid infinite summation. In ABACUS, we restrict the range of correction to a supercell centered around the unit cell at origin.
In ABACUS, we provide two ways to determine the extent of the supercell.
When
vdw_cutoff_type
is set toradius
, the supercell is chosen such that it is contained in a sphere centered at the origin. The radius of the sphere is specified byvdw_cutoff_radius
.When
vdw_cutoff_type
is set toperiod
, the extent of the supercell is specified explicitly using keywordvdw_cutoff_period
.Default: radius
vdw_cutoff_radius
Type: Real
Description: If
vdw_cutoff_type
is set toradius
, this variable specifies the radius of the cutoff sphere. For DFTD2, the default value is 56.6918, while for DFTD3, the default value is 95.Default: 56.6918 if vdw_method is chosen to be d2; 95 if vdw_method is chosen to be d3_0 or d3_bj
vdw_radius_unit
Type: String
Description: If
vdw_cutoff_type
is set toradius
, this variable specifies the unit ofvdw_cutoff_radius
. Two values are allowed:A
(meaning Angstrom) andBohr
.Default: Bohr
vdw_cutoff_period
Type: Integer Integer Integer
Description: If vdw_cutoff_type is set to
period
, the three integers supplied here will explicitly specify the extent of the supercell in the directions of the three basis lattice vectors.Default: 3 3 3
vdw_cn_thr
Type: Real
Description: Only relevant for D3 correction. The cutoff radius when calculating coordination numbers.
Default: 40
vdw_cn_thr_unit
Type: String
Description: Unit of the coordination number cutoff. Two values are allowed:
A
(meaning Angstrom) andBohr
.Default: Bohr
Berry phase and wannier90 interface
These variables are used to control berry phase and wannier90 interface parameters.
berry_phase
Type: Boolean
Description: 1, calculate berry phase; 0, not calculate berry phase.
Default: 0
gdir
Type: Integer
Description:
1: calculate the polarization in the direction of the lattice vector a_1 that is defined in STRU file.
2: calculate the polarization in the direction of the lattice vector a_2 that is defined in STRU file.
3: calculate the polarization in the direction of the lattice vector a_3 that is defined in STRU file.
Default: 3
towannier90
Type: Integer
Description: 1, generate files for wannier90 code; 0, no generate.
Default: 0
nnkpfile
Type: String
Description: the file name when you run “wannier90 pp …”.
Default: seedname.nnkp
wannier_spin
Type: String
Description: If nspin is set to 2,
up: calculate spin up for wannier function.
down: calculate spin down for wannier function.
Default: up
TDDFT: time dependent density functional theory
td_scf_thr
Type: Real
Description: Accuracy of electron convergence when doing timedependent evolution.
Default: 1e9
td_dt
Type: Real
Description: Timedependent evolution time step. (fs)
Default: 0.02
td_force_dt
Type: Real
Description: Timedependent evolution force changes time step. (fs)
Default: 0.02
td_vext
Type: Integer
Description:
1: add a laser material interaction (extern laser field).
0: no extern laser field.
Default: 0
td_vext_dire
Type: Integer
Description:
1: the direction of external light field is along x axis.
2: the direction of external light field is along y axis.
3: the direction of external light field is along z axis.
Default: 1
td_timescale
Type: Real
Description: Time range of external electric field application. (fs)
Default: 0.5
td_vexttype
Type: Integer
Description:
1: Gaussiantype light field.
2: Delta function form light field.
3: Trigonometric function form light field.
Default: 1
td_vextout
Type: Integer
Description:
1: Output external electric field.
0: do not Output external electric field.
Default: 0
td_dipoleout
Type: Integer
Description:
1: Output dipole.
0: do not Output dipole.
Default: 0
ocp
Type: Boolean
Description: choose whether calculating constrained DFT or not.
For PW and LCAO codes. if set to 1, occupations of bands will be setting of “ocp_set”.
For TDDFT in LCAO codes. if set to 1, occupations will be constrained since second ionic step.
For OFDFT, this feature can’t be used.
Default:0
ocp_set
Type: string
Description: If ocp is true, the ocp_set is a string to set the number of occupancy, like 1 10 * 1 0 1 representing the 13 band occupancy, 12th band occupancy 0 and the rest 1, the code is parsing this string into an array through a regular expression.
Default: none
td_val_elec_01
Type: Integer
Description: Only useful when calculating the dipole. Specifies the number of valence electron associated with the first element.
Default: 1.0
td_val_elec_02
Type: Integer
Description: Only useful when calculating the dipole. Specifies the number of valence electron associated with the second element.
Default: 1.0
td_val_elec_03
Type: Integer
Description: Only useful when calculating the dipole. Specifies the number of valence electron associated with the third element.
Default: 1.0
Variables useful for debugging
nurse
Type: Boolean
Description: If set to 1, the Hamiltonian matrix and S matrix in each iteration will be written in output.
Default: 0
t_in_h
Type: Boolean
Description: If set to 0, then kinetic term will not be included in obtaining the Hamiltonian.
Default: 1
vl_in_h
Type: Boolean
Description: If set to 0, then local pseudopotential term will not be included in obtaining the Hamiltonian.
Default: 1
vnl_in_h
Type: Boolean
Description: If set to 0, then nonlocal pseudopotential term will not be included in obtaining the Hamiltonian.
Default: 1
vh_in_h
Type: Boolean
Description: If set to 0, then Hartree potential term will not be included in obtaining the Hamiltonian.
Default: 1
vion_in_h
Type: Boolean
Description: If set to 0, then local ionic potential term will not be included in obtaining the Hamiltonian.
Default: 1
test_force
Type: Boolean
Description: If set to 1, then detailed components in forces will be written to output.
Default: 0
test_stress
Type: Boolean
Description: If set to 1, then detailed components in stress will be written to output.
Default: 0
colour
Type: Boolean
Description: If set to 1, output to terminal will have some color.
Default: 0
test_skip_ewald
Type: Boolean
Description: If set to 1, then ewald energy will not be calculated.
Default: 0
Electronic conductivities
Frequencydependent electronic conductivities can be calculated with KuboGreenwood formula[Phys. Rev. B 83, 235120 (2011)].
Onsager coefficiencies:
\(L_{mn}(\omega)=(1)^{m+n}\frac{2\pi e^2\hbar^2}{3m_e^2\omega\Omega}\)
\(\times\sum_{ij\alpha\mathbf{k}}W(\mathbf{k})\left(\frac{\epsilon_{i\mathbf{k}}+\epsilon_{j\mathbf{k}}}{2}\mu\right)^{m+n2} \times \langle\Psi_{i\mathbf{k}}\nabla_\alpha\Psi_{j\mathbf{k}}\rangle^2\)
\(\times[f(\epsilon_{i\mathbf{k}})f(\epsilon_{j\mathbf{k}})]\delta(\epsilon_{j\mathbf{k}}\epsilon_{i\mathbf{k}}\hbar\omega).\)
They can also be computed by \(j\)\(j\) correlation function.
\(L_{mn}=\frac{2e^{m+n2}}{3\Omega\hbar\omega}\Im[\tilde{C}_{mn}(\omega)]\)
\(\tilde{C}_{mn}=\int_0^\infty C_{mn}(t)e^{i\omega t}e^{\frac{1}{2}(\Delta E)^2t^2}dt\)
\(C_{mn}(t)=2\theta(t)\Im\left\{Tr\left[\sqrt{\hat f}\hat{j}_m(1\hat{f})e^{i\frac{\hat{H}}{\hbar}t}\hat{j}_ne^{i\frac{\hat{H}}{\hbar}t}\sqrt{\hat f}\right]\right\}\),
where \(j_1\) is electric flux and \(j_2\) is thermal flux.
Frequencydependent electric conductivities: \(\sigma(\omega)=L_{11}(\omega)\).
Frequencydependent thermal conductivities: \(\kappa(\omega)=\frac{1}{e^2T}\left(L_{22}\frac{L_{12}^2}{L_{11}}\right)\).
DC electric conductivities: \(\sigma = \lim_{\omega\to 0}\sigma(\omega)\).
Thermal conductivities: \(\kappa = \lim_{\omega\to 0}\kappa(\omega)\).
cal_cond
Type: Boolean
Description: If set to 1, electronic conductivities will be calculated. Only supported in calculations of SDFT and KSDFT_PW.
Default: 0
cond_nche
Type: Integer
Description: Chebyshev expansion orders for stochastic Kubo Greenwood. Only used when the calculation is SDFT.
Default: 20
cond_dw
Type: Real
Description: Frequency interval (\(d\omega\)) for frequencydependent conductivities. The unit is eV.
Default: 0.1
cond_wcut
Type: Real
Description: Cutoff frequency for frequencydependent conductivities. The unit is eV.
Default: 10.0
cond_wenlarge
Type: Integer
Description: Control the t interval: dt = \(\frac{\pi}{\omega_{cut}\times\omega enlarge}\)
Default: 10
cond_fwhm
Type: Integer
Description: We use gaussian functions to approximate \(\delta(E)\approx \frac{1}{\sqrt{2\pi}\Delta E}e^{\frac{E^2}{2{\Delta E}^2}}\). FWHM for conductivities, \(FWHM=2*\sqrt{2\ln2}\cdot \Delta E\). The unit is eV.
Default: 0.3
cond_nonlocal
Type: Boolean
Description: Conductivities need to calculate velocity matrix \(\bra{\psi_i}\hat{v}\ket{\psi_j}\) and \(m\hat{v}=\hat{p}+\frac{im}{\hbar}[\hat{V}_{NL},\hat{r}]\). If
cond_nonlocal
is false, \(m\hat{v}\approx\hat{p}\).Default: True
Implicit solvation model
These variables are used to control the usage of implicit solvation model. This approach treats the solvent as a continuous medium instead of individual “explicit” solvent molecules, which means that the solute embedded in an implicit solvent and the average over the solvent degrees of freedom becomes implicit in the properties of the solvent bath.
imp_sol
Type: Boolean
Description: If set to 1, an implicit solvation correction is considered.
Default: 0
eb_k
Type: Real
Description: The relative permittivity of the bulk solvent, 80 for water. Used only if
imp_sol
== true.Default: 80
tau
Type: Real
Description: The effective surface tension parameter, which describes the cavitation, the dispersion, and the repulsion interaction between the solute and the solvent that are not captured by the electrostatic terms. The unit is \(Ry/Bohr^{2}\).
Default: 1.0798e05
sigma_k
Type: Real
Description: We assume a diffuse cavity that is implicitly determined by the electronic structure of the solute.
sigma_k
is the parameter that describes the width of the diffuse cavity.Default: 0.6
nc_k
Type: Real
Description: It determines at what value of the electron density the dielectric cavity forms. The unit is \(Bohr^{3}\).
Default: 0.00037