Full List of INPUT Keywords
back to top These 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 Default: ABACUS 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 Type: String Description: Specify the type of calculation. scf: perform self-consistent electronic structure calculations nscf: perform non-self-consistent electronic structure calculations. A charge density file is required relax: perform structure relaxation calculations, the cell-relax: perform cell relaxation calculations md: perform molecular dynamics simulations get_pchg: obtain partial charge density (for LCAO basis only). See get_wf: obtain wave functions (for LCAO basis only). See get_S : obtain the overlap matrix formed by localized orbitals (for LCAO basis with multiple k points). the file name is gen_bessel : generates projectors, i.e., a series of Bessel functions, for the DeePKS method (for LCAO basis only); see also keywords test_memory : obtain a rough estimation of memory consuption for the calculation test_neighbour : obtain information of neighboring atoms (for LCAO basis only), please specify a positive search_radius manually Default: scf Type: String Description: choose the energy solver. ksdft: Kohn-Sham density functional theory ofdft: orbital-free density functional theory tddft: real-time time-dependent density functional theory (TDDFT) lj: Leonard Jones potential dp: DeeP potential, see details in md.md Default: ksdft Type: Integer Description: takes value 1, 0 or -1. -1: No symmetry will be considered. It is recommended to set -1 for non-colinear + soc calculations, where time reversal symmetry is broken sometimes. 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. 1: Symmetry analysis will be performed to determine the type of Bravais lattice and associated symmetry operations. (point groups, space groups, primitive cells, and irreducible k-points) Default: 0: if calculation==md/nscf/get_pchg/get_wf/get_S or gamma_only==True; If (dft_fuctional==hse/hf/pbe0/scan0/opt_orb or rpa==True). Currently symmetry==1 is not supported in EXX (exact exchange) calculation. If efield_flag==1 1: else Type: Real Description: The accuracy for symmetry judgment. Usually the default value is good enough, but if the lattice parameters or atom positions in STRU file is not accurate enough, this value should be enlarged. Note: if calculation==cell_relax, this value can be dynamically changed corresponding to the variation of accuracy of the lattice parameters and atom positions during the relaxation. The new value will be printed in Default: 1.0e-6 Unit: Bohr Type: Boolean Availability: symmetry==1 Description: Control how to deal with error in symmetry analysis due to inaccurate lattice parameters or atom positions in STRU file, especially useful when calculation==cell-relax False: quit with an error message True: automatically set symmetry to 0 and continue running without symmetry analysis Default: True 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 processes. Default: 1 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 Type: String Description: Specifies the type of Bravias lattice. When set to Available options are (correspondence with ibrav in QE(Quantum Espresso) is given in parenthesis): none: free structure sc: simple cubic (1) fcc: face-centered cubic (2) bcc: body-centered cubic (3) hexagonal: hexagonal (4) trigonal: trigonal (5) st: simple tetragonal (6) bct: body-centered tetragonal (7) so: orthorhombic (8) baco: base-centered orthorhombic (9) fco: face-centered orthorhombic (10) bco: body-centered orthorhombic (11) sm: simple monoclinic (12) bacm: base-centered monoclinic (13) triclinic: triclinic (14) Default: none Type: Integer Description: enable the experimental feature psi_initializer, to support use numerical atomic orbitals initialize wavefunction ( NOTE: this feature is not well-implemented for 0: disable psi_initializer 1: enable psi_initializer Default: 0 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 binary files random: random numbers with nao: from numerical atomic orbitals. If they are not enough, other wave functions are initialized with random numbers. nao+random: add small random numbers on numerical atomic orbitals Default: atomic Type: String Description: This variable is used for both plane wave set and localized orbitals set. It indicates the type of starting density. atomic: the density is starting from the summation of the atomic density of single atoms. file: the density will be read in from a binary file auto: Abacus first attempts to read the density from a file; if not found, it defaults to using atomic density. Default: atomic Type: Boolean Description: Default: False Type: Real Description: 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: the total number of electrons will be calculated by Default: 0.0 Type: Real Description: 0.0: no constrain apply to system. Default: 0.0 Type: String Description: In our package, the XC functional can either be set explicitly using the Furthermore, the old INPUT parameter exx_hybrid_type for hybrid functionals has been absorbed into dft_functional. Options are If set to Default: same as UPF file. Type: Real Description: specifies temperature when using temperature-dependent XC functionals (KSDT and so on). Default : 0.0 Unit: Ry Type: Real Description: Cut-off of radial integration for pseudopotentials Default: 15 Unit: Bohr Type: Integer Description: 0: use our own mesh for radial integration of pseudopotentials 1: use the mesh that is consistent with quantum espresso Default: 0 Type: Boolean Description: Used only for nscf calculations. 0: no memory saving techniques are used. 1: a memory saving technique will be used for many k point calculations. Default: 0 Type: Integer Availability: pw base Description: 0: it will be set to the number of MPI processes. Normally, it is fine just leave it to the default value. Default: 0 Type: Integer Description: If set to a natural number, a Cardinal B-spline interpolation will be used to calculate Structure Factor. Default: -1 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_i)+1), where b_i is the reciprocal lattice vector. The default value 0.0 means that ABACUS will read the applied KPT file. If only one value is set (such as Note: if gamma_only is set to be true, kspacing is invalid. Default: 0.0 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 Type: String Description: Specifies the computing device for ABACUS. Available options are: cpu: for CPUs via Intel, AMD, or Other supported CPU devices gpu: for GPUs via CUDA or ROCm. Known limitations: If using the pw basis, the ks_solver must be cg/bpcg/dav to support Default: cpu Type: String Description: Specifies the precision of the PW_SCF calculation. Available options are: single: single precision double: double precision Known limitations: pw basis: required by the cg/bpcg/dav ks_solver: required by the Default: double Type: int Description: Number of threads used in one elpa calculation. If the number is below 0 or 0 or beyond the max number of threads, all elpa calculation will be using all mpi threads Default: -1 These variables are used to control the electronic structure and geometry relaxation calculations. Type: String Description: Choose the basis set. pw: Using plane-wave basis set only. lcao: Using localized atomic orbital sets. lcao_in_pw: Expand the localized atomic set in plane-wave basis, non-self-consistent field calculation not tested. Default: pw Type: String Description: Choose the diagonalization methods for the Hamiltonian matrix expanded in a certain basis set. For plane-wave basis, cg: cg method. bpcg: bpcg method, which is a block-parallel Conjugate Gradient (CG) method, typically exhibits higher acceleration in a GPU environment. dav: the Davidson algorithm. dav_subspace: subspace Davidson algorithm For atomic orbitals basis, genelpa: This method should be used if you choose localized orbitals. scalapack_gvx: Scalapack can also be used for localized orbitals. cusolver: This method needs building with CUDA and at least one gpu is available. If you set ks_solver= Then the user has to correct the input file and restart the calculation. Default: cg (plane-wave basis), or genelpa (localized atomic orbital basis, if compiling option Type: Integer Description: The number of Kohn-Sham orbitals to calculate. It is recommended to setup this value, especially when smearing techniques are utilized, more bands should be included. Default: nspin=1: max(1.2*occupied_bands, occupied_bands + 10) nspin=2: max(1.2*nelec_spin, nelec_spin + 10), in which nelec_spin = max(nelec_spin_up, nelec_spin_down) nspin=4: max(1.2*nelec, nelec + 20) Type: Integer Description: The number of spin components of wave functions. 1: Spin degeneracy 2: Collinear spin polarized. 4: For the case of noncollinear polarized, nspin will be automatically set to 4 without being specified by the user. Default: 1 Type: String Description: It indicates which occupation and smearing method is used in the calculation. fixed: fixed occupations (available for non-coductors only) gauss or gaussian: Gaussian smearing method. mp: methfessel-paxton smearing method; recommended for metals. mp2: 2-nd methfessel-paxton smearing method; recommended for metals. mv or cold: marzari-vanderbilt smearing method. fd: Fermi-Dirac smearing method: \(f=1/\{1+\exp[(E-\mu)/kT]\}\) and smearing_sigma below is the temperature \(T\) (in Ry). Default: gauss Type: Real Description: Energy range for smearing. Default: 0.015 Unit: Ry Type: Real Description: Energy range for smearing, Default: 2 * Unit: K Type: String Description: Charge mixing methods. plain: Just simple mixing. pulay: Standard Pulay method. P. Pulay Chemical Physics Letters, (1980) broyden: Simplified modified Broyden method. D.D. Johnson Physical Review B (1988) In general, the convergence of the Broyden method is slightly faster than that of the Pulay method. Default: broyden Type: Real Description: In general, the formula of charge mixing can be written as \(\rho_{new} = \rho_{old} + \beta * \rho_{update}\), where \(\rho_{new}\) represents the new charge density after charge mixing, \(\rho_{old}\) represents the charge density in previous step, \(\rho_{update}\) is obtained through various mixing methods, and \(\beta\) is set by the parameter 0.8: 0.4: 0: keep charge density unchanged, usually used for restarting with 0.1 or less: if convergence of SCF calculation is difficult to reach, please try Note: For low-dimensional large systems, the setup of Default: 0.8 for Type: Real Description: Mixing parameter of magnetic density. Default: Note that Type: Integer Description: It indicates the mixing dimensions in Pulay or Broyden. Pulay and Broyden method use the density from previous mixing_ndim steps and do a charge mixing based on this density. For systems that are difficult to converge, one could try increasing the value of ‘mixing_ndim’ to enhance the stability of the self-consistent field (SCF) calculation. Default: 8 Type: double Description: If the density difference between input and output Default: 0 Type: bool Availability: Only for Description: At n-th iteration which is calculated by Default: false Type: Real Description: Whether to perfom Kerker scaling for charge density. >0: The high frequency wave vectors will be suppressed by multiplying a scaling factor \(\frac{k^2}{k^2+gg0^2}\). Setting 0: No Kerker scaling is performed. For systems that are difficult to converge, particularly metallic systems, enabling Kerker scaling may aid in achieving convergence. Default: 1.0 Type: Real Description: Whether to perfom Kerker preconditioner of magnetic density. Note: we do not recommand to open Kerker preconditioner of magnetic density unless the system is too hard to converge. Default: 0.0 Type: Real Description: the minimum kerker coefficient Default: 0.1 Type: Real Availability: Only relevant for non-colinear calculations Description: Normal broyden mixing can give the converged result for a given magnetic configuration. If one is not interested in the energies of a given magnetic configuration but wants to determine the ground state by relaxing the magnetic moments’ directions, one cannot rely on the standard Broyden mixing algorithm. To enhance the ability to find correct magnetic configuration for non-colinear calculations, ABACUS implements a promising mixing method proposed by J. Phys. Soc. Jpn. 82 (2013) 114706. Here, <=0: Normal broyden mixing for \(m_{x}, m_{y}, m_{z}\) >0: Angle mixing for the modulus \(|m|\) with Default: -10.0 Note: In new angle mixing, you should set Type: Boolean Availability: Only relevant for meta-GGA calculations. Description: Whether to mix the kinetic energy density. True: 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 meta-GGA, it might be helpful to turn this on. False: The kinetic energy density will not be mixed. Default: False Type: Boolean Availability: Only relevant for DFT+U calculations. Description: Whether to mix the occupation matrices. True: The occupation matrices will also be mixed by plain mixing. From experience this is not very helpful if the +U calculation does not converge. False: The occupation matrices will not be mixed. Default: False Type: Integer Availability: Only used in localized orbitals set Description: Whether to use gamma_only algorithm. 0: more than one k-point is used and the ABACUS is slower compared to the gamma only algorithm. 1: ABACUS uses gamma only, the algorithm is faster and you don’t need to specify the k-points file. Note: If gamma_only is set to 1, the KPT file will be overwritten. So make sure to turn off gamma_only for multi-k calculations. Default: 0 Type: Integer Description: Print out energy for each band for every printe step Default: 100 Type: Integer Description: This variable indicates the maximal iteration number for electronic iterations. Default: 100 Type: Real Description: 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 1e-6 may be accurate enough. Default: 1.0e-9 (plane-wave basis), or 1.0e-7 (localized atomic orbital basis). Type: Integer Description: Choose the calculation method of convergence criterion. 1: the criterion is defined as \(\Delta\rho_G = \frac{1}{2}\iint{\frac{\Delta\rho(r)\Delta\rho(r')}{|r-r'|}d^3r d^3r'}\). 2: the criterion is defined as \(\Delta\rho_R = \int{|\Delta\rho(r)|d^3r}\). Note: This parameter is still under testing and the default setting is usually sufficient. Default: 1 (plane-wave basis), or 2 (localized atomic orbital basis). Type: String Description: Methods to do extrapolation of density when ABACUS is doing geometry relaxations or molecular dynamics. atomic: atomic extrapolation. first-order: first-order extrapolation. second-order: second-order extrapolation. Default: first-order (geometry relaxations), second-order (molecular dynamics), else atomic Type: Boolean Description: Whether to consider spin-orbital coupling effect in the calculation. True: Consider spin-orbital coupling effect, and False: Do not consider spin-orbital coupling effect. Default: False Type: Boolean Description: Whether to allow non-collinear polarization, in which case the coupling between spin up and spin down will be taken into account. True: Allow non-collinear polarization, and False: Do not allow non-collinear polarization. Default: False Type: Real Availability: Relevant for soc calculations. Description: Sometimes, for some real materials, both scalar-relativistic and full-relativistic can not describe the exact spin-orbit coupling. Artificial modulation may help in such cases. In particular, Default: 1.0 These variables are used to control the parameters of stochastic DFT (SDFT), mix stochastic-deterministic DFT (MDFT), or complete-basis Chebyshev method (CT). In the following text, stochastic DFT is used to refer to these three methods. We suggest using SDFT to calculate high-temperature systems and we only support smearing_method “fd”. Both “scf” and “nscf” calculation are supported. Type: Integer Availability: esolver_type = Description: Different methods to do stochastic DFT 1: Calculate \(T_n(\hat{h})\ket{\chi}\) twice, where \(T_n(x)\) is the n-th order Chebyshev polynomial and \(\hat{h}=\frac{\hat{H}-\bar{E}}{\Delta E}\) owning eigenvalues \(\in(-1,1)\). This method cost less memory but is slower. 2: Calculate \(T_n(\hat{h})\ket{\chi}\) once but needs 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 the memory is not enough, only method 1 can be used. other: use 2 Default: 2 Type: Integer or string Availability: esolver_type = Description: The number of stochastic orbitals > 0: Perform stochastic DFT. Increasing the number of bands improves accuracy and reduces stochastic errors, which scale as \(1/\sqrt{N_{\chi}}\); To perform mixed stochastic-deterministic DFT, you should set nbands, which represents the number of KS orbitals. 0: Perform Kohn-Sham DFT. all: All complete basis sets are used to replace stochastic orbitals with the Chebyshev method (CT), resulting in the same results as KSDFT without stochastic errors. Default: 256 Type: Integer Availability: esolver_type = Description: Chebyshev expansion orders for stochastic DFT. Default: 100 Type: Real Availability: esolver_type = Description: Trial energy to guess the lower bound of eigen energies of the Hamiltonian Operator \(\hat{H}\). Default: 0.0 Unit: Ry Type: Real Availability: esolver_type = Description: Trial energy to guess the upper bound of eigen energies of the Hamiltonian Operator \(\hat{H}\). Default: 0.0 Unit: Ry Type: Integer Availability: esolver_type = Description: The random seed to generate stochastic orbitals. >= 0: Stochastic orbitals have the form of \(\exp(i2\pi\theta(G))\), where \(\theta\) is a uniform distribution in \((0,1)\). 0: the seed is decided by time(NULL). <= -1: Stochastic orbitals have the form of \(\pm1\) with equal probability. -1: the seed is decided by time(NULL). Default: 0 Type: Real Availability: esolver_type = Description: Stochastic wave functions are initialized in a large box generated by “4* Default: 0.0 Unit: Ry Type: Integer Availability: esolver_type = 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 Type: Integer Availability: method_sto = Description: Make memory cost to 1/npart_sto times of the previous one when running the post process of SDFT like DOS or conductivities. Default: 1 These variables are used to control the geometry relaxation. Type: String Description: The methods to do geometry optimization. cg: using the conjugate gradient (CG) algorithm. Note that there are two implementations of the conjugate gradient (CG) method, see relax_new. bfgs: using the Broyden–Fletcher–Goldfarb–Shanno (BFGS) algorithm. cg_bfgs: using the CG method for the initial steps, and switching to BFGS method when the force convergence is smaller than relax_cg_thr. sd: using the steepest descent (SD) algorithm. fire: the Fast Inertial Relaxation Engine method (FIRE), a kind of molecular-dynamics-based relaxation algorithm, is implemented in the molecular dynamics (MD) module. The algorithm can be used by setting calculation to Default: cg Type: Boolean Description: At around the end of 2022 we made a new implementation of the Conjugate Gradient (CG) method for True: use the new implementation of CG method for False: use the old implementation of CG method for Default: True Type: Real Availability: only used when Description: The paramether controls the size of the first conjugate gradient 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 Type: Integer Description: The maximal number of ionic iteration steps, the minimum value is 1. Default: 1 Type: Real Description: When move-method is set to Default: 0.5 Unit: eV/Angstrom Type: Boolean Description: True calculate the force at the end of the electronic iteration False no force calculation at the end of the electronic iteration Default: False if Type: Real Description: Threshold of the force convergence in Ry/Bohr. The threshold is compared with the largest force among all of the atoms. The recommended value for using atomic orbitals is 0.04 eV/Angstrom (0.0016 Ry/Bohr). The parameter is equivalent to force_thr_ev except for the unit. You may choose either you like. Default: 0.001 Unit: Ry/Bohr (25.7112 eV/Angstrom) Type: Real Description: Threshold of the force convergence in eV/Angstrom. The threshold is compared with the largest force among all of the atoms. The recommended value for using atomic orbitals is 0.04 eV/Angstrom (0.0016 Ry/Bohr). The parameter is equivalent to force_thr except for the unit. You may choose either you like. Default: 0.0257112 Unit: eV/Angstrom (0.03889 Ry/Bohr) Type: Real Description: The calculated force will be set to 0 when it is smaller than the parameter Default: 0.0 Unit: eV/Angstrom Type: Real Description: This variable controls the Wolfe condition for Broyden–Fletcher–Goldfarb–Shanno (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 Type: Real Description: This variable controls the Wolfe condition for Broyden–Fletcher–Goldfarb–Shanno (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 Type: Real Description: This variable is for geometry optimization. It stands for the maximal movement of all the atoms. The sum of the movements from all atoms can be increased during the optimization steps. However, it can not be larger than Unit: 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 relax_bfgs_rmin Bohr, and the force convergence is still not achieved, the calculation will break down. Default: 1e-5 Unit: Bohr Type: Real Description: This variable is for geometry optimization. It stands for the sum of initial movements of all of the atoms. Default: 0.5 Unit: Bohr Type: Boolean Description: True: calculate the stress at the end of the electronic iteration False: no calculation of the stress at the end of the electronic iteration Default: True if Type: Real Description: The threshold of the stress convergence. The threshold is compared with the largest component of the stress tensor. Default: 0.5 Unit: kbar Type: Real Description: The external pressures along three axes. Positive input value is taken as compressive stress. Default: 0 Unit: kbar Type: String Availability: only used when Description: Axes that are fixed during cell relaxation. Possible choices are: None: default; all of the axes 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 = True Default: None Type: Boolean Availability: Must be used along with relax_new set to True, and a specific latname must be provided Description: True: the lattice type will be preserved during relaxation False: No restrictions are exerted during relaxation in terms of lattice type Note: it is possible to use Default: False Type: Boolean Description: True: The direct coordinates of atoms will be preserved during variable-cell relaxation. False: No restrictions are exerted on positions of all atoms. However, users can still fix certain components of certain atoms by using the Default: False 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 These variables are used to control the calculation of DOS. Detailed introduction Type: Real Description: the step size in writing Density of States (DOS) Default: 0.01 Unit: eV Type: Real Description: the width of the Gaussian factor when obtaining smeared Density of States (DOS) Default: 0.07 Unit: eV Type: Real Description: Defines the energy range of DOS output as (emax-emin)*(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 Unit: eV Type: Real Description: the minimal range for Density of States (DOS) If set, “dos_scale” will be ignored. Default: Minimal eigenenergy of \(\hat{H}\) Unit: eV Type: Real Description: the maximal range for Density of States (DOS) If set, “dos_scale” will be ignored. Default: Maximal eigenenergy of \(\hat{H}\) Unit: eV Type: Integer The order of Chebyshev expansions when using Stochastic Density Functional Theory (SDFT) to calculate DOS. Default: 100 These variables are used to control the generation of numerical atomic orbitals (NAOs), whose radial parts are linear combinations of spherical Bessel functions with a node (i.e., evaluate to zero) at the cutoff radius. In plane-wave-based calculations, necessary information will be printed into Type: Real Description: “Energy cutoff” (in Ry) of spherical Bessel functions. The number of spherical Bessel functions that constitute the radial parts of NAOs is determined by sqrt( Default: Type: Real Description: tolerance when searching for the zeros of spherical Bessel functions. Default: 1.0e-12 Type: Real Description: Cutoff radius (in Bohr) and the common node of spherical Bessel functions used to construct the NAOs. Default: 6.0 Type: Boolean Description: if True, NAOs will be smoothed near the cutoff radius by \(1-\exp\left(-\frac{(r-r_{cut})^2}{2\sigma^2}\right)\). See Default: True Type: Real Description: Smoothing range (in Bohr). See also Default: 0.1 These variables are used to control the usage of DeePKS method (a comprehensive data-driven 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: Type: Boolean Availability: numerical atomic orbital basis Description: print energy and force labels and descriptors for DeePKS training Note: In Default: False Type: Boolean Availability: numerical atomic orbital basis Description: perform self-consistent field iteration in DeePKS method Note: A trained, traced model file is needed. Default: False Type: Boolean Availability: numerical atomic orbital basis Description: whether to use equivariant version of DeePKS Note: the equivariant version of DeePKS-kit is still under development, so this feature is currently only intended for internal usage. Default: False Type: String Availability: numerical atomic orbital basis and Description: the path of the trained, traced neural network model file generated by deepks-kit Default: None Type: Integer Availability: Description: the maximum angular momentum of the Bessel functions generated as the projectors in DeePKS NOte: To generate such projectors, set calculation type to Default: 2 Type: Real Availability: Description: energy cutoff of Bessel functions Default: same as ecutwfc Unit: Ry Type: Real Availability: Description: tolerance for searching the zeros of Bessel functions Default: 1.0e-12 Type: Real Availability: Description: cutoff radius of Bessel functions Default: 6.0 Unit: Bohr Type: Boolean Availability: Description: smooth the Bessel functions at radius cutoff Default: False Type: Real Availability: Description: smooth parameter at the cutoff radius of projectors Default: 0.1 Unit: Bohr Type: Boolean Availability: numerical atomic orbital basis and Description: include bandgap label for DeePKS training Default: False Type: Boolean Description: generate files for constructing DeePKS unit test Note: Not relevant when running actual calculations. When set to 1, ABACUS needs to be run with only 1 process. Default: False Type: String Availability: OFDFT Description: The type of KEDF (kinetic energy density functional). wt: Wang-Teter. tf: Thomas-Fermi. vw: von Weizsäcker. tf+: TF\(\rm{\lambda}\)vW, the parameter \(\rm{\lambda}\) can be set by lkt: Luo-Karasiev-Trickey. Default: wt Type: String Availability: OFDFT Description: The optimization method used in OFDFT. cg1: Polak-Ribiere. Standard CG algorithm. cg2: Hager-Zhang (generally faster than cg1). tn: Truncated Newton algorithm. Default:tn Type: String Availability: OFDFT Description: Criterion used to check the convergence of OFDFT. energy: Ttotal energy changes less than potential: The norm of potential is less than both: Both energy and potential must satisfy the convergence criterion. Default: energy Type: Real Availability: OFDFT Description: Tolerance of the energy change for determining the convergence. Default: 2e-6 Unit: Ry Type: Real Availability: OFDFT Description: Tolerance of potential for determining the convergence. Default: 1e-5 Unit: Ry Type: Real Availability: OFDFT with Description: Weight of TF KEDF (kinetic energy density functional). Default: 1.0 Type: Real Availability: OFDFT with Description: Weight of vW KEDF (kinetic energy density functional). Default: 1.0 Type: Real Availability: OFDFT with Description: Parameter alpha of WT KEDF (kinetic energy density functional). Default: \(5/6\) Type: Real Availability: OFDFT with Description: Parameter beta of WT KEDF (kinetic energy density functional). Default: \(5/6\) Type: Real Availability: OFDFT with Description: The average density of system. Default: 0.0 Unit: Bohr^-3 Type: Boolean Availability: OFDFT with Description: Whether to fix the average density rho0. True: rho0 will be fixed even if the volume of system has changed, it will be set to True automatically if False: rho0 will change if volume of system has changed. Default: False Type: Real Availability: OFDFT with Description: Parameter a of LKT KEDF (kinetic energy density functional). Default: 1.3 Type: Boolean Availability: OFDFT with Description: Whether to read in the kernel file. True: The kernel of WT KEDF (kinetic energy density functional) will be filled from the file specified by False: The kernel of WT KEDF (kinetic energy density functional) will be filled from formula. Default: False Type: String Availability: OFDFT with Description: The name of WT kernel file. Default: WTkernel.txt Type: Boolean Availability: OFDFT Description: Whether to use full planewaves. True: Ecut will be ignored while collecting planewaves, so that all planewaves will be used in FFT. False: Only use the planewaves inside ecut, the same as KSDFT. Default: True Type: Integer Availability: OFDFT with Description: Specify the parity of FFT dimensions. 0: either odd or even. 1: odd only. 2: even only. Note: Even dimensions may cause slight errors in FFT. It should be ignorable in ofdft calculation, but it may make Cardinal B-spline interpolation unstable, so please set Default: 0 These variables are relevant to electric field and dipole correction Type: Boolean Description: added the electric field. True: A saw-like potential simulating an electric field is added to the bare ionic potential. False: Not added the electric field. Default: False Type: Boolean Availability: with dip_cor_flag = True and efield_flag = True. Description: Added a dipole correction to the bare ionic potential. True:A dipole correction is also added to the bare ionic potential. False: A dipole correction is not added to the bare ionic potential. Note: If you want no electric field, parameter efield_amp should be zero. Must be used ONLY in a slab geometry for surface alculations, with the discontinuity FALLING IN THE EMPTY SPACE. Default: False Type: Integer Availability: with efield_flag = True. 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 can set to 0, 1 or 2. 0: parallel to \(b_1=\frac{2\pi(a_2\times a_3)}{a_1\cdot(a_2\times a_3)}\) 1: parallel to \(b_2=\frac{2\pi(a_3\times a_1)}{a_1\cdot(a_2\times a_3)}\) 2: parallel to \(b_3=\frac{2\pi(a_1\times a_2)}{a_1\cdot(a_2\times a_3)}\) Default: 2 Type: Real Availability: with efield_flag = True. Description: Position of the maximum of the saw-like potential along crystal axis efield_dir, within the unit cell, 0 <= efield_pos_max < 1. Default: Autoset to Type: Real Availability: with efield_flag = True. Description: Zone in the unit cell where the saw-like potential decreases, 0 < efield_pos_dec < 1. Default: Autoset to Type: Real Availability: with efield_flag = True. Description: Amplitude of the electric field. The saw-like potential increases with slope efield_amp in the region from efield_pos_max+efield_pos_dec-1) to (efield_pos_max), then decreases until (efield_pos_max+efield_pos_dec), in units of the crystal vector efield_dir. Note: The change of slope of this potential must be located in the empty region, or else unphysical forces will result. Default: 0.0 Unit: a.u., 1 a.u. = 51.4220632*10^10 V/m. These variables are relevant to gate field (compensating charge) Detailed introduction Type: Boolean Description: Controls the addition of compensating charge by a charged plate for charged cells. true: A charged plate is placed at the zgate position to add compensating charge. The direction is determined by efield_dir. false: No compensating charge is added. Default: false Type: Real Description: position of the charged plate in the unit cell Unit: Unit cell size Default: 0.5 Constraints: 0 <= zgate < 1 Type: Boolean Description: Controls the addition of a potential barrier to prevent electron spillover. true: A potential barrier is added from block_down to block_up with a height of block_height. If dip_cor_flag is set to true, efield_pos_dec is used to smoothly increase and decrease the potential barrier. false: No potential barrier is added. Default: false Type: Real Description: lower beginning of the potential barrier Unit: Unit cell size Default: 0.45 Constraints: 0 <= block_down < block_up < 1 Type: Real Description: upper beginning of the potential barrier Unit: Unit cell size Default: 0.55 Constraints: 0 <= block_down < block_up < 1 Type: Real Description: height of the potential barrier Unit: Rydberg Default: 0.1 These variables are relevant when using hybrid functionals. Availablity: dft_functional==hse/hf/pbe0/scan0/opt_orb or rpa==True, and basis_type==lcao/lcao_in_pw Type: Real Description: fraction of Fock exchange in hybrid functionals, so that \(E_{X}=\alpha E_{X}+(1-\alpha)E_{X,\text{LDA/GGA}}\) Default: 1: if dft_functional==hf 0.25: else Type: Real Description: range-separation parameter in HSE functional, such that \(1/r=\text{erfc}(\omega r)/r+\text{erf}(\omega r)/r\) Default: 0.11 Type: Boolean Description: There are two types of iterative approaches provided by ABACUS to evaluate Fock exchange. False: Start with a GGA-Loop, and then Hybrid-Loop, in which EXX Hamiltonian \(H_{exx}\) is updated with electronic iterations. True: A two-step 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: True Type: Integer Availability: exx_separate_loop==1 Description: the maximal iteration number of the outer-loop, where the Fock exchange is calculated Default: 100 Type: Real Availability: exx_separate_loop==1 Description: mixing_beta for densty matrix in each iteration of the outer-loop Default: 1.0 Type: Real Availability: basis_type==lcao_in_pw 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 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): \(\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 1e-4. Default: 1E-4 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 1e-4. Default: 1E-4 Type: Real Description: See also the entry exx_pca_threshold. With the approximation \(\Phi_{i}\Phi_{j}\sim C^{k}_{ij}P_{k}\), the four-center integral in Fock exchange is expressed as \((ik|jl)=\Sigma_{a,b}C^{a}_{ij}V_{ab}C^{b}_{kl}\), where \(V_{ab}=(P_{a}|P_{b})\) 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: 1E-1 Type: Real Description: The Fock exchange can be expressed as \(\Sigma_{k,l}(ik|jl)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 1e-4. Default: 1E-4 Type: Real Description: See also the entry exx_pca_threshold. \(\nabla C^{k}_{ij}\) is used in force and stress. Smaller components (less than exx_c_grad_threshold) of the \(\nabla 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 1e-4. Default: 1E-4 Type: Real Description: See also the entry exx_pca_threshold. With the approximation \(\Phi_{i}\Phi_{j}\sim C^{k}_{ij}P_{k}\), the four-center integral in Fock exchange is expressed as \((ik|jl)=\Sigma_{a,b}C^{a}_{ij}V_{ab}C^{b}_{kl}\), where \(V_{ab}=(P_{a}|P_{b})\) is a double-center integral. \(\nabla V_{ab}\) is used in force and stress. 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: 1E-1 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 1e-5. (Currently not used) 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 1e-7. Default: 1E-7 Type: Real Description: In practice the Fock exchange matrix in force 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_force_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 1e-7. Default: 1E-7 Type: Real Description: In practice the Fock exchange matrix in stress 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_stress_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 1e-7. Default: 1E-7 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 HSE, setting it to 1 is enough. But for PBE0, a much larger number must be used. Default: 1.5: if dft_functional==hse 5: else Type: String Description: When running in parallel, the evaluation of Fock exchange is done by distributing atom pairs on different processes, then gather the results. exx_distribute_type governs the mechanism of distribution. Available options are Default: Type: Integer Availability: dft_functional==opt_orb Description: The maximum l of the spherical Bessel functions, when the radial part of opt-ABFs are generated as linear combinations of spherical Bessel functions. A reasonable choice is 2. Default: 0 Type: Real Availability: dft_functional==opt_orb Description: The cut-off of plane wave expansion, when the plane wave basis is used to optimize the radial ABFs. A reasonable choice is 60. Default: 0 Unit: Ry Type: Real Availability: dft_functional==opt_orb Description: The threshold when solving for the zeros of spherical Bessel functions. A reasonable choice is 1e-12. Default: 0 Type: Boolean Description: True: Enforce LibRI to use False: Enforce LibRI to use Default: depends on the gamma_only option True: if gamma_only False: else Type: Real Description: How many times larger the radial mesh required is to that of atomic orbitals in the postprocess calculation of the bare Coulomb matrix for RPA, GW, etc. Default: 10 These variables are used to control molecular dynamics calculations. For more information, please refer to md.md in detail. Type: String Description: Control the algorithm to integrate the equation of motion for molecular dynamics (MD), see md.md in detail. fire: a MD-based relaxation algorithm, named fast inertial relaxation engine. nve: NVE ensemble with velocity Verlet algorithm. nvt: NVT ensemble, see md_thermostat in detail. npt: Nose-Hoover style NPT ensemble, see md_pmode in detail. langevin: NVT ensemble with Langevin thermostat, see md_damp in detail. msst: MSST method, see msst_direction, msst_vel, msst_qmass, msst_vis, msst_tscale in detail. Default: nvt Type: Integer Description: The total number of molecular dynamics steps. Default: 10 Type: Real Description: The time step used in molecular dynamics calculations. Default: 1.0 Unit: fs Type: String Description: Specify the temperature control method used in NVT ensemble. nhc: Nose-Hoover chain, see md_tfreq and md_tchain in detail. anderson: Anderson thermostat, see md_nraise in detail. berendsen: Berendsen thermostat, see md_nraise in detail. rescaling: velocity Rescaling method 1, see md_tolerance in detail. rescale_v: velocity Rescaling method 2, see md_nraise in detail. Default: nhc Type: Real Description: The temperature used in molecular dynamics calculations. If If Note that Default: No default Unit: K Type: Boolean Description: Control whether to restart molecular dynamics calculations and time-dependent density functional theory calculations. True: ABACUS will read in False: ABACUS will start molecular dynamics calculations normally from the first step. Default: False Type: Integer Description: The output frequency of Default: 5 Type: Integer Description: The output frequency of Default: 1 Type: Boolean Description: Whether to output atomic forces into the file Default: True Type: Boolean Description: Whether to output atomic velocities into the file Default: True Type: Boolean Description: Whether to output lattice virials into the file Default: True Type: Integer Description: The random seed to initialize random numbers used in molecular dynamics calculations. < 0: No srand() function is called. >= 0: The function srand(md_seed) is called. Default: -1 Type: Real Description: Control the frequency of 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. Note: It is a system-dependent empirical parameter, ranging from 1/(40*md_dt) to 1/(100*md_dt). An improper choice might lead to the failure of jobs. Default: 1/40/md_dt Unit: \(\mathrm{fs^{-1}}\) Type: Integer Description: Number of thermostats coupled with the particles in the NVT/NPT ensemble based on the Nose-Hoover style non-Hamiltonian equations of motion. Default: 1 Type: String Description: Specify the cell fluctuation mode in NPT ensemble based on the Nose-Hoover style non-Hamiltonian equations of motion. iso: The three diagonal elements of the lattice are fluctuated isotropically. aniso: The three diagonal elements of the lattice are fluctuated anisotropically. tri: The lattice must be a lower-triangular matrix, and all six freedoms are fluctuated. Default: iso Relavent: md_tfreq, md_tchain, md_pcouple, md_pfreq, and md_pchain. Type: Integer Description: Determine the precision level of variable-cell molecular dynamics calculations. 0: FFT grids do not change, only G vectors and K vectors are changed due to the change of lattice vector. This level is suitable for cases where the variation of the volume and shape is not large, and the efficiency is relatively higher. 2: FFT grids change per step. This level is suitable for cases where the variation of the volume and shape is large, such as the MSST method. However, accuracy comes at the cost of efficiency. Default: 0 Type: Real Description: Construct a reference cell bigger than the initial cell. The reference cell has to be large enough so that the lattice vectors of the fluctuating cell do not exceed the reference lattice vectors during MD. Typically, 1.02 ~ 1.10 is sufficient. However, the cell fluctuations depend on the specific system and thermodynamic conditions. So users must test for a proper choice. This parameters should be used in conjunction with erf_ecut, erf_height, and erf_sigma. Default: 1.0 Type: String Description: The coupled lattice vectors will scale proportionally in NPT ensemble based on the Nose-Hoover style non-Hamiltonian equations of motion. 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 Type: Real Description: The target pressure used in NPT ensemble simulations, the default value of Default: -1.0 Unit: kbar Type: Real Description: The frequency of 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. Note: It is a system-dependent empirical parameter. An improper choice might lead to the failure of jobs. Default: 1/400/md_dt Unit: \(\mathrm{kbar^{-1}}\) Type: Integer Description: The number of thermostats coupled with the barostat in the NPT ensemble based on the Nose-Hoover style non-Hamiltonian equations of motion. Default: 1 Type: Real Description: Cut-off radius for Leonard Jones potential. Default: 8.5 (for He) Unit: Angstrom Type: Real Description: The value of epsilon for Leonard Jones potential. Default: 0.01032 (for He) Unit: eV Type: Real Description: The value of sigma for Leonard Jones potential. Default: 3.405 (for He) Unit: Angstrom Type: String Description: The filename of DP potential files, see md.md in detail. Default: graph.pb Type: Integer Description: The direction of the shock wave in the MSST method. 0: x direction 1: y direction 2: z direction Default: 2 Type: Real Description: The velocity of the shock wave in the MSST method. Default: 0.0 Unit: Angstrom/fs Type: Real Description: Artificial viscosity in the MSST method. Default: 0.0 Unit: g/(mol*Angstrom*fs) Type: Real Description: The reduction percentage of the initial temperature used to compress volume in the MSST method. Default: 0.01 Type: Real Description: Inertia of the extended system variable. You should set a number larger than 0. Default: No default Unit: \(\mathrm{g^{2}/(mol^{2}*Angstrom^{4})}\) Type: Real Description: The damping parameter used to add fictitious force in the Langevin method. Default: 1.0 Unit: fs Type: Real Description: Thr temperature tolerance for velocity rescaling. Velocities are rescaled if the current and target temperature differ more than Default: 100.0 Unit: K Type: Integer Description: Anderson: The “collision frequency” parameter is given as 1/ Berendsen: The “rise time” parameter is given in units of the time step: tau = Rescale_v: Every Default: 1 Type: Boolean Description: Whether the asynchronous overlap matrix is calculated for Hefei-NAMD. Default: False Type: Real Description: The maximum displacement of all atoms in one step. This parameter is useful when cal_syns = True. Default: 0.01 Unit: bohr These variables are used to control DFT+U correlated parameters Type: Integer Description: Determines whether to calculate the plus U correction, which is especially important for correlated electrons. 1: Calculate plus U correction with radius-adjustable localized projections (with parameter 2: Calculate plus U correction using first zeta of NAOs as projections (this is old method for testing). 0: Do not calculate plus U correction. Default: 0 Type: Integer Description: Specifies which orbits need plus U correction for each atom type (\(l_1,l_2,l_3,\ldots\) for atom type 1, 2, 3, respectively). -1: The plus U correction will not be calculated for this atom. 1: For p-electron orbits, the plus U correction is needed. 2: For d-electron orbits, the plus U correction is needed. 3: For f-electron orbits, the plus U correction is needed. Default: -1 Type: Real Description: Specifies the Hubbard Coulomb interaction parameter U (eV) in plus U correction, which should be specified for each atom unless the Yukawa potential is used. Note: Since only the simplified scheme by Duradev is implemented, the ‘U’ here is actually U-effective, which is given by Hubbard U minus Hund J. Default: 0.0 Type: Boolean Description: Determines whether to use the local screen Coulomb potential method to calculate the values of U and J. True: False: Default: False Type: Real Availability: DFT+U with Description: The screen length of Yukawa potential. If left to default, the screen length will be calculated 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. Type: Real Unit: eV Availability: DFT+U calculations with Description: Once Default: -1.0. Type: Integer Description: The parameter controls the form of occupation matrix control used. 0: No occupation matrix control is performed, and the onsite density matrix will be calculated from wavefunctions in each SCF step. 1: The first SCF step will use an initial density matrix read from a file named 2: The same onsite density matrix from Note : The easiest way to create Default: 0 Type: Real Availability: Description: The The modulation algorithm includes a smooth truncation applied directly to the tail of the original orbital, followed by normalization. Consider the function: $\( g(r;\sigma)=\begin{cases} 1-\exp\left(-\frac{(r-r_c)^2}{2\sigma^2}\right), & r < r_c\\ 0, & r \geq r_c \end{cases} \)$ where \(\sigma\) is a parameter that controls the smoothing interval. A normalized function truncated smoothly at \(r_c\) can be represented as: To find an appropriate \(\sigma\), the optimization process is as follows: Maximizing the overlap integral under a normalization constraint is equivalent to minimizing an error function: Similar to the process of generating numerical atomic orbitals, this optimization choice often induces additional oscillations in the outcome. To suppress these oscillations, we may include a derivative term in the objective function (\(f'(r)\equiv \mathrm{d}f(r)/\mathrm{d}r\)): where \(\gamma\) is a parameter that adjusts the relative weight of the error function to the derivative error function. Unit: Bohr Default: 5.0 These variables are used to control vdW-corrected related parameters. Type: String Description: Specifies the method used for Van der Waals (VdW) correction. Available options are: Default: none Type: Real Availability: Description: This scale factor is used to optimize the interaction energy deviations in van der Waals (vdW) corrected calculations. The recommended values of this parameter are dependent on the chosen vdW correction method and the DFT functional being used. For DFT-D2, the recommended values are 0.75 (PBE), 1.2 (BLYP), 1.05 (B-P86), 1.0 (TPSS), and 1.05 (B3LYP). For DFT-D3, recommended values with different DFT functionals can be found on the here. The default value of this parameter in ABACUS is set to be the recommended value for PBE. Default: 0.75: if 1.0: if Type: Real Availability: Description: This scale factor is relevant for D3(0) and D3(BJ) van der Waals (vdW) correction methods. The 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 0.7875: if Type: Real Availability: Description: This damping function parameter is relevant for D3(0) and D3(BJ) van der Waals (vdW) correction methods. The 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 0.4289: if Type: Real Availability: Description: This damping function parameter is only relevant for D3(0) and D3(BJ) van der Waals (vdW) correction methods. The 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 4.4407: if Type: Real Availability: Description: Controls the damping rate of the damping function in the DFT-D2 method. Default: 20 Type: Integer Availability: Description: Determines whether three-body terms are calculated for DFT-D3 methods. True: ABACUS will calculate the three-body term. False: The three-body term is not included. Default: False Type: String Availability: Description: Specifies the name of the file containing \(C_6\) parameters for each element when using the D2 method. If not set, ABACUS uses the default \(C_6\) parameters (Jnm6/mol) stored in the program. To manually set the \(C_6\) parameters, provide a file containing the parameters. An example is given by: Namely, each line contains the element name and the corresponding \(C_6\) parameter. Default: default Type: String Availability: Description: Specifies the unit of the provided \(C_6\) parameters in the D2 method. Available options are: Default: Jnm6/mol Type: String Availability: Description: Specifies the name of the file containing \(R_0\) parameters for each element when using the D2 method. If not set, ABACUS uses the default \(R_0\) parameters (Angstrom) stored in the program. To manually set the \(R_0\) parameters, provide a file containing the parameters. An example is given by: Namely, each line contains the element name and the corresponding \(R_0\) parameter. Default: default Type: String Availability: Description: Specifies the unit for the \(R_0\) parameters in the D2 method when manually set by the user. Available options are: Default: A Type: String Description: Determines the method used for specifying the cutoff radius in periodic systems when applying Van der Waals correction. Available options are: Default: radius Type: Real Availability: Description: Defines the radius of the cutoff sphere when Default: 56.6918 if 95 if Unit: defined by Type: String Availability: Description: specify the unit of Default: Bohr Type: Integer Integer Integer Availability: Description: The three integers supplied here explicitly specify the extent of the supercell in the directions of the three basis lattice vectors. Default: 3 3 3 Type: Real Availability: Description: The cutoff radius when calculating coordination numbers. Default: 40 Unit: defined by Type: String Description: Unit of the coordination number cutoff ( Default: Bohr These variables are used to control berry phase and wannier90 interface parameters. Detail introduce Type: Boolean Description: controls the calculation of Berry phase true: Calculate Berry phase. false: Do not calculate Berry phase. Default: false Type: Integer Description: the direction of the polarization in the lattice vector for Berry phase calculation 1: Calculate the polarization in the direction of the lattice vector a_1 defined in the STRU file. 2: Calculate the polarization in the direction of the lattice vector a_2 defined in the STRU file. 3: Calculate the polarization in the direction of the lattice vector a_3 defined in the STRU file. Default: 3 Type: Integer Description: Controls the generation of files for the Wannier90 code. 1: Generate files for the Wannier90 code. 0: Do not generate files for the Wannier90 code. Default: 0 Type: String Description: the file name generated when running “wannier90 -pp …” command Default: seedname.nnkp Type: Integer Description: Only available on LCAO basis, using different methods to generate “*.mmn” file and “*.amn” file. 1: Calculated using the 2: The overlap between atomic orbitals is calculated using grid integration. The radial grid points are generated using the Gauss-Legendre method, while the spherical grid points are generated using the Lebedev-Laikov method. Default: 1 Type: String Description: the spin direction for the Wannier function calculation when nspin is set to 2 Default: Type: Bool Description: write the “*.mmn” file or not. 0: don’t write the “*.mmn” file. 1: write the “*.mmn” file. Default: 1 Type: Bool Description: write the “*.amn” file or not. 0: don’t write the “*.amn” file. 1: write the “*.amn” file. Default: 1 Type: Bool Description: write the “*.eig” file or not. 0: don’t write the “*.eig” file. 1: write the “*.eig” file. Default: 1 Type: Bool Description: write the “UNK.*” file or not. 0: don’t write the “UNK.*” file. 1: write the “UNK.*” file. Default: 0 Type: Bool Description: write the “UNK.*” file in ASCII format or binary format. 0: write the “UNK.*” file in binary format. 1: write the “UNK.*” file in ASCII format (text file format). Default: 1 Type: Integer Description: the method to calculate the energy density matrix 0: new method (use the original formula). 1: old method (use the formula for ground state). Default: 0 Type: Real Description: <0: don’t print \(E_{ij}\). >=0: print the \(E_{ij}\ (<\psi_i|H|\psi_j>\)) elements which are larger than td_print_eij. Default: -1 Type: Integer Description: method of propagator 0: Crank-Nicolson. 1: 4th Taylor expansions of exponential. 2: enforced time-reversal symmetry (ETRS). Default: 0 Type: Boolean Description: True: add a laser material interaction (extern laser field). False: no extern laser field. Default: False Type: String Description: If 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 Type: Integer Description: type of electric field in space domain 0: length gauge. 1: velocity gauge. Default: 0 Type: Integer Description: type of electric field in time domain 0: Gaussian type function. 1: Trapezoid function. 2: Trigonometric function. 3: Heaviside function. 4: HHG function. Default: 0 Type: Integer Description: number of steps where electric field starts Default: 1 Type: Integer Description: number of steps where electric field ends Default: 100 Type: Real Description: cut1 of interval in length gauge Default: 0.05 Type: Real Description: cut2 of interval in length gauge Default: 0.05 Type: Real Description: frequency (freq) of Gauss type electric field (fs^-1) Default: 22.13 Type: Real Description: phase of Gauss type electric field Default: 0.0 Type: Real Description: sigma of Gauss type electric field (fs) Default: 30.0 Type: Real Description: step number of time center (t0) of Gauss type electric field Default: 100 Type: Real Description: amplitude (amp) of Gauss type electric field (V/Angstrom) Default: 0.25 Type: Real Description: frequency (freq) of Trapezoid type electric field (fs^-1) Default: 1.60 Type: Real Description: phase of Trapezoid type electric field Default: 0.0 Type: Real Description: step number of time interval 1 (t1) of Trapezoid type electric field Default: 1875 Type: Real Description: step number of time interval 2 (t2) of Trapezoid type electric field Default: 5625 Type: Real Description: step number of time interval 3 (t3) of Trapezoid type electric field Default: 7500 Type: Real Description: amplitude (amp) of Trapezoid type electric field (V/Angstrom) Default: 2.74 Type: Real Description: frequency 1 (freq1) of Trigonometric type electric field (fs^-1) Default: 1.164656 Type: Real Description: frequency 2 (freq2) of Trigonometric type electric field (fs^-1) Default: 0.029116 Type:Real Description: phase 1 (phase1) of Trigonometric type electric field Default: 0.0 Type: Real Description: phase 2 (phase2) of Trigonometric type electric field Default: 0.0 Type: Real Description: amplitude (amp) of Trigonometric type electric field (V/Angstrom) Default: 2.74 Type: Real Description: step number of switch time (t0) of Heaviside type electric field Default: 100 Type: Real Description: amplitude (amp) of Heaviside type electric field (V/Angstrom) Default: 2.74 Type: Boolean Description: True: output dipole. False: do not output dipole. Default: False Type: Boolean Description:output current in real time TDDFT simulations with the velocity gauge True: output current. False: do not output current. Default: False Type: Boolean Description:output tddft current for all k points. True: output tddft current for all k points. False: output current in total. Default: False Type: Boolean Description: output TDDFT Efield or not(V/Angstrom) True: output efield. False: do not output efield. Default: False Type: Boolean Description: output TDDFT Vector potential or not(a.u.) True: output Vector potential in file “OUT.suffix/At.dat” False: do not output Vector potential. Default: False Type: Boolean Description: Init vector potential through file or not True: init vector potential from file “At.dat”.(a.u.) It consists of four columns, representing istep and vector potential on each direction. False: calculate vector potential by integral of Efield Default: False Type: Boolean Availability: 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. Description: True: fix the occupations of bands. False: do not fix the occupations of bands. Default: False 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 Type: Boolean Description: Specify whether to include kinetic term in obtaining the Hamiltonian matrix. 0: No. 1: Yes. Default: 1 Type: Boolean Description: Specify whether to include local pseudopotential term in obtaining the Hamiltonian matrix. 0: No. 1: Yes. Default: 1 Type: Boolean Description: Specify whether to include non-local pseudopotential term in obtaining the Hamiltonian matrix. 0: No. 1: Yes. Default: 1 Type: Boolean Description: Specify whether to include Hartree potential term in obtaining the Hamiltonian matrix. 0: No. 1: Yes. Default: 1 Type: Boolean Description: Specify whether to include local ionic potential term in obtaining the Hamiltonian matrix. 0: No. 1: Yes. Default: 1 Type: Boolean Description: Specify whether to output the detailed components in forces. 0: No. 1: Yes. Default: 0 Type: Boolean Description: Specify whether to output the detailed components in stress. 0: No. 1: Yes. Default: 0 Type: Boolean Description: Specify whether to set the colorful output in terminal. 0: No. 1: Yes. Default: 0 Type: Boolean Description: Specify whether to skip the calculation of the ewald energy. 0: No. 1: Yes. Default: 0 Frequency-dependent electronic conductivities can be calculated with Kubo-Greenwood formula [Phys. Rev. B 83, 235120 (2011)]. Onsager coefficients: \(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+n-2} \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+n-2}}{3\Omega\hbar\omega}\Im[\tilde{C}_{mn}(\omega)]\) Guassian smearing: \(\tilde{C}_{mn}=\int_0^\infty C_{mn}(t)e^{-i\omega t}e^{-\frac{1}{2}s^2t^2}dt\) Lorentzian smearing: \(\tilde{C}_{mn}=\int_0^\infty C_{mn}(t)e^{-i\omega t}e^{-\gamma t}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. Frequency-dependent electric conductivities: \(\sigma(\omega)=L_{11}(\omega)\). Frequency-dependent 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)\). Type: Boolean Availability: basis_type = Description: Whether to calculate electronic conductivities. Default: False Type: Real Availability: esolver_type = Description: Control the error of Chebyshev expansions for conductivities. Default: 1e-8 Type: Real Availability: basis_type = Description: Frequency interval (\(\mathrm{d}\omega\)) for frequency-dependent conductivities. Default: 0.1 Unit: eV Type: Real Availability: basis_type = Description: Cutoff frequency for frequency-dependent conductivities. Default: 10.0 Unit: eV Type: Real Availability: basis_type = Description: Time interval (\(\mathrm{d}t\)) to integrate Onsager coefficients. Default: 0.02 Unit: a.u. Type: Integer Availability: esolver_type = Description: exp(iH*dt*cond_dtbatch) is expanded with Chebyshev expansion to calculate conductivities. It is faster but costs more memory. If Default: 0 Type: Integer Description: Smearing method for conductivities 1: Gaussian smearing 2: Lorentzian smearing Default: 1 Type: Real Availability: basis_type = Description: FWHM for conductivities. For Gaussian smearing, \(\mathrm{FWHM}=2\sqrt{2\ln2}s\); for Lorentzian smearing, \(\mathrm{FWHM}=2\gamma\). Default: 0.4 Unit: eV Type: Boolean Availability: basis_type = Description: Whether to consider nonlocal potential correction when calculating velocity matrix \(\bra{\psi_i}\hat{v}\ket{\psi_j}\). True: \(m\hat{v}=\hat{p}+\frac{im}{\hbar}[\hat{V}_{NL},\hat{r}]\). False: \(m\hat{v}\approx\hat{p}\). Default: True 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 is embedded in an implicit solvent and the average over the solvent degrees of freedom becomes implicit in the properties of the solvent bath. Type: Boolean Description: calculate implicit solvation correction Default: False Type: Real Availability: Description: the relative permittivity of the bulk solvent, 80 for water Default: 80 Type: Real Description: The effective surface tension parameter that describes the cavitation, the dispersion, and the repulsion interaction between the solute and the solvent which are not captured by the electrostatic terms Default: 1.0798e-05 Unit: \(Ry/Bohr^{2}\) Type: Real Description: the width of the diffuse cavity that is implicitly determined by the electronic structure of the solute Default: 0.6 Type: Real Description: the value of the electron density at which the dielectric cavity forms Default: 0.00037 Unit: \(Bohr^{-3}\) These variables are used to control the usage of QO analysis. QO further compress information from LCAO: usually PW basis has dimension in million, LCAO basis has dimension below thousand, and QO basis has dimension below hundred. Type: Boolean Description: whether to let ABACUS output QO analysis required files Default: 0 Type: String Description: specify the type of atomic basis warning: to use Default: Type: String [String…](optional) Description: specify the strategy to generate radial orbitals for each atom type. If one parameter is given, will apply to all atom types. If more than one parameters are given but fewer than number of atom type, those unspecified atom type will use default value. For For warning: for Default: for Type: Real [Real…](optional) Description: rescale the shape of radial orbitals, available for both For For Default: 0.1 Unit: Bohr^-1 Type: Real Description: the convergence threshold determining the cutoff of generated orbital. Lower threshold will yield orbital with larger cutoff radius. Default: 1.0e-6 These variables are used to control the usage of PEXSI (Pole Expansion and Selected Inversion) method in calculations. Type: Integer Description: the number of poles used in the pole expansion method, should be a even number. Default: 40 Type: Boolean Description: whether inertia counting is used at the very beginning. Default: True Type: Integer Description: maximum number of PEXSI iterations after each inertia counting procedure. Default: 80 Type: Boolean Description: whether to construct PSelInv communication pattern. Default: True Type: Boolean Description: whether to use symmetric storage space used by the Selected Inversion algorithm for symmetric matrices. Default: True Type: Integer Description: ordering strategy for factorization and selected inversion. 0: Parallel ordering using ParMETIS, 1: Sequential ordering using METIS, 2: Multiple minimum degree ordering Default: 0 Type: Integer Description: row permutation strategy for factorization and selected inversion, 0: No row permutation, 1: Make the diagonal entry of the matrix larger than the off-diagonal entries. Default: 1 Type: Integer Description: number of processors for PARMETIS. Only used if pexsi_ordering == 0. Default: 1 Type: Boolean Description: whether the matrix is symmetric. Default: True Type: Boolean Description: whether to factorize the transpose of the matrix. Default: False Type: Integer Description: the pole expansion method to be used. 1 for Cauchy Contour Integral method, 2 for Moussa optimized method. Default: 1 Type: Integer Description: the point parallelizaion of PEXSI. Recommend two points parallelization. Default: 1 Type: Real Description: temperature in Fermi-Dirac distribution, in Ry, should have the same effect as the smearing sigma when smearing method is set to Fermi-Dirac. Default: 0.015 Type: Real Description: spectral gap, this can be set to be 0 in most cases. Default: 0 Type: Real Description: an upper bound for the spectral radius of \(S^{-1} H\). Default: 20 Type: Real Description: initial guess of lower bound for mu. Default: -10 Type: Real Description: initial guess of upper bound for mu. Default: 10 Type: Real Description: initial guess for mu (for the solver). Default: 0 Type: Real Description: stopping criterion in terms of the chemical potential for the inertia counting procedure. Default: 0.05 Type: Real Description: if the chemical potential is not in the initial interval, the interval is expanded by this value. Default: 0.3 Type: Real Description: safe guard criterion in terms of the chemical potential to reinvoke the inertia counting procedure. Default: 0.2 Type: Real Description: stopping criterion of the PEXSI iteration in terms of the number of electrons compared to numElectronExact. Default: 0.001 Type: Real Description: if the absolute value of CCS matrix element is less than this value, it will be considered as zero. Default: 1e-10System variables
suffix
suffix
is the name you can pick up for your convenience.ntype
calculation
relax_nmax
parameter depicts the maximal number of ionic iterationsnbands_istate
and bands_to_print
for more informationnbands_istate
for more informationSR.csr
with file format being the same as that generated by out_mat_hs2bessel_descriptor_lmax
, bessel_descriptor_rcut
and bessel_descriptor_tolerence
. A file named jle.orb
will be generated which contains the projectors. An example is provided in examples/H2O-deepks-pwesolver_type
symmetry
symmetry_prec
OUT.${suffix}/running_cell-relax.log
in that case.symmetry_autoclose
kpar
bndpar
latname
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.psi_initializer
basis_type pw
case).nspin 4
case (closed presently), and cannot use with calculation nscf
/esolver_type sdft
cases. Available options are:init_wfc
WAVEFUNC*.dat
, which are output by setting out_wfc_pw to 2
.psi_initializer 1
, two more options are supported:init_chg
charge-density.dat
first. If it does not exist, the charge density will be read in from cube files. Besides, when you do nspin=1
calculation, you only need the density file SPIN1_CHG.cube. However, if you do nspin=2
calculation, you also need the density file SPIN2_CHG.cube. The density file should be output with these names if you set out_chg = 1 in INPUT file.init_vel
nelec
>0.0
: this denotes the total number of electrons in the system. Must be less than 2*nbands.nelec_delta
nelec
+nelec_delta
.nupdown
>0.0
: this denotes the difference number of electrons between spin-up and spin-down 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.dft_functional
dft_functional
keyword in INPUT
file. If dft_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 exchange-correlation functional. The first is using ‘short-hand’ names such as ‘LDA’, ‘PBE’, ‘SCAN’. A complete list of ‘short-hand’ expressions can be found in the source code. The other way is only available when compiling with LIBXC, and it allows for supplying exchange-correlation 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.hf
(pure Hartree-Fock), 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.opt_orb
, the program will not perform hybrid functional calculation. Instead, it is going to generate opt-ABFs as discussed in this article.xc_temperature
pseudo_rcut
pseudo_mesh
mem_saver
diago_proc
>0
: it specifies the number of processes used for carrying out diagonalization. Must be less than or equal to total number of MPI processes. Also, when cg diagonalization is used, diago_proc must be the same as the total number of MPI processes.nbspline
nbspline
represents the order of B-spline basis and a larger one can get more accurate results but cost more. It is turned off by default.kspacing
kspacing 0.5
), then kspacing values of a/b/c direction are all set to it; and one can also set 3 values to set the kspacing value for a/b/c direction separately (such as: kspacing 0.5 0.6 0.7
).min_dist_coef
device
gpu
acceleration. If using the lcao basis, gamma_only
must be set to 1
, as multi-k calculation is currently not supported for gpu
. lcao_in_pw also does not support gpu
.precision
single
precision optionssingle
precision optionselpa_num_thread
Electronic structure
basis_type
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.
USE_ELPA
has been set), scalapack_gvx, (localized atomic orbital basis, if compiling option USE_ELPA
has not been set)nbands
nspin
smearing_method
smearing_sigma
smearing_sigma_temp
smearing_sigma
= 1/2 kB smearing_sigma_temp
.smearing_sigma
/ kB.mixing_type
mixing_beta
mixing_beta
. A lower value of ‘mixing_beta’ results in less influence of \(\rho_{update}\) on \(\rho_{new}\), making the self-consistent field (SCF) calculation more stable. However, it may require more steps to achieve convergence. We recommend the following options:nspin=1
nspin=2
and nspin=4
init_chg=file
or testing.0 < mixing_beta < 0.1
.mixing_beta=0.1
, mixing_ndim=20
, and mixing_gg0=1.0
usually works well.nspin=1
, 0.4 for nspin=2
and nspin=4
.mixing_beta_mag
4*mixing_beta
, but the maximum value is 1.6.mixing_beta_mag
is not euqal to mixing_beta
means that \(\rho_{up}\) and \(\rho_{down}\) mix independently from each other. This setting will fail for one case where the \(\rho_{up}\) and \(\rho_{down}\) of the ground state refers to different Kohn-Sham orbitals. For an atomic system, the \(\rho_{up}\) and \(\rho_{down}\) of the ground state refers to different Kohn-Sham orbitals. We all know Kohn-Sham orbitals are orthogonal to each other. So the mixture of \(\rho_{up}\) and \(\rho_{down}\) should be exactly independent, otherwise SCF cannot find the ground state forever. To sum up, please make sure mixing_beta_mag
and mixing_gg0_mag
exactly euqal to mixing_beta
and mixing_gg0
if you calculate an atomic system.mixing_ndim
mixing_restart
drho
is smaller than mixing_restart
, SCF will restart at next step which means SCF will restart by using output charge density from perivos iteration as input charge density directly, and start a new mixing. Notice that mixing_restart
will only take effect once in one SCF.mixing_dmr
mixing_restart>=0.0
drho<mixing_restart
, SCF will start a mixing for real-space density matrix by using the same coefficiences as the mixing of charge density.mixing_gg0
mixing_gg0 = 1.0
is normally a good starting point. Kerker preconditioner will be automatically turned off if mixing_beta <= 0.1
.mixing_gg0_mag
mixing_gg0_min
mixing_angle
nspin=4
.mixing_angle
is the angle mixing parameter. In fact, only mixing_angle=1.0
is implemented currently.mixing_angle=1.0
mixing_beta_mag >> mixing_beta
. The setup of mixing_beta=0.2
, mixing_beta_mag=1.0
usually works well.mixing_tau
mixing_dftu
gamma_only
printe
scf_nmax
scf_thr
scf_thr_type
chg_extrap
lspinorb
nspin
is also automatically set to 4.noncolin
nspin
is also automatically set to 4.soc_lambda
soc_lambda
, which has value range [0.0, 1.0] , is used for modulate SOC effect.soc_lambda 0.0
refers to scalar-relativistic case and soc_lambda 1.0
refers to full-relativistic case.Electronic structure (SDFT)
method_sto
sdft
nbands_sto
sdft
nche_sto
sdft
emin_sto
sdft
emax_sto
sdft
seed_sto
sdft
initsto_ecut
sdft
initsto_ecut
”. initsto_ecut
should be larger than ecutwfc. In this method, SDFT results are the same when using different cores. Besides, coefficients of the same G are the same when ecutwfc is rising to initsto_ecut. If it is smaller than ecutwfc, it will be turned off.initsto_freq
sdft
npart_sto
2
and out_dos = True
or cal_cond = True
Geometry relaxation
relax_method
md
and md_type to fire
. Also ionic velocities should be set in this case. See fire for more details.relax_new
relax
and cell-relax
calculations. But the old implementation was also kept.relax
and cell-relax
calculations.relax
and cell-relax
calculations.relax_scale_force
relax_new
set to True
relax_nmax
relax_cg_thr
cg_bfgs
, a mixed algorithm of conjugate gradient (CG) method and Broyden–Fletcher–Goldfarb–Shanno (BFGS) method is used. The ions first move according to CG method, then switched to BFGS method when the maximum of force on atoms is reduced below the CG force threshold, which is set by this parameter.cal_force
calculation
is set to scf
, True if calculation
is set to cell-relax
, relax
, or md
.force_thr
force_thr_ev
force_thr_ev2
force_thr_ev2
.relax_bfgs_w1
relax_bfgs_w2
relax_bfgs_rmax
relax_bfgs_rmax
relax_bfgs_rmin
relax_bfgs_init
cal_stress
calculation
is cell-relax
, False otherwise.stress_thr
press1, press2, press3
fixed_axes
calculation
set to cell-relax
fixed_ibrav
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.fixed_atoms
m
keyword in STRU
file. For the latter option, check the end of this instruction.cell_factor
Density of states
dos_edelta_ev
dos_sigma
dos_scale
dos_emin_ev
dos_emax_ev
dos_nche
NAOs
OUT.${suffix}/orb_matrix.${i}.dat
, which serves as an input file for the generation of NAOs. Please check SIAB package for more information.bessel_nao_ecut
bessel_nao_ecut
)\(\times\)bessel_nao_rcut
/\(\pi\).ecutwfc
bessel_nao_tolerence
bessel_nao_rcut
bessel_nao_smooth
bessel_nao_rcut
for \(r_{cut}\) and bessel_nao_sigma
for \(\sigma\).bessel_nao_sigma
bessel_nao_smooth
.DeePKS
deepks_out_labels
LCAO
calculation, the path of a numerical descriptor (an orb
file) is needed to be specified under the NUMERICAL_DESCRIPTOR
tag in the STRU
file. For example:NUMERICAL_ORBITAL
H_gga_8au_60Ry_2s1p.orb
O_gga_7au_60Ry_2s2p1d.orb
NUMERICAL_DESCRIPTOR
jle.orb
deepks_scf
deepks_equiv
deepks_model
deepks_scf
is truebessel_descriptor_lmax
gen_bessel
calculationgen_bessel
in ABACUS. See also calculation.bessel_descriptor_ecut
gen_bessel
calculationbessel_descriptor_tolerence
gen_bessel
calculationbessel_descriptor_rcut
gen_bessel
calculationbessel_descriptor_smooth
gen_bessel
calculationbessel_descriptor_sigma
gen_bessel
calculationdeepks_bandgap
deepks_scf
is truedeepks_out_unittest
OFDFT: orbital free density functional theory
of_kinetic
of_vw_weight
.of_method
of_conv
of_tole
.of_tolp
.of_tole
of_tolp
of_tf_weight
of_kinetic=tf, tf+, wt
of_vw_weight
of_kinetic=vw, tf+, wt, lkt
of_wt_alpha
of_kinetic=wt
of_wt_beta
of_kinetic=wt
of_wt_rho0
of_kinetic=wt
of_hold_rho0
of_kinetic=wt
of_wt_rho0
is not zero.of_lkt_a
of_kinetic=lkt
of_read_kernel
of_kinetic=wt
of_kernel_file
.of_kernel_file
of_read_kernel=True
of_full_pw
of_full_pw_dim
of_full_pw = True
of_full_pw_dim = 1
if nbspline != -1
.Electric field and dipole correction
efield_flag
dip_cor_flag
efield_dir
efield_pos_max
center of vacuum - width of vacuum / 20
efield_pos_dec
width of vacuum / 10
efield_amp
Gate field (compensating charge)
gate_flag
zgate
block
block_down
block_up
block_height
Exact Exchange
exx_hybrid_alpha
exx_hse_omega
exx_separate_loop
exx_hybrid_step
exx_mixing_beta
exx_lambda
exx_pca_threshold
exx_c_threshold
exx_v_threshold
exx_dm_threshold
exx_c_grad_threshold
exx_v_grad_threshold
exx_schwarz_threshold
exx_cauchy_threshold
exx_cauchy_force_threshold
exx_cauchy_stress_threshold
exx_ccp_threshold
exx_ccp_rmesh_times
exx_distribute_type
htime
, order
, kmean1
and kmeans2
.order
: Atom pairs are simply distributed by their orders.htime
: The balance in time is achieved on each processor, hence if the memory is sufficient, this is the recommended method.kmeans1
, kmeans2
: Two methods where the k-means clustering method is used to reduce memory requirement. They might be necessary for very large systems. (Currently not used)htime
exx_opt_orb_lmax
exx_opt_orb_ecut
exx_opt_orb_tolerence
exx_real_number
double
data type.complex
data type.rpa_ccp_rmesh_times
Molecular dynamics
md_type
md_nstep
md_dt
md_thermostat
md_tfirst, md_tlast
md_tfirst
is unset or less than zero, init_vel is autoset to be true
. If init_vel is true
, the initial temperature will be determined by the velocities read from STRU
. In this case, if velocities are unspecified in STRU
, the initial temperature is set to zero.md_tfirst
is set to a positive value and init_vel is true
simultaneously, please make sure they are consistent, otherwise abacus will exit immediately.md_tlast
is only used in NVT/NPT simulations. If md_tlast
is unset or less than zero, md_tlast
is set to 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
.md_restart
${read_file_dir}/Restart_md.dat
to determine the current step ${md_step}
, then read in the corresponding STRU_MD_${md_step}
in the folder OUT.$suffix/STRU/
automatically. For tddft, ABACUS will also read in WFC_NAO_K${kpoint}
of the last step (You need to set out_wfc_lcao=1 and out_app_flag=0 to obtain this file).md_restartfreq
OUT.${suffix}/Restart_md.dat
and structural files in the directory OUT.${suffix}/STRIU/
, which are used to restart molecular dynamics calculations, see md_restart in detail.md_dumpfreq
OUT.${suffix}/MD_dump
in molecular dynamics calculations, which including the information of lattices and atoms.dump_force
OUT.${suffix}/MD_dump
.dump_vel
OUT.${suffix}/MD_dump
.dump_virial
OUT.${suffix}/MD_dump
.md_seed
md_tfreq
md_tchain
md_pmode
md_prec_level
ref_cell_factor
md_pcouple
md_pfirst, md_plast
md_plast
is md_pfirst
. If md_plast
is set to be different from md_pfirst
, ABACUS will automatically change the target pressure from md_pfirst
to 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_tolerance
.md_nraise
md_nraise
.md_nraise
*md_dt
, so md_dt
/tau = 1/md_nraise
.md_nraise
steps the current temperature is rescaled to the target temperature.cal_syns
dmax
DFT+U correction
dft_plus_u
onsite_radius
).orbital_corr
hubbard_u
yukawa_potential
hubbard_u
does not need to be specified.hubbard_u
does need to be specified.yukawa_lambda
yukawa_potential
= True.uramping
mixing_restart > 0
.uramping
> 0.15 eV. DFT+U calculations will start SCF with U = 0 eV, namely normal LDA/PBE calculations. Once SCF restarts when drho<mixing_restart
, U value will increase by uramping
eV. SCF will repeat above calcuations until U values reach target defined in hubbard_u
. As for uramping=1.0 eV
, the recommendations of mixing_restart
is around 5e-4
.omc
[initial_onsite.dm](http://initial_onsite.dm/)
, but for later steps, the onsite density matrix will be updated.initial_onsite.dm
will be used throughout the entire calculation.initial_onsite.dm
is to run a DFT+U calculation, look for a file named onsite.dm
in the OUT.prefix directory, and make replacements there. The format of the file is rather straight-forward.onsite_radius
dft_plus_u
is set to 1Onsite-radius
parameter facilitates modulation of the single-zeta portion of numerical atomic orbitals for projections for DFT+U.vdW correction
vdw_method
d2
: Grimme’s D2 dispersion correction methodd3_0
: Grimme’s DFT-D3(0) dispersion correction methodd3_bj
: Grimme’s DFTD3(BJ) dispersion correction methodnone
: no vdW correctionvdw_s6
vdw_method
is set to d2
, d3_0
, or d3_bj
vdw_method
is set to d2
vdw_method
is set to d3_0
or d3_bj
vdw_s8
vdw_method
is set to d3_0
or d3_bj
vdw_method
is set to d3_0
vdw_method
is set to d3_bj
vdw_a1
vdw_method
is set to d3_0
or d3_bj
vdw_method
is set to d3_0
vdw_method
is set to d3_bj
vdw_a2
vdw_method
is set to d3_0
or d3_bj
vdw_method
is set to d3_0
vdw_method
is set to d3_bj
vdw_d
vdw_method
is set to d2
vdw_abc
vdw_method
is set to d3_0
or d3_bj
vdw_C6_file
vdw_method
is set to d2
H 0.1
Si 9.0
vdw_C6_unit
vdw_C6_file
is not defaultJnm6/mol
(J·nm^6/mol)eVA
(eV·Angstrom)vdw_R0_file
vdw_method
is set to d2
Li 1.0
Cl 2.0
vdw_R0_unit
vdw_R0_file
is not defaultA
(Angstrom)Bohr
vdw_cutoff_type
radius
: The supercell is selected within a sphere centered at the origin with a radius defined by vdw_cutoff_radius
.period
: The extent of the supercell is explicitly specified using the vdw_cutoff_period
keyword.vdw_cutoff_radius
vdw_cutoff_type
is set to radius
vdw_cutoff_type
is set to radius
. The default values depend on the chosen vdw_method
.vdw_method
is set to d2
vdw_method
is set to d3_0
or d3_bj
vdw_radius_unit
(default Bohr
)vdw_radius_unit
vdw_cutoff_type
is set to radius
vdw_cutoff_radius
. Available options are:A
(Angstrom)Bohr
vdw_cutoff_period
vdw_cutoff_type
is set to period
vdw_cn_thr
vdw_method
is set to d3_0
or d3_bj
vdw_cn_thr_unit
(default: Bohr
)vdw_cn_thr_unit
vdw_cn_thr
). Available options are:A
(Angstrom)Bohr
Berry phase and wannier90 interface
berry_phase
gdir
towannier90
nnkpfile
wannier_method
lcao_in_pw
method, the calculation accuracy can be improved by increasing ecutwfc
to maintain consistency with the pw basis set results.wannier_spin
up
: Calculate spin up for the Wannier function.down
: Calculate spin down for the Wannier function.up
out_wannier_mmn
out_wannier_amn
out_wannier_eig
out_wannier_unk
out_wannier_wvfn_formatted
TDDFT: time dependent density functional theory
td_edm
td_print_eij
td_propagator
td_vext
td_vext_dire
td_vext
is True, the td_vext_dire is a string to set the number of electric fields, like td_vext_dire 1 2
representing external electric field is added to the x and y axis at the same time. Parameters of electric field can also be written as a string, like td_gauss_phase 0 1.5707963267948966
representing the Gauss field in the x and y directions has a phase delay of Pi/2. See below for more parameters of electric field.td_stype
td_ttype
td_tstart
td_tend
td_lcut1
E = E0 , cut1<x<cut2
E = -E0/(cut1+1-cut2) , x<cut1 or cut2<x<1td_lcut2
E = E0 , cut1<x<cut2
E = -E0/(cut1+1-cut2) , x<cut1 or cut2<x<1td_gauss_freq
amp*cos(2pi*freq(t-t0)+phase)exp(-(t-t0)^2/2sigma^2)td_gauss_phase
amp*(2pi*freq(t-t0)+phase)exp(-(t-t0)^2/2sigma^2)td_gauss_sigma
amp*cos(2pi*freq(t-t0)+phase)exp(-(t-t0)^2/2sigma^2)td_gauss_t0
amp*cos(2pi*freq(t-t0)+phase)exp(-(t-t0)^2/2sigma^2)td_gauss_amp
amp*cos(2pi*freq(t-t0)+phase)exp(-(t-t0)^2/2sigma^2)td_trape_freq
E = amp*cos(2pi*freq*t+phase) t/t1 , t<t1
E = amp*cos(2pi*freq*t+phase) , t1<t<t2
E = amp*cos(2pi*freq*t+phase) (1-(t-t2)/(t3-t2)) , t2<t<t3
E = 0 , t>t3td_trape_phase
E = amp*cos(2pi*freq*t+phase) t/t1 , t<t1
E = amp*cos(2pi*freq*t+phase) , t1<t<t2
E = amp*cos(2pi*freq*t+phase) (1-(t-t2)/(t3-t2)) , t2<t<t3
E = 0 , t>t3td_trape_t1
E = amp*cos(2pi*freq*t+phase) t/t1 , t<t1
E = amp*cos(2pi*freq*t+phase) , t1<t<t2
E = amp*cos(2pi*freq*t+phase) (1-(t-t2)/(t3-t2)) , t2<t<t3
E = 0 , t>t3td_trape_t2
E = amp*cos(2pi*freq*t+phase) t/t1 , t<t1
E = amp*cos(2pi*freq*t+phase) , t1<t<t2
E = amp*cos(2pi*freq*t+phase) (1-(t-t2)/(t3-t2)) , t2<t<t3
E = 0 , t>t3td_trape_t3
E = amp*cos(2pi*freq*t+phase) t/t1 , t<t1
E = amp*cos(2pi*freq*t+phase) , t1<t<t2
E = amp*cos(2pi*freq*t+phase) (1-(t-t2)/(t3-t2)) , t2<t<t3
E = 0 , t>t3td_trape_amp
E = amp*cos(2pi*freq*t+phase) t/t1 , t<t1
E = amp*cos(2pi*freq*t+phase) , t1<t<t2
E = amp*cos(2pi*freq*t+phase) (1-(t-t2)/(t3-t2)) , t2<t<t3
E = 0 , t>t3td_trigo_freq1
amp*cos(2*pi*freq1*t+phase1)*sin(2*pi*freq2*t+phase2)^2td_trigo_freq2
amp*cos(2*pi*freq1*t+phase1)*sin(2*pi*freq2*t+phase2)^2td_trigo_phase1
amp*cos(2*pi*freq1*t+phase1)*sin(2*pi*freq2*t+phase2)^2td_trigo_phase2
amp*cos(2*pi*freq1*t+phase1)*sin(2*pi*freq2*t+phase2)^2td_trigo_amp
amp*cos(2*pi*freq1*t+phase1)*sin(2*pi*freq2*t+phase2)^2td_heavi_t0
E = amp , t<t0
E = 0.0 , t>t0td_heavi_amp
E = amp , t<t0
E = 0.0 , t>t0out_dipole
out_current
out_current_k
out_efield
out_vecpot
init_vecpot_file
ocp
ocp_set
Variables useful for debugging
t_in_h
vl_in_h
vnl_in_h
vh_in_h
vion_in_h
test_force
test_stress
colour
test_skip_ewald
Electronic conductivities
cal_cond
pw
cond_che_thr
sdft
cond_dw
pw
cond_wcut
pw
cond_dt
pw
cond_dtbatch
sdft
cond_dtbatch = 0
: Autoset this parameter to make expansion orders larger than 100.cond_smear
cond_fwhm
pw
cond_nonlocal
pw
Implicit solvation model
imp_sol
eb_k
imp_sol
is true.tau
sigma_k
nc_k
Quasiatomic Orbital (QO) analysis
qo_switch
qo_basis
pswfc
: use the pseudowavefunction in pseudopotential files as atomic basis. To use this option, please make sure in pseudopotential file there is pswfc in it.hydrogen
: generate hydrogen-like atomic basis (or with Slater screening).szv
: use the first set of zeta for each angular momentum from numerical atomic orbitals as atomic basis.pswfc
, please use norm-conserving pseudopotentials with pseudowavefunctions, SG15 pseudopotentials cannot support this option. Developer notes: for ABACUS-lcao calculation, it is the most recommend to use szv
instead of pswfc
which is originally put forward in work of QO implementation on PW basis. The information loss always happens if pswfc
or hydrogen
orbitals are not well tuned, although making kpoints sampling more dense will mitigate this problem, but orbital-adjust parameters are needed to test system-by-system in this case.szv
qo_strategy
qo_basis hydrogen
minimal-nodeless
: according to principle quantum number of the highest occupied state, generate only nodeless orbitals, for example Cu, only generate 1s, 2p, 3d and 4f orbitals (for Cu, 4s is occupied, thus \(n_{max} = 4\))minimal-valence
: according to principle quantum number of the highest occupied state, generate only orbitals with highest principle quantum number, for example Cu, only generate 4s, 4p, 4d and 4f orbitals.full
: similarly according to the maximal principle quantum number, generate all possible orbitals, therefore for Cu, for example, will generate 1s, 2s, 2p, 3s, 3p, 3d, 4s, 4p, 4d, 4f.energy-full
: will generate hydrogen-like orbitals according to Aufbau principle. For example the Cu (1s2 2s2 2p6 3s2 3p6 3d10 4s1), will generate these orbitals.energy-valence
: from the highest n (principal quantum number) layer and n-1 layer, generate all occupied and possible ls (angular momentum quantum number) for only once, for example Cu, will generate 4s, 3d and 3p orbitals.qo_basis pswfc
and qo_basis szv
all
: use all possible pseudowavefunctions/numerical atomic orbital (of first zeta) in pseudopotential/numerical atomic orbital file.s
/p
/d
/…: only use s/p/d/f/…-orbital(s).spd
: use s, p and d orbital(s). Any unordered combination is acceptable.qo_basis hydrogen
to use full
, generation strategy may cause the space spanned larger than the one spanned by numerical atomic orbitals, in this case, must filter out orbitals in some wayhydrogen
: energy-valence
, for pswfc
and szv
: all
qo_screening_coeff
qo_basis hydrogen
and qo_basis pswfc
. cases but has different meaning.qo_basis pswfc
For each atom type, screening factor \(e^{-\eta|\mathbf{r}|}\) is multiplied to the pswfc to mimic the behavior of some kind of electron. \(\eta\) is the screening coefficient. If only one value is given, then will apply to each atom type. If not enough values are given, will apply default value to rest of atom types. This parameter plays important role in controlling the spread of QO orbitals together with qo_thr
.qo_basis hydrogen
If any float number is given, will apply Slater screening to all atom types. Slater screening is a classic and empirical method roughly taking many-electron effect into account for obtaining more accurate results when evaluating electron affinity and ionization energy. The Coulomb potential then becomes \(V(r) = -\frac{Z-\sigma}{r}\). For example the effective nuclear charge for Cu 3d electrons now reduces from 29 to 7.85, 4s from 29 to 3.70, which means Slater screening will bring about longer tailing effect. If no value is given, will not apply Slater screening.qo_thr
PEXSI
pexsi_npole
pexsi_inertia
pexsi_nmax
pexsi_comm
pexsi_storage
pexsi_ordering
pexsi_row_ordering
pexsi_nproc
pexsi_symm
pexsi_trans
pexsi_method
pexsi_nproc_pole
pexsi_temp
pexsi_gap
pexsi_delta_e
pexsi_mu_lower
pexsi_mu_upper
pexsi_mu
pexsi_mu_thr
pexsi_mu_expand
pexsi_mu_guard
pexsi_elec_thr
pexsi_zero_thr