-
-
suffix | ntype | calculation | dft_functional | pseudo_type | npool | symmetry | pseudo_rcut | renormwithmesh | nelec | tot_magnetization | mem_saver | latname | start_wfc | seed | start_charge | start_pot | set_vel | diago_proc
-
Variables related to input files
atom_file | kpoint_file | pseudo_dir | orbital_dir | read_file_dir
-
ecutwfc | nx,ny,nz | ethr | diago_cg_maxiter | diago_david_ndim
-
Numerical atomic orbitals related variables
nb2d | lmaxmax | lcao_ecut | lcao_dk | lcao_dr | lcao_rmax | search_radius | search_pbc
-
basis_type | ks_solver | nbands | nbands_istate | nspin | occupations | smearing | sigma | mixing_type | mixing_beta | mixing_ndim | mixing_gg0 | gamma_only | printe | niter | dr2 | charge_extrap
-
nstep | force | force_thr | force_thr_ev | force_set | bfgs_w1 | bfgs_w2 | trust_radius_max | trust_radius_min | trust_radius_ini | stress | stress_thr | press | fixed_axes | move_method | cg_threshold | cell_factor
-
Variables related to program output
mulliken | out_charge | out_potential | out_dm | out_wf | out_lowf | out_dos | out_band | out_stru | out_level | out_alllog | out_hs | out_r | out_hs2
-
Exact exchange (under tests)
exx_hybrid_type | 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_potential | md_rstmd | md_dt | md_t | md_qmass | md_dumpmdfred | md_fixtemperature | NVT_control | NVT_tau | MNHC | md_ediff | md_ediffg | rcut_lj | epsilon_lj | sigma_lj
-
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_model | vdw_radius | vdw_radius_unit | vdw_cn_radius | vdw_cn_radius_unit | vdw_period
-
Berry phase and wannier90 interface
berry_phase | gdir | towannier90 | nnkpfile | wannier_spin | tddft vext | vext_dire
-
Variables useful for debugging
nurse | t_in_h | vl_in_h | vnl_in_h | test_force | test_stress | colour | new_dm | test_just_neighbor
-
Below is an example INPUT file with some of the most important parameters that need to be set:
INPUT_PARAMETERS
#Parameters (General)
ntype 1
nbands 4
#Parameters (Accuracy)
ecutwfc 60
Parameters list starts with key word INPUT_PARAMETERS
. Any content before INPUT_PARAMETERS
will be ignored.
Any line starting with #
or /
will also be ignored.
Each parameter value is provided by specifying the name of the input variable and then putting the value after the name, separated by one or more blank characters(space or tab). The following characters(≤ 150) in the same line will be neglected.
Depending on the input variable, the value may be an integer, a real number or a string. The parameters can be given in any order, but only one parameter should be given per line.
Furthermore, if a given parameter name appeared more than once in the input file, only the last value will be taken.
Note: if a parameter name is not recognized by the program, the program will stop with an error message.
In the above example, the meanings of the parameters are:
- ntype : how many types of elements in the unit cell
- nbands : the number of bands to be calculated
- ecutwfc : the plane-wave energy cutoff for the wave function expansion (UNIT: Rydberg)
This part of variables are used to control general system parameters.
-
- 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
-
- Type: Integer
- Description: Number of different atom species in this calculations. This value must be set. If the number you set is smaller than the atom species in the STRU file, ABACUS only read the ‘wrong number’ of atom information. If the number is larger than the atom species in the STRU file, ABACUS may stop and quit.
- Default: No default value
-
-
Type: String
-
Description: Specify the type of calculation.
- scf: do self-consistent electronic structure calculation
- relax: do structure relaxation calculation, one can ues ‘nstep’ to decide how many ionic relaxations you want.
- cell-relax: do cell relaxation calculation.
- nscf: do the non self-consistent electronic structure calculations. For this option, you need a charge density file. For nscf calculations with planewave basis set, ethr should be <= 1d-3.
- istate: Please see the explanation for variable
nbands_istate
. - ienvelope: Please see the explanation for variable
nbands_istate
. - md: molecular dynamics
Note: istate and ienvelope only work for LCAO basis set and are not working right now.
-
Default: scf
-
-
-
Type: String
-
Description: In our package, the XC functional can either be set explicitly using the dft_functional keyword as explained below, or set implicitly according to the XC functional information read from pseudopotential file. The user should ensure that the XC functional set in the INPUT file and the pseudopotential file are consistent. If more than one element is present in the system, make sure all of pseudopotentials have the same XC functional. Currently only LDA and GGA are supported.
To be specific, we briefly explain the format of the pseudopotential file and the key information it contains. There are a few lines in Si’s GGA pseudopotential file Si_ONCV_PBE-1.0.upf:
... <PP_HEADER generated="Generated using ONCVPSP code by D. R. Hamann" author="Martin Schlipf and Francois Gygi" date="150105" comment="" element="Si" pseudo_type="NC" relativistic="scalar" is_ultrasoft="F" is_paw="F" is_coulomb="F" has_so="F" has_wfc="F" has_gipaw="F" core_correction="F" functional="PBE" z_valence=" 4.00" total_psenergy=" -3.74274958433E+00" rho_cutoff=" 6.01000000000E+00"
Possible values of this variable are:
- none: the functional is specified implicity by the input pseudopotential file
- lda: Perdew-Zunger local density approximation
- pbe: Perdew-Burke-Ernzerhof general gradient approximation
If the functional specified by the user is not consistent with the pseudopotential file, the program will stop with an error message.
-
Default: none
-
-
- Type: String
- Description: the format of pseudopotential files. Accepted value s are:
- upf : .UPF format
- vwr : .vwr format
- upf201 : the new UPF format
- blps : bulk local pseudopotential
- Default : upf
-
- Type: Integer
- Description: devide all processors into npool 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
-
- Type: Integer
- Description: takes value 0 and 1, if set to 1, symmetry analysis will be performed to determine the type of Bravais lattice and associated symmetry operations.
- Default: 0
-
- Type: Real
- Description: Cut-off of radial integration for pseudopotentials, in Bohr.
- Default: 15
-
- 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
-
- Type: Real
- Description: If >0.0, this denotes 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
-
- Type: Real
- Description: Total magnetization of the system.
- Default: 0.0
-
- 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
-
- Type: String
- Description: Specifies the type of Bravias lattice. When set to "test", the three lattice vectors are supplied explicitly in STRU file. When set to 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:
- "test": free strcture.
- "sc": simple cubie.
- "fcc": face-centered cubic.
- "bcc": body-centered cubic.
- "hexagonal": hexagonal.
- "trigonal": trigonal.
- "st": simple tetragonal.
- "bct": body-centered tetragonal.
- "so": orthorhombic.
- "baco": base-centered orthorhombic.
- "fco": face-centered orthorhombic.
- "bco": body-centered orthorhombic.
- "sm": simple monoclinic.
- "bacm": base-centered monoclinic.
- "triclinic": triclinic.
- Default: "test"
-
- 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 pseudo-wavefunctions
- "file": from file
- "random": random numbers
- Default:"atomic"
-
- Type: Integer
- Description: Only useful for plane wave basis only now. It is the random seed to initialize wave functions. Only positive integers are avilable.
- Default:0
-
- 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 this to ‘atomic’, the density is starting from summation of atomic density of single atoms. If set this to ‘file’, the density will be read in from file. Besides, when you do ‘nspin=1’ calculation, you only need the density file SPIN1_CHGCAR. However, if you do ‘nspin=2’ calculation, you also need the density file SPIN2_CHGCAR. The density file should be output with these names if you set out_charge = 1 in INPUT file.
- Default:atomic
-
- Type: String
- Description: It indicates the type of starting potential. If set this to ‘atomic’, the density is starting from summation of atomic potentials of single atoms. If set this to ‘file’, the density will be read in from file.
- Default: atomic
-
- Type: Boolean
- Description: Read the atom velocity from the atom file (STRU) if set to true.
- Default: false
-
- Type: Integer
- Descrption: 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 same as 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 leaving it to default value.
- Default: 0
This part of variables are used to control input files related parameters.
-
- Type: String
- Description: This parameter specifies the name of structure file which contains various information about atom species, including pseudopotential files, local orbitals files, cell information, atom positions, and whether atoms should be allowed to move.
- Default: STRU
-
- Type: String
- Description: This parameter specifies the name of k-points file. Note that if you use atomic orbitals as basis, and you only use gamma point, you don’t need to have k-point file in your directory, ABACUS will automatically generate ‘KPT’ file. Otherwise, if you use more than one k-point, please do remember the algorithm in ABACUS is different for gamma only and various k-point dependent simulations. So first you should turn off the k-point algorithm by set
gamma_only = 0
inINPUT
and then you should setup your own k-points file. - Default: KPT
-
- Type: String
- Description: This parameter specifies pseudopotential directory.
- Default: ./
-
- Type: String
- Description: This parameter specifies orbital file directory.
- Default: ./
-
- Type: String
- Description: when the program needs to read files such as electron density(
SPIN1_CHG
) as a starting point, this variables tells the location of the files. For example, './' means the file is located in the working directory. - Default: OUT.$suffix
This part of variables are used to control the plane wave related parameters.
-
- 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 cutoff, so this set of localize orbitals are most accurate under this same plane wave energy cutoff.
- Default: 50
-
- Type: Integer
- Description: If set to a positive number, then the three variables specify the numbers of FFT grid points in x, y, z directions, respectively. If set to 0, the number will be calculated from ecutwfc.
- Default: 0
-
- Type: Real
- Description: Only used when you use diago_type = cg or diago_type = david. It indicates the threshold for the first electronic iteration, from the second iteration the ethr will be updated automatically. For nscf calculations with planewave basis set, ethr should be <= 1d-3.
- Default: 0.01
-
- Type: Integer
- Description: Only useful when you use ks_solver = cg or ks_solver = dav. It indicates the maximal iteration number for cg/david method.
- Default: 40
-
- Type: Integer
- Description: Only useful when you use ks_solver = dav. It indicates the maximal dimension for the Davidson method.
- Default: 10
This part of variables are used to control the numerical atomic orbitals related parameters.
-
- Type: Integer
- Description: In LCAO calculations, we arrange the total number of processors in an 2D array, so that we can partition the wavefunction matrix (number of bands*total size of atomic orbital basis) and distribute them in this 2D array. When the system is large, we group processors into sizes of nb2d, so that multiple processors take care of one row block (a group of atomic orbitals) in the wavefunction matrix. If set to 0, nb2d will be automatically set in the program according to the size of atomic orbital basis:
- if size <= 500 : nb2d = 1
- if 500 < size <= 1000 : nb2d = 32
- if size > 1000 : nb2d = 64;
- Default: 0
-
- Type: Integer
- Description: If not equals to 2, then the maximum l channels on LCAO is set to lmaxmax. If 2, then the number of l channels will be read from the LCAO data sets. Normally no input should be supplied for this variable so that it is kept as its default.
- Default: 2.
-
- Type: Real
- Description: Energy cutoff when calculating LCAO two-center integrals. In Ry.
- Default: 50
-
- Type: Real
- Description: Delta k for 1D integration in LCAO
- Default: 0.01
-
- Type: Real
- Description: Delta r for 1D integration in LCAO
- Default: 0.01
-
- Type: Real
- Description: Max R for 1D two-center integration table
- Default: 30
-
- Type: Real
- Description: Set the search radius for finding neighbouring atoms. If set to -1, then the radius will be set to maximum of projector and orbital cut-off.
- Default: -1
-
- Type: Boolean
- Description: In searching for neighbouring atoms, if set to 1, then periodic images will also be searched. If set to 0, then periodic images will not be searched.
- Default: 1
This part of variables are used to control the electronic structure and geometry relaxation calculations.
-
- Type: String
- Description: This is very important parameters to choose basis set in ABACUS.
- pw: Using plane-wave basis set only.
- lcao_in_pw: Expand the localized atomic set in plane-wave basis.
- lcao: Using localized atomic orbital sets.
- Default: pw
-
-
Type: String
-
Description: It’s about choice of diagonalization methods for hamiltonian matrix expanded in a certain basis set.
For plane-wave 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.
- hpseps: old method, still used.
- lapack: lapack can be used for localized orbitals, but is only used for single processor.
If you set ks_solver=‘hpseps’ for basis_type=‘pw’, the program will be stopped with an error message:
hpseps can not be used with plane wave basis.
Then the user has to correct the input file and restart the calculation.
-
Default: cg (pw) or genelpa (lcao)
-
-
- 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 (nspin=1): 1.2*occupied_bands, occupied_bands+10)
- Default (nspin=2): max(1.2*nelec, nelec+20)
-
- Type: Integer
- Description: Only used when
calculation = ienvelope
orcalculation = 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 and Φμ 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 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_lowf = 1
. - Default: 5
-
- 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
-
- Type: String
- Description: Specifies how to calculate the occupations of bands. Available options are:
- 'smearing' : gaussian smearing for metals; see also variables
smearing
andsigma
. - 'tetrahedra' : Tetrahedron method, Bloechl's version: P.E. Bloechl, PRB 49, 16223 (1994). Requires a uniform grid of k-points that are automatically generated. Well suited for calculation of DOS, less so (because not variational) for force/optimization/dynamics calculations.
- 'fixed' : for insulators with a gap
- 'smearing' : gaussian smearing for metals; see also variables
- Default: 'smearing'
-
- 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 methfessel-paxton smearing method. The method recommends for metals.
- Default: fixed
-
- Type: Real
- Description: energy range for smearing, the unit is Rydberg.
- Default: 0.001
-
- 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.
- pulay-kerker:
- Default: pulay
-
- Type: Real
- Description: mixing parameter: 0 means no new charge
- Default: 0.7
-
- Type: Integer
- Description: It indicates the mixing dimensions in Pulay, Pulay method use the density from previous mixing_ndim steps and do a charge mixing based on these density.
- Default: 8
-
- Type: Real
- Description: used in pulay-kerker mixing method
- Default: 1.5
-
- Type: Integer
- Description: It is an important parameter only to be used 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 k-points file. If you set gamma_only = 0, more than one k-point is used and the ABACUS is slower compared to gamma only algorithm.
- Default: 0
-
- Type: Integer
- Description: Print out energy for each band for every printe steps
- Default: 100
-
- Type: Integer
- Description:This variable indicates the maximal iteration number for electronic iterations.
- Default: 40
-
- 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 1e-6 may be accurate enough.
- Default:1e-06
-
- Type: String
- Description: Methods to do extrapolation of density when ABACUS is doing geometry relaxations.
- atomic: atomic extrapolation
- first-order: first-order extrapolation
- second-order: second-order extrapolation
- Default:atomic
This part of variables are used to control the geometry relaxation.
-
- Type: Integer
- Description: The maximal number of ionic iteration steps, the minimal value is 1.
- Default: 1
-
- 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
-
- 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
-
- 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 recommendation value for using atomic orbitals is 0:04 eV/Angstrom.
- Default: 0.01 eV/Angstrom
-
- Type: Integer
- Description: Determines whether to output the force_set into a file named
Force.dat
or not. If 1, then force will be written; if 0, then the force will not be written. - Default: 0
-
- Type: Real
- Description: This variable controls the Wolfe condition for BFGS algorithm used in geometry relaxation. You can look into paper Phys.Chem.Chem.Phys.,2000,2,2177 for more information.
- Default: 0.01
-
- Type: Real
- Description: This variable controls the Wolfe condition for BFGS algorithm used in geometry relaxation. You can look into paper Phys.Chem.Chem.Phys.,2000,2,2177 for more information.
- Default: 0.5
-
- 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
-
- 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: 1e-5
-
- 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.5
-
- 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.
- Default: 0
-
- Type: Real
- Description: The threshold of the stress convergence, it indicates the largest stress among all the directions, the unit is KBar,
- Default: 10
-
- Type: Real
- Description: the external pressures along three axes,the compressive stress is taken to be positive, the unit is KBar.
- Default: 0
-
- Type: String
- Description:which axes are fixed when do cell relaxation. Possible choices are:
- None : default; all can relax
- volume : relaxation with fixed volume
- 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
- abc : fix all three axes during relaxation
- Default: None
-
- Type: String
- Description: The method to do geometry optimizations. If set to bfgs, using BFGS algorithm. If set to cg, using cg algorithm. If set to sd, using steepest-descent lgorithm.
- Default: cg
-
- Type: Real
- Description: When move-method is set to 'cg-bfgs', a mixed cg-bfgs algorithm is used. The ions first move according to cg method, then switched to bfgs when maximum of force on atoms is reduced below cg-threshold. Unit is eV/Angstrom.
- Default: 0.5
-
- 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
This part of variables are used to control the output of properties.
-
- Type: Integer
- Description: If set to 1, ABACUS will output the Mulliken population analysis result. The name of the output file is mulliken.txt
- Default: 0
-
- Type: Integer
- Description: If set to 1, ABACUS will output the charge density on real space grid. The name of the density file 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 finally x (x is moving fastest).
- Default: 0
-
- Type: Integer
- Description: If set to 1, ABACUS will output the local potential on real space grid. The name of the file is SPIN1_POT and SPIN2_POT (if nspin = 2). If set to 2, ABACUS will output the electrostatic potential on real space grid. The name of the file is ElecStaticPot and ElecStaticP ot_AV E (along the z-axis).
- Default: 0
-
- 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 file is SPIN1_DM and SPIN2_DM in the output directory.
- Default: 0
-
- Type: Integer
- Description: Only used in planewave basis set. When set this variable to 1, it outputs the coefficients of wave functions into text files. The file names are WAVEFUNC$K.txt, where $K is the index of k point. When set this variable to 2, results are stored in binary files. The file names are WAVEFUNC$K.dat.
- Default: 0
-
- Type: Integer
- Description: Only used in localized orbitals set. If set to 1, ABACUS will output the wave functions coefficients.
- Default: 0
-
- Type: Integer
- Description: Controls whether to output the density of state (DOS). For more information, refer to the worked example.
- Default: 0
-
- Type: Integer
- Description: Controls whether to output the band structure. For mroe information, refer to the worked example
- Default: 0
-
- Type: Boolean
- Description: If set to 1, then tje structure files will be written after each ion step
- Default: 0
-
- Type: String
- Description: Controls the level of output. "ie" means write output at electron level; "i" means write additional output at ions level.
- Default: ie
-
- Type: Integer
- Description: determines whether to write log from all ranks in an MPI run. If set to be 1, then each rank will write detained running information to a file named running_${calculation}_(${rank}+1).log. If set to 0, log will only be written from rank 0 into a file named running_${calculation}.log.
- Default: 0
-
- Type: Boolean
-
Description: Only for LCAO calculations. When set to 1, ABACUS will generate two files
data-H
anddata-S
that store the Hamiltonian and S matrix in k space, respectively. - Default: 0
-
- Type: Boolean
-
Description: Only for LCAO and not gamma_only calculations. When set to 1, ABACUS will generate a file with name staring with
data-rR-tr
which stores overlap matrix as a function of R, in units of lattice vectors. - Default: 0
-
- Type: Boolean
-
Description: Only for LCAO and not gamma_only calculations. When set to 1, ABACUS will generate two files starting with
data-HR-sparse
anddata-SR-sparse
that store the Hamiltonian and S matrix in real space, respectively, as functions of R, in units of lattice vectors. - Default: 0
This part of variables are used to control the calculation of DOS.
-
- Type: Real
- Description: controls the step size in writing DOS (in eV).
- Default: 0.1
-
- Type: Real
- Description: controls the width of Gaussian factor when obtaining smeared DOS (in eV).
- Default: 0.07
-
- Type: Real
- Description: the energy range of dos output is given by (emax-emin)*(1+dos_scale), centered at (emax+emin)/2.
- Default: 0.01
This part of variables are used to control the addition of an external electric field. It is achieved by adding a saw-like potential to the local ionic potential.
-
- Type: Bool
- Description: Controls whether to add the external electric field. When set to 1, the electric field is turned on. When set to 0, there is no electric field.
- Default: 0.
-
- Type: Integer
- Description: Tells which reciprocal lattice vector the external electric field aligns with. Allowed values are 1,2, and 3, corresponding to the three reciprocal lattice vectors respectively.
- Default: 1
-
- Type: Real
- Description: Position of the maximum of the saw-like potential along the reciprocal lattice vector specified by edir, 0 < emaxpos < 1.
- Default: 0.5
-
- Type: Real
- Description: The saw-like potential increases in the region from
(emaxpos+eopreg-1)
to(emaxpos)
, then decreases to 0 until (emaxpos+eopreg), in units of the crystal vectoredir
. Important: the change of slope of this potential must be located in the empty region, or else unphysical forces will result. - Default: 0.1
-
- Type: Real
- Description: Amplitude of the electric field, in atomic unit: 1 a.u. = 51.4220632*10^10 V/m.
- Default: 0.001
This part of variables are used to control the usage of DeePKS method (a comprehensive data-driven approach to improve accuracy of DFT).
-
- Type: Bool
- 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
- Default: 0
-
- Type: Integer
- Description: control the max angular momentum of descriptor basis.
- Default: 0
-
- Type: Bool
- Description: only when deepks is enabled in
LCAO
calculation can this variable set to 1. Then, a trained, traced model file is needed for self-consistant field iteration in DeePKS method. - Default: 0
-
- Type: String
- Description: the path of the trained, traced NN model file (generated by deepks-kit). used when deepks_scf is set to 1.
- Default: None
This part of variables are relevant when using hybrid functionals
-
-
Type: String
-
Description: Type of hybrid functional used. Options are "hf" (pure Hartree-Fock), "pbe0"(PBE0), "hse" (Note: in order to use HSE functional, LIBXC is required).
If set to "no", then no hybrid functional is used (i.e.,Fock exchange is not included.)
If set to "opt_orb", the program will not perform hybrid functional calculation. Instead, it is going to generate opt-ABFs as discussed in this article.
-
Default: "no"
-
-
- Type: Real
- Description: fraction of Fock exchange in hybrid functionals, so that EX=αFX+(1-α)E_X,LDA/GGA
- Default: 0.25
-
- Type:
- Description: range-separation parameter in HSE functional, such that 1/r=erfc(ωr)/r+erf(ωr)/r.
- Default: 0.11
back to top adial integration for pseudopotentials, in Bohr. @@ -214,6 +279,13 @@ This part of variables are used to control general system para
- Default: 0.3
-
- Type: Real
- Description: To accelerate the evaluation of four-center integrals (ik|jl), the product of atomic orbitals are expanded in the basis of auxiliary basis functions (ABF): φiφj~CkijPk. The size of the ABF (i.e. number of Pk) is reduced using principal component analysis. When a large PCA threshold is used, the number of ABF will be reduced, hence the calculations becomes faster. However this comes at the cost of computational accuracy. A relatively safe choice of the value is 1d-3.
- Default: 0
-
- Type: Real
- Description: See also the entry exx_pca_threshold. Smaller components (less than exx_c_threshold) of the Ckij matrix is 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 1d-4.
- Default: 0
-
- Type: Real
- Description: See also the entry exx_pca_threshold. With the approximation φiφj~CkijPk, the four-center integral in Fock exchange is expressed as (ik|jl)=Σa,bCaijVabCbkl, where Vab=(Pa|Pb) is a double-center 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
-
- Type: Real
- Description: The Fock exchange can be expressed as Σk,l(ik|jl)Dkl 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 1d-3.
- Default: 0
-
- Type: Real
- Description: In practice the four-center integrals are sparse, and using Cauchy-Schwartz 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 1d-4.
- Default: 0
-
- Type: Real
- Description: In practice the Fock exchange matrix is sparse, and using Cauchy-Schwartz 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 1d-6.
- Default: 0
-
- Type: Real
- Description: It is related to the cutoff of on-site Coulomb potentials, currently not used.
- Default: 1e-8
-
- 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
-
- 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" and "kmeans2". "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" and "kmeans2" are two methods where the k-means clustering method is used to reduce memory requirement. They might be necessary for very large systems.
- Default: "htime"
-
- Type: Integer
- Description: See also the entry exx_hybrid_type. This parameter is only relevant when exx_hybrid_type="opt_orb". The radial part of opt-ABFs 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
-
- Type: Real
- Description: See also the entry exx_hybrid_type. This parameter is only relevant when exx_hybrid_type="opt_orb". A plane wave basis is used to optimize the radial ABFs. This parameter thus gives the cut-off of plane wave expansion, in Ry. A reasonable choice is 60.
- Default: 0
-
- Type: Real
- Description: See also the entry exx_hybrid_type. This parameter is only relevant when exx_hybrid_type="opt_orb". exx_opt_orb_tolerence determines the threshold when solving for the zeros of spherical Bessel functions. A reasonable choice is 1e-12.
- Default: 0
This part of variables are used to control the molecular dynamics calculations.
-
- 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
-
- Type: String
- Description: choose the potential type.
- FP: First-Principles MD;
- LJ: Leonard Jones potential;
- DP: DeeP potential;
- Default: FP
-
- 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
-
- Type: Double
- Description: This is the time step(fs) used in md simulation .
- Default: No default
-
- Type: Double
- Description: This is the temperature used in md simulation, md_tlast’s default value is md_tfirst. If md_tlast is setted and be different from the md_tfirst, ABACUS will automatically generate a linear temperature gradient file named ”ChangeTemp.dat”, you can also set this file according to your needs instead.
- Default: No default
-
- 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: 0
-
- Type: Integer
- Description:This is the steps to control the frequence to output md information
- Default: 1
-
- Type: Integer
- Description:
- n:when set to n (n > 1), ABACUS will read the file "ChangeTemp.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
-
- Type: Integer
- Description: Specifies which type of thermostat is used.
- 1: Nose-Hoover
- 2: Langevin
- 3: Andersen
- Default: 1
-
- Type: Real
- Description: Parameter for adjust effect of thermostat corresponding to the time scale of collision, in fs. If te input value is less than 1d-10, then it is automatically set in ABACUS.
- Default: 0
-
- Type: Integer
- Description: Number of Nose-Hoover chains.
- Default: 4
-
- Type: Real
- Description: Parameter for constraining total energy change.
- Default: 0.0001
-
- Type: Real
- Description: Parameter for constraining max force change
- Default: 0.001
-
- Type: Real
- Description: Cut-off radius for Leonard Jones potential (angstrom).
- Default: 8.5 (for He)
-
- Type: Real
- Description: The value of epsilon for Leonard Jones potential (eV).
- Default: 0.01032 (for He)
-
- Type: Real
- Description: The value of sigma for Leonard Jones potential (angstrom).
- Default: 3.405 (for He)
This part of variables are used to control DFT+U correlated parameters
-
dft_plus_u
- Type: Bool
- Description: If set to 1, ABCUS will calculate plus U correction, which is especially important for correlated electron.
- Default: 0
-
orbital_corr
- Type: Int
-
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 calculate 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 use. ABACUS use a simplified scheme which only need U and J for each atom.
- Default: 0.0
-
hund_j
- Type: Real
- Description: Hund exchange parameter J(ev) in plus U correction ,which should be specified for each atom unless Yukawa potential is use. ABACUS use a simplified scheme which only need U and J for each atom.
- Default: 0.0
-
yukawa_potential
- Type: Bool
- Description: whether use the local screen Coulomb potential method to calculate the value of U and J. If this is set to 1, hubbard_u and hund_j do not need to be specified.
- Default: 0
-
omc
- Type: Bool
- Description: whether turn on occupation matrix control method or not
- Default: 0
This part of variables are used to control vdW-corrected related parameters.
-
- Type: String
- Description: If set to d2 ,d3_0 or d3_bj, ABACUS will calculate corresponding vdW correction, which is DFT-D2, DFT-D3(0) or DFTD3(BJ) method. And this correction includes energy and forces. "none" means that no vdW-corrected method has been used.
- Default: none
-
- Type: Real
- Description: This scale factor is to optimize the interaction energy deviations. For DFT-D2, it is found to be 0.75 (PBE), 1.2 (BLYP), 1.05 (B-P86), 1.0 (TPSS), and 1.05 (B3LYP). For DFT-D3, recommended values of this parameter with different DFT functionals can be found on the webpage. The default values of this parameter in ABACUS is available for PBE. This variable will be set to default, if no vdW-corrected method has been used.
- 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
-
- Type: Real
- Description: This scale factor is only the parameter of DFTD3 approachs including D3(0) and D3(BJ). Recommended values of this parameter with different DFT functionals can be found on the webpage. The default values of this parameter in ABACUS is available for PBE. This variable will be set to default, if no vdW-corrected method has been used.
- Default: 0.722 if vdw_method is chosen to be d3_0; 0.7875 if vdw_method is chosen to be d3_bj
-
- Type: Real
- Description: This damping function parameter is only the parameter of DFT-D3 approachs including D3(0) and D3(BJ). Recommended values of this parameter with different DFT functionals can be found on the webpage. The default values of this parameter in ABACUS is available for PBE. This variable will be set to default, if no vdW-corrected method has been used.
- Default: 1.217 if vdw_method is chosen to be d3_0; 0.4289 if vdw_method is chosen to be d3_bj
-
- Type: Real
- Description: This damping function arameter is only the parameter of DFT-D3(BJ) approach. Recommended values of this parameter with different DFT functionals can be found on the webpage. The default values of this parameter in ABACUS is available for PBE. This variable will be set to default, if no vdW-corrected method has been used.
- Default: 1.0 if vdw_method is chosen to be d3_0; 4.4407 if vdw_method is chosen to be d3_bj
-
- Type: Real
- Description: The variable is to control the dumping speed of dumping function of DFT-D2.
- Default: 20
-
- Type: Integer
- Description: The variable is to control the calculation of three-body term of DFT-D3 approachs, including D3(0) and D3(BJ). If set to 1, ABACUS will calculate three-body term, otherwise, the three-body term is not included.
- Default: 0
-
- Type: String
- Description: This variable which is useful only when set vdw_method to d2 specifies the name of each elemetent’s C6 Parameters file. 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 86_Rn. Otherwise, if you want to use some new C6 Parameters, you should provide a file contained all the C6 Parameters ordered by periodic table of elements, from 1_H to the last elements you want.
- Default: default
-
- Type: String
- Description: This variable which is useful only when set vdw_method to d2 specifies unit of C6 Parameters. Two kinds of unit is available:
J·nm6/mol
(means J·nm6/mol) and eVA(means eV·Angstrom) - Default: Jnm6/mol
-
- Type: String
- Description: This variable which is useful only when set vdw_method to d2 specifies the name of each elemetent’s R0 Parameters file. 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 86_Rn. Otherwise, if you want to use some new R0 Parameters, you should provide a file contained all the R0 Parameters ordered by periodic table of elements, from 1_H to the last elements you want.
- Default: default
-
- Type: String
- Description: This variable which is useful only when set vdw_method to d2 specifies unit of R0 Parameters. Two kinds of unit is available: A(means Angstrom) and Bohr.
- Default: A
-
- Type: String
- Description: To calculate the periodic structure, you can assign the number of lattice cells calculated. This variable specifies the kind of model to assign. If set to period, ABACUS will calculate a cubic periodic structure as assigned in vdw_period. If set to radius, ABACUS will calculate a cubic periodic structure containing a sphere, whose radius is vdw_radius and centre is origin point.
- Default: radius
-
- Type: Real
- Description: If vdw_model is set to radius, this variable specifies the radius of the calculated sphere. For DFT-D2, the default value is 56.6918 ,while it is 95 for DFT-D3. This variable will be set to default, if no vdW-corrected method has been used.
- Default: 56.6918 if vdw_method is chosen to be d2; 95 if vdw_method is chosen to be d3_0 or d3_bj
-
- Type: String
- Description: If vdw_model is set to radius, this variable specifies the unit of vdw_radius. Two kinds of unit is available: A(means Angstrom) and Bohr.
- Default: Bohr
-
- Type: Real
- Description: This cutoff is chosen for the calculation of the coordination number (CN) in DFT-D3 approachs, including D3(0) and D3(BJ).
- Default: 40.0
-
- Type: String
- Description: This variable specifies the unit of vdw_cn_radius. Two kinds of unit is available: A(means Angstrom) and Bohr.
- Default: Bohr
-
- Type: Int Int Int
- Description: If vdw_model is set to period, these variables specify the number of x, y and z periodic.
- Default: 3 3 3
This part of variables are used to control berry phase and wannier90 interfacae parameters.
-
- Type: Integer
- Description: 1, calculate berry phase; 0, no calculate berry phase.
- Default: 0
-
- 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
-
- Type: Integer
- Description: 1, generate files for wannier90 code; 0, no generate.
- Default: 0
-
- Type: String
- Description: the file name when you run “wannier90 -pp ...”.
- Default: seedname.nnkp
-
- 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
-
- Type: Integer
- Description:
- 1: calculate the real time time dependent density functional theory (TDDFT).
- 0: do not calculate TDDFT.
- Default: 0
-
- Type: Integer
- Description:
- 1: add a laser material interaction (extern laser field).
- 0: no extern laser field.
- Default: 0
-
- 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
-
nurse(#nurse)
- Type: Boolean
- Description: If set to 1, the Hamiltonian matrix and S matrix in each iteration will be written in output.
- Default: 0
-
- Type: Boolean
- Description: If set to 0, then kinetic term will not be included in obtaining the Hamiltonian.
- Default: 1
-
- Type: Boolean
- Description: If set to 0, then local pseudopotential term will not be included in obtaining the Hamiltonian.
- Default: 1
-
- Type: Boolean
- Description: If set to 0, then non-local pseudopotential term will not be included in obtaining the Hamiltonian.
- Default: 1
-
- Type: Boolean
- Description: If set to 1, then detailed components in forces will be written to output.
- Default: 0
-
- Type: Boolean
- Description: If set to 1, then detailed components in stress will be written to output.
- Default: 0
-
- Type: Boolean
- Description: If set to 1, output to terminal will have some color.
- Default: 0
-
- Type: Integer
- Description: Controls output of some debug information related to our density matrix data-structures.
- 1: show no debug information
- 2: only show key debug information
- 3: show all detail debug information
- Default: 1
-
- Type: Boolean
- Description: If set to 1, then only perform the neighboring atoms search.
- Default: 0