Quantum ESPRESSO Input
**********************

The input to the QuantumESPRESSO engine has a similar structure as the
input to the pw.x executable, with some exceptions.

Note:

  In the input file there are **two** System blocks:

  * The **AMS driver System block** contains the atomic species,
    atomic positions, atomic masses (isotopes), and lattice vectors,
    just like for any other AMS calculation. On each atom line you can
    also specify for example "QE.label=Fe1" (max **3** characters) to
    set the internal QE atom type for that atom. See the Examples and
    AMS Driver documentation.

  * The **QuantumESPRESSO Engine System block** contains keywords from
    the "&SYSTEM" namelist in the pw.x input file. For example,
    "ecutwfc" to set the plane-wave energy cutoff, as well as many
    other input options for magnetization, occupations, dispersion
    corrections, etc. This block is described in detail below.


Pseudopotentials
================

A library of pseudopotentials is included with the AMS Quantum
ESPRESSO package. Simply specify the *family* and the *functional* in
the input and the corresponding pseudopotential files will be used.

The pseudopotentials will also determine the exchange-correlation
functional used, unless you manually set the DFT functional
(input_dft) option.

Important:

  Use an energy cutoff that is large enough for your selected
  pseudopotentials!

   Pseudopotentials
      Directory string
      Family [Dojo | GBRV | pslibrary-PAW | pslibrary-US | SG15 | SSSP-Efficiency | SSSP-Precision]
      Files
         Label string
         Path string
      End
      FullyRelativistic Yes/No
      Functional [BLYP | LDA | PBE | PBEsol | PW91]
   End

"Pseudopotentials"
   Type:
      Block

   Description:
      Selects the pseudopotential to use for the atomic species.

   "Directory"
      Type:
         String

      Description:
         This key is mutually exclusive with the "Family" and "Files"
         keywords. This key specifies a directory containing label.upf
         files.                      Example:                      ..
         code-block:: text                      System
         Atoms                      H 0 0 0                      H 0 0
         1 QE.Label=H1                      H 0 0 2 QE.Label=H2
         C 0 0 3 QE.Label=C1                      End
         End                      This will look for the files H.upf,
         H1.upf, H2.upf, C1.upf. If H1.upf does not exist, H.upf will
         be used. If H2.upf does not exist, H.upf will be used. If
         C1.upf does not exist, C.upf will be used.

   "Family"
      Type:
         Multiple Choice

      Default value:
         SSSP-Efficiency

      Options:
         [Dojo, GBRV, pslibrary-PAW, pslibrary-US, SG15, SSSP-
         Efficiency, SSSP-Precision]

      GUI name:
         Pseudopotential family

      Description:
         The pseudopotential family to use. Mutually exclusive with
         the "Files" and "Directory" keywords.

   "Files"
      Type:
         Block

      Recurring:
         True

      Description:
         Selects the pseudopotentials to use for each atomic species.
         This key is mutually exclusive with the "Family" and
         "Directory" keywords.

      "Label"
         Type:
            String

         Description:
            Label for an atom corresponding to the QE.Label, or to the
            element symbol if QE.Label is not set.

      "Path"
         Type:
            String

         Description:
            Path to a .upf file to use as pseudopotential. Relative
            paths are relative to root of the pseudopotential library
            shipped with AMS. Prefix a path with './' to make it
            relative to the starting directory of your job.

   "FullyRelativistic"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Pseudopotential fully relativistic

      Description:
         Whether to use fully relativistic pseudopotentials (required
         for spin-orbit calculations).

   "Functional"
      Type:
         Multiple Choice

      Default value:
         PBE

      Options:
         [BLYP, LDA, PBE, PBEsol, PW91]

      GUI name:
         Pseudopotential functional

      Description:
         Exchange-correlation functional that was used to generate the
         pseudopotential. Not all choices are valid for all
         pseudopotential families.                      This
         functional will also be used for the calculation, unless the
         "input_dft" option is set.


K-space and k-point sampling
============================

The K_Points block corresponds to the K_POINTS card in the pw.x input.

Gamma-point (Γ-point) sampling (fast implementation, not compatible
with all calculation types or postprocessing programs):

   Engine QuantumEspresso
       K_Points gamma
       End
   EndEngine

Gamma-point (Γ-point) sampling (slower implementation):

   Engine QuantumEspresso
       K_Points automatic
           1 1 1 0 0 0
       End
   EndEngine

Monkhorst-Pack 6 x 6 x 4 grid, shifted:

   Engine QuantumEspresso
      K_Points automatic
        6 6 4 1 1 1
      End
   EndEngine

Monkhorst-Pack 6 x 6 x 4 grid, unshifted:

   Engine QuantumEspresso
      K_Points automatic
        6 6 4 0 0 0
      End
   EndEngine

The output contains details about the generated k-point grid. For
further information, see the pw.x documentation.

For DOS and band structure calculations, the **main** "K_Points" block
specifies the k-points used during the **self-consistent-field
(SCF)**. The DOS and band structure sections for how to specify a
different k-space sampling for the non-self-consistent parts of DOS
and band structure calculations.

"K_Points"
   Type:
      Non-standard block

   Description:
      Specify the k-points to use. Available header values are:
      "tpiba", "automatic", "crystal", "gamma", "tpiba_b",
      "crystal_b", "tpiba_c", "crystal_c", and "ams_kpath". See the
      examples and QE documentation for details. If omitted, only
      "gamma" is used. For most cases, "automatic" (which generates a
      Monkhorst-Pack grid) is recommended. Note: Gamma-point
      calculations are significantly faster using "gamma" than
      "automatic", but may not be possible to use for all types of
      calculations or postprocessing programs.


Control block: dipole/electric field
====================================

See also: Dipole/charge corrections

   Control
      dipfield Yes/No
      lelfield Yes/No
      tefield Yes/No
      verbosity [Minimal | Low | Default | Debug | Medium | High | Auto]
   End

"Control"
   Type:
      Block

   Description:
      Keywords from the &CONTROL namelist in the QuantumEspresso input
      file.

   "dipfield"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Dipole field

      Description:
         If True (and "tefield" is True) a dipole correction is also
         added to the bare ionic potential - implements the recipe of
         L. Bengtsson, PRB 59, 12301 (1999).                      See
         keywords "edir", "emaxpos", "eopreg" for the form of the
         correction.                      Must be used ONLY in a slab
         geometry, for surface calculations, with the discontinuity
         FALLING IN THE EMPTY SPACE.

   "lelfield"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Homogeneous E-field

      Description:
         If True a homogeneous finite electric field described through
         the modern theory of the polarization is applied.
         This is different from setting "tefield" to True!

   "tefield"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Saw-like E-field

      Description:
         If True a saw-like potential simulating an electric field is
         added to the bare ionic potential.                      See
         keywords "edir", "eamp", "emaxpos", "eopreg" for the form and
         size of the added potential.

   "verbosity"
      Type:
         Multiple Choice

      Default value:
         Auto

      Options:
         [Minimal, Low, Default, Debug, Medium, High, Auto]

      Description:
         Currently two verbosity levels are implemented: 'high',
         'low'. 'debug' and 'medium' have the same effect as 'high',
         'default' and 'minimal' as 'low'. The Default ('Auto') is
         stablished by QE.


Electrons block: SCF convergence
================================

   Electrons
      conv_thr float
      diagonalization [Davidson | ConjugateGradient | PPCG | ParO | RMM-Davidson | RMM-ParO]
      electron_maxstep integer
      mixing_beta float
      mixing_mode [Plain | Thomas-Fermi | Local-Thomas-Fermi]
      mixing_ndim integer
      scf_must_converge Yes/No
   End

"Electrons"
   Type:
      Block

   Description:
      Keywords from the &ELECTRONS namelist in the QuantumEspresso
      input file.

   "conv_thr"
      Type:
         Float

      Default value:
         1e-06

      Unit:
         Rydberg

      GUI name:
         Convergence threshold

      Description:
         Convergence threshold for selfconsistency: estimated energy
         error < "conv_thr". Note that "conv_thr" is extensive, like
         the total energy.

   "diagonalization"
      Type:
         Multiple Choice

      Default value:
         Davidson

      Options:
         [Davidson, ConjugateGradient, PPCG, ParO, RMM-Davidson, RMM-
         ParO]

      GUI name:
         Diagonalization

      Description:
         Available options are:                      • Davidson:
         iterative diagonalization with overlap matrix. Fast, may in
         some rare cases fail.                      •
         ConjugateGradient: Conjugate-gradient-like band-by-band
         diagonalization. MUCH slower than "Davidson" but uses less
         memory and is (a little bit) more robust.
         • PPCG: PPCG iterative diagonalization                      •
         ParO: ParO iterative diagonalization                      •
         RMM-Davidson & RMM-ParO: RMM-DIIS iterative diagonalization.
         To stabilize the SCF loop RMM-DIIS is alternated with calls
         to Davidson or ParO solvers.

   "electron_maxstep"
      Type:
         Integer

      Default value:
         100

      GUI name:
         Maximum # SCF iterations

      Description:
         Maximum number of iterations in a SCF step.

   "mixing_beta"
      Type:
         Float

      Default value:
         0.3

      GUI name:
         Beta

      Description:
         Mixing factor for self-consistency.
         Note: the default value in the AMS interface (0.3) is smaller
         than the default value in pw.x (0.7)

   "mixing_mode"
      Type:
         Multiple Choice

      Default value:
         Plain

      Options:
         [Plain, Thomas-Fermi, Local-Thomas-Fermi]

      GUI name:
         Mixing mode

      Description:
         Available options are:                      • Plain: charge
         density Broyden mixing                      • Thomas-Fermi:
         as above, with simple Thomas-Fermi screening (for highly
         homogeneous systems)                      • Local-Thomas-
         Fermi: as above, with local-density-dependent TF screening
         (for highly inhomogeneous systems)

   "mixing_ndim"
      Type:
         Integer

      Default value:
         8

      GUI name:
         Dimension

      Description:
         Number of iterations used in mixing scheme. If you are tight
         with memory, you may reduce it to 4 or so.

   "scf_must_converge"
      Type:
         Bool

      Default value:
         Yes

      Description:
         If .false. do not stop molecular dynamics or ionic relaxation
         when electron_maxstep is reached. Use with care. Important:
         When using the AMS interface, setting this to .true. will
         halt the entire AMS execution if the SCF fails; otherwise,
         AMS will try to continue using the unconverged results.


System block (in the QuantumESPRESSO engine)
============================================

Overview:

   System
      assume_isolated [Auto | None | Martyna-Tuckerman | ESM | 2D]
      degauss float
      dftd3_threebody Yes/No
      dftd3_version [2 | 3 | 4 | 5 | 6]
      eamp float
      ecutfock float
      ecutrho float
      ecutvcut float
      ecutwfc float
      edir [x | y | z]
      emaxpos float
      eopreg float
      esm_bc [pbc | bc1 | bc2 | bc3]
      exx_fraction float
      exxdiv_treatment [gygi-baldereschi | vcut_spherical | vcut_ws | none]
      gcscf_conv_thr float
      gcscf_mu float
      input_dft string
      lgcscf Yes/No
      lspinorb Yes/No
      nbnd integer
      nosym Yes/No
      nqx1 integer
      nqx2 integer
      nqx3 integer
      nr1 integer
      nr1s integer
      nr2 integer
      nr2s integer
      nr3 integer
      nr3s integer
      nspin [None | Collinear | Non-Collinear]
      occupations [Smearing | Tetrahedra | Tetrahedra_lin | Tetrahedra_opt | Fixed]
      screening_parameter float
      smearing [Gaussian | Methfessel-Paxton | Marzari-Vanderbilt | Fermi-Dirac]
      starting_magnetization
         Label string
         Value float
      End
      tot_magnetization float
      vdw_corr [None | Grimme-D2 | Grimme-D3 | TS | MBD | XDM]
      x_gamma_extrapolation Yes/No
      xdm_a1 float
      xdm_a2 float
   End


Cutoffs
-------

   System
      ecutrho float
      ecutwfc float
   End

"System"
   Type:
      Block

   Description:
      Keywords from the &SYSTEM namelist in the QuantumEspresso input
      file.

   "ecutrho"
      Type:
         Float

      Unit:
         Rydberg

      GUI name:
         Charge density cutoff

      Description:
         Kinetic energy cutoff for charge density and potential.
         If this key is not specified and the "Pseudopotential%Family"
         recommends a ratio of "ecutrho" to "ecutwfc", this
         recommended ratio will be used.                      If there
         is no recommended ratio, the default value is "4 x ecutwfc".
         For norm-conserving pseudopotential you should stick to the
         default value, you can reduce it by a little but it will
         introduce noise especially on forces and stress.
         If there are ultrasoft PP, a larger value than the default is
         often desirable ("ecutrho" = 8 to 12 times "ecutwfc",
         typically).                      PAW datasets can often be
         used at "4 x ecutwfc", but it depends on the shape of
         augmentation charge: testing is mandatory.
         The use of gradient-corrected functional, especially in cells
         with vacuum, or for pseudopotential without non-linear core
         correction, usually requires an higher values of "ecutrho" to
         be accurately converged.

   "ecutwfc"
      Type:
         Float

      Default value:
         40.0

      Unit:
         Rydberg

      GUI name:
         Wavefunction energy cutoff

      Description:
         Kinetic energy cutoff for wavefunctions.

See also: Exact exchange (EXX)


Number of bands (nbnd)
----------------------

   System
      nbnd integer
   End

"System"
   Type:
      Block

   Description:
      Keywords from the &SYSTEM namelist in the QuantumEspresso input
      file.

   "nbnd"
      Type:
         Integer

      GUI name:
         Number of bands

      Description:
         Number of electronic states (bands) to be calculated.  Note
         that in spin-polarized calculations the number of k-point,
         not the number of bands per k-point, is doubled.
         Default: For an insulator, nbnd = number of valence bands
         (nbnd = # of electrons /2); for a metal, 20% more (minimum 4
         more)


Fractional occupation, smearing
-------------------------------

   System
      degauss float
      occupations [Smearing | Tetrahedra | Tetrahedra_lin | Tetrahedra_opt | Fixed]
      smearing [Gaussian | Methfessel-Paxton | Marzari-Vanderbilt | Fermi-Dirac]
   End

"System"
   Type:
      Block

   Description:
      Keywords from the &SYSTEM namelist in the QuantumEspresso input
      file.

   "degauss"
      Type:
         Float

      Default value:
         0.0

      Unit:
         Rydberg

      GUI name:
         Smearing width

      Description:
         Value of the gaussian spreading for Brillouin-zone
         integration in metals.

   "occupations"
      Type:
         Multiple Choice

      Default value:
         Fixed

      Options:
         [Smearing, Tetrahedra, Tetrahedra_lin, Tetrahedra_opt, Fixed]

      GUI name:
         Occupations

      Description:
         Available options are:                      • Smearing:
         gaussian smearing for metals; see keywords "smearing" and
         "degauss"                      • Tetrahedra: Tetrahedron
         method, Bloechl's version: P.E. Bloechl, PRB 49, 16223
         (1994). Requires uniform grid of k-points, to be
         automatically generated (see "block K_Points"). Well suited
         for calculation of DOS, less so (because not variational) for
         force/optimization/dynamics calculations.
         • Tetrahedra_lin: Original linear tetrahedron method. To be
         used only as a reference; the optimized tetrahedron method is
         more efficient.                      • Tetrahedra_opt:
         optimized tetrahedron method, see M. Kawamura, PRB 89, 094515
         (2014). Can be used for phonon calculations as well.
         • Fixed: for insulators with a gap.

   "smearing"
      Type:
         Multiple Choice

      Default value:
         Gaussian

      Options:
         [Gaussian, Methfessel-Paxton, Marzari-Vanderbilt, Fermi-
         Dirac]

      GUI name:
         Smearing

      Description:
         Available options are:                      • Gaussian:
         ordinary Gaussian spreading                      •
         Methfessel-Paxton: first-order spreading (see PRB 40, 3616
         (1989))                      • Marzari-Vanderbilt: cold
         smearing (see PRL 82, 3296 (1999))                      •
         Fermi-Dirac: smearing with Fermi-Dirac function


Magnetization, spin, spin-orbit
-------------------------------

   System
      lspinorb Yes/No
      nspin [None | Collinear | Non-Collinear]
      starting_magnetization
         Label string
         Value float
      End
      tot_magnetization float
   End

"System"
   Type:
      Block

   Description:
      Keywords from the &SYSTEM namelist in the QuantumEspresso input
      file.

   "lspinorb"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Spin-orbit

      Description:
         if .TRUE. the noncollinear code can use a pseudopotential
         with spin-orbit.

   "nspin"
      Type:
         Multiple Choice

      Default value:
         None

      Options:
         [None, Collinear, Non-Collinear]

      GUI name:
         Magnetization

      Description:
         Available options are:                      • None: not spin-
         polarized                      • Collinear: LSDA with
         magnetization along z-axis                      • Non-
         Collinear: any magnetization (equivalent to setting the
         "noncolin" key to True)

   "starting_magnetization"
      Type:
         Block

      Recurring:
         True

      Description:
         Starting spin polarization for an atomic type in a spin
         polarized (LSDA or noncollinear/spin-orbit) calculation.
         Allowed values range between -1 (all spins down for the
         valence electrons of atom type 'i') to 1 (all spins up). If
         you expect a nonzero magnetization in your ground state, you
         MUST either specify a nonzero value for at least one atomic
         type, or constrain the magnetization using keyword
         "tot_magnetization" for LSDA, "constrained_magnetization" for
         noncollinear/spin-orbit calculations. If you don't, you will
         get a nonmagnetic (zero magnetization) state. In order to
         perform LSDA calculations for an antiferromagnetic state,
         define two different atomic species corresponding to
         sublattices of the same atomic type.
         Note: If you fix the magnetization with "tot_magnetization",
         do not specify "starting_magnetization".
         Note: In the noncollinear/spin-orbit case, starting with zero
         starting_magnetization on all atoms imposes time reversal
         symmetry. The magnetization is never calculated and is set to
         zero.

      "Label"
         Type:
            String

         Description:
            Label for an atom corresponding to the QE.Label, or to the
            element symbol if QE.Label is not set.

      "Value"
         Type:
            Float

         Description:
            Starting magnetization value.

   "tot_magnetization"
      Type:
         Float

      GUI name:
         Fix total magnetization

      Description:
         Total majority spin charge minus minority spin charge.
         Used to impose a specific total electronic magnetization.
         If unspecified then tot_magnetization variable is ignored and
         the amount of electronic magnetization is determined during
         the self-consistent cycle.


Dispersion corrections
----------------------

Tip:

  You can access Grimme's D4 dispersion through an AMS engine addon.

   System
      vdw_corr [None | Grimme-D2 | Grimme-D3 | TS | MBD | XDM]
      dftd3_version [2 | 3 | 4 | 5 | 6]
      dftd3_threebody Yes/No
      xdm_a1 float
      xdm_a2 float
   End

"System"
   Type:
      Block

   Description:
      Keywords from the &SYSTEM namelist in the QuantumEspresso input
      file.

   "vdw_corr"
      Type:
         Multiple Choice

      Default value:
         None

      Options:
         [None, Grimme-D2, Grimme-D3, TS, MBD, XDM]

      GUI name:
         Dispersion correction

      Description:
         Type of Van der Waals correction. Allowed values:
         • Grimme-D2: Semiempirical Grimme's DFT-D2, see S. Grimme, J.
         Comp. Chem. 27, 1787 (2006) [doi:10.1002/jcc.20495], and V.
         Barone et al., J. Comp. Chem. 30, 934 (2009)
         [doi:10.1002/jcc.21112].                      • Grimme-D3:
         Semiempirical Grimme's DFT-D3, see S. Grimme et al, J. Chem.
         Phys 132, 154104 (2010) [doi:10.1063/1.3382344].
         • TS: Tkatchenko-Scheffler dispersion corrections with first-
         principle derived C6 coefficients, see A. Tkatchenko and M.
         Scheffler, PRL 102, 073005 (2009).                      •
         MBD: Many-body dispersion (MBD) correction to long-range
         interactions, see A. Ambrosetti, A. M. Reilly, R. A.
         DiStasio, A. Tkatchenko, J. Chem. Phys. 140 18A508 (2014).
         • XDM: Exchange-hole dipole-moment model, see A. D. Becke et
         al., J. Chem. Phys. 127, 154108 (2007)
         [doi:10.1063/1.2795701], and A. Otero de la Roza et al., J.
         Chem. Phys. 136, 174109 (2012) [doi:10.1063/1.4705760].
         Note that non-local functionals (eg vdw-DF) are NOT specified
         here but using the "input_dft" keyword.

   "dftd3_version"
      Type:
         Multiple Choice

      Default value:
         3

      Options:
         [2, 3, 4, 5, 6]

      GUI name:
         Version

      Description:
         Version of Grimme implementation of Grimme-D3:
         • 2: Original Grimme-D2 parametrization
         • 3: Grimme-D3 (zero damping)                      • 4:
         Grimme-D3 (BJ damping)                      • 5: Grimme-D3M
         (zero damping)                      • 6: Grimme-D3M (BJ
         damping)                      • NOTE: not all functionals are
         parametrized.

   "dftd3_threebody"
      Type:
         Bool

      Default value:
         Yes

      GUI name:
         Use three-body terms

      Description:
         Turn three-body terms in Grimme-D3 on.
         If False two-body contributions only are computed, using two-
         body parameters of Grimme-D3.                      If
         dftd3_version is set to "2", three-body contribution is
         always disabled.

   "xdm_a1"
      Type:
         Float

      Default value:
         0.6836

      GUI name:
         a1

      Description:
         Damping function parameter a1 (adimensional).
         It is NOT necessary to give a value if the functional is one
         of B86bPBE, PW86PBE, PBE, BLYP. For functionals in this list,
         the coefficients are given in:
         http://schooner.chem.dal.ca/wiki/XDM; A. Otero de la Roza, E.
         R. Johnson, J. Chem. Phys. 138, 204109 (2013)
         [doi:10.1063/1.4705760]

   "xdm_a2"
      Type:
         Float

      Default value:
         1.5045

      Unit:
         Angstrom

      GUI name:
         a2

      Description:
         Damping function parameter a2 (Angstrom).
         It is NOT necessary to give a value if the functional is one
         of B86bPBE, PW86PBE, PBE, BLYP. For functionals in this list,
         the coefficients are given in:
         http://schooner.chem.dal.ca/wiki/XDM; A. Otero de la Roza, E.
         R. Johnson, J. Chem. Phys. 138, 204109 (2013)
         [doi:10.1063/1.4705760]

**Example values for xdm_a1 and xdm_a2** (source: postsg/xdm.param)

   # quantum espresso, new version
   functional       a1    a2(ang)  MAPD nset
   b86bpbe (PAW)  0.6512  1.4633   11.8  49
   pw86pbe (PAW)  0.6836  1.5045   11.7  49
   blyp    (PAW)  0.4502  1.6210   14.8  49
   pbe     (PAW)  0.3275  2.7673   14.4  49
   b86bpbe (NC)   0.7767  1.0937   12.4  49
   pw86pbe (NC)   0.7825  1.2077   12.6  49
   blyp    (NC)   0.6349  1.0486   11.2  49
   pbe     (NC)   0.4283  2.4690   15.2  49

   # quantum espresso, new version, hybrids
   functional           a1    a2(ang)  MAPD nset
   hse         (PAW)  0.3799  2.5862   10.5  49
   pbe0        (PAW)  0.4616  2.2913    7.9  49
   b3lyp       (PAW)  0.6092  1.3452    8.5  49
   b86bpbe 10% (PAW)  0.6470  1.4911   10.1  49
   b86bpbe 20% (PAW)  0.6303  1.5579    8.8  49
   b86bpbe 30% (PAW)  0.6134  1.6290    7.8  49
   b86bpbe 40% (PAW)  0.5976  1.7000    7.1  49
   b86bpbe 50% (PAW)  0.5826  1.7718    6.9  49
   blyp 10%    (PAW)  0.5637  1.4443   10.0  49
   blyp 20%    (PAW)  0.5663  1.5258    8.8  49
   blyp 30%    (PAW)  0.5174  1.7808    8.5  49
   blyp 40%    (PAW)  0.4195  2.1999    8.6  49
   bhahlyp     (PAW)  0.2998  2.6953    9.3  49
   b3lyp       (NC)   0.6070  1.3862    7.4  49
   pbe0        (NC)   0.4590  2.3581   11.1  49
   hse         (NC)   0.4206  2.4989   11.9  49
   b86bpbe 10% (NC)   0.7272  1.2674   10.8  49
   b86bpbe 20% (NC)   0.6898  1.4072    9.6  49
   b86bpbe 25% (NC)   0.6754  1.4651    9.2  49
   b86bpbe 30% (NC)   0.6627  1.5181    9.0  49
   b86bpbe 40% (NC)   0.6465  1.5981    8.9  49
   b86bpbe 50% (NC)   0.6434  1.6405    9.1  49
   blyp 10%    (NC)   0.5967  1.3653    8.6  49
   blyp 20%    (NC)   0.5315  1.6669    7.8  49
   blyp 30%    (NC)   0.4398  2.0623    8.1  49
   blyp 40%    (NC)   0.3375  2.5011    9.1  49
   bhahlyp     (NC)   0.2292  2.9698   10.4  49



DFT functional (input_dft)
--------------------------

See also: Exact exchange (EXX)

   System
      input_dft string
   End

"System"
   Type:
      Block

   Description:
      Keywords from the &SYSTEM namelist in the QuantumEspresso input
      file.

   "input_dft"
      Type:
         String

      GUI name:
         Density functional

      Description:
         Exchange-correlation functional. Some valid values are
         • pbe                      • blyp                      • pbe0
         • hse                      • revpbe                      •
         vdw-df-cx. See the documentation for more possible values.
         Overrides the value read from pseudopotential files.

**Valid values for input_dft** (source: Modules/funct.f90)

     ! ------------------------------------------------------------------------
     ! "dft" is the exchange-correlation functional label, as set by the user,
     ! using either set_dft_from_name or set_dft_from_indices. It can contain
     ! either the short names or a series of the keywords listed below.
     ! All operations on names are case-insensitive.
     !
     !           short name       complete name       Short description
     !              "pz"    = "sla+pz"            = Perdew-Zunger LDA
     !              "bp"    = "b88+p86"           = Becke-Perdew grad.corr.
     !              "pw91"  = "sla+pw+ggx+ggc"    = PW91 (aka GGA)
     !              "blyp"  = "sla+b88+lyp+blyp"  = BLYP
     !              "pbe"   = "sla+pw+pbx+pbc"    = PBE
     !              "revpbe"= "sla+pw+revx+pbc"   = revPBE (Zhang-Yang)
     !              "rpbe"  = "sla+pw+hhnx+pbc"   = RPBE (Hammer-Hansen-Norskov)
     !              "pw86pbe" = "sla+pw+pw86+pbc" = PW86 exchange + PBE correlation
     !              "b86bpbe" = "sla+pw+b86b+pbc" = B86b exchange + PBE correlation
     !              "pbesol"= "sla+pw+psx+psc"    = PBEsol
     !              "q2d"   = "sla+pw+q2dx+q2dc"  = PBEQ2D
     !              "hcth"  = "nox+noc+hcth+hcth" = HCTH/120
     !              "olyp"  = "nox+lyp+optx+blyp" = OLYP
     !              "wc"    = "sla+pw+wcx+pbc"    = Wu-Cohen
     !              "sogga" = "sla+pw+sox+pbec"   = SOGGA
     !              "optbk88"="sla+pw+obk8+p86"   = optB88
     !              "optb86b"="sla+pw+ob86+p86"   = optB86
     !              "ev93"  = "sla+pw+evx+nogc"   = Engel-Vosko

     !              "tpss"  = "sla+pw+tpss+tpss"  = TPSS Meta-GGA
     !              "m06l"  = "nox+noc+m6lx+m6lc" = M06L Meta-GGA
     !              "tb09"  = "sla+pw+tb09+tb09"  = TB09 Meta-GGA
     !              "pbe0"  = "pb0x+pw+pb0x+pbc"  = PBE0
     !              "b86bx" = "pb0x+pw+b86x+pbc"  = B86bPBE hybrid
     !              "bhahlyp"="pb0x+pw+b88x+blyp" = Becke half-and-half LYP
     !              "hse"   = "sla+pw+hse+pbc"    = Heyd-Scuseria-Ernzerhof (HSE 06, see note below)
     !              "b3lyp"                        = B3LYP
     !              "b3lyp-v1r"                    = B3LYP-VWN1-RPA
     !              "x3lyp"                        = X3LYP
     !              "vwn-rpa" = VWN LDA using vwn1-rpa parametrization
     !              "gaupbe"= "sla+pw+gaup+pbc"   = Gau-PBE (also "gaup")
     !
     !              "vdw-df"       ="sla+pw+revx+vdw1"      = vdW-DF1
     !              "vdw-df2"      ="sla+pw+rw86+vdw2"      = vdW-DF2
     !              "vdw-df-c09"   ="sla+pw+c09x+vdw1"      = vdW-DF-C09
     !              "vdw-df2-c09"  ="sla+pw+c09x+vdw2"      = vdW-DF2-C09
     !              "vdw-df-obk8"  ="sla+pw+obk8+vdw1"      = vdW-DF-obk8 (optB88-vdW)
     !              "vdw-df-ob86"  ="sla+pw+ob86+vdw1"      = vdW-DF-ob86 (optB86b-vdW)
     !              "vdw-df2-b86r" ="sla+pw+b86r+vdw2"      = vdW-DF2-B86R (rev-vdw-df2)
     !              "vdw-df-cx"    ="sla+pw+cx13+vdW1"      = vdW-DF-cx
     !              "vdw-df-cx0"   ="sla+pw+cx13+vdW1+HF/4" = vdW-DF-cx-0
     !              "vdw-df2-0"    ="sla+pw+rw86+vdw2+HF/4" = vdW-DF2-0
     !              "vdw-df2-br0"  ="sla+pw+b86r+vdW2+HF/4" = vdW-DF2-b86r-0
     !              "vdw-df-c090"  ="sla+pw+c09x+vdw1+HF/4" = vdW-DF-C09-0
     !              "vdw-df3-opt1" ="sla+pw+w31x+w31c"      = vdW-DF3-opt1
     !              "vdw-df3-opt2" ="sla+pw+w32x+w32c"      = vdW-DF3-opt2
     !              "vdw-df-C6"    ="sla+pw+b86r+wc6"       = vdW-DF-C6
     !              "rvv10" = "sla+pw+rw86+pbc+vv10"        = rVV10
     !
     ! Any nonconflicting combination of the following keywords is acceptable:
     !
     ! Exchange:    "nox"    none                           iexch=0
     !              "sla"    Slater (alpha=2/3)             iexch=1 (default)
     !              "sl1"    Slater (alpha=1.0)             iexch=2
     !              "rxc"    Relativistic Slater            iexch=3
     !              "oep"    Optimized Effective Potential  iexch=4
     !              "hf"     Hartree-Fock                   iexch=5
     !              "pb0x"   (Slater*0.75+HF*0.25)          iexch=6 for PBE0 and vdW-DF-cx0 and vdW-DF2-0 etc
     !              "b3lp"   B3LYP(Slater*0.80+HF*0.20)     iexch=7
     !              "kzk"    Finite-size corrections        iexch=8
     !              "x3lp"   X3LYP(Slater*0.782+HF*0.218)   iexch=9
     !              "kli"    KLI aproximation for exx       iexch=10
     !
     ! Correlation: "noc"    none                           icorr=0
     !              "pz"     Perdew-Zunger                  icorr=1 (default)
     !              "vwn"    Vosko-Wilk-Nusair              icorr=2
     !              "lyp"    Lee-Yang-Parr                  icorr=3
     !              "pw"     Perdew-Wang                    icorr=4
     !              "wig"    Wigner                         icorr=5
     !              "hl"     Hedin-Lunqvist                 icorr=6
     !              "obz"    Ortiz-Ballone form for PZ      icorr=7
     !              "obw"    Ortiz-Ballone form for PW      icorr=8
     !              "gl"     Gunnarson-Lunqvist             icorr=9
     !              "kzk"    Finite-size corrections        icorr=10
     !              "vwn-rpa" Vosko-Wilk-Nusair, alt param  icorr=11
     !              "b3lp"   B3LYP (0.19*vwn+0.81*lyp)      icorr=12
     !              "b3lpv1r"  B3LYP-VWN-1-RPA
     !                         (0.19*vwn_rpa+0.81*lyp)      icorr=13
     !              "x3lp"   X3LYP (0.129*vwn_rpa+0.871*lyp)icorr=14
     !
     ! Gradient Correction on Exchange:
     !              "nogx"   none                           igcx =0 (default)
     !              "b88"    Becke88 (beta=0.0042)          igcx =1
     !              "ggx"    Perdew-Wang 91                 igcx =2
     !              "pbx"    Perdew-Burke-Ernzenhof exch    igcx =3
     !              "revx"   revised PBE by Zhang-Yang      igcx =4
     !              "hcth"   Cambridge exch, Handy et al    igcx =5
     !              "optx"   Handy's exchange functional    igcx =6
     !              "pb0x"   PBE0 (PBE exchange*0.75)       igcx =8

     !              "b3lp"   B3LYP (Becke88*0.72)           igcx =9
     !              "psx"    PBEsol exchange                igcx =10
     !              "wcx"    Wu-Cohen                       igcx =11
     !              "hse"    HSE screened exchange          igcx =12
     !              "rw86"   revised PW86                   igcx =13
     !              "pbe"    same as PBX, back-comp.        igcx =14
     !              "c09x"   Cooper 09                      igcx =16
     !              "sox"    sogga                          igcx =17
     !              "q2dx"   Q2D exchange grad corr         igcx =19
     !              "gaup"   Gau-PBE hybrid exchange        igcx =20
     !              "pw86"   Perdew-Wang (1986) exchange    igcx =21
     !              "b86b"   Becke (1986) exchange          igcx =22
     !              "obk8"   optB88  exchange               igcx =23
     !              "ob86"   optB86b exchange               igcx =24
     !              "evx"    Engel-Vosko exchange           igcx =25
     !              "b86r"   revised Becke (b86b)           igcx =26
     !              "cx13"   consistent exchange            igcx =27
     !              "x3lp"   X3LYP (Becke88*0.542 +
     !                              Perdew-Wang91*0.167)    igcx =28
     !              "cx0"    vdW-DF-cx+HF/4 (cx13-0)        igcx =29
     !              "r860"   rPW86+HF/4 (rw86-0)            igcx =30 (for DF0)
     !              "cx0p"   vdW-DF-cx+HF/5 (cx13-0p)       igcx =31
     !              "ahcx"   vdW-DF-cx based analytic hole  igcx =32 ! Launched vdW-DF-ahcx - PH
     !              "ahf2"   vdW-DF2 based analytic hole    igcx =33 ! Defined vdw-DF2-AH at 0.20 - PH
     !              "ahpb"   PBE based analytic hole        igcx =34 ! PBE-AH (rHJS-PBE) at 0.20 - PH
     !              "ahps"   PBE-sol based analytic hole    igcx =35 ! PBESOL-AH (rHJS-PBEsol) at 0.20 - PH
     !              "cx14"   Exporations                    igcx =36 reserved PH
     !              "cx15"   Exporations                    igcx =37 reserved PH
     !              "br0"    vdW-DF2-b86r+HF/4 (b86r-0)     igcx =38
     !              "cx16"   Exporations                    igcx =39 reserved PH
     !              "c090"   vdW-DF-c09+HF/4 (c09-0)        igcx =40
     !              "b86x"   B86b exchange * 0.75           igcx =41
     !              "b88x"   B88 exchange * 0.50            igcx =42
     !              "beex"   BEE exchange                   igcx =43
     !              "hhnx"   Hammer-Hansen-Norskov          igcx =44
     !              "w31x"   vdW-DF3-opt1 exchange          igcx =45
     !              "w32x"   vdW-DF3-opt2 exchange          igcx =46
     !              "ahtr"   vdW-DF2-ahtr exchange          igcx =47 ! Test reserve called by vdW-DF2-ahtr - PH
     !              "ehpb"   HSE variant                    igcx =48 ! Reserved PH
     !              "hjpb"   HJS-type PBE cross check       igcx =49 ! Reserved PH
     !              "hjps"   HJS-type PBEsol crosscheck     igcx =50 ! Reserved PH
     !
     ! Gradient Correction on Correlation:
     !              "nogc"   none                           igcc =0 (default)
     !              "p86"    Perdew86                       igcc =1
     !              "ggc"    Perdew-Wang 91 corr.           igcc =2
     !              "blyp"   Lee-Yang-Parr                  igcc =3
     !              "pbc"    Perdew-Burke-Ernzenhof corr    igcc =4
     !              "hcth"   Cambridge corr, Handy et al    igcc =5
     !              "b3lp"   B3LYP (Lee-Yang-Parr*0.81)     igcc =7
     !              "psc"    PBEsol corr                    igcc =8
     !              "pbe"    same as PBX, back-comp.        igcc =9
     !              "q2dc"   Q2D correlation grad corr      igcc =12
     !              "x3lp"   X3LYP (Lee-Yang-Parr*0.871)    igcc =13
     !              "beec"   BEE correlation                igcc =14
     !
     ! Meta-GGA functionals
     !              "tpss"   TPSS Meta-GGA                  imeta=1
     !              "m6lx"   M06L Meta-GGA                  imeta=2
     !              "tb09"   TB09 Meta-GGA                  imeta=3
     !              "+meta"  activate MGGA even without MGGA-XC   imeta=4
     !              "scan"   SCAN Meta-GGA                  imeta=5
     !              "sca0"   SCAN0  Meta-GGA                imeta=6
     !              "r2scan" R2SCAN Meta-GGA                imeta=7
     !
     ! van der Waals functionals (nonlocal term only)
     !              "nonlc"  none                           inlc =0 (default)
     !--------------inlc = 1 to inlc = 25 reserved for vdW-DF--------------
     !              "vdw1"   vdW-DF1                        inlc =1
     !              "vdw2"   vdW-DF2                        inlc =2

     !              "w31c"   vdW-DF3-opt1                   inlc =3
     !              "w32c"   vdW-DF3-opt2                   inlc =4
     !              "wc6"    vdW-DF-C6                      inlc =5
     !---------------------------------------------------------------------
     !              "vv10"   rVV10                          inlc =26
     !
     ! Meta-GGA with van der Waals
     !              "rvv10-scan" rVV10 (with b=15.7) and scan inlc=26 (PRX 6, 041005 (2016))
     !
     ! Note: as a rule, all keywords should be unique, and should be different
     ! from the short name, but there are a few exceptions.
     !
     ! References:
     !              pz      J.P.Perdew and A.Zunger, PRB 23, 5048 (1981)
     !              vwn     S.H.Vosko, L.Wilk, M.Nusair, Can.J.Phys. 58,1200(1980)
     !              vwn1-rpa S.H.Vosko, L.Wilk, M.Nusair, Can.J.Phys. 58,1200(1980)
     !              wig     E.P.Wigner, Trans. Faraday Soc. 34, 67 (1938)
     !              hl      L.Hedin and B.I.Lundqvist, J. Phys. C4, 2064 (1971)
     !              gl      O.Gunnarsson and B.I.Lundqvist, PRB 13, 4274 (1976)
     !              pw      J.P.Perdew and Y.Wang, PRB 45, 13244 (1992)
     !              obpz    G.Ortiz and P.Ballone, PRB 50, 1391 (1994)
     !              obpw    as above
     !              b88     A.D.Becke, PRA 38, 3098 (1988)
     !              p86     J.P.Perdew, PRB 33, 8822 (1986)
     !              pw86    J.P.Perdew, PRB 33, 8800 (1986)
     !              b86b    A.D.Becke, J.Chem.Phys. 85, 7184 (1986)
     !              ob86    Klimes, Bowler, Michaelides, PRB 83, 195131 (2011)
     !              b86r    I. Hamada, Phys. Rev. B 89, 121103(R) (2014)
     !              w31x    D. Chakraborty, K. Berland, and T. Thonhauser, JCTC 16, 5893 (2020)
     !              w32x    D. Chakraborty, K. Berland, and T. Thonhauser, JCTC 16, 5893 (2020)
     !              pbe     J.P.Perdew, K.Burke, M.Ernzerhof, PRL 77, 3865 (1996)
     !              pw91    J.P.Perdew and Y. Wang, PRB 46, 6671 (1992)
     !              blyp    C.Lee, W.Yang, R.G.Parr, PRB 37, 785 (1988)
     !              hcth    Handy et al, JCP 109, 6264 (1998)
     !              olyp    Handy et al, JCP 116, 5411 (2002)
     !              revPBE  Zhang and Yang, PRL 80, 890 (1998)
     !              pbesol  J.P. Perdew et al., PRL 100, 136406 (2008)
     !              q2d     L. Chiodo et al., PRL 108, 126402 (2012)
     !              rw86    Eamonn D. Murray et al, J. Chem. Theory Comput. 5, 2754 (2009)
     !              wc      Z. Wu and R. E. Cohen, PRB 73, 235116 (2006)
     !              kzk     H.Kwee, S. Zhang, H. Krakauer, PRL 100, 126404 (2008)
     !              pbe0    J.P.Perdew, M. Ernzerhof, K.Burke, JCP 105, 9982 (1996)
     !              hse     Heyd, Scuseria, Ernzerhof, J. Chem. Phys. 118, 8207 (2003)
     !                      Heyd, Scuseria, Ernzerhof, J. Chem. Phys. 124, 219906 (2006).
     !              b3lyp   P.J. Stephens,F.J. Devlin,C.F. Chabalowski,M.J. Frisch
     !                      J.Phys.Chem 98, 11623 (1994)
     !              x3lyp   X. Xu, W.A Goddard III, PNAS 101, 2673 (2004)
     !              vdW-DF       M. Dion et al., PRL 92, 246401 (2004)
     !                           T. Thonhauser et al., PRL 115, 136402 (2015)
     !              vdW-DF2      Lee et al., Phys. Rev. B 82, 081101 (2010)
     !              rev-vdW-DF2  I. Hamada, Phys. Rev. B 89, 121103(R) (2014)
     !              vdW-DF-cx    K. Berland and P. Hyldgaard, PRB 89, 035412 (2014)
     !              vdW-DF-cx0   K. Berland, Y. Jiao, J.-H. Lee, T. Rangel, J. B. Neaton and P. Hyldgaard,
     !                           J. Chem. Phys. 146, 234106 (2017)
     !              vdW-DF-cx0p  Y. Jiao, E. Schröder and P. Hyldgaard,
     !                           J. Chem. Phys. 148, 194115 (2018)
     !              vdW-DF-obk8  Klimes et al, J. Phys. Cond. Matter, 22, 022201 (2010)
     !              vdW-DF-ob86  Klimes et al, Phys. Rev. B, 83, 195131 (2011)
     !              vdW-DF3-opt1 D. Chakraborty, K. Berland, and T. Thonhauser, JCTC 16, 5893 (2020)
     !              vdW-DF3-opt2 D. Chakraborty, K. Berland, and T. Thonhauser, JCTC 16, 5893 (2020)
     !              vdW-DF-C6    K. Berland, D. Chakraborty, and T. Thonhauser, PRB 99, 195418 (2019)
     !              c09x    V. R. Cooper, Phys. Rev. B 81, 161104(R) (2010)
     !              tpss    J.Tao, J.P.Perdew, V.N.Staroverov, G.E. Scuseria,
     !                      PRL 91, 146401 (2003)
     !              tb09    F Tran and P Blaha, Phys.Rev.Lett. 102, 226401 (2009)
     !              scan    J Sun, A Ruzsinszky and J Perdew, PRL 115, 36402 (2015)
     !              scan0   K Hui and J-D. Chai, JCP 144, 44114 (2016)
     !              r2scan  J. W. Furness, A. D. Kaplan, J. Ning, J. P. Perdew,
     !                      and J. Sun, JPCL 11, 8208 (2020)
     !              sogga   Y. Zhao and D. G. Truhlar, JCP 128, 184109 (2008)

     !              m06l    Y. Zhao and D. G. Truhlar, JCP 125, 194101 (2006)
     !              gau-pbe J.-W. Song, K. Yamashita, K. Hirao JCP 135, 071103 (2011)
     !              rVV10   R. Sabatini et al. Phys. Rev. B 87, 041108(R) (2013)
     !              ev93     Engel-Vosko, Phys. Rev. B 47, 13164 (1993)
     !              vdW-DF-ahcx V. Shukla, Y. Jiao, iC. M. Frostenson, and P. Hyldgaard, JPCM 34, 025902 (2022)
     !              vdW-DF2-ah V. Shukla, Y. Jiao, iC. M. Frostenson, and P. Hyldgaard, JPCM 34, 025902 (2022)
     !              PBE-ah V. Shukla, Y. Jiao, iC. M. Frostenson, and P. Hyldgaard, JPCM 34, 025902 (2022)
     !              PBESOL-ah V. Shukla, Y. Jiao, iC. M. Frostenson, and P. Hyldgaard, JPCM 34, 025902 (2022)
     !
     ! NOTE ABOUT HSE: there are two slight deviations with respect to the HSE06
     ! functional as it is in Gaussian code (that is considered as the reference
     ! in the chemistry community):
     ! - The range separation in Gaussian is precisely 0.11 bohr^-1,
     !   instead of 0.106 bohr^-1 in this implementation
     ! - The gradient scaling relation is a bit more complicated
     !   [ see: TM Henderson, AF Izmaylov, G Scalmani, and GE Scuseria,
     !          J. Chem. Phys. 131, 044108 (2009) ]
     ! These two modifications accounts only for a 1e-5 Ha difference for a
     ! single He atom. Info by Fabien Bruneval.
     !
     ! NOTE FOR LIBXC USERS: to use libxc functionals you must enforce them from input (use
     ! 'input_dft' in &system) and write their IDs in the input string. The only notation
     ! now allowed (v7.0) for input DFTs containing Libxc terms is:
     ! XC-000i-000i-000i-000i-000i-000i
     ! where you put the functional IDs instead of the zeros and an 'L' instead of
     ! 'i' if the functional is from Libxc. The order is the usual one:
     ! LDAexch - LDAcorr - GGAexch - GGAcorr - MGGAexch - MGGAcorr
     ! however QE will automatically adjust it if needed. You can skip zero tails (e.g.
     ! you don't need GGA/MGGA slots if the dft is LDA only and so on.
     ! You can use combinations of qe and libxc functionals, when they are compatible.
     ! You can also add vdW terms after it, for example, sla+pw+rw86+vdw2 is:
     ! input_dft='XC-001i-004i-013i-vdw2'.
     ! For more details see the user_guide (in 'Doc' folder).



Exact exchange (EXX)
--------------------

See also: DFT functional (input_dft)

   System
      ecutfock float
      ecutvcut float
      exxdiv_treatment [gygi-baldereschi | vcut_spherical | vcut_ws | none]
      exx_fraction float
      nqx1 integer
      nqx2 integer
      nqx3 integer
      screening_parameter float
      x_gamma_extrapolation Yes/No
   End

"System"
   Type:
      Block

   Description:
      Keywords from the &SYSTEM namelist in the QuantumEspresso input
      file.

   "ecutfock"
      Type:
         Float

      Unit:
         Rydberg

      GUI name:
         Exchange operator cutoff

      Description:
         Kinetic energy cutoff for the exact exchange operator in EXX
         type calculations.                      By default this is
         the same as "ecutrho" but in some EXX calculations, a
         significant speed-up can be obtained by reducing ecutfock, at
         the expense of some loss in accuracy.
         Must be >= "ecutwfc".                      Not implemented
         for stress calculation and for US-PP and PAW
         pseudopotentials.                      Use with care,
         especially in metals where it may give raise to
         instabilities.

   "ecutvcut"
      Type:
         Float

      Default value:
         0.0

      Unit:
         Rydberg

      Description:
         Reciprocal space cutoff for correcting Coulomb potential
         divergencies at small q vectors.

   "exxdiv_treatment"
      Type:
         Multiple Choice

      Default value:
         gygi-baldereschi

      Options:
         [gygi-baldereschi, vcut_spherical, vcut_ws, none]

      GUI name:
         Divergence treatment

      Description:
         Specific for EXX. It selects the kind of approach to be used
         for treating the Coulomb potential divergencies at small q
         vectors.                      gygi-baldereschi:  appropriate
         for cubic and quasi-cubic supercells
         vcut_spherical:  appropriate for cubic and quasi-cubic
         supercells                      vcut_ws: appropriate for
         strongly anisotropic supercells, see also ecutvcut.
         none:  sets Coulomb potential at G,q=0 to 0.0 (required for
         GAU-PBE)

   "exx_fraction"
      Type:
         Float

      GUI name:
         EXX fraction

      Description:
         Fraction of EXX for hybrid functional calculations.
         In the case of "input_dft" set to 'PBE0', the default value
         is 0.25, while for "input_dft" set to 'B3LYP' the
         "exx_fraction" default value is 0.20.

   "nqx1"
      Type:
         Integer

      Description:
         Three-dimensional mesh for q (k1-k2) sampling of the Fock
         operator (EXX). Can be smaller than the number of k-points.
         Defaults to the size of the k-point mesh used.

   "nqx2"
      Type:
         Integer

      Description:
         Three-dimensional mesh for q (k1-k2) sampling of the Fock
         operator (EXX). Can be smaller than the number of k-points.
         Defaults to the size of the k-point mesh used.

   "nqx3"
      Type:
         Integer

      Description:
         Three-dimensional mesh for q (k1-k2) sampling of the Fock
         operator (EXX). Can be smaller than the number of k-points.
         Defaults to the size of the k-point mesh used.

   "screening_parameter"
      Type:
         Float

      Default value:
         0.106

      GUI name:
         Screening parameter

      Description:
         screening_parameter for HSE like hybrid functionals.  For
         more information, see: J. Chem. Phys. 118, 8207 (2003),
         doi:10.1063/1.1564060 J. Chem. Phys. 124, 219906 (2006),
         doi:10.1063/1.2204597

   "x_gamma_extrapolation"
      Type:
         Bool

      Default value:
         Yes

      GUI name:
         Gamma extrapolation

      Description:
         Specific for EXX. If .true., extrapolate the G=0 term of the
         potential (see README in examples/EXX_example for more) Set
         this to .false. for GAU-PBE.


Dipole/charge corrections
-------------------------

See also: Control block: dipole/electric field

   System
      edir [x | y | z]
      emaxpos float
      eopreg float
      eamp float
      assume_isolated [Auto | None | Martyna-Tuckerman | ESM | 2D]
   End

"System"
   Type:
      Block

   Description:
      Keywords from the &SYSTEM namelist in the QuantumEspresso input
      file.

   "edir"
      Type:
         Multiple Choice

      Options:
         [x, y, z]

      GUI name:
         Field direction

      Description:
         "1" (or "x"), 2 (or "y") or 3 (or "z"). The direction of the
         electric field or dipole correction is parallel to the
         bg(:,edir) reciprocal lattice vector.
         Thus the potential is constant in planes defined by FFT grid
         points.                      Used only if "tefield" is
         enabled.

   "emaxpos"
      Type:
         Float

      Default value:
         0.5

      GUI name:
         Saw potential maximum

      Description:
         Position of the maximum of the saw-like potential along
         crystal axis "edir", within the unit cell, see also "eopreg".
         0 < "emaxpos" < 1                       Used only if
         "tefield" is enabled.

   "eopreg"
      Type:
         Float

      Default value:
         0.1

      GUI name:
         Saw potential decreasing

      Description:
         Zone in the unit cell where the saw-like potential decreases,
         see also "amp".                      Must be in range 0 <
         "eopreg" < 1.                      Used only if "tefield" is
         enabled.

   "eamp"
      Type:
         Float

      Default value:
         0.001

      Unit:
         Hartree

      GUI name:
         Field amplitude

      Description:
         Amplitude of the electric field, in Hartree a.u. = =
         51.4220632*10^10 V/m.                      Used only if
         "tefield" is enabled.                      The saw-like
         potential increases with slope "eamp" in the region from
         ("emaxpos" + "eopreg"- 1) to ("emaxpos"), then decreases to 0
         until ("emaxpos" + "eopreg"), in units of the crystal vector
         edir.                      Important: the change of slope of
         this potential must be located in the empty region, or else
         unphysical forces will result.

   "assume_isolated"
      Type:
         Multiple Choice

      Default value:
         Auto

      Options:
         [Auto, None, Martyna-Tuckerman, ESM, 2D]

      GUI name:
         Isolated system

      Description:
         Used to perform calculation assuming the system to be
         isolated (a molecule or a cluster in a 3D supercell).
         Currently available choices:                      • Auto:
         determines the used method based on the periodicity of the
         system in the AMS driver input. None for systems 3D
         periodicity, Martyna-Tuckerman for systems without a lattice.
         • None: regular periodic calculation w/o any correction.
         • Martyna-Tuckerman: correction to both total energy and scf
         potential. Adapted from: G.J. Martyna, and M.E. Tuckerman, A
         reciprocal space based method for treating long range
         interactions in ab-initio and force-field-based calculation
         in clusters, J. Chem. Phys. 110, 2810 (1999),
         [doi:10.1063/1.477923].                      • ESM: Effective
         Screening Medium Method. For polarized or charged slab
         calculation, embeds the simulation cell within an effective
         semi-infinite medium in the perpendicular direction (along
         z). Embedding regions can be vacuum or semi-infinite metal
         electrodes (use esm_bc to choose boundary conditions). If
         between two electrodes, an optional electric field
         (esm_efield) may be applied. Method described in M. Otani and
         O. Sugino, 'First-principles calculations of charged surfaces
         and interfaces: A plane-wave nonrepeated slab approach', PRB
         73, 115407 (2006).                      • 2D: Truncation of
         the Coulomb interaction in the z direction for structures
         periodic in the x-y plane. Total energy, forces and stresses
         are computed in a two-dimensional framework. Linear-response
         calculations () done on top of a self-consistent calculation
         with this flag will automatically be performed in the 2D
         framework as well. Please refer to: Sohier, T., Calandra, M.,
         & Mauri, F. (2017), 'Density functional perturbation theory
         for gated two-dimensional heterostructures: Theoretical
         developments and application to flexural phonons in
         graphene', PRB, 96, 075448 (2017).


Hubbard U, DFT+U
================

Note: the Hubbard U (and J) settings are specified in the "Quantum
ESPRESSO 7.1 format (pdf)".

This format is different compared to earlier versions of Quantum
ESPRESSO. See the Examples for example usage in AMS.


Example: DFT+U (Dudarev's formalism)
------------------------------------

   Hubbard ortho-atomic
       U Mn-3d 5.0   # eV
       U Ni-3d 6.0   # eV
   End

Instead of "3d", you can also specify for example "4s" etc.

To apply the Hund J_0 (DFT+U+J_0):

   Hubbard ortho-atomic
       U  Mn-3d 5.0   # eV
       J0 Mn-3d 1.0   # eV
       U  Ni-3d 6.0   # eV
       J0 Ni-3d 1.2   # eV
   End


Example: DFT+U+J (Liechtenstein's formulation)
----------------------------------------------

   Hubbard ortho-atomic
       U Mn-3d 5.0
       J Mn-3d 1.0
       B Mn-3d 1.1
   End

For details, see the "Quantum ESPRESSO documentation for Hubbard U
(pdf)".

"Hubbard"
   Type:
      Non-standard block

   Description:
      Specify parameters for DFT+U models. The type of Hubbard
      projectors to use (e.g. "atomic" or "ortho-atomic") is specified
      in the header of this block.                   Example input:
      .. code-block:: text                   Hubbard ortho-atomic
      U Fe-3d 3.0                   End                   More
      examples can be found in the documentation.


Restart Options
===============

You can restart your calculation using the keyword "EngineRestart" at
the AMS level or the "Restart" section at the QuantumEspresso engine
level.

The AMS "EngineRestart" keyword requires the complete path to the
"quantumespresso.rkf" file. It also expects a directory named
"quantumespresso.save" to be present, along with other relevant QE
files that share the same prefix in the same location. This feature is
beneficial as it allows compatibility between different engines. On
the contrary, the QuantumEspresso engine "Restart" block allows you to
specify the directory, path, and prefix independently.

Depending on the specific files with the same prefix in that
directory, the engine can determine whether to reuse the electronic
density and wave function or restart the self-consistent field (SCF)
cycle. For the latter option, it is crucial that the QE calculation is
properly terminated. You can control this with the option
"Control%max_seconds" or by gently stopping it using the "EXIT" file.

For examples, please refer to the directories
"$AMSHOME/examples/QE/ZnO_restart" and
"$AMSHOME/examples/QE/RestartSCF"

   EngineRestart string

"EngineRestart"
   Type:
      String

   Description:
      The path to the file from which to restart the engine.
      Should be a proper engine result file (like adf.rkf, band.rkf
      etc), or the name of the results directory containing it.

   Engine QuantumEspresso
      ...
        Restart
            Directory string
            Path string
            Prefix string
        End
   EndEngine

"Restart"
   Type:
      Block

   Description:
      This section configures restarting a Quantum Espresso
      calculation from previous data. You can restart from a specific
      Quantum Espresso results file (e.g., *quantumespresso.rkf*), or
      by providing the directory and file prefix of the previous
      calculation. This is compatible with any stand-alone Quantum
      Espresso version.

   "Directory"
      Type:
         String

      Default value:
      GUI name:
         Restart from directory

      Description:
         The directory containing the restart files from a previous
         Quantum Espresso calculation. This typically includes the
         *prefix.save* directory with wavefunctions and other data.
         This option is used in conjunction with the *Prefix* option.

   "Path"
      Type:
         String

      GUI name:
         Restart from file

      Description:
         Path to the Quantum Espresso results file (e.g.,
         *quantumespresso.rkf*) to use to restart the calculation.
         When this option is used, the directory of the results file
         is used as the *Directory*, and the filename (without the
         *.rkf* extension) is used as the *Prefix*. This assumes all
         restart files (e.g., *prefix.save* directory) are in the same
         directory as the results file. This option is equivalent to
         the *EngineRestart* option.

   "Prefix"
      Type:
         String

      Default value:
         quantumespresso

      GUI name:
         Restart using prefix

      Description:
         The prefix used for the files in the previous calculation.
         This is usually the same as the 'prefix' specified in the
         input file of the original calculation. For example, if your
         files are named 'my_calc.save' and 'my_calc.restart_scf', the
         prefix would be 'my_calc'. This option is used in conjunction
         with the *Directory* option.


Differences between AMS and standalone QE
=========================================

1. AMS internally enforces "scf_must_converge = .true." to ensure it
   can reliably detect the completion status of calculations. However,
   from the AMS input file, this parameter actually controls how the
   SCF convergence affects the overall AMS execution. Specifically, if
   "scf_must_converge" is set to ".true." (which is the default), the
   entire AMS execution will be halted if the SCF fails to converge,
   otherwise it allows the AMS execution to proceed even if the SCF
   does not converge. This behavior is intended to prevent or keep
   control of inaccurate results from propagating through subsequent
   steps in the AMS workflow.

2. The default value for "Electrons%mixing_beta" is 0.3 (smaller than
   the pw.x default of 0.7), to make SCF convergence more reliable.

3. The pseudopotentials are specified in the engine Pseudopotentials
   block. They will then be appended to the ATOMIC_SPECIES lines in
   the pw.x input.

4. AMS automatically sets "pseudo_dir", "outdir", "prefix", "title",
   "ntyp" and "nat"

5. AMS automatically generates a path through the Brillouin zone for
   band structure calculations by default

6. For more differences, see the Quick reference (migration guide)
