Full List of INPUT Keywords

back to top

System variables

This part of variables are used to control general system parameters.

suffix

  • Type: String

  • Description: In each run, ABACUS will generate a subdirectory in the working directory. This subdirectory contains all the information of the run. The subdirectory name has the format: OUT.suffix, where the suffix is the name you can pick up for your convenience.

  • Default: ABACUS

ntype

  • Type: Integer

  • Description: Number of different atom species in this calculations. This value must be set. If the number you set is smaller than the atom species in the STRU file, ABACUS only read the wrong number of atom information. If the number is larger than the atom species in the STRU file, ABACUS may stop and quit.

  • Default: No default value

calculation

  • Type: String

  • Description: Specify the type of calculation.

    • scf: do self-consistent electronic structure calculation

    • relax: do structure relaxation calculation, one can ues relax_nmax to decide how many ionic relaxations you want.

    • cell-relax: do variable-cell relaxation calculation.

    • nscf: do the non self-consistent electronic structure calculations. For this option, you need a charge density file. For nscf calculations with planewave basis set, pw_diag_thr should be <= 1d-3.

    • istate: For LCAO basis. Please see the explanation for variable nbands_istate.

    • ienvelope: Envelope function for LCAO basis. Please see the explanation for variable nbands_istate.

    • md: molecular dynamics

    • sto-scf: do self-consistent electronic structure calculation with stochastic DFT

    • sto-md: molecular dynamics with stochastic DFT

    • test_memory : checks memory required for the calculation. The number is not quite reliable, please use with care

    • test_neighbour : only performs neighbouring atom search

    • gen_bessel : generates projectors (a series of bessel functions) for DeePKS; see also keywords bessel_lmax, bessel_rcut and bessel_tol. A file named jle.orb will be generated which contains the projectors. An example is provided in examples/H2O-deepks-pw.

    • get_S : only works for multi-k calculation with LCAO basis. Generates and writes the overlap matrix to a file names SR.csr in the working directory. The format of the file will be the same as that generated by out_mat_hs2.

  • Default: scf

symmetry

  • Type: Integer

  • Description: takes value 1, 0 and -1.

    • if set to 1, symmetry analysis will be performed to determine the type of Bravais lattice and associated symmetry operations. (point groups only)

    • if set to 0, only time reversal symmetry would be considered in symmetry operations, which implied k point and -k point would be treated as a single k point with twice the weight.

    • if set to -1, no symmetry will be considered.

  • Default: 0

kpar

  • Type: Integer

  • Description: devide all processors into kpar groups, and k points will be distributed among each group. The value taken should be less than or equal to the number of k points as well as the number of MPI threads.

  • Default: 1

bndpar

  • Type: Integer

  • Description: devide all processors into bndpar groups, and bands (only stochastic orbitals now) will be distributed among each group. It should be larger than 0.

  • Default: 1

latname

  • Type: String

  • Description: Specifies the type of Bravias lattice. When set to test, the three lattice vectors are supplied explicitly in STRU file. When set to certain Bravais lattice type, there is no need to provide lattice vector, but a few lattice parameters might be required. For more information regarding this parameter, consult the page on STRU file. Available options are:

    • test: free strcture.

    • sc: simple cubie.

    • fcc: face-centered cubic.

    • bcc: body-centered cubic.

    • hexagonal: hexagonal.

    • trigonal: trigonal.

    • st: simple tetragonal.

    • bct: body-centered tetragonal.

    • so: orthorhombic.

    • baco: base-centered orthorhombic.

    • fco: face-centered orthorhombic.

    • bco: body-centered orthorhombic.

    • sm: simple monoclinic.

    • bacm: base-centered monoclinic.

    • triclinic: triclinic.

  • Default: test

init_wfc

  • Type: String

  • Description: Only useful for plane wave basis only now. It is the name of the starting wave functions. In the future we should also make this variable available for localized orbitals set. Available options are:

    • atomic: from atomic pseudo wave functions. If they are not enough, other wave functions are initialized with random numbers.

    • atomic+random: add small random numbers on atomic pseudo-wavefunctions

    • file: from file

    • random: random numbers

  • Default:atomic

init_chg

  • Type: String

  • Description: This variable is used for both plane wave set and localized orbitals set. It indicates the type of starting density. If set this to atomic, the density is starting from summation of atomic density of single atoms. If set this to file, the density will be read in from file. Besides, when you do nspin=1 calculation, you only need the density file SPIN1_CHGCAR. However, if you do nspin=2 calculation, you also need the density file SPIN2_CHGCAR. The density file should be output with these names if you set out_chg = 1 in INPUT file.

  • Default: atomic

init_vel

  • Type: Boolean

  • Description: Read the atom velocity from the atom file (STRU) if set to true.

  • Default: false

nelec

  • Type: Real

  • Description: If >0.0, this denotes total number of electrons in the system. Must be less than 2*nbands. If set to 0.0, the total number of electrons will be calculated by the sum of valence electrons (i.e. assuming neutral system).

  • Default: 0.0

tot_magnetization

  • Type: Real

  • Description: Total magnetization of the system.

  • Default: 0.0

dft_functional

  • Type: String

  • Description: In our package, the XC functional can either be set explicitly using the dft_functional keyword 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 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 plus sign, for example, ‘dft_functional=‘LDA_X_1D_EXPONENTIAL+LDA_C_1D_CSC’. The list of LIBXC keywords can be found on its website. In this way, we support all the LDA,GGA and mGGA functionals provided by LIBXC.

    Furthermore, the old INPUT parameter exx_hybrid_type for hybrid functionals has been absorbed into dft_functional. Options are hf (pure 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 parallel cpus for running exx is Nx(N+1)/2, with N being the number of atoms. And forces for hybrid functionals are not supported yet.

    If set to opt_orb, the program will not perform hybrid functional calculation. Instead, it is going to generate opt-ABFs as discussed in this article.

  • Default: same as UPF file.

xc_temperature

  • Type: Real

  • Description: specifies temperature when using temperature-dependent XC functionals (KSDT and so on); unit in Rydberg

  • Default : 0.0

pseudo_rcut

  • Type: Real

  • Description: Cut-off of radial integration for pseudopotentials, in Bohr.

  • Default: 15

pseudo_mesh

  • Type: Integer

  • Description: If set to 0, then use our own mesh for radial integration of pseudopotentials; if set to 1, then use the mesh that is consistent with quantum espresso.

  • Default: 0

mem_saver

  • Type: Boolean

  • Description: Used only for nscf calculations. If set to 1, then a memory saving technique will be used for many k point calculations.

  • Default: 0

diago_proc

  • Type: Integer

  • Descrption: If set to a positive number, then it specifies the number of threads used for carrying out diagonalization. Must be less than or equal to total number of MPI threads. Also, when cg diagonalization is used, diago_proc must be same as total number of MPI threads. If set to 0, then it will be set to the number of MPI threads. Normally, it is fine just leaving it to default value. Only used for pw base.

  • Default: 0

nbspline

  • Type: Integer

  • Descrption: If set to a natural number, a Cardinal B-spline interpolation will be used to calculate Structure Factor. nbspline represents the order of B-spline basis and larger one can get more accurate results but cost more. It is turned off by default.

  • Default: -1

kspacing

  • Type: Real

  • Descrption: 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 unneccessary, and the number of K points nk_i = max(1, int(|b_i|/KSPACING)+1), where b_i is the reciprocal lattice vector. The default value 0.0 means that ABACUS will read the applied KPT file. Notice: if gamma_only is set to be true, kspacing is invalid.

  • Default: 0.0

min_dist_coef

  • Type: Real

  • Descrption: a factor related to the allowed minimum distance between two atoms. At the begining, 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 condition like high pressure, you should set this parameter as a smaller value or even 0.

  • Default: 0.2

symmetry_prec

  • Type: Real

  • Descrption: The accuracy for symmetry judgment. The unit is Bohr.

  • Default: 1.0e-5

back to top

Electronic structure

This part of variables are used to control the electronic structure and geometry relaxation calculations.

basis_type

  • Type: String

  • Description: This is very important parameters to choose basis set in ABACUS.

    • pw: Using plane-wave basis set only.

    • lcao_in_pw: Expand the localized atomic set in plane-wave basis.

    • lcao: Using localized atomic orbital sets.

  • Default: pw

ks_solver

  • Type: String

  • Description: It`s about choice of diagonalization methods for hamiltonian matrix expanded in a certain basis set.

    For plane-wave basis,

    • cg: cg method.

    • dav: the Davidson algorithm. (Currently not working with Intel MKL library).

    For atomic orbitals basis,

    • genelpa: This method should be used if you choose localized orbitals.

    • hpseps: old method, still used.

    • lapack: lapack can be used for localized orbitals, but is only used for single processor.

    • cusolver: this method needs building with the cusolver component for lcao and at least one gpu is available.

    If you set ks_solver=hpseps for basis_type=pw, the program will be stopped with an error message:

    hpseps can not be used with plane wave basis.
    

    Then the user has to correct the input file and restart the calculation.

  • Default: cg (pw) or genelpa (lcao)

nbands

  • Type: Integer

  • Description: Number of Kohn-Sham orbitals to calculate. It is recommended you setup this value, especially when you use smearing techniques, more bands should be included.

  • Default:

    • nspin=1: 1.2*occupied_bands, occupied_bands+10)

    • nspin=2: max(1.2*nelec, nelec+20)

nbands_istate

  • Type: Integer

  • Description: Only used when calculation = ienvelope or calculation = istate, this variable indicates how many bands around Fermi level you would like to calculate. ienvelope means to calculate the envelope functions of wave functions \(\Psi_{i}=\Sigma_{\mu}C_{i\mu}\Phi_{\mu}\), where \(\Psi_{i}\) is the ith wave function with the band index \(i\) and \(\Phi_{\mu}\) is the localized atomic orbital set. istate means to calculate the density of each wave function \(|\Psi_{i}|^{2}\). Specifically, suppose we have highest occupied bands at 100th wave functions. And if you set this variable to 5, it will print five wave functions from 96th to 105th. But before all this can be carried out, the wave functions coefficients should be first calculated and written into a file by setting the flag out_wfc_lcao = 1.

  • Default: 5

nspin

  • Type: Integer

  • Description: Number of spin components of wave functions. There are only two choices now: 1 or 2, meaning non spin or collinear spin.

  • Default: 1

smearing_method

  • Type: String

  • Description: It indicates which occupation and smearing method is used in the calculation.

    • fixed: use fixed occupations.

    • gauss or gaussian: use gaussian smearing method.

    • mp: use methfessel-paxton smearing method. The method recommends for metals.

    • fd: Fermi-Dirac smearing method: \(f=1/\{1+\exp[(E-\mu)/kT]\}\) and smearing_sigma below is the temperature \(T\) (in Ry).

  • Default: fixed

smearing_sigma

  • Type: Real

  • Description: energy range for smearing, the unit is Rydberg.

  • Default: 0.001

smearing_sigma_temp

  • Type: Real

  • Description: energy range for smearing, and is same as smearing_sigma, but the unit is K. smearing_sigma = 1/2 * kB * smearing_sigma_temp.

mixing_type

  • Type: String

  • Description: Charge mixing methods.

    • plain: Just simple mixing.

    • kerker: Use kerker method, which is the mixing method in G space.

    • pulay: Standard Pulay method.

    • pulay-kerker:

    • broyden: Broyden method.

  • Default: pulay

mixing_beta

  • Type: Real

  • Description: mixing parameter: 0 means no new charge

  • Default: 0.7

mixing_ndim

  • Type: Integer

  • Description: It indicates the mixing dimensions in Pulay, Pulay method use the density from previous mixing_ndim steps and do a charge mixing based on these density.

  • Default: 8

mixing_gg0

  • Type: Real

  • Description: used in pulay-kerker mixing method

  • Default: 1.5

gamma_only

  • Type: Integer

  • Description: It is an important parameter only to be used in localized orbitals set. If you set gamma_only = 1, ABACUS use gamma only, the algorithm is faster and you don’t need to specify the k-points file. If you set gamma_only = 0, more than one k-point is used and the ABACUS is slower compared to gamma only algorithm.

    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

printe

  • Type: Integer

  • Description: Print out energy for each band for every printe steps

  • Default: 100

scf_nmax

  • Type: Integer

  • Description:This variable indicates the maximal iteration number for electronic iterations.

  • Default: 40

scf_thr

  • Type: Real

  • Description: An important parameter in ABACUS. It’s the threshold for electronic iteration. It represents the charge density error between two sequential density from electronic iterations. Usually for local orbitals, usually 1e-6 may be accurate enough.

  • Default: 1.0e-9

chg_extrap

  • Type: String

  • Description: Methods to do extrapolation of density when ABACUS is doing geometry relaxations.

    • atomic: atomic extrapolation

    • first-order: first-order extrapolation

    • second-order: second-order extrapolation

  • Default:atomic

lspinorb

  • Type: Boolean

  • Description: whether to consider spin-orbital coupling effect in calculation. When set to 1, nspin is also automatically set to 4.

  • Default: 0

noncolin

  • 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. If set to 1, nspin is also automatically set to 4.

  • Default: 0

soc_lambda

  • Type: Real

  • Description: Relevant for soc calculations. Sometimes, for some real materials, both scalar-relativistic and full-relativistic can not describe the exact spin-orbit coupling. Artificial modulation may help in such cases.

    soc_lambda, which has value range [0.0, 1.0] , is used for modulate SOC effect.

    In particular, soc_lambda 0.0 refers to scalar-relativistic case and soc_lambda 1.0 refers to full-relativistic case.

  • Default: 1.0

back to top

Electronic structure (SDFT)

This part of variables are used to control the parameters of stochastic DFT (SDFT), mix stochastic-deterministic DFT (MDFT), or complete-basis Chebyshev method (CT). To use it, calculation need to be set to “sto-scf” and “sto-md”. We suggest using SDFT to calculate high-temperature systems and we only support smearing_method “fd”.

method_sto

  • Type: Integer

  • Description:

    • Different method to do SDFT.

    • 1: SDFT calculates \(T_n(\hat{h})\ket{\chi}\) twice, where \(T_n(x)\) is the n-th order Chebyshev polynomial and \(\hat{h}=\frac{\hat{H}-\bar{E}}{\Delta E}\) owning eigen-value \(\in(-1,1)\). This method cost less memory but slow.

    • 2: SDFT calculates \(T_n(\hat{h})\ket{\chi}\) once but need much more memory. This method is much faster. Besides, it calculate \(N_e\) with \(\bra{\chi}\sqrt{\hat f}\sqrt{\hat f}\ket{\chi}\), which needs smaller nche_sto. However, when memory is not enough, only method 1 can be used.

    • other: use 2

  • Default: 2

nbands_sto

  • Type: Integer

  • Description:

    • nbands_sto>0: Number of stochastic orbitals to calculate in SDFT and MDFT. More bands obtain more precise results or smaller stochastic errors (\( \propto 1/\sqrt{N_{\chi}}\));

    • nbands_sto=0: Complete basis will be used to replace stochastic orbitals with the Chebyshev method (CT) and it will get the results the same as KSDFT without stochastic errors.

    • If you want to do MDFT. nbands which represents the number of KS orbitals should be set.

  • Default: 256

nche_sto

  • Type: Integer

  • Description: Chebyshev expansion orders for SDFT, MDFT, CT methods.

  • Default:100

emin_sto

  • Type: Real

  • Description: Trial energy to guess the lower bound of eigen energies of the Hamitonian Operator \(\hat{H}\). The unit is Ry.

  • Default:0.0

emax_sto

  • Type: Real

  • Description: Trial energy to guess the upper bound of eigen energies of the Hamitonian Operator \(\hat{H}\). The unit is Ry.

  • Default:0.0

seed_sto

  • Type: Integer

  • Description: The random seed to generate stochastic orbitals.

    • seed_sto>=0: Stochastic orbitals have the form of \(\exp(i2\pi\theta(G))\), where \(\theta\) is a uniform distribution in \((0,1)\). If seed_sto = 0, the seed is decided by time(NULL).

    • seed_sto<=-1: Stochastic orbitals have the form of \(\pm1\) with the equal probability. If seed_sto = -1, the seed is decided by time(NULL).

  • Default:0

initsto_freq

  • Type: Integer

  • Description: Frequency (once each initsto_freq steps) to generate new stochastic orbitals when running md.

    • positive integer: Update stochastic orbitals

    • 0: Never change stochastic orbitals.

  • Default:0

npart_sto

  • Type: Integer

  • Description: Make memory cost to 1/npart_sto times of previous one when running post process of SDFT like DOS with method_sto = 2.

  • Default:1

back to top

Geometry relaxation

This part of variables are used to control the geometry relaxation.

relax_nmax

  • Type: Integer

  • Description: The maximal number of ionic iteration steps, the minimal value is 1.

  • Default: 1

cal_force

  • Description: If set to 1, calculate the force at the end of the electronic iteration. 0 means the force calculation is turned off.

  • Default: 0

force_thr

  • Type: Real

  • Description: The threshold of the force convergence, it indicates the largest force among all the atoms, the unit is Ry=Bohr

  • Default: 0.001 Ry/Bohr = 0.0257112 eV/Angstrom

force_thr_ev

  • Type: Real

  • Description: The threshold of the force convergence, has the same function as force_thr, just the unit is different, it is eV=Angstrom, you can choose either one as you like. The recommendation value for using atomic orbitals is 0.04 eV/Angstrom.

  • Default: 0.0257112 eV/Angstrom

force_thr_ev2

  • Type: Real

  • Description: The calculated force will be set to 0 when it is smaller than force_thr_ev2.

  • Default: 0.0 eV/Angstrom

relax_bfgs_w1

  • Type: Real

  • Description: This variable controls the Wolfe condition for BFGS algorithm used in geometry relaxation. You can look into paper Phys.Chem.Chem.Phys.,2000,2,2177 for more information.

  • Default: 0.01

relax_bfgs_w2

  • Type: Real

  • Description: This variable controls the Wolfe condition for BFGS algorithm used in geometry relaxation. You can look into paper Phys.Chem.Chem.Phys.,2000,2,2177 for more information.

  • Default: 0.5

relax_bfgs_rmax

  • Type: Real

  • Description: This variable is for geometry optimization. It indicates the maximal movement of all the atoms. The sum of the movements from all atoms can be increased during the optimization steps. However, it will not be larger than relax_bfgs_rmax Bohr.

  • Default: 0.8

relax_bfgs_rmin

  • Type: Real

  • Description: This variable is for geometry optimization. It indicates the minimal movement of all the atoms. When the movement of all the atoms is smaller than relax_bfgs_rmin Bohr , and the force convergence is still not achieved, the calculation will break down.

  • Default: 1e-5

relax_bfgs_init

  • Type: Real

  • Description: This variable is for geometry optimization. It indicates the initial movement of all the atoms. The sum of the movements from all atoms is relax_bfgs_init Bohr.

  • Default: 0.5

cal_stress

  • Type: Integer

  • Description: If set to 1, calculate the stress at the end of the electronic iteration. 0 means the stress calculation is turned off.

  • Default: 0

stress_thr

  • Type: Real

  • Description: The threshold of the stress convergence, it indicates the largest stress among all the directions, the unit is KBar,

  • Default: 0.01

press1, press2, press3

  • Type: Real

  • Description: the external pressures along three axes,the compressive stress is taken to be positive, the unit is KBar.

  • Default: 0

fixed_axes

  • Type: String

  • Description:which axes are fixed when do cell relaxation. Possible choices are:

    • None : default; all can relax

    • volume : relaxation with fixed volume

    • a : fix a axis during relaxation

    • b : fix b axis during relaxation

    • c : fix c axis during relaxation

    • ab : fix both a and b axes during relaxation

    • ac : fix both a and c axes during relaxation

    • bc : fix both b and c axes during relaxation

    • abc : fix all three axes during relaxation

  • Default: None

relax_method

  • Type: String

  • Description: The method to do geometry optimizations:

    • bfgs: using BFGS algorithm.

    • sd: using steepest-descent algorithm.

    • cg: using cg algorithm.

    • cg-bfgs:

  • Default: cg

relax_cg_thr

  • Type: Real

  • Description: When move-method is set to ‘cg-bfgs’, a mixed cg-bfgs algorithm is used. The ions first move according to cg method, then switched to bfgs when maximum of force on atoms is reduced below cg-threshold. Unit is eV/Angstrom.

  • Default: 0.5

cell_factor

  • Type: Real

  • Description: Used in the construction of the pseudopotential tables. It should exceed the maximum linear contraction of the cell during a simulation.

  • Default: 1.2

back to top

Density of states

This part of variables are used to control the calculation of DOS.

dos_edelta_ev

  • Type: Real

  • Description: controls the step size in writing DOS (in eV).

  • Default: 0.1

dos_sigma

  • Type: Real

  • Description: controls the width of Gaussian factor when obtaining smeared DOS (in eV).

  • Default: 0.07

dos_scale

  • Type: Real

  • Description: the energy range of dos output is given by (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

dos_emin_ev

  • Type: Real

  • Description: minimal range for dos (in eV). If we set it, “dos_scale” will be ignored.

  • Default: minimal eigenenergy of \(\hat{H}\)

dos_emax_ev

  • Type: Real

  • Description: maximal range for dos (in eV). If we set it, “dos_scale” will be ignored.

  • Default: maximal eigenenergy of \(\hat{H}\)

dos_nche

  • Type: Integer

  • Description: orders of Chebyshev expansions when using SDFT to calculate DOS

  • Default: 100

back to top

DeePKS

This part of variables are used to control the usage of DeePKS method (a comprehensive data-driven approach to improve accuracy of DFT). Warning: this function is not robust enough for the current version. Please try the following variables at your own risk:

deepks_out_labels

  • Type: Boolean

  • Description: when set to 1, ABACUS will calculate and output descriptor for DeePKS training. In LCAO calculation, a path of *.orb file is needed to be specified under NUMERICAL_DESCRIPTORin STRUfile. For example:

    NUMERICAL_ORBITAL
    H_gga_8au_60Ry_2s1p.orb
    O_gga_7au_60Ry_2s2p1d.orb
    
    NUMERICAL_DESCRIPTOR
    jle.orb
    
  • Default: 0

deepks_scf

  • Type: Boolean

  • Description: only when deepks is enabled in LCAO calculation can this variable set to 1. Then, a trained, traced model file is needed for self-consistant field iteration in DeePKS method.

  • Default: 0

deepks_model

  • Type: String

  • Description: the path of the trained, traced NN model file (generated by deepks-kit). used when deepks_scf is set to 1.

  • Default: None

bessel_lmax

  • Type: Integer

  • Description: the projectors used in DeePKS are bessel functions. To generate such projectors, set calculation type to be gen_bessel and run ABACUS. The lmax of bessel functions is specified using bessel_lmax. See also calculation.

  • Default: 2

bessel_rcut

  • Type: Real

  • Description: cutoff radius of bessel functions. See also bessel_lmax.

  • Default: 6.0

bessel_tol

  • Type: Real

  • Description: tolerence when searching for the zeros of bessel functions. See also bessel_lmax.

  • Default: 1.0e-12

deepks_bandgap

  • Type: Boolean

  • Description: whether to include deepks bandgap correction.

  • Default: False

deepks_out_unittest

  • Type: Boolean

  • Description: this is used to generate some files for constructing DeePKS unit test. Not relevant when running actual calculations. When set to 1, ABACUS needs to be ran with only 1 process.

  • Default: False

back to top

Electric field and dipole correction

This part of variables are relevant to electric field and dipole correction

efield_flag

  • Type: Boolean

  • Description: If set to true, a saw-like potential simulating an electric field is added to the bare ionic potential.

  • Default: false

dip_cor_flag

  • Type: Boolean

  • Description: If dip_cor_flag == true and efield_flag == true, a dipole correction is also added to the bare ionic potential. If you want no electric field, parameter efield_amp should be zero. Must be used ONLY in a slab geometry for surface calculations, with the discontinuity FALLING IN THE EMPTY SPACE.

  • Default: false

efield_dir

  • Type: Integer

  • Description: The direction of the electric field or dipole correction is parallel to the reciprocal lattice vector, so the potential is constant in planes defined by FFT grid points, efield_dir = 0, 1 or 2. Used only if efield_flag == true.

  • Default: 2

efield_pos_max

  • Type: Real

  • Description: Position of the maximum of the saw-like potential along crystal axis efield_dir, within the unit cell, 0 < efield_pos_max < 1. Used only if efield_flag == true.

  • Default: 0.5

efield_pos_dec

  • Type: Real

  • Description: Zone in the unit cell where the saw-like potential decreases, 0 < efield_pos_dec < 1. Used only if efield_flag == true.

  • Default: 0.1

efield_amp

  • Type: Real

  • Description: Amplitude of the electric field, in Hartree a.u.; 1 a.u. = 51.4220632*10^10 V/m. Used only if efield_flag == true. The 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. Important: the change of slope of this potential must be located in the empty region, or else unphysical forces will result.

  • Default: 0.0

back to top

Gate field (compensating charge)

This part of variables are relevant to gate field (compensating charge)

gate_flag

  • Type: Boolean

  • Description: In the case of charged cells, setting gate_flag == true represents the addition of compensating charge by a charged plate, which is placed at zgate. Note that the direction is specified by efield_dir.

  • Default: false

zgate

  • Type: Real

  • Description: Specify the position of the charged plate in units of the unit cell (0 <= zgate < 1).

  • Default: 0.5

block

  • Type: Boolean

  • Description: Add a potential barrier to the total potential to avoid electrons spilling into the vacuum region for electron doping. Potential barrier is from block_down to block_up and has a height of block_height. If dip_cor_flag == true, efield_pos_dec is used for a smooth increase and decrease of the potential barrier.

  • Default: false

block_down

  • Type: Real

  • Description: Lower beginning of the potential barrier in units of the unit cell size (0 <= block_down < block_up < 1).

  • Default: 0.45

block_up

  • Type: Real

  • Description: Upper beginning of the potential barrier in units of the unit cell size (0 <= block_down < block_up < 1).

  • Default: 0.55

block_height

  • Type: Real

  • Description: Height of the potential barrier in Rydberg.

  • Default: 0.1

back to top

Exact Exchange

This part of variables are relevant when using hybrid functionals

exx_hybrid_alpha

  • Type: Real

  • Description: fraction of Fock exchange in hybrid functionals, so that \(E_{X}=\alpha F_{X}+(1-\alpha)E_{X,LDA/GGA}\)

  • Default: 0.25

exx_hse_omega

  • Type: Real

  • Description: range-separation parameter in HSE functional, such that \(1/r=erfc(\omega r)/r+erf(\omega r)/r\).

  • Default: 0.11

exx_separate_loop

  • Type: Boolean

  • Description: There are two types of iterative approach provided by ABACUS to evaluate Fock exchange. If this parameter is set to 0, it will start with a GGA-Loop, and then Hybrid-Loop, in which EXX Hamiltonian \(H_{exx}\) is updated with electronic iterations. If this parameter is set to 1, 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: 1

exx_hybrid_step

  • Type: Integer

  • Description: This variable indicates the maximal electronic iteration number in the evaluation of Fock exchange.

  • Default: 100

exx_lambda

  • Type: Real

  • Description: It is used to compensate for divergence points at G=0 in the evaluation of Fock exchange using lcao_in_pw method.

  • Default: 0.3

exx_pca_threshold

  • Type: Real

  • Description: To accelerate the evaluation of 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 calculations becomes faster. However this comes at the cost of computational accuracy. A relatively safe choice of the value is 1d-4.

  • Default: 0

exx_c_threshold

  • Type: Real

  • Description: See also the entry exx_pca_threshold. Smaller components (less than exx_c_threshold) of the \(C^{k}_{ij}\) matrix is neglected to accelerate calculation. The larger the threshold is, the faster the calculation and the lower the accuracy. A relatively safe choice of the value is 1d-4.

  • Default: 0

exx_v_threshold

  • Type: Real

  • Description: See also the entry exx_pca_threshold. With the approximation \(\Phi_{i}\Phi_{j}\sim C^{k}_{ij}P_{k}\), the 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: 0

exx_dm_threshold

  • 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 1d-4.

  • Default: 0

exx_schwarz_threshold

  • Type: Real

  • Description: In practice the four-center integrals are sparse, and using Cauchy-Schwartz inequality, we can find an upper bound of each integral before carrying out explicit evaluations. Those that are smaller than exx_schwarz_threshold will be truncated. The larger the threshold is, the faster the calculation and the lower the accuracy. A relatively safe choice of the value is 1d-5.

  • Default: 0

exx_cauchy_threshold

  • Type: Real

  • Description: In practice the Fock exchange matrix is sparse, and using Cauchy-Schwartz inequality, we can find an upper bound of each matrix element before carrying out explicit evaluations. Those that are smaller than exx_cauchy_threshold will be truncated. The larger the threshold is, the faster the calculation and the lower the accuracy. A relatively safe choice of the value is 1d-7.

  • Default: 0

exx_ccp_threshold

  • Type: Real

  • Description: It is related to the cutoff of on-site Coulomb potentials, currently not used.

  • Default: 1e-8

exx_ccp_rmesh_times

  • Type: Real

  • Description: This parameter determines how many times larger the radial mesh required for calculating Columb potential is to that of atomic orbitals. For HSE1, setting it to 1 is enough. But for PBE0, a much larger number must be used.

  • Default: 10

exx_distribute_type

  • Type: String

  • Description: When running in parallel, the evaluation of Fock exchange is done by distributing atom pairs on different threads, then gather the results. exx_distribute_type governs the mechanism of distribution. Available options are htime, order, kmean1 and kmeans2. order is where atom pairs are simply distributed by their orders. hmeans is a distribution where the balance in time is achieved on each processor, hence if the memory is sufficient, this is the recommended method. kmeans1 and kmeans2 are two methods where the k-means clustering method is used to reduce memory requirement. They might be necessary for very large systems.

  • Default: htime

exx_opt_orb_lmax

  • Type: Integer

  • Description: See also the entry dft_functional. This parameter is only relevant when dft_functional=opt_orb. The radial part of opt-ABFs are generated as linear combinations of spherical Bessel functions. exx_opt_orb_lmax gives the maximum l of the spherical Bessel functions. A reasonable choice is 2.

  • Default: 0

exx_opt_orb_ecut

  • Type: Real

  • Description: See also the entry dft_functional. This parameter is only relevant when dft_functional=opt_orb. A plane wave basis is used to optimize the radial ABFs. This parameter thus gives the cut-off of plane wave expansion, in Ry. A reasonable choice is 60.

  • Default: 0

exx_opt_orb_tolerence

  • Type: Real

  • Description: See also the entry dft_functional. This parameter is only relevant when dft_functional=opt_orb. exx_opt_orb_tolerence determines the threshold when solving for the zeros of spherical Bessel functions. A reasonable choice is 1e-12.

  • Default: 0

back to top

Molecular dynamics

This part of variables are used to control the molecular dynamics calculations.

md_type

  • Type: Integer

  • Description: control the ensemble to run md.

    • -1: FIRE method to relax;

    • 0: NVE ensemble;

    • 1: NVT ensemble with Nose Hoover Chain;

    • 2: NVT ensemble with Langevin method;

    • 3: NVT ensemble with Anderson thermostat;

    • 4: MSST method;

    Note: when md_type is set to 1, md_tfreq is required to stablize temperature. It is an empirical parameter whose value is system-dependent, ranging from 1/(40*md_dt) to 1/(100*md_dt). An improper choice of its value might lead to failure of job.

  • Default: 1

md_nstep

  • Type: Integer

  • Description: the total number of md steps.

  • Default: 10

md_ensolver

  • Type: String

  • Description: choose the energy solver for MD.

    • FP: First-Principles MD;

    • LJ: Leonard Jones potential;

    • DP: DeeP potential;

  • Default: FP

md_restart

  • Type: Boolean

  • Description: to control whether restart md.

    • 0: When set to 0, ABACUS will calculate md normolly.

    • 1: When set to 1, ABACUS will calculate md from last step in your test before.

  • Default: 0

md_dt

  • Type: Real

  • Description: This is the time step(fs) used in md simulation .

  • Default: 1.0

md_tfirst, md_tlast

  • Type: Real

  • Description: This is the temperature (K) used in md simulation, md_tlast`s default value is md_tfirst. If md_tlast is set to be different from md_tfirst, ABACUS will automatically change the temperature from md_tfirst to md_tlast.

  • Default: No default

md_dumpfreq

  • Type: Integer

  • Description:This is the frequence to dump md information.

  • Default: 1

md_restartfreq

  • Type: Integer

  • Description:This is the frequence to output restart information.

  • Default: 5

md_seed

  • Type: Integer

  • Description:

    • md_seed < 0: No srand() in MD initialization.

    • md_seed >= 0: srand(md_seed) in MD initialization.

  • Default: -1

md_tfreq

  • Type: Real

  • Description:

    • When md_type = 1, md_tfreq controls the frequency of the temperature oscillations during the simulation. If it is too large, the temperature will fluctuate violently; if it is too small, the temperature will take a very long time to equilibrate with the atomic system.

    • When md_type = 3, md_tfreq*md_dt is the collision probability in Anderson method.

    • If md_tfreq is not set in INPUT, md_tfreq will be autoset to be 1/40/md_dt.

  • Default: 1/40/md_dt

md_mnhc

  • Type: Integer

  • Description: Number of Nose-Hoover chains.

  • Default: 4

lj_rcut

  • Type: Real

  • Description: Cut-off radius for Leonard Jones potential (angstrom).

  • Default: 8.5 (for He)

lj_epsilon

  • Type: Real

  • Description: The value of epsilon for Leonard Jones potential (eV).

  • Default: 0.01032 (for He)

lj_sigma

  • Type: Real

  • Description: The value of sigma for Leonard Jones potential (angstrom).

  • Default: 3.405 (for He)

msst_direction

  • Type: Integer

  • Description: the direction of shock wave for MSST.

  • Default: 2 (z direction)

msst_vel

  • Type: Real

  • Description: the velocity of shock wave (Angstrom/fs) for MSST.

  • Default: 0.0

msst_vis

  • Type: Real

  • Description: artificial viscosity (mass/length/time) for MSST.

  • Default: 0.0

msst_tscale

  • Type: Real

  • Description: reduction in initial temperature (0~1) used to compress volume in MSST.

  • Default: 0.01

msst_qmass

  • Type: Real

  • Description: Inertia of extended system variable. Used only when md_type is 4, you should set a number which is larger than 0. Note that Qmass of NHC is set by md_tfreq.

  • Default: No default

md_damp

  • Type: Real

  • Description: damping parameter (fs) used to add force in Langevin method.

  • Default: 1.0

back to top

DFT+U correction

This part of variables are used to control DFT+U correlated parameters

dft_plus_u

  • Type: Boolean

  • Description: If set to 1, ABCUS will calculate plus U correction, which is especially important for correlated electron.

  • Default: 0

orbital_corr

  • Type: Integer

  • Description: \(l_1,l_2,l_3,\ldots\) for atom type 1,2,3 respectively.(usually 2 for d electrons and 3 for f electrons) .Specify which orbits need plus U correction for each atom. If set to -1, the correction would not be calculate for this atom.

  • Default: None

hubbard_u

  • Type: Real

  • Description: Hubbard Coulomb interaction parameter U(ev) in plus U correction,which should be specified for each atom unless Yukawa potential is use. ABACUS use a simplified scheme which only need U and J for each atom.

  • Default: 0.0

hund_j

  • Type: Real

  • Description: Hund exchange parameter J(ev) in plus U correction ,which should be specified for each atom unless Yukawa potential is use. ABACUS use a simplified scheme which only need U and J for each atom.

  • Default: 0.0

yukawa_potential

  • Type: Boolean

  • Description: whether use the local screen Coulomb potential method to calculate the value of U and J. If this is set to 1, hubbard_u and hund_j do not need to be specified.

  • Default: 0

yukawa_lambda

  • Type: Real

  • Description: The screen length of Yukawa potential. Relevant if yukawa_potential is set to 1. If left to default, we will calculate the screen length as an average of the entire system. It’s better to stick to the default setting unless there is a very good reason.

  • Default: calculated on the fly.

omc

  • Type: Boolean

  • Description: whether turn on occupation matrix control method or not

  • Default: 0

back to top

vdW correction

This part of variables are used to control vdW-corrected related parameters.

vdw_method

  • Type: String

  • Description: If set to d2 ,d3_0 or d3_bj, ABACUS will calculate corresponding vdW correction, which is DFT-D2, DFT-D3(0) or DFTD3(BJ) method. And this correction includes energy and forces. none means that no vdW-corrected method has been used.

  • Default: none

vdw_s6

  • Type: Real

  • Description: This scale factor is to optimize the interaction energy deviations. For DFT-D2, it is found to be 0.75 (PBE), 1.2 (BLYP), 1.05 (B-P86), 1.0 (TPSS), and 1.05 (B3LYP). For DFT-D3, recommended values of this parameter with different DFT functionals can be found on the webpage. The default value of this parameter in ABACUS is set to be the recommended value for PBE.

  • Default: 0.75 if vdw_method is chosen to be d2; 1.0 if vdw_method is chosen to be d3_0 or d3_bj

vdw_s8

  • Type: Real

  • Description: This scale factor is only relevant for D3(0) and D3(BJ) methods. Recommended values of this parameter with different DFT functionals can be found on the webpage. The default value of this parameter in ABACUS is set to be the recommended value for PBE.

  • Default: 0.722 if vdw_method is chosen to be d3_0; 0.7875 if vdw_method is chosen to be d3_bj

vdw_a1

  • Type: Real

  • Description: This damping function parameter is relevant for D3(0) and D3(BJ) methods. Recommended values of this parameter with different DFT functionals can be found on the webpage. The default value of this parameter in ABACUS is set to be the recommended value for PBE.

  • Default: 1.217 if vdw_method is chosen to be d3_0; 0.4289 if vdw_method is chosen to be d3_bj

vdw_a2

  • Type: Real

  • Description: This damping function parameter is only relevant for the DFT-D3(BJ) approach. Recommended values of this parameter with different DFT functionals can be found on the webpage. The default value of this parameter in ABACUS is set to be the recommended value for PBE.

  • Default: 1.0 if vdw_method is chosen to be d3_0; 4.4407 if vdw_method is chosen to be d3_bj

vdw_d

  • Type: Real

  • Description: The variable is to control the damping rate of damping function of DFT-D2.

  • Default: 20

vdw_abc

  • Type: Integer

  • Description: The variable is to control whether three-body terms are calculated for DFT-D3 approachs, including D3(0) and D3(BJ). If set to 1, ABACUS will calculate three-body term, otherwise, the three-body term is not included.

  • Default: 0

vdw_C6_file

  • Type: String

  • Description: This variable is relevant if the user wants to manually set the \(C_6\) parameters in D2 method. It gives the name of the file which contains the list of \(C_6\) parameters for each element.

    If not set, ABACUS will use the default \(C_6\) Parameters stored in the program. The default values of \(C_6\) for elements 1_H up to 86_Rn can be found by searching for C6_default in the source code. The unit is Jnm6/mol.

    Otherwise, if user wants to manually set the \(C_6\) Parameters, they should provide a file containing the \(C_6\) parameters to be used. An example is given by:

    H  0.1
    Si 9.0
    

    Namely, each line contains the element name and the corresbonding \(C_6\) parameter.

  • Default: default

vdw_C6_unit

  • Type: String

  • Description: This variable is relevant if the user wants to manually set the \(C_6\) parameters in D2 method. It specified the unit of the suppied \(C_6\) parameters. Allowed values are: Jnm6/mol (meaning J·nm^{6}/mol) and eVA(meaning eV·Angstrom)

  • Default: Jnm6/mol

vdw_R0_file

  • Type: String

  • Description: TThis variable is relevant if the user wants to manually set the \(R_0\) parameters in D2 method. If not set, ABACUS will use the default \(C_6\) Parameters stored in the program. The default values of \(C_6\) for elements 1_H up to 86_Rn can be found by searching for R0_default in the source code. The unit is Angstrom.

    Otherwise, if user wants to manually set the \(C_6\) Parameters, they should provide a file containing the \(C_6\) parameters to be used. An example is given by:

    Li 1.0
    Cl 2.0
    

    Namely, each line contains the element name and the corresbonding \(R_0\) parameter.

  • Default: default

vdw_R0_unit

  • Type: String

  • Description: This variable is relevant if the user wants to manually set the \(R_0\) parameters in D2 method. It specified the unit of the suppied \(C_6\) parameters. Allowed values are: A(meaning Angstrom) and Bohr.

  • Default: A

vdw_cutoff_type

  • Type: String

  • Description: When applyting Van-der-Waals correction in periodic systems, a cutoff radius needs to be supplied to avoid infinite summation. In ABACUS, we restrict the range of correction to a supercell centered around the unit cell at origin.

    In ABACUS, we provide two ways to determine the extent of the supercell.

    When vdw_cutoff_type is set to radius, the supercell is chosen such that it is contained in a sphere centered at the origin. The radius of the sphere is specified by vdw_cutoff_radius.

    When vdw_cutoff_type is set to period, the extent of the supercell is specified explicitly using keyword vdw_cutoff_period.

  • Default: radius

vdw_cutoff_radius

  • Type: Real

  • Description: If vdw_cutoff_type is set to radius, this variable specifies the radius of the cutoff sphere. For DFT-D2, the default value is 56.6918, while for DFT-D3, the default value is 95.

  • Default: 56.6918 if vdw_method is chosen to be d2; 95 if vdw_method is chosen to be d3_0 or d3_bj

vdw_radius_unit

  • Type: String

  • Description: If vdw_cutoff_type is set to radius, this variable specifies the unit of vdw_cutoff_radius. Two values are allowed: A(meaning Angstrom) and Bohr.

  • Default: Bohr

vdw_cutoff_period

  • Type: Integer Integer Integer

  • Description: If vdw_cutoff_type is set to period, the three integers supplied here will explicitly specify the extent of the supercell in the directions of the three basis lattice vectors.

  • Default: 3 3 3

vdw_cn_thr

  • Type: Real

  • Description: Only relevant for D3 correction. The cutoff radius when calculating coordination numbers.

  • Default: 40

vdw_cn_thr_unit

  • Type: String

  • Description: Unit of the coordination number cutoff. Two values are allowed: A(meaning Angstrom) and Bohr.

  • Default: Bohr

back to top

Berry phase and wannier90 interface

This part of variables are used to control berry phase and wannier90 interfacae parameters.

berry_phase

  • Type: Integer

  • Description: 1, calculate berry phase; 0, no calculate berry phase.

  • Default: 0

gdir

  • Type: Integer

  • Description:

    • 1: calculate the polarization in the direction of the lattice vector a_1 that is defined in STRU file.

    • 2: calculate the polarization in the direction of the lattice vector a_2 that is defined in STRU file.

    • 3: calculate the polarization in the direction of the lattice vector a_3 that is defined in STRU file.

  • Default: 3

towannier90

  • Type: Integer

  • Description: 1, generate files for wannier90 code; 0, no generate.

  • Default: 0

nnkpfile

  • Type: String

  • Description: the file name when you run “wannier90 -pp …”.

  • Default: seedname.nnkp

wannier_spin

  • Type: String

  • Description: If nspin is set to 2,

    • up: calculate spin up for wannier function.

    • down: calculate spin down for wannier function.

  • Default: up

back to top

TDDFT: time dependent density functional theory

tddft

  • Type: Integer

  • Description:

    • 1: calculate the real time time dependent density functional theory (TDDFT).

    • 0: do not calculate TDDFT.

  • Default: 0

td_scf_thr

  • Type: Real

  • Description: Accuracy of electron convergence when doing time-dependent evolution.

  • Default: 1e-9

td_dt

  • Type: Real

  • Description: Time-dependent evolution time step. (fs)

  • Default: 0.02

td_force_dt

  • Type: Real

  • Description: Time-dependent evolution force changes time step. (fs)

  • Default: 0.02

td_vext

  • Type: Integer

  • Description:

    • 1: add a laser material interaction (extern laser field).

    • 0: no extern laser field.

  • Default: 0

td_vext_dire

  • Type: Integer

  • Description:

    • 1: the direction of external light field is along x axis.

    • 2: the direction of external light field is along y axis.

    • 3: the direction of external light field is along z axis.

  • Default: 1

td_timescale

  • Type: Real

  • Description: Time range of external electric field application. (fs)

  • Default: 0.5

td_vexttype

  • Type: Integer

  • Description:

    • 1: Gaussian-type light field.

    • 2: Delta function form light field.

    • 3: Trigonometric function form light field.

  • Default: 1

td_vextout

  • Type: Integer

  • Description:

    • 1: Output external electric field.

    • 0: do not Output external electric field.

  • Default: 0

td_dipoleout

  • Type: Integer

  • Description:

    • 1: Output dipole.

    • 0: do not Output dipole.

  • Default: 0

ocp

  • Type: Boolean

  • Description: option for choose whether calcualting constrained DFT or not. Only used for TDDFT.

  • Default:0

ocp_set

  • Type: string

  • Description: If ocp is true, the ocp_set is a string to set the number of occupancy, like 1 10 * 1 0 1 representing the 13 band occupancy, 12th band occupancy 0 and the rest 1, the code is parsing this string into an array through a regular expression.

  • Default:none

td_val_elec_01

  • Type: Integer

  • Description: Only useful when calculating the dipole. Specifies the number of valence electron associated with the first element.

  • Default: 1.0

td_val_elec_02

  • Type: Integer

  • Description: Only useful when calculating the dipole. Specifies the number of valence electron associated with the second element.

  • Default: 1.0

td_val_elec_03

  • Type: Integer

  • Description: Only useful when calculating the dipole. Specifies the number of valence electron associated with the third element.

  • Default: 1.0

back to top

Variables useful for debugging

nurse

  • Type: Boolean

  • Description: If set to 1, the Hamiltonian matrix and S matrix in each iteration will be written in output.

  • Default: 0

t_in_h

  • Type: Boolean

  • Description: If set to 0, then kinetic term will not be included in obtaining the Hamiltonian.

  • Default: 1

vl_in_h

  • Type: Boolean

  • Description: If set to 0, then local pseudopotential term will not be included in obtaining the Hamiltonian.

  • Default: 1

vnl_in_h

  • Type: Boolean

  • Description: If set to 0, then non-local pseudopotential term will not be included in obtaining the Hamiltonian.

  • Default: 1

test_force

  • Type: Boolean

  • Description: If set to 1, then detailed components in forces will be written to output.

  • Default: 0

test_stress

  • Type: Boolean

  • Description: If set to 1, then detailed components in stress will be written to output.

  • Default: 0

colour

  • Type: Boolean

  • Description: If set to 1, output to terminal will have some color.

  • Default: 0

test_skip_ewald

  • Type: Boolean

  • Description: If set to 1, then ewald energy will not be calculated.

  • Default: 0

back to top

Electronic conductivities

Frequency-dependent electronic conductivities can be calculated with Kubo-Greenwood formula[Phys. Rev. B 83, 235120 (2011)].

Onsager coefficiencies:

\(L_{mn}(\omega)=(-1)^{m+n}\frac{2\pi e^2\hbar^2}{3m_e^2\omega\Omega}\)

\(\times\sum_{ij\alpha\mathbf{k}}W(\mathbf{k})\left(\frac{\epsilon_{i\mathbf{k}}+\epsilon_{j\mathbf{k}}}{2}-\mu\right)^{m+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)]\)

\(\tilde{C}_{mn}=\int_0^\infty C_{mn}(t)e^{-i\omega t}e^{-\frac{1}{2}(\Delta E)^2t^2}dt\)

\(C_{mn}(t)=-2\theta(t)\Im\left\{Tr\left[\sqrt{\hat f}\hat{j}_m(1-\hat{f})e^{i\frac{\hat{H}}{\hbar}t}\hat{j}_ne^{-i\frac{\hat{H}}{\hbar}t}\sqrt{\hat f}\right]\right\}\),

where \(j_1\) is electric flux and \(j_2\) is thermal flux.

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)\).

cal_cond

  • Type: Boolean

  • Description: If set to 1, electronic conductivities will be calculated. Only supported in calculations of SDFT and KSDFT_PW.

  • Default: 0

cond_nche

  • Type: Integer

  • Description: Chebyshev expansion orders for stochastic Kubo Greenwood. Only used when the calculation is SDFT.

  • Default: 20

cond_dw

  • Type: Real

  • Description: Frequency interval (\(d\omega\)) for frequency-dependent conductivities. The unit is eV.

  • Default: 0.1

cond_wcut

  • Type: Real

  • Description: Cutoff frequency for frequency-dependent conductivities. The unit is eV.

  • Default: 10.0

cond_wenlarge

  • Type: Integer

  • Description: Control the t interval: dt = \(\frac{\pi}{\omega_{cut}\times\omega enlarge}\)

  • Default: 10

cond_fwhm

  • Type: Integer

  • Description: We use gaussian functions to approxiamte \(\delta(E)\approx \frac{1}{\sqrt{2\pi}\Delta E}e^{-\frac{E^2}{2{\Delta E}^2}}\). FWHM for conductivities, \(FWHM=2*\sqrt{2\ln2}\cdot \Delta E\). The unit is eV.

  • Default: 0.3

back to top

Implicit solvation model

This part of variables are used to control the usage of implicit solvation model. This approach treats the solvent as a continuous medium instead of individual “explicit” solvent molecules, which means that the solute embedded in an implicit solvent and the average over the solvent degrees of freedom becomes implicit in the properties of the solvent bath.

imp_sol

  • Type: Boolean

  • Description: If set to 1, an implicit solvation correction is considered.

  • Default: 0

eb_k

  • Type: Real

  • Description: The relative permittivity of the bulk solvent, 80 for water. Used only if imp_sol == true.

  • Default: 80

tau

  • Type: Real

  • Description: The effective surface tension parameter, which describes the cavitation, the dispersion, and the repulsion interaction between the solute and the solvent that are not captured by the electrostatic terms. The unit is \(Ry/Bohr^{2}\).

  • Default: 1.0798e-05

sigma_k

  • Type: Real

  • Description: We assume a diffuse cavity that is implicitly determined by the electronic structure of the solute. sigma_k is the parameter that describes the width of the diffuse cavity.

  • Default: 0.6

nc_k

  • Type: Real

  • Description: It determines at what value of the electron density the dielectric cavity forms. The unit is \(Bohr^{-3}\).

  • Default: 0.00037

back to top