Input File Description

Program: pw.x / PWscf / Quantum Espresso (version: 7.1rc)

TABLE OF CONTENTS

INTRODUCTION

&CONTROL

calculation | title | verbosity | restart_mode | wf_collect | nstep | iprint | tstress | tprnfor | dt | outdir | wfcdir | prefix | lkpoint_dir | max_seconds | etot_conv_thr | forc_conv_thr | disk_io | pseudo_dir | tefield | dipfield | lelfield | nberrycyc | lorbm | lberry | gdir | nppstr | gate | lfcp | trism

&SYSTEM

ibrav | celldm | A | B | C | cosAB | cosAC | cosBC | nat | ntyp | nbnd | tot_charge | starting_charge | tot_magnetization | starting_magnetization | ecutwfc | ecutrho | ecutfock | nr1 | nr2 | nr3 | nr1s | nr2s | nr3s | nosym | nosym_evc | noinv | no_t_rev | force_symmorphic | use_all_frac | occupations | one_atom_occupations | starting_spin_angle | degauss | smearing | nspin | noncolin | ecfixed | qcutz | q2sigma | input_dft | ace | exx_fraction | screening_parameter | exxdiv_treatment | x_gamma_extrapolation | ecutvcut | nqx1 | nqx2 | nqx3 | localization_thr | Hubbard_occ | Hubbard_alpha | Hubbard_beta | starting_ns_eigenvalue | dmft | dmft_prefix | ensemble_energies | edir | emaxpos | eopreg | eamp | angle1 | angle2 | lforcet | constrained_magnetization | fixed_magnetization | lambda | report | lspinorb | assume_isolated | esm_bc | esm_w | esm_efield | esm_nfit | lgcscf | gcscf_mu | gcscf_conv_thr | gcscf_beta | vdw_corr | london | london_s6 | london_c6 | london_rvdw | london_rcut | dftd3_version | dftd3_threebody | ts_vdw_econv_thr | ts_vdw_isolated | xdm | xdm_a1 | xdm_a2 | space_group | uniqueb | origin_choice | rhombohedral | zgate | relaxz | block | block_1 | block_2 | block_height

&ELECTRONS

electron_maxstep | scf_must_converge | conv_thr | adaptive_thr | conv_thr_init | conv_thr_multi | mixing_mode | mixing_beta | mixing_ndim | mixing_fixed_ns | diagonalization | diago_thr_init | diago_cg_maxiter | diago_ppcg_maxiter | diago_david_ndim | diago_rmm_ndim | diago_rmm_conv | diago_gs_nblock | diago_full_acc | efield | efield_cart | efield_phase | startingpot | startingwfc | tqr | real_space

&IONS

ion_positions | ion_velocities | ion_dynamics | pot_extrapolation | wfc_extrapolation | remove_rigid_rot | ion_temperature | tempw | tolp | delta_t | nraise | refold_pos | upscale | bfgs_ndim | trust_radius_max | trust_radius_min | trust_radius_ini | w_1 | w_2 | fire_alpha_init | fire_falpha | fire_nmin | fire_f_inc | fire_f_dec | fire_dtmax

&CELL

cell_dynamics | press | wmass | cell_factor | press_conv_thr | cell_dofree

&FCP

fcp_mu | fcp_dynamics | fcp_conv_thr | fcp_ndiis | fcp_mass | fcp_velocity | fcp_temperature | fcp_tempw | fcp_tolp | fcp_delta_t | fcp_nraise | freeze_all_atoms

&RISM

nsolv | closure | tempv | ecutsolv | solute_lj | solute_epsilon | solute_sigma | starting1d | starting3d | smear1d | smear3d | rism1d_maxstep | rism3d_maxstep | rism1d_conv_thr | rism3d_conv_thr | mdiis1d_size | mdiis3d_size | mdiis1d_step | mdiis3d_step | rism1d_bond_width | rism1d_dielectric | rism1d_molesize | rism1d_nproc | rism3d_conv_level | rism3d_planar_average | laue_nfit | laue_expand_right | laue_expand_left | laue_starting_right | laue_starting_left | laue_buffer_right | laue_buffer_left | laue_both_hands | laue_wall | laue_wall_z | laue_wall_rho | laue_wall_epsilon | laue_wall_sigma | laue_wall_lj6

ATOMIC_SPECIES

X | Mass_X | PseudoPot_X

ATOMIC_POSITIONS

X | x | y | z | if_pos(1) | if_pos(2) | if_pos(3)

K_POINTS

nks | xk_x | xk_y | xk_z | wk | nk1 | nk2 | nk3 | sk1 | sk2 | sk3

ADDITIONAL_K_POINTS

nks_add | k_x | k_y | k_z | wk_

CELL_PARAMETERS

v1 | v2 | v3

CONSTRAINTS

nconstr | constr_tol | constr_type | constr(1) | constr(2) | constr(3) | constr(4) | constr_target

OCCUPATIONS

f_inp1 | f_inp2

ATOMIC_VELOCITIES

V | vx | vy | vz

ATOMIC_FORCES

X | fx | fy | fz

SOLVENTS

X | Density | Molecule | X | Density_Left | Density_Right | Molecule

HUBBARD

label(1)-manifold(1) | u_val(1) | label(1)-manifold(1) | j0_val(1) | paramType(1) | label(1)-manifold(1) | paramValue(1) | label(I)-manifold(I) | u_val(I) | label(I)-manifold(I) | j0_val(I) | label(I)-manifold(I) | label(J)-manifold(J) | I | J | v_val(I,J) |

INTRODUCTION

Input data format: { } = optional, [ ] = it depends, | = or

All quantities whose dimensions are not explicitly specified are in
RYDBERG ATOMIC UNITS. Charge is "number" charge (i.e. not multiplied
by e); potentials are in energy units (i.e. they are multiplied by e).

BEWARE: TABS, CRLF, ANY OTHER STRANGE CHARACTER, ARE A SOURCES OF TROUBLE
USE ONLY PLAIN ASCII TEXT FILES (CHECK THE FILE TYPE WITH UNIX COMMAND "file")

Namelists must appear in the order given below.
Comment lines in namelists can be introduced by a "!", exactly as in
fortran code. Comments lines in cards can be introduced by
either a "!" or a "#" character in the first position of a line.
Do not start any line in cards with a "/" character.
Leave a space between card names and card options, e.g.
ATOMIC_POSITIONS (bohr), not ATOMIC_POSITIONS(bohr)


Structure of the input data:
===============================================================================

&CONTROL
  ...
/

&SYSTEM
  ...
/

&ELECTRONS
  ...
/

[ &IONS
  ...
 / ]

[ &CELL
  ...
 / ]

[ &FCP
  ...
 / ]

[ &RISM
  ...
 / ]

ATOMIC_SPECIES
 X  Mass_X  PseudoPot_X
 Y  Mass_Y  PseudoPot_Y
 Z  Mass_Z  PseudoPot_Z

ATOMIC_POSITIONS { alat | bohr | angstrom | crystal | crystal_sg }
  X 0.0  0.0  0.0  {if_pos(1) if_pos(2) if_pos(3)}
  Y 0.5  0.0  0.0
  Z 0.0  0.2  0.2

K_POINTS { tpiba | automatic | crystal | gamma | tpiba_b | crystal_b | tpiba_c | crystal_c }
if (gamma)
   nothing to read
if (automatic)
   nk1, nk2, nk3, k1, k2, k3
if (not automatic)
   nks
   xk_x, xk_y, xk_z,  wk
if (tpipa_b or crystal_b in a 'bands' calculation) see Doc/brillouin_zones.pdf

[ CELL_PARAMETERS { alat | bohr | angstrom }
   v1(1) v1(2) v1(3)
   v2(1) v2(2) v2(3)
   v3(1) v3(2) v3(3) ]

[ OCCUPATIONS
   f_inp1(1)  f_inp1(2)  f_inp1(3) ... f_inp1(10)
   f_inp1(11) f_inp1(12) ... f_inp1(nbnd)
 [ f_inp2(1)  f_inp2(2)  f_inp2(3) ... f_inp2(10)
   f_inp2(11) f_inp2(12) ... f_inp2(nbnd) ] ]

[ CONSTRAINTS
   nconstr  { constr_tol }
   constr_type(.)   constr(1,.)   constr(2,.) [ constr(3,.)   constr(4,.) ] { constr_target(.) } ]

[ ATOMIC_VELOCITIES
   label(1)  vx(1) vy(1) vz(1)
   .....
   label(n)  vx(n) vy(n) vz(n) ]

[ ATOMIC_FORCES
   label(1)  Fx(1) Fy(1) Fz(1)
   .....
   label(n)  Fx(n) Fy(n) Fz(n) ]

[ ADDITIONAL_K_POINTS
     see: K_POINTS ]

[ SOLVENTS
   label(1)     Density(1)     Molecule(1)
   label(2)     Density(2)     Molecule(2)
   .....
   label(nsolv) Density(nsolv) Molecule(nsolv) ]

[ HUBBARD { atomic | ortho-atomic | norm-atomic | wf | pseudo }
  if (DFT+U)
      U  label(1)-manifold(1) u_val(1)
    [ J0 label(1)-manifold(1) j0_val(1) ]
      .....
      U  label(n)-manifold(n) u_val(n)
    [ J0 label(n)-manifold(n) j0_val(n) ]
  if (DFT+U+J)
      paramType(1) label(1)-manifold(1) paramValue(1)
      .....
      paramType(n) label(n)-manifold(n) paramValue(n)
  if (DFT+U+V)
      U  label(I)-manifold(I) u_val(I)
    [ J0 label(I)-manifold(I) j0_val(I) ]
      V  label(I)-manifold(I) label(J)-manifold(J) I J v_val(I,J)
      .....
      U  label(N)-manifold(N) u_val(N)
    [ J0 label(N)-manifold(N) j0_val(N) ]
      V  label(N)-manifold(N) label(M)-manifold(M) N M v_val(N,M)
]
All Hubbard parameters must be specified in eV.
manifold  = 3d, 2p, 4f...
paramType = U, J, B, E2, or E3
Check Doc/Hubbard_input.pdf for more details.
   

Namelist: &CONTROL

calculation CHARACTER
Default: 'scf'
A string describing the task to be performed. Options are:
            
'scf'
            
'nscf'
            
'bands'
            
'relax'
            
'md'
            
'vc-relax'
            
'vc-md'
            
(vc = variable-cell).
            
title CHARACTER
Default: ' '
reprinted on output.
         
verbosity CHARACTER
Default: 'low'
Currently two verbosity levels are implemented:
            
'high'
            
'low'
            
'debug' and 'medium' have the same effect as 'high';
'default' and 'minimal' as 'low'
            
restart_mode CHARACTER
Default: 'from_scratch'
 Available options are:
            
'from_scratch' :
From scratch. This is the normal way to perform a PWscf calculation
            
'restart' :
From previous interrupted run. Use this switch only if you want to
continue, using the same number of processors and parallelization,
an interrupted calculation. Do not use to start a new one, or to
perform a non-scf calculations.  Works only if the calculation was
cleanly stopped using variable max_seconds, or by user request
with an "exit file" (i.e.: create a file "prefix".EXIT, in directory
"outdir"; see variables prefix, outdir). The default for
startingwfc and startingpot is set to 'file'.
            
wf_collect LOGICAL
 OBSOLETE - NO LONGER IMPLEMENTED
         
nstep INTEGER
Default: 1 if calculation == 'scf', 'nscf', 'bands'; 50 for the other cases
number of molecular-dynamics or structural optimization steps
performed in this run. If set to 0, the code performs a quick
"dry run", stopping just after initialization. This is useful
to check for input correctness and to have the summary printed.
NOTE: in MD calculations, the code will perform "nstep" steps
even if restarting from a previously interrupted calculation.
         
iprint INTEGER
Default: write only at convergence
band energies are written every iprint iterations
         
tstress LOGICAL
Default: .false.
calculate stress. It is set to .TRUE. automatically if
calculation == 'vc-md' or 'vc-relax'
         
tprnfor LOGICAL
calculate forces. It is set to .TRUE. automatically if
calculation == 'relax','md','vc-md'
         
dt REAL
Default: 20.D0
time step for molecular dynamics, in Rydberg atomic units
(1 a.u.=4.8378 * 10^-17 s : beware, the CP code uses
 Hartree atomic units, half that much!!!)
         
outdir CHARACTER
Default: value of the ESPRESSO_TMPDIR environment variable if set; current directory ('./') otherwise
input, temporary, output files are found in this directory,
see also wfcdir
         
wfcdir CHARACTER
Default: same as outdir
This directory specifies where to store files generated by
each processor (*.wfc{N}, *.igk{N}, etc.). Useful for
machines without a parallel file system: set wfcdir to
a local file system, while outdir should be a parallel
or network file system, visible to all processors. Beware:
in order to restart from interrupted runs, or to perform
further calculations using the produced data files, you
may need to copy files to outdir. Works only for pw.x.
         
prefix CHARACTER
Default: 'pwscf'
prepended to input/output filenames:
prefix.wfc, prefix.rho, etc.
         
lkpoint_dir LOGICAL
OBSOLETE - NO LONGER IMPLEMENTED
         
max_seconds REAL
Default: 1.D+7, or 150 days, i.e. no time limit
Jobs stops after max_seconds CPU time. Use this option
in conjunction with option restart_mode if you need to
split a job too long to complete into shorter jobs that
fit into your batch queues.
         
etot_conv_thr REAL
Default: 1.0D-4
Convergence threshold on total energy (a.u) for ionic
minimization: the convergence criterion is satisfied
when the total energy changes less than etot_conv_thr
between two consecutive scf steps. Note that etot_conv_thr
is extensive, like the total energy.
See also forc_conv_thr - both criteria must be satisfied
         
forc_conv_thr REAL
Default: 1.0D-3
Convergence threshold on forces (a.u) for ionic minimization:
the convergence criterion is satisfied when all components of
all forces are smaller than forc_conv_thr.
See also etot_conv_thr - both criteria must be satisfied
         
disk_io CHARACTER
Default: see below
Specifies the amount of disk I/O activity:
(only for binary files and xml data file in data directory;
other files printed at each molecular dynamics / structural
optimization step are not controlled by this option )
            
'high' :
save charge to disk at each SCF step,
keep wavefunctions on disk (in "distributed" format),
save mixing data as well.
Do not use this option unless you have a good reason!
It is no longer needed to specify 'high' in order to be able
to restart from an interrupted calculation (see restart_mode)
            
'medium' :
save charge to disk at each SCF step,
keep wavefunctions on disk only if more than one k-point,
per process is present, otherwise keep them in memory;
save them to disk only at the end (in "portable" format)
            
'low' :
save charge to disk at each SCF step,
keep wavefunctions in memory (for all k-points),
save them to disk only at the end (in "portable" format).
Reduces I/O but increases memory wrt the previous cases
            
'nowf' :
save to disk only the xml data file,
never save wavefunctions and charge density
            
'none' :
do not save anything to disk
            
Default is 'low' for the scf case, 'medium' otherwise.
Note that the needed RAM increases as disk I/O decreases
            
pseudo_dir CHARACTER
Default: value of the $ESPRESSO_PSEUDO environment variable if set; '$HOME/espresso/pseudo/' otherwise
directory containing pseudopotential files
         
tefield LOGICAL
Default: .FALSE.
If .TRUE. a saw-like potential simulating an electric field
is added to the bare ionic potential. See variables edir,
eamp, emaxpos, eopreg for the form and size of
the added potential.
         
dipfield LOGICAL
Default: .FALSE.
If .TRUE. and tefield==.TRUE. a dipole correction is also
added to the bare ionic potential - implements the recipe
of L. Bengtsson, PRB 59, 12301 (1999). See variables 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 LOGICAL
Default: .FALSE.
If .TRUE. a homogeneous finite electric field described
through the modern theory of the polarization is applied.
This is different from tefield == .true. !
         
nberrycyc INTEGER
Default: 1
In the case of a finite electric field  ( lelfield == .TRUE. )
it defines the number of iterations for converging the
wavefunctions in the electric field Hamiltonian, for each
external iteration on the charge density
         
lorbm LOGICAL
Default: .FALSE.
If .TRUE. perform orbital magnetization calculation.
If finite electric field is applied (lelfield==.true.) only Kubo terms are computed
[for details see New J. Phys. 12, 053032 (2010), doi:10.1088/1367-2630/12/5/053032].

The type of calculation is 'nscf' and should be performed on an automatically
generated uniform grid of k points.

Works ONLY with norm-conserving pseudopotentials.
         
lberry LOGICAL
Default: .FALSE.
If .TRUE. perform a Berry phase calculation.
See the header of PW/src/bp_c_phase.f90 for documentation.
         
gdir INTEGER
For Berry phase calculation: direction of the k-point
strings in reciprocal space. Allowed values: 1, 2, 3
1=first, 2=second, 3=third reciprocal lattice vector
For calculations with finite electric fields
(lelfield==.true.) "gdir" is the direction of the field.
         
nppstr INTEGER
For Berry phase calculation: number of k-points to be
calculated along each symmetry-reduced string.
The same for calculation with finite electric fields
(lelfield==.true.).
         
gate LOGICAL
Default: .FALSE.
See: zgate, relaxz, block, block_1, block_2, block_height
In the case of charged cells (tot_charge .ne. 0) setting gate = .TRUE.
represents the counter charge (i.e. -tot_charge) not by a homogeneous
background charge but with a charged plate, which is placed at zgate
(see below). Details of the gate potential can be found in
T. Brumme, M. Calandra, F. Mauri; PRB 89, 245406 (2014).
Note, that in systems which are not symmetric with respect to the plate,
one needs to enable the dipole correction! (dipfield=.true.).
Currently, symmetry can be used with gate=.true. but carefully check
that no symmetry is included which maps z to -z even if in principle one
could still use them for symmetric systems (i.e. no dipole correction).
For nosym=.false. verbosity is set to 'high'.
Note: this option was called "monopole" in v6.0 and 6.1 of pw.x
         
lfcp LOGICAL
Default: .FALSE.
If .TRUE. perform a constant bias potential (constant-mu) calculation
for a system with ESM method. See the header of PW/src/fcp_module.f90
for documentation. To perform the calculation, you must set a namelist FCP.

NB:
- The total energy displayed in output includes the potentiostat
  contribution (-mu*N).
- calculation must be 'relax' or 'md'.
- assume_isolated = 'esm' and esm_bc = 'bc2' or 'bc3' must be set
  in SYSTEM namelist.
- ESM-RISM is also supported (assume_isolated = 'esm' and esm_bc = 'bc1'
  and trism = .TRUE.).
- ignore_wolfe is always .TRUE., for BFGS.
         
trism LOGICAL
Default: .FALSE.
If .TRUE. perform a 3D-RISM-SCF calculation
[for details see H.Sato et al., JCP 112, 9463 (2000), doi:10.1063/1.481564].
The solvent's distributions are calculated by 3D-RISM,
though solute is treated as SCF. The charge density and
the atomic positions are optimized, simultaneously with
the solvents. To perform the calculation, you must set
a namelist RISM and a card SOLVENTS.

If assume_isolated = 'esm' and esm_bc = 'bc1',
Laue-RISM is calculated instead of 3D-RISM
and coupled with ESM method (i.e. ESM-RISM).
[for details see S.Nishihara and M.Otani, PRB 96, 115429 (2017)].

The default of mixing_beta is 0.2
for both 3D-RISM and Laue-RISM.

For structural relaxation with BFGS,
ignore_wolfe is always .TRUE. .
         

Namelist: &SYSTEM

ibrav INTEGER
Status: REQUIRED
  Bravais-lattice index. Optional only if space_group is set.
  If ibrav /= 0, specify EITHER [ celldm(1)-celldm(6) ]
  OR [ A, B, C, cosAB, cosAC, cosBC ]
  but NOT both. The lattice parameter "alat" is set to
  alat = celldm(1) (in a.u.) or alat = A (in Angstrom);
  see below for the other parameters.
  For ibrav=0 specify the lattice vectors in CELL_PARAMETERS,
  optionally the lattice parameter alat = celldm(1) (in a.u.)
  or = A (in Angstrom). If not specified, the lattice parameter is
  taken from CELL_PARAMETERS
  IMPORTANT NOTICE 1:
  with ibrav=0 lattice vectors must be given with a sufficiently large
  number of digits and with the correct symmetry, or else symmetry
  detection may fail and strange problems may arise in symmetrization.
  IMPORTANT NOTICE 2:
  do not use celldm(1) or A as a.u. to Ang conversion factor,
  use the true lattice parameters or nothing,
  specify units in CELL_PARAMETERS and ATOMIC_POSITIONS

ibrav      structure                   celldm(2)-celldm(6)
                                     or: b,c,cosbc,cosac,cosab
  0          free
      crystal axis provided in input: see card CELL_PARAMETERS

  1          cubic P (sc)
      v1 = a(1,0,0),  v2 = a(0,1,0),  v3 = a(0,0,1)

  2          cubic F (fcc)
      v1 = (a/2)(-1,0,1),  v2 = (a/2)(0,1,1), v3 = (a/2)(-1,1,0)

  3          cubic I (bcc)
      v1 = (a/2)(1,1,1),  v2 = (a/2)(-1,1,1),  v3 = (a/2)(-1,-1,1)
 -3          cubic I (bcc), more symmetric axis:
      v1 = (a/2)(-1,1,1), v2 = (a/2)(1,-1,1),  v3 = (a/2)(1,1,-1)

  4          Hexagonal and Trigonal P        celldm(3)=c/a
      v1 = a(1,0,0),  v2 = a(-1/2,sqrt(3)/2,0),  v3 = a(0,0,c/a)

  5          Trigonal R, 3fold axis c        celldm(4)=cos(gamma)
      The crystallographic vectors form a three-fold star around
      the z-axis, the primitive cell is a simple rhombohedron:
      v1 = a(tx,-ty,tz),   v2 = a(0,2ty,tz),   v3 = a(-tx,-ty,tz)
      where c=cos(gamma) is the cosine of the angle gamma between
      any pair of crystallographic vectors, tx, ty, tz are:
        tx=sqrt((1-c)/2), ty=sqrt((1-c)/6), tz=sqrt((1+2c)/3)
 -5          Trigonal R, 3fold axis <111>    celldm(4)=cos(gamma)
      The crystallographic vectors form a three-fold star around
      <111>. Defining a' = a/sqrt(3) :
      v1 = a' (u,v,v),   v2 = a' (v,u,v),   v3 = a' (v,v,u)
      where u and v are defined as
        u = tz - 2*sqrt(2)*ty,  v = tz + sqrt(2)*ty
      and tx, ty, tz as for case ibrav=5
      Note: if you prefer x,y,z as axis in the cubic limit,
            set  u = tz + 2*sqrt(2)*ty,  v = tz - sqrt(2)*ty
            See also the note in Modules/latgen.f90

  6          Tetragonal P (st)               celldm(3)=c/a
      v1 = a(1,0,0),  v2 = a(0,1,0),  v3 = a(0,0,c/a)

  7          Tetragonal I (bct)              celldm(3)=c/a
      v1=(a/2)(1,-1,c/a),  v2=(a/2)(1,1,c/a),  v3=(a/2)(-1,-1,c/a)

  8          Orthorhombic P                  celldm(2)=b/a
                                             celldm(3)=c/a
      v1 = (a,0,0),  v2 = (0,b,0), v3 = (0,0,c)

  9          Orthorhombic base-centered(bco) celldm(2)=b/a
                                             celldm(3)=c/a
      v1 = (a/2, b/2,0),  v2 = (-a/2,b/2,0),  v3 = (0,0,c)
 -9          as 9, alternate description
      v1 = (a/2,-b/2,0),  v2 = (a/2, b/2,0),  v3 = (0,0,c)
 91          Orthorhombic one-face base-centered A-type
                                             celldm(2)=b/a
                                             celldm(3)=c/a
      v1 = (a, 0, 0),  v2 = (0,b/2,-c/2),  v3 = (0,b/2,c/2)

 10          Orthorhombic face-centered      celldm(2)=b/a
                                             celldm(3)=c/a
      v1 = (a/2,0,c/2),  v2 = (a/2,b/2,0),  v3 = (0,b/2,c/2)

 11          Orthorhombic body-centered      celldm(2)=b/a
                                             celldm(3)=c/a
      v1=(a/2,b/2,c/2),  v2=(-a/2,b/2,c/2),  v3=(-a/2,-b/2,c/2)

 12          Monoclinic P, unique axis c     celldm(2)=b/a
                                             celldm(3)=c/a,
                                             celldm(4)=cos(ab)
      v1=(a,0,0), v2=(b*cos(gamma),b*sin(gamma),0),  v3 = (0,0,c)
      where gamma is the angle between axis a and b.
-12          Monoclinic P, unique axis b     celldm(2)=b/a
                                             celldm(3)=c/a,
                                             celldm(5)=cos(ac)
      v1 = (a,0,0), v2 = (0,b,0), v3 = (c*cos(beta),0,c*sin(beta))
      where beta is the angle between axis a and c

 13          Monoclinic base-centered        celldm(2)=b/a
             (unique axis c)                 celldm(3)=c/a,
                                             celldm(4)=cos(gamma)
      v1 = (  a/2,         0,          -c/2),
      v2 = (b*cos(gamma), b*sin(gamma), 0  ),
      v3 = (  a/2,         0,           c/2),
      where gamma=angle between axis a and b projected on xy plane

-13          Monoclinic base-centered        celldm(2)=b/a
             (unique axis b)                 celldm(3)=c/a,
                                             celldm(5)=cos(beta)
      v1 = (  a/2,       b/2,             0),
      v2 = ( -a/2,       b/2,             0),
      v3 = (c*cos(beta),   0,   c*sin(beta)),
      where beta=angle between axis a and c projected on xz plane
 IMPORTANT NOTICE: until QE v.6.4.1, axis for ibrav=-13 had a
 different definition: v1(old) =-v2(now), v2(old) = v1(now)

 14          Triclinic                       celldm(2)= b/a,
                                             celldm(3)= c/a,
                                             celldm(4)= cos(bc),
                                             celldm(5)= cos(ac),
                                             celldm(6)= cos(ab)
      v1 = (a, 0, 0),
      v2 = (b*cos(gamma), b*sin(gamma), 0)
      v3 = (c*cos(beta),  c*(cos(alpha)-cos(beta)cos(gamma))/sin(gamma),
           c*sqrt( 1 + 2*cos(alpha)cos(beta)cos(gamma)
                     - cos(alpha)^2-cos(beta)^2-cos(gamma)^2 )/sin(gamma) )
      where alpha is the angle between axis b and c
             beta is the angle between axis a and c
            gamma is the angle between axis a and b
         

Either:

celldm(i), i=1,6 REAL
See: ibrav
Crystallographic constants - see the ibrav variable.
Specify either these OR A,B,C,cosAB,cosBC,cosAC NOT both.
Only needed values (depending on "ibrav") must be specified
alat = celldm(1) is the lattice parameter "a" (in BOHR)
If ibrav==0, only celldm(1) is used if present;
cell vectors are read from card CELL_PARAMETERS
            

Or:

A, B, C, cosAB, cosAC, cosBC REAL
See: ibrav
Traditional crystallographic constants:

  a,b,c in ANGSTROM
  cosAB = cosine of the angle between axis a and b (gamma)
  cosAC = cosine of the angle between axis a and c (beta)
  cosBC = cosine of the angle between axis b and c (alpha)

The axis are chosen according to the value of ibrav.
Specify either these OR celldm but NOT both.
Only needed values (depending on ibrav) must be specified.

The lattice parameter alat = A (in ANGSTROM ).

If ibrav == 0, only A is used if present, and
cell vectors are read from card CELL_PARAMETERS.
            
nat INTEGER
Status: REQUIRED
number of atoms in the unit cell (ALL atoms, except if
space_group is set, in which case, INEQUIVALENT atoms)
         
ntyp INTEGER
Status: REQUIRED
number of types of atoms in the unit cell
         
nbnd INTEGER
Default: for an insulator, nbnd = number of valence bands (nbnd = # of electrons /2);
for a metal, 20% more (minimum 4 more)
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
         
tot_charge REAL
Default: 0.0
Total charge of the system. Useful for simulations with charged cells.
By default the unit cell is assumed to be neutral (tot_charge=0).
tot_charge=+1 means one electron missing from the system,
tot_charge=-1 means one additional electron, and so on.

In a periodic calculation a compensating jellium background is
inserted to remove divergences if the cell is not neutral.
         
starting_charge(i), i=1,ntyp REAL
Default: 0.0
starting charge on atomic type 'i',
to create starting potential with startingpot = 'atomic'.
         
tot_magnetization REAL
Default: -10000 [unspecified]
Total majority spin charge - 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.
         
starting_magnetization(i), i=1,ntyp REAL
Default: 0
Starting spin polarization on atomic type 'i' 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 variable
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 1: starting_magnetization is ignored in most BUT NOT ALL
cases in non-scf calculations: it is safe to keep the same
values for the scf and subsequent non-scf calculation.

NOTE 2: If you fix the magnetization with
tot_magnetization, do not specify starting_magnetization.

NOTE 3: 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 (the internal variable domag is set to .FALSE.).
         
ecutwfc REAL
Status: REQUIRED
kinetic energy cutoff (Ry) for wavefunctions
         
ecutrho REAL
Default: 4 * ecutwfc
Kinetic energy cutoff (Ry) for charge density and potential
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*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.
         
ecutfock REAL
Default: ecutrho
Kinetic energy cutoff (Ry) 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 .gt. 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.
         
nr1, nr2, nr3 INTEGER
Three-dimensional FFT mesh (hard grid) for charge
density (and scf potential). If not specified
the grid is calculated based on the cutoff for
charge density (see also ecutrho)
Note: you must specify all three dimensions for this setting to
be used.
         
nr1s, nr2s, nr3s INTEGER
Three-dimensional mesh for wavefunction FFT and for the smooth
part of charge density ( smooth grid ).
Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )
Note: you must specify all three dimensions for this setting to
be used.
         
nosym LOGICAL
Default: .FALSE.
if (.TRUE.) symmetry is not used. Consequences:

- if a list of k points is provided in input, it is used
  "as is": symmetry-inequivalent k-points are not generated,
  and the charge density is not symmetrized;

- if a uniform (Monkhorst-Pack) k-point grid is provided in
  input, it is expanded to cover the entire Brillouin Zone,
  irrespective of the crystal symmetry.
  Time reversal symmetry is assumed so k and -k are considered
  as equivalent unless noinv=.true. is specified.

Do not use this option unless you know exactly what you want
and what you get. May be useful in the following cases:
- in low-symmetry large cells, if you cannot afford a k-point
  grid with the correct symmetry
- in MD simulations
- in calculations for isolated atoms
         
nosym_evc LOGICAL
Default: .FALSE.
if (.TRUE.) symmetry is not used, and k points are
forced to have the symmetry of the Bravais lattice;
an automatically generated Monkhorst-Pack grid will contain
all points of the grid over the entire Brillouin Zone,
plus the points rotated by the symmetries of the Bravais
lattice which were not in the original grid. The same
applies if a k-point list is provided in input instead
of a Monkhorst-Pack grid. Time reversal symmetry is assumed
so k and -k are equivalent unless noinv=.true. is specified.
This option differs from nosym because it forces k-points
in all cases to have the full symmetry of the Bravais lattice
(not all uniform grids have such property!)
         
noinv LOGICAL
Default: .FALSE.
if (.TRUE.) disable the usage of k => -k symmetry
(time reversal) in k-point generation
         
no_t_rev LOGICAL
Default: .FALSE.
if (.TRUE.) disable the usage of magnetic symmetry operations
that consist in a rotation + time reversal.
         
force_symmorphic LOGICAL
Default: .FALSE.
if (.TRUE.) force the symmetry group to be symmorphic by disabling
symmetry operations having an associated fractionary translation
         
use_all_frac LOGICAL
Default: .FALSE.
if (.FALSE.) force real-space FFT grids to be commensurate with
fractionary translations of non-symmorphic symmetry operations,
if present (e.g.: if a fractional translation (0,0,c/4) exists,
the FFT dimension along the c axis must be multiple of 4).
if (.TRUE.) do not impose any constraints to FFT grids, even in
the presence of non-symmorphic symmetry operations.
BEWARE: use_all_frac=.TRUE. may lead to wrong results for
hybrid functionals and phonon calculations. Both cases use
symmetrization in real space that works for non-symmorphic
operations only if the real-space FFT grids are commensurate.
         
occupations CHARACTER
 Available options are:
            
'smearing' :
gaussian smearing for metals;
see variables 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 card 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
            
'from_input' :
The occupation are read from input file,
card OCCUPATIONS. Option valid only for a
single k-point, requires nbnd to be set
in input. Occupations should be consistent
with the value of tot_charge.
            
one_atom_occupations LOGICAL
Default: .FALSE.
This flag is used for isolated atoms (nat=1) together with
occupations='from_input'. If it is .TRUE., the wavefunctions
are ordered as the atomic starting wavefunctions, independently
from their eigenvalue. The occupations indicate which atomic
states are filled.

The order of the states is written inside the UPF pseudopotential file.
In the scalar relativistic case:
S -> l=0, m=0
P -> l=1, z, x, y
D -> l=2, r^2-3z^2, xz, yz, xy, x^2-y^2

In the noncollinear magnetic case (with or without spin-orbit),
each group of states is doubled. For instance:
P -> l=1, z, x, y for spin up, l=1, z, x, y for spin down.
Up and down is relative to the direction of the starting
magnetization.

In the case with spin-orbit and time-reversal
(starting_magnetization=0.0) the atomic wavefunctions are
radial functions multiplied by spin-angle functions.
For instance:
P -> l=1, j=1/2, m_j=-1/2,1/2. l=1, j=3/2,
     m_j=-3/2, -1/2, 1/2, 3/2.

In the magnetic case with spin-orbit the atomic wavefunctions
can be forced to be spin-angle functions by setting
starting_spin_angle to .TRUE..
         
starting_spin_angle LOGICAL
Default: .FALSE.
In the spin-orbit case when domag=.TRUE., by default,
the starting wavefunctions are initialized as in scalar
relativistic noncollinear case without spin-orbit.

By setting starting_spin_angle=.TRUE. this behaviour can
be changed and the initial wavefunctions are radial
functions multiplied by spin-angle functions.

When domag=.FALSE. the initial wavefunctions are always
radial functions multiplied by spin-angle functions
independently from this flag.

When lspinorb is .FALSE. this flag is not used.
         
degauss REAL
Default: 0.D0 Ry
value of the gaussian spreading (Ry) for brillouin-zone
integration in metals.
         
smearing CHARACTER
Default: 'gaussian'
Available options are:
            
'gaussian', 'gauss' :
ordinary Gaussian spreading (Default)
            
'methfessel-paxton', 'm-p', 'mp' :
Methfessel-Paxton first-order spreading
(see PRB 40, 3616 (1989)).
            
'marzari-vanderbilt', 'cold', 'm-v', 'mv' :
Marzari-Vanderbilt-DeVita-Payne cold smearing
(see PRL 82, 3296 (1999))
            
'fermi-dirac', 'f-d', 'fd' :
smearing with Fermi-Dirac function
            
nspin INTEGER
Default: 1
nspin = 1 :  non-polarized calculation (default)

nspin = 2 :  spin-polarized calculation, LSDA
             (magnetization along z axis)

nspin = 4 :  spin-polarized calculation, noncollinear
             (magnetization in generic direction)
             DO NOT specify nspin in this case;
             specify noncolin=.TRUE. instead
         
noncolin LOGICAL
Default: .false.
if .true. the program will perform a noncollinear calculation.
         
ecfixed REAL
Default: 0.0
See: q2sigma
qcutz REAL
Default: 0.0
See: q2sigma
q2sigma REAL
Default: 0.1
ecfixed, qcutz, q2sigma:  parameters for modified functional to be
used in variable-cell molecular dynamics (or in stress calculation).
"ecfixed" is the value (in Rydberg) of the constant-cutoff;
"qcutz" and "q2sigma" are the height and the width (in Rydberg)
of the energy step for reciprocal vectors whose square modulus
is greater than "ecfixed". In the kinetic energy, G^2 is
replaced by G^2 + qcutz * (1 + erf ( (G^2 - ecfixed)/q2sigma) )
See: M. Bernasconi et al, J. Phys. Chem. Solids 56, 501 (1995),
doi:10.1016/0022-3697(94)00228-2
         
input_dft CHARACTER
Default: read from pseudopotential files
Exchange-correlation functional: eg 'PBE', 'BLYP' etc
See Modules/funct.f90 for allowed values.
Overrides the value read from pseudopotential files.
Use with care and if you know what you are doing!
         
ace LOGICAL
Default: true
Use Adaptively Compressed Exchange operator as in
Lin Lin, J. Chem. Theory Comput. 2016, 12, 2242--2249, doi:10.1021/acs.jctc.6b00092

Set to false to use standard Exchange (much slower)
         
exx_fraction REAL
Default: it depends on the specified functional
Fraction of EXX for hybrid functional calculations. In the case of
input_dft='PBE0', the default value is 0.25, while for input_dft='B3LYP'
the exx_fraction default value is 0.20.
         
screening_parameter REAL
Default: 0.106
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
         
exxdiv_treatment CHARACTER
Default: 'gygi-baldereschi'
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)
            
x_gamma_extrapolation LOGICAL
Default: .true.
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.
         
ecutvcut REAL
Default: 0.0 Ry
See: exxdiv_treatment
Reciprocal space cutoff for correcting Coulomb potential
divergencies at small q vectors.
         
nqx1, nqx2, nqx3 INTEGER
Three-dimensional mesh for q (k1-k2) sampling of
the Fock operator (EXX). Can be smaller than
the number of k-points.

Currently this defaults to the size of the k-point mesh used.
In QE =< 5.0.2 it defaulted to nqx1=nqx2=nqx3=1.
         
localization_thr REAL
Default: 0.0
Overlap threshold over which the exchange integral over a pair of localized orbitals
is included in the evaluation of EXX operator. Any value greater than 0.0 triggers
the SCDM localization and the evaluation on EXX using the localized orbitals.
Very small value of the threshold should yield the same result as the default EXX
evaluation
         
Hubbard_occ(ityp,i), (ityp,i) = (1,1) . . . (ntyp,3) REAL
Default: read from pseudopotentials
Hubbard occupations is the number of electrons in the
Hubbard manifold. By default they are initialized by
reading the occupations from pseudopotentials. If specified
from the input, then the values read from the pseudopotentials
will be overwritten.
The second index of the Hubbard_occ array corresponds to the
Hubbard manifold number. It is possible to specify up to
three Hubbard manifolds per Hubbard atom. However, if you want
to specify three manifolds then the second and the third manifolds
will be considered as one effective manifold (see Doc/Hubbard_input.pdf)
         
Hubbard_alpha(i), i=1,ntyp REAL
Default: 0.D0 for all species
Hubbard_alpha(i) is the perturbation (on atom i, in eV)
used to compute U (and V) with the linear-response method of
Cococcioni and de Gironcoli, PRB 71, 035105 (2005)
(only for lda_plus_u_kind=0 and 2).

Note: Hubbard U and V can be computed using the HP code
which is based on density-functional perturbation theory,
and it gives exactly the same result as the method of
Cococcioni and de Gironcoli.
         
Hubbard_beta(i), i=1,ntyp REAL
Default: 0.D0 for all species
Hubbard_beta(i) is the perturbation (on atom i, in eV)
used to compute J0 with the linear-response method of
Cococcioni and de Gironcoli, PRB 71, 035105 (2005)
(only for lda_plus_u_kind=0 and 2). See also
PRB 84, 115108 (2011).
         
starting_ns_eigenvalue(m,ispin,ityp), (m,ispin,ityp) = (1,1,1) . . . (2*lmax+1,nspin or npol,ntyp) REAL
Default: -1.d0 that means NOT SET
In the first iteration of an DFT+U run it overwrites
the m-th eigenvalue of the ns occupation matrix for the
ispin component of atomic species ityp.
For the noncollinear case, the ispin index runs up to npol=2
The value lmax  is given by the maximum angular momentum
number to which the Hubbard U is applied.
Leave unchanged eigenvalues that are not set.
This is useful to suggest the desired orbital occupations
when the default choice takes another path.
         
dmft LOGICAL
Default: .FALSE.
Status: Requires compilation with hdf5 support
If true, nscf calculation will exit in restart mode, scf calculation
will restart from there if DMFT updates are provided as hdf5 archive.
Scf calculation should be used only with electron_maxstep = 1.
K_POINTS have to be identical and given explicitly with nosym.
         
dmft_prefix CHARACTER
Default: prefix
prepended to hdf5 archive: dmft_prefix.h5

DMFT update should be provided in group/dataset as:
- dft_misc_input/band_window with dimension [1, number of k-points, 2 (real + complex)]
- dft_update/delta_N with dimension [number of k-points, number of correlated orbitals,
number of correlated orbitals, 2 (real + complex)]
         
ensemble_energies LOGICAL
Default: .false.
If ensemble_energies = .true., an ensemble of xc energies
is calculated non-selfconsistently for perturbed
exchange-enhancement factors and LDA vs. PBE correlation
ratios after each converged electronic ground state
calculation.

Ensemble energies can be analyzed with the 'bee' utility
included with libbeef.

Requires linking against libbeef.
input_dft must be set to a BEEF-type functional
(e.g. input_dft = 'BEEF-vdW')
         
edir INTEGER
The direction of the electric field or dipole correction is
parallel to the bg(:,edir) reciprocal lattice vector, so the
potential is constant in planes defined by FFT grid points;
edir = 1, 2 or 3. Used only if tefield is .TRUE.
         
emaxpos REAL
Default: 0.5D0
Position of the maximum of the saw-like potential along crystal
axis edir, within the  unit cell (see below), 0 < emaxpos < 1
Used only if tefield is .TRUE.
         
eopreg REAL
Default: 0.1D0
Zone in the unit cell where the saw-like potential decreases.
( see below, 0 < eopreg < 1 ). Used only if tefield is .TRUE.
         
eamp REAL
Default: 0.001 a.u.
Amplitude of the electric field, in ***Hartree*** a.u.;
1 a.u. = 51.4220632*10^10 V/m. Used only if tefield==.TRUE.
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.
         
angle1(i), i=1,ntyp REAL
The angle expressed in degrees between the initial
magnetization and the z-axis. For noncollinear calculations
only; index i runs over the atom types.
         
angle2(i), i=1,ntyp REAL
The angle expressed in degrees between the projection
of the initial magnetization on x-y plane and the x-axis.
For noncollinear calculations only.
         
lforcet LOGICAL
When starting a non collinear calculation using an existing density
file from a collinear lsda calculation assumes previous density points in
z direction and rotates it in the direction described by angle1 and
angle2 variables for atomic type 1
         
constrained_magnetization CHARACTER
Default: 'none'
See: lambda, fixed_magnetization
Used to perform constrained calculations in magnetic systems.
Currently available choices:
            
'none' :
no constraint
            
'total' :
total magnetization is constrained by
adding a penalty functional to the total energy:

LAMBDA * SUM_{i} ( magnetization(i) - fixed_magnetization(i) )**2

where the sum over i runs over the three components of
the magnetization. Lambda is a real number (see below).
Noncolinear case only. Use tot_magnetization for LSDA
            
'atomic' :
atomic magnetization are constrained to the defined
starting magnetization adding a penalty:

LAMBDA * SUM_{i,itype} ( magnetic_moment(i,itype) - mcons(i,itype) )**2

where i runs over the cartesian components (or just z
in the collinear case) and itype over the types (1-ntype).
mcons(:,:) array is defined from starting_magnetization,
(also from angle1, angle2 in the noncollinear case).
lambda is a real number
            
'total direction' :
the angle theta of the total magnetization
with the z axis (theta = fixed_magnetization(3))
is constrained:

LAMBDA * ( arccos(magnetization(3)/mag_tot) - theta )**2

where mag_tot is the modulus of the total magnetization.
            
'atomic direction' :
not all the components of the atomic
magnetic moment are constrained but only the cosine
of angle1, and the penalty functional is:

LAMBDA * SUM_{itype} ( mag_mom(3,itype)/mag_mom_tot - cos(angle1(ityp)) )**2
            
N.B.: symmetrization may prevent to reach the desired orientation
of the magnetization. Try not to start with very highly symmetric
configurations or use the nosym flag (only as a last remedy)
            
fixed_magnetization(i), i=1,3 REAL
Default: 0.d0
See: constrained_magnetization
total magnetization vector (x,y,z components) to be kept
fixed when constrained_magnetization=='total'
         
lambda REAL
Default: 1.d0
See: constrained_magnetization
parameter used for constrained_magnetization calculations
N.B.: if the scf calculation does not converge, try to reduce lambda
      to obtain convergence, then restart the run with a larger lambda
         
report INTEGER
Default: -1
determines when atomic magnetic moments are printed on output:
report = 0  never
report =-1  at the beginning of the scf and at convergence
report = N  as -1, plus every N scf iterations
         
lspinorb LOGICAL
if .TRUE. the noncollinear code can use a pseudopotential with
spin-orbit.
         
assume_isolated CHARACTER
Default: 'none'
Used to perform calculation assuming the system to be
isolated (a molecule or a cluster in a 3D supercell).

Currently available choices:
            
'none' :
(default): regular periodic calculation w/o any correction.
            
'makov-payne', 'm-p', 'mp' :
the Makov-Payne correction to the
total energy is computed. An estimate of the vacuum
level is also calculated so that eigenvalues can be
properly aligned. ONLY FOR CUBIC SYSTEMS (ibrav=1,2,3).
Theory: G.Makov, and M.C.Payne,
     "Periodic boundary conditions in ab initio
     calculations" , PRB 51, 4014 (1995).
            
'martyna-tuckerman', 'm-t', 'mt' :
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).

NB:
   - Two dimensional (xy plane) average charge density
     and electrostatic potentials are printed out to
     'prefix.esm1'.

   - Requires cell with a_3 lattice vector along z,
     normal to the xy plane, with the slab centered
     around z=0.

   - For bc2 with an electric field and bc3 boundary
     conditions, the inversion symmetry along z-direction
     is automatically eliminated.

   - In case of calculation='vc-relax', use
     cell_dofree='2Dxy' or other parameters so that
     c-vector along z-axis should not be moved.

See esm_bc, esm_efield, esm_w, esm_nfit.
            
'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).

NB:
   - The length of the unit-cell along the z direction should
     be larger than twice the thickness of the 2D material
     (including electrons). A reasonable estimate for a
     layer's thickness could be the interlayer distance in the
     corresponding layered bulk material. Otherwise,
     the atomic thickness + 10 bohr should be a safe estimate.
     There is also a lower limit of 20 bohr imposed by the cutoff
     radius used to read pseudopotentials (see read_pseudo.f90 in Modules).

   - As for ESM above, only in-plane stresses make sense and one
     should use cell_dofree= '2Dxy' in a vc-relax calculation.
            
esm_bc CHARACTER
Default: 'pbc'
See: assume_isolated
If assume_isolated = 'esm', determines the boundary
conditions used for either side of the slab.

Currently available choices:
            
'pbc' :
 (default): regular periodic calculation (no ESM).
            
'bc1' :
 Vacuum-slab-vacuum (open boundary conditions).
            
'bc2' :
Metal-slab-metal (dual electrode configuration).
See also esm_efield.
            
'bc3' :
 Vacuum-slab-metal
            
esm_w REAL
Default: 0.d0
See: assume_isolated
If assume_isolated = 'esm', determines the position offset
[in a.u.] of the start of the effective screening region,
measured relative to the cell edge. (ESM region begins at
z = +/- [L_z/2 + esm_w] ).
         
esm_efield REAL
Default: 0.d0
See: assume_isolated
If assume_isolated = 'esm' and esm_bc = 'bc2', gives the
magnitude of the electric field [Ry/a.u.] to be applied
between semi-infinite ESM electrodes.
         
esm_nfit INTEGER
Default: 4
See: assume_isolated
If assume_isolated = 'esm', gives the number of z-grid points
for the polynomial fit along the cell edge.
         
lgcscf LOGICAL
Default: .FALSE.
If .TRUE. perform a constant bias potential (constant-mu) calculation
with Grand-Canonical SCF. (JCP 146, 114104 (2017), R.Sundararaman, et al.)

NB:
- The total energy displayed in output includes the potentiostat
  contribution (-mu*N).
- assume_isolated = 'esm' and esm_bc = 'bc2' or 'bc3' must be set
  in SYSTEM namelist.
- ESM-RISM is also supported (assume_isolated = 'esm' and esm_bc = 'bc1'
  and trism = .TRUE.).
- mixing_mode has to be 'TF' or 'local-TF', also its default is 'TF.'
- The default of mixing_beta is 0.1 with ESM-RISM, 0.2 without ESM-RISM.
- The default of diago_thr_init is 1.D-5.
- diago_full_acc is always .TRUE. .
- diago_rmm_conv is always .TRUE. .
         
gcscf_mu REAL
Status: REQUIRED
The target Fermi energy (eV) of GC-SCF. One can start
with appropriate total charge of the system by giving tot_charge .
         
gcscf_conv_thr REAL
Default: 1.D-2
Convergence threshold of Fermi energy (eV) for GC-SCF.
         
gcscf_beta REAL
Default: 0.05D0
Mixing factor for GC-SCF.
Larger values are recommended,
if systems with small DOS on Fermi surface as graphite.
         
vdw_corr CHARACTER
Default: 'none'
See: london_s6, london_rcut, london_c6, london_rvdw, dftd3_version, dftd3_threebody, ts_vdw_econv_thr, ts_vdw_isolated, xdm_a1, xdm_a2
Type of Van der Waals correction. Allowed values:
            
'grimme-d2', 'Grimme-D2', 'DFT-D', 'dft-d' :
Semiempirical Grimme's DFT-D2. Optional variables:
london_s6, london_rcut, london_c6, london_rvdw
S. Grimme, J. Comp. Chem. 27, 1787 (2006), doi:10.1002/jcc.20495
V. Barone et al., J. Comp. Chem. 30, 934 (2009), doi:10.1002/jcc.21112
            
'grimme-d3', 'Grimme-D3', 'DFT-D3', 'dft-d3' :
Semiempirical Grimme's DFT-D3. Optional variables:
dftd3_version, dftd3_threebody
S. Grimme et al, J. Chem. Phys 132, 154104 (2010), doi:10.1063/1.3382344
            
'TS', 'ts', 'ts-vdw', 'ts-vdW', 'tkatchenko-scheffler' :
Tkatchenko-Scheffler dispersion corrections with first-principle derived
C6 coefficients.
Optional variables: ts_vdw_econv_thr, ts_vdw_isolated
See A. Tkatchenko and M. Scheffler, PRL 102, 073005 (2009).
            
'MBD', 'mbd', 'many-body-dispersion', 'mbd_vdw' :
Many-body dipersion (MBD) correction to long-range interactions.
Optional variables: ts_vdw_isolated
A. Ambrosetti, A. M. Reilly, R. A. DiStasio, A. Tkatchenko, J. Chem. Phys. 140
18A508 (2014).
            
'XDM', 'xdm' :
Exchange-hole dipole-moment model. Optional variables: xdm_a1, xdm_a2
A. D. Becke et al., J. Chem. Phys. 127, 154108 (2007), doi:10.1063/1.2795701
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 in input_dft
            
london LOGICAL
Default: .FALSE.
Status: OBSOLESCENT, same as vdw_corr='DFT-D'
london_s6 REAL
Default: 0.75
global scaling parameter for DFT-D. Default is good for PBE.
         
london_c6(i), i=1,ntyp REAL
Default: standard Grimme-D2 values
atomic C6 coefficient of each atom type

( if not specified default values from S. Grimme, J. Comp. Chem. 27, 1787 (2006),
  doi:10.1002/jcc.20495 are used; see file Modules/mm_dispersion.f90 )
         
london_rvdw(i), i=1,ntyp REAL
Default: standard Grimme-D2 values
atomic vdw radii of each atom type

( if not specified default values from S. Grimme, J. Comp. Chem. 27, 1787 (2006),
  doi:10.1002/jcc.20495 are used; see file Modules/mm_dispersion.f90 )
         
london_rcut REAL
Default: 200
cutoff radius (a.u.) for dispersion interactions
         
dftd3_version integer
Default: 3
Version of Grimme implementation of Grimme-D3:
            
dftd3_version = 2 :
Original Grimme-D2 parametrization
            
dftd3_version = 3 :
Grimme-D3 (zero damping)
            
dftd3_version = 4 :
Grimme-D3 (BJ damping)
            
dftd3_version = 5 :
Grimme-D3M (zero damping)
            
dftd3_version = 6 :
Grimme-D3M (BJ damping)
            
NOTE: not all functionals are parametrized.
            
dftd3_threebody LOGICAL
Default: TRUE
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=2, three-body contribution is always disabled.
         
ts_vdw_econv_thr REAL
Default: 1.D-6
Optional: controls the convergence of the vdW energy (and forces). The default value
is a safe choice, likely too safe, but you do not gain much in increasing it
         
ts_vdw_isolated LOGICAL
Default: .FALSE.
Optional: set it to .TRUE. when computing the Tkatchenko-Scheffler vdW energy or the
Many-Body dispersion (MBD) energy for an isolated (non-periodic) system.
         
xdm LOGICAL
Default: .FALSE.
Status: OBSOLESCENT, same as vdw_corr='xdm'
xdm_a1 REAL
Default: 0.6836
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 REAL
Default: 1.5045
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
         
space_group INTEGER
Default: 0
The number of the space group of the crystal, as given
in the International Tables of Crystallography A (ITA).
This allows to give in input only the inequivalent atomic
positions. The positions of all the symmetry equivalent atoms
are calculated by the code. Used only when the atomic positions
are of type crystal_sg. See also uniqueb,
origin_choice, rhombohedral
         
uniqueb LOGICAL
Default: .FALSE.
Used only for monoclinic lattices. If .TRUE. the b
unique ibrav (-12 or -13) are used, and symmetry
equivalent positions are chosen assuming that the
twofold axis or the mirror normal is parallel to the
b axis. If .FALSE. it is parallel to the c axis.
         
origin_choice INTEGER
Default: 1
Used only for space groups that in the ITA allow
the use of two different origins. origin_choice=1,
means the first origin, while origin_choice=2 is the
second origin.
         
rhombohedral LOGICAL
Default: .TRUE.
Used only for rhombohedral space groups.
When .TRUE. the coordinates of the inequivalent atoms are
given with respect to the rhombohedral axes, when .FALSE.
the coordinates of the inequivalent atoms are given with
respect to the hexagonal axes. They are converted internally
to the rhombohedral axes and ibrav=5 is used in both cases.
         

variables used only if gate = .TRUE.

zgate REAL
Default: 0.5
used only if gate = .TRUE.
Specifies the position of the charged plate which represents
the counter charge in doped systems (tot_charge .ne. 0).
In units of the unit cell length in z direction, zgate in ]0,1[
Details of the gate potential can be found in
T. Brumme, M. Calandra, F. Mauri; PRB 89, 245406 (2014).
            
relaxz LOGICAL
Default: .FALSE.
used only if gate = .TRUE.
Allows the relaxation of the system towards the charged plate.
Use carefully and utilize either a layer of fixed atoms or a
potential barrier (block=.TRUE.) to avoid the atoms moving to
the position of the plate or the dipole of the dipole
correction (dipfield=.TRUE.).
            
block LOGICAL
Default: .FALSE.
used only if gate = .TRUE.
Adds a potential barrier to the total potential seen by the
electrons to mimic a dielectric in field effect configuration
and/or to avoid electrons spilling into the vacuum region for
electron doping. Potential barrier is from block_1 to block_2 and
has a height of block_height.
If dipfield = .TRUE. then eopreg is used for a smooth increase and
decrease of the potential barrier.
            
block_1 REAL
Default: 0.45
used only if gate = .TRUE. and block = .TRUE.
lower beginning of the potential barrier, in units of the
unit cell size along z, block_1 in ]0,1[
            
block_2 REAL
Default: 0.55
used only if gate = .TRUE. and block = .TRUE.
upper beginning of the potential barrier, in units of the
unit cell size along z, block_2 in ]0,1[
            
block_height REAL
Default: 0.1
used only if gate = .TRUE. and block = .TRUE.
Height of the potential barrier in Rydberg.
            

Namelist: &ELECTRONS

electron_maxstep INTEGER
Default: 100
maximum number of iterations in a scf step
         
scf_must_converge LOGICAL
Default: .TRUE.
If .false. do not stop molecular dynamics or ionic relaxation
when electron_maxstep is reached. Use with care.
         
conv_thr REAL
Default: 1.D-6
Convergence threshold for selfconsistency:
   estimated energy error < conv_thr
(note that conv_thr is extensive, like the total energy).

For non-self-consistent calculations, conv_thr is used
to set the default value of the threshold (ethr) for
iterative diagonalization: see diago_thr_init
         
adaptive_thr LOGICAL
Default: .FALSE
If .TRUE. this turns on the use of an adaptive conv_thr for
the inner scf loops when using EXX.
         
conv_thr_init REAL
Default: 1.D-3
When adaptive_thr = .TRUE. this is the convergence threshold
used for the first scf cycle.
         
conv_thr_multi REAL
Default: 1.D-1
When adaptive_thr = .TRUE. the convergence threshold for
each scf cycle is given by:
max( conv_thr, conv_thr_multi * dexx )
         
mixing_mode CHARACTER
Default: 'plain'
 Available options are:
            
'plain' :
 charge density Broyden mixing
            
'TF' :
as above, with simple Thomas-Fermi screening
(for highly homogeneous systems)
            
'local-TF' :
as above, with local-density-dependent TF screening
(for highly inhomogeneous systems)
            
mixing_beta REAL
Default: 0.7D0
mixing factor for self-consistency
         
mixing_ndim INTEGER
Default: 8
number of iterations used in mixing scheme.
If you are tight with memory, you may reduce it to 4 or so.
         
mixing_fixed_ns INTEGER
Default: 0
For DFT+U : number of iterations with fixed ns ( ns is the
atomic density appearing in the Hubbard term ).
         
diagonalization CHARACTER
Default: 'david'
 Available options are:
            
'david' :
Davidson iterative diagonalization with overlap matrix
(default). Fast, may in some rare cases fail.
            
'cg' :
Conjugate-gradient-like band-by-band diagonalization.
MUCH slower than 'david' but uses less memory and is
(a little bit) more robust.
            
'ppcg' :
PPCG iterative diagonalization
            
'paro', '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 depending on the string used.
Other variables that can be used to tune the behavior of
RMM-DIIS are:  diago_rmm_ndim and diago_rmm_conv
            
diago_thr_init REAL
Convergence threshold (ethr) for iterative diagonalization
(the check is on eigenvalue convergence).

For scf calculations: default is 1.D-2 if starting from a
superposition of atomic orbitals; 1.D-5 if starting from a
charge density. During self consistency the threshold
is automatically reduced (but never below 1.D-13) when
approaching convergence.

For non-scf calculations: default is (conv_thr/N elec)/10.
         
diago_cg_maxiter INTEGER
For conjugate gradient diagonalization:  max number of iterations
         
diago_ppcg_maxiter INTEGER
For ppcg diagonalization:  max number of iterations
         
diago_david_ndim INTEGER
Default: 2
For Davidson diagonalization: dimension of workspace
(number of wavefunction packets, at least 2 needed).
A larger value may yield a smaller number of iterations in
the algorithm but uses more memory and more CPU time in
subspace diagonalization (cdiaghg/rdiaghg). You may try
diago_david_ndim=4 if you are not tight on memory
and if the time spent in subspace diagonalization is small
compared to the time spent in h_psi
         
diago_rmm_ndim INTEGER
Default: 4
For RMM-DIIS diagonalization: dimension of workspace
(number of wavefunction packets, at least 2 needed).
         
diago_rmm_conv LOGICAL
Default: .FALSE.
If .TRUE., RMM-DIIS is performed up to converge.
If .FALSE., RMM-DIIS is performed only once.
         
diago_gs_nblock INTEGER
Default: 16
For RMM-DIIS diagonalization:
blocking size of Gram-Schmidt orthogonalization
         
diago_full_acc LOGICAL
Default: .FALSE.
If .TRUE. all the empty states are diagonalized at the same level
of accuracy of the occupied ones. Otherwise the empty states are
diagonalized using a larger threshold (this should not affect
total energy, forces, and other ground-state properties).
         
efield REAL
Default: 0.D0
Amplitude of the finite electric field (in Ry a.u.;
1 a.u. = 36.3609*10^10 V/m). Used only if lelfield==.TRUE.
and if k-points (K_POINTS card) are not automatic.
         
efield_cart(i), i=1,3 REAL
Default: (0.D0, 0.D0, 0.D0)
Finite electric field (in Ry a.u.=36.3609*10^10 V/m) in
cartesian axis. Used only if lelfield==.TRUE. and if
k-points (K_POINTS card) are automatic.
         
efield_phase CHARACTER
Default: 'none'
 Available options are:
            
'read' :
set the zero of the electronic polarization (with lelfield==.true..)
to the result of a previous calculation
            
'write' :
write on disk data on electronic polarization to be read in another
calculation
            
'none' :
none of the above points
            
startingpot CHARACTER
 Available options are:
            
'atomic' :
starting potential from atomic charge superposition
(default for scf, *relax, *md)
            
'file' :
start from existing "charge-density.xml" file in the
directory specified by variables prefix and outdir
For nscf and bands calculation this is the default
and the only sensible possibility.
            
startingwfc CHARACTER
Default: 'atomic+random'
 Available options are:
            
'atomic' :
Start from superposition of atomic orbitals.
If not enough atomic orbitals are available,
fill with random numbers the remaining wfcs
The scf typically starts better with this option,
but in some high-symmetry cases one can "loose"
valence states, ending up in the wrong ground state.
            
'atomic+random' :
As above, plus a superimposed "randomization"
of atomic orbitals. Prevents the "loss" of states
mentioned above.
            
'random' :
Start from random wfcs. Slower start of scf but safe.
It may also reduce memory usage in conjunction with
diagonalization='cg'.
            
'file' :
Start from an existing wavefunction file in the
directory specified by variables prefix and outdir.
            
tqr LOGICAL
Default: .FALSE.
If .true., use a real-space algorithm for augmentation
charges of ultrasoft pseudopotentials and PAWsets.
Faster but numerically less accurate than the default
G-space algorithm. Use with care and after testing!
         
real_space LOGICAL
Default: .FALSE.
If .true., exploit real-space localization to compute
matrix elements for nonlocal projectors. Faster and in
principle better scaling than the default G-space algorithm,
but numerically less accurate, may lead to some loss of
translational invariance. Use with care and after testing!
         

Namelist: &IONS

REQUIRED if calculation == 'relax', 'md', 'vc-relax', or 'vc-md' OPTIONAL for calculation == 'scf' (only ion_positions is used)

ion_positions CHARACTER
Default: 'default'
 Available options are:
            
'default' :
if restarting, use atomic positions read from the
restart file; in all other cases, use atomic
positions from standard input.
            
'from_input' :
read atomic positions from standard input, even if restarting.
            
ion_velocities CHARACTER
Default: 'default'
Initial ionic velocities. Available options are:
            
'default' :
start a new simulation from random thermalized
distribution of velocities if tempw is set,
with zero velocities otherwise; restart from
atomic velocities read from the restart file
            
'from_input' :
start or continue the simulation with atomic
velocities read from standard input - see card
ATOMIC_VELOCITIES
            
ion_dynamics CHARACTER
Specify the type of ionic dynamics.

For different type of calculation different possibilities are
allowed and different default values apply:

CASE ( calculation == 'relax' )
            
'bfgs' :
(default)  use BFGS quasi-newton algorithm,
based on the trust radius procedure,
for structural relaxation
            
'damp' :
use damped (quick-min Verlet)
dynamics for structural relaxation
Can be used for constrained
optimisation: see CONSTRAINTS card
            
'fire' :
use the FIRE minimization algorithm employing the
semi-implicit Euler integration scheme
see:
   Bitzek et al.,PRL, 97, 170201, (2006), doi: 10.1103/PhysRevLett.97.170201
   Guenole et al.,CMS, 175, 109584, (2020), doi: 10.1016/j.commatsci.2020.109584

Can be used for constrained
optimisation: see CONSTRAINTS card
            
CASE ( calculation == 'md' )
            
'verlet' :
(default)  use Verlet algorithm to integrate
Newton's equation. For constrained
dynamics, see CONSTRAINTS card
            
'langevin' :
ion dynamics is over-damped Langevin
            
'langevin-smc' :
over-damped Langevin with Smart Monte Carlo:
see R.J. Rossky, JCP, 69, 4628 (1978), doi:10.1063/1.436415
            
CASE ( calculation == 'vc-relax' )
            
'bfgs' :
(default)  use BFGS quasi-newton algorithm;
cell_dynamics must be 'bfgs' too
            
'damp' :
use damped (Beeman) dynamics for
structural relaxation
            
CASE ( calculation == 'vc-md' )
            
'beeman' :
(default)  use Beeman algorithm to integrate
Newton's equation
            
pot_extrapolation CHARACTER
Default: 'atomic'
Used to extrapolate the potential from preceding ionic steps.
            
'none' :
 no extrapolation
            
'atomic' :
extrapolate the potential as if it was a sum of
atomic-like orbitals
            
'first_order' :
extrapolate the potential with first-order
formula
            
'second_order' :
as above, with second order formula
            
Note: 'first_order' and 'second-order' extrapolation make sense
only for molecular dynamics calculations
            
wfc_extrapolation CHARACTER
Default: 'none'
Used to extrapolate the wavefunctions from preceding ionic steps.
            
'none' :
 no extrapolation
            
'first_order' :
extrapolate the wave-functions with first-order formula.
            
'second_order' :
as above, with second order formula.
            
Note: 'first_order' and 'second-order' extrapolation make sense
only for molecular dynamics calculations
            
remove_rigid_rot LOGICAL
Default: .FALSE.
This keyword is useful when simulating the dynamics and/or the
thermodynamics of an isolated system. If set to true the total
torque of the internal forces is set to zero by adding new forces
that compensate the spurious interaction with the periodic
images. This allows for the use of smaller supercells.

BEWARE: since the potential energy is no longer consistent with
the forces (it still contains the spurious interaction with the
repeated images), the total energy is not conserved anymore.
However the dynamical and thermodynamical properties should be
in closer agreement with those of an isolated system.
Also the final energy of a structural relaxation will be higher,
but the relaxation itself should be faster.
         

variables used for molecular dynamics

ion_temperature CHARACTER
Default: 'not_controlled'
 Available options are:
               
'rescaling' :
control ionic temperature via velocity rescaling
(first method) see parameters tempw, tolp, and
nraise (for VC-MD only). This rescaling method
is the only one currently implemented in VC-MD
               
'rescale-v' :
control ionic temperature via velocity rescaling
(second method) see parameters tempw and nraise
               
'rescale-T' :
scale temperature of the thermostat every nraise steps
by delta_t, starting from tempw.
The temperature is controlled via velocitiy rescaling.
               
'reduce-T' :
reduce temperature of the thermostat every nraise steps
by the (negative) value delta_t, starting from tempw.
If  delta_t is positive, the target temperature is augmented.
The temperature is controlled via velocitiy rescaling.
               
'berendsen' :
control ionic temperature using "soft" velocity
rescaling - see parameters tempw and nraise
               
'andersen' :
control ionic temperature using Andersen thermostat
see parameters tempw and nraise
               
'svr' :
control ionic temperature using stochastic-velocity rescaling
(Donadio, Bussi, Parrinello, J. Chem. Phys. 126, 014101, 2007),
with parameters tempw and nraise.
               
'initial' :
initialize ion velocities to temperature tempw
and leave uncontrolled further on
               
'not_controlled' :
(default) ionic temperature is not controlled
               
tempw REAL
Default: 300.D0
Starting temperature (Kelvin) in MD runs
target temperature for most thermostats.
            
tolp REAL
Default: 100.D0
Tolerance for velocity rescaling. Velocities are rescaled if
the run-averaged and target temperature differ more than tolp.
            
delta_t REAL
Default: 1.D0
if ion_temperature == 'rescale-T' :
       at each step the instantaneous temperature is multiplied
       by delta_t; this is done rescaling all the velocities.

if ion_temperature == 'reduce-T' :
       every 'nraise' steps the instantaneous temperature is
       reduced by -delta_t (i.e. delta_t < 0 is added to T)

The instantaneous temperature is calculated at the end of
every ionic move and BEFORE rescaling. This is the temperature
reported in the main output.

For delta_t < 0, the actual average rate of heating or cooling
should be roughly C*delta_t/(nraise*dt) (C=1 for an
ideal gas, C=0.5 for a harmonic solid, theorem of energy
equipartition between all quadratic degrees of freedom).
            
nraise INTEGER
Default: 1
if ion_temperature == 'reduce-T' :
       every nraise steps the instantaneous temperature is
       reduced by -delta_t (i.e. delta_t is added to the temperature)

if ion_temperature == 'rescale-v' :
       every nraise steps the average temperature, computed from
       the last nraise steps, is rescaled to tempw

if ion_temperature == 'rescaling' and calculation == 'vc-md' :
       every nraise steps the instantaneous temperature
       is rescaled to tempw

if ion_temperature == 'berendsen' :
       the "rise time" parameter is given in units of the time step:
       tau = nraise*dt, so dt/tau = 1/nraise

if ion_temperature == 'andersen' :
       the "collision frequency" parameter is given as nu=1/tau
       defined above, so nu*dt = 1/nraise

if ion_temperature == 'svr' :
       the "characteristic time" of the thermostat is set to
       tau = nraise*dt
            
refold_pos LOGICAL
Default: .FALSE.
This keyword applies only in the case of molecular dynamics or
damped dynamics. If true the ions are refolded at each step into
the supercell.
            

keywords used only in BFGS calculations

upscale REAL
Default: 100.D0
Max reduction factor for conv_thr during structural optimization
conv_thr is automatically reduced when the relaxation
approaches convergence so that forces are still accurate,
but conv_thr will not be reduced to less that conv_thr / upscale.
            
bfgs_ndim INTEGER
Default: 1
Number of old forces and displacements vectors used in the
PULAY mixing of the residual vectors obtained on the basis
of the inverse hessian matrix given by the BFGS algorithm.
When bfgs_ndim = 1, the standard quasi-Newton BFGS method is
used.
(bfgs only)
            
trust_radius_max REAL
Default: 0.8D0
Maximum ionic displacement in the structural relaxation.
(bfgs only)
            
trust_radius_min REAL
Default: 1.D-3
Minimum ionic displacement in the structural relaxation
BFGS is reset when trust_radius < trust_radius_min.
(bfgs only)
            
trust_radius_ini REAL
Default: 0.5D0
Initial ionic displacement in the structural relaxation.
(bfgs only)
            
w_1 REAL
Default: 0.01D0
See: w_2
w_2 REAL
Default: 0.5D0
Parameters used in line search based on the Wolfe conditions.
(bfgs only)
            

keywords used only in the FIRE minimization algorithm

fire_alpha_init REAL
Default: 0.2D0
Initial value of the alpha mixing factor in the FIRE minimization scheme;
recommended values are between 0.1 and 0.3
            
fire_falpha REAL
Default: 0.99D0
Scaling of the alpha mixing parameter for steps with P > 0;
            
fire_nmin INTEGER
Default: 5
Minimum number of steps with P > 0 before increase of dt
            
fire_f_inc REAL
Default: 1.1D0
Factor for increasing dt
            
fire_f_dec REAL
Default: 0.5D0
Factor for decreasing dt
            
fire_dtmax REAL
Default: 10.D0
Determines the maximum value of dt in the FIRE minimization;
dtmax = fire_dtmax*dt
            

Namelist: &CELL

input this namelist only if calculation == 'vc-relax' or 'vc-md'

cell_dynamics CHARACTER
Specify the type of dynamics for the cell.
For different type of calculation different possibilities
are allowed and different default values apply:

CASE ( calculation == 'vc-relax' )
            
'none' :
 no dynamics
            
'sd' :
 steepest descent ( not implemented )
            
'damp-pr' :
damped (Beeman) dynamics of the Parrinello-Rahman extended lagrangian
            
'damp-w' :
damped (Beeman) dynamics of the new Wentzcovitch extended lagrangian
            
'bfgs' :
BFGS quasi-newton algorithm (default)
ion_dynamics must be 'bfgs' too
            
CASE ( calculation == 'vc-md' )
            
'none' :
 no dynamics
            
'pr' :
(Beeman) molecular dynamics of the Parrinello-Rahman extended lagrangian
            
'w' :
(Beeman) molecular dynamics of the new Wentzcovitch extended lagrangian
            
press REAL
Default: 0.D0
Target pressure [KBar] in a variable-cell md or relaxation run.
         
wmass REAL
Default: 0.75*Tot_Mass/pi**2 for Parrinello-Rahman MD; 0.75*Tot_Mass/pi**2/Omega**(2/3) for Wentzcovitch MD
Fictitious cell mass [amu] for variable-cell simulations
(both 'vc-md' and 'vc-relax')
         
cell_factor REAL
Default: 2.0 for variable-cell calculations, 1.0 otherwise
Used in the construction of the pseudopotential tables.
It should exceed the maximum linear contraction of the
cell during a simulation.
         
press_conv_thr REAL
Default: 0.5D0 Kbar
Convergence threshold on the pressure for variable cell
relaxation ('vc-relax' : note that the other convergence
            thresholds for ionic relaxation apply as well).
         
cell_dofree CHARACTER
Default: 'all'
Select which of the cell parameters should be moved:
            
'all' :
 all axis and angles are moved
            
'ibrav' :
all axis and angles are moved,
               but the lattice remains consistent
               with the initial ibrav choice. You can use this option in combination
               with any other one by specifying "ibrav+option". Please note that some
               combinations do not make sense for some crystals and will guarantee that
               the relax will never converge. E.g. 'ibrav+2Dxy' is not a problem for
               hexagonal cells, but will never converge for cubic ones.
            
'a' :
 the x component of axis 1 (v1_x) is fixed
            
'b' :
 the y component of axis 2 (v2_y) is fixed
            
'c' :
 the z component of axis 3 (v3_z) is fixed
            
'fixa' :
 axis 1 (v1_x,v1_y,v1_z) is fixed
            
'fixb' :
 axis 2 (v2_x,v2_y,v2_z) is fixed
            
'fixc' :
 axis 3 (v3_x,v3_y,v3_z) is fixed
            
'x' :
 only the x component of axis 1 (v1_x) is moved
            
'y' :
 only the y component of axis 2 (v2_y) is moved
            
'z' :
 only the z component of axis 3 (v3_z) is moved
            
'xy' :
 only v1_x and v2_y are moved
            
'xz' :
 only v1_x and v3_z are moved
            
'yz' :
 only v2_y and v3_z are moved
            
'xyz' :
 only v1_x, v2_y, v3_z are moved
            
'shape' :
 all axis and angles, keeping the volume fixed
            
'volume' :
 the volume changes, keeping all angles fixed (i.e. only celldm(1) changes)
            
'2Dxy' :
 only x and y components are allowed to change
            
'2Dshape' :
 as above, keeping the area in xy plane fixed
            
'epitaxial_ab' :
 fix axis 1 and 2 while allowing axis 3 to move
            
'epitaxial_ac' :
 fix axis 1 and 3 while allowing axis 2 to move
            
'epitaxial_bc' :
 fix axis 2 and 3 while allowing axis 1 to move
            
BEWARE: if axis are not orthogonal, some of these options do not
        work (symmetry is broken). If you are not happy with them,
        edit subroutine init_dofree in file Modules/cell_base.f90
            

Namelist: &FCP

Input this namelist only if lfcp = .TRUE.

fcp_mu REAL
Status: REQUIRED
The target Fermi energy (eV). One can start
with appropriate total charge of the system by giving tot_charge .
         
fcp_dynamics CHARACTER
Specify the type of dynamics for the Fictitious Charge Particle (FCP).

For different type of calculation different possibilities
are allowed and different default values apply:

CASE ( calculation == 'relax' )
            
'bfgs' :
(default) BFGS quasi-newton algorithm, coupling with ions relaxation
ion_dynamics must be 'bfgs' too
            
'newton' :
Newton-Raphson algorithm with DIIS
ion_dynamics must be 'damp' too
            
'damp' :
damped (quick-min Verlet) dynamics for FCP relaxation
ion_dynamics must be 'damp' too
            
'lm' :
Line-Minimization algorithm for FCP relaxation
ion_dynamics must be 'damp' too
            
CASE ( calculation == 'md' )
            
'velocity-verlet' :
(default) Velocity-Verlet algorithm to integrate Newton's equation.
ion_dynamics must be 'verlet' too
            
'verlet' :
Verlet algorithm to integrate Newton's equation.
ion_dynamics must be 'verlet' too
            
fcp_conv_thr REAL
Default: 1.D-2
Convergence threshold on force (eV) for FCP relaxation.
         
fcp_ndiis INTEGER
Default: 4
Size of DIIS for FCP relaxation,
used only if fcp_dynamics = 'newton'.
         

Variables used for FCP dynamics.

fcp_mass REAL
Default: 5.D+6 / (xy area) for ESM only; 5.D+4 / (xy area) for ESM-RISM
Mass of the FCP.
            
fcp_velocity REAL
Default: determined by fcp_temperature
Initial velocity of the FCP.
            
fcp_temperature CHARACTER
Default: ion_temperature
 Available options are:
               
'rescaling' :
control FCP's temperature via velocity rescaling
(first method) see parameters fpc_tempw and fcp_tolp.
               
'rescale-v' :
control FCP's temperature via velocity rescaling
(second method) see parameters fcp_tempw and fcp_nraise
               
'rescale-T' :
control FCP's temperature via velocity rescaling
(third method) see parameter fcp_delta_t
               
'reduce-T' :
reduce FCP's temperature every fcp_nraise steps
by the (negative) value fcp_delta_t
               
'berendsen' :
control FCP's temperature using "soft" velocity
rescaling - see parameters fcp_tempw and fcp_nraise
               
'andersen' :
control FCP's temperature using Andersen thermostat
see parameters fcp_tempw and fcp_nraise
               
'initial' :
initialize FCP's velocities to temperature fcp_tempw
and leave uncontrolled further on
               
'not_controlled' :
(default) FCP's temperature is not controlled
               
fcp_tempw REAL
Default: tempw
Starting temperature (Kelvin) in FCP dynamics runs
target temperature for most thermostats.
            
fcp_tolp REAL
Default: tolp
Tolerance for velocity rescaling. Velocities are rescaled if
the run-averaged and target temperature differ more than tolp.
            
fcp_delta_t REAL
Default: delta_t
if fcp_temperature == 'rescale-T' :
       at each step the instantaneous temperature is multiplied
       by fcp_delta_t; this is done rescaling all the velocities.

if fcp_temperature == 'reduce-T' :
       every fcp_nraise steps the instantaneous temperature is
       reduced by -fcp_delta_t (i.e. fcp_delta_t < 0 is added to T)

The instantaneous temperature is calculated at the end of
FCP's move and BEFORE rescaling. This is the temperature
reported in the main output.

For fcp_delta_t < 0, the actual average rate of heating or cooling
should be roughly C*fcp_delta_t/(fcp_nraise*dt) (C=1 for an
ideal gas, C=0.5 for a harmonic solid, theorem of energy
equipartition between all quadratic degrees of freedom).
            
fcp_nraise INTEGER
Default: nraise
if fcp_temperature == 'reduce-T' :
       every fcp_nraise steps the instantaneous temperature is
       reduced by -fcp_delta_t (i.e. fcp_delta_t is added to the temperature)

if fcp_temperature == 'rescale-v' :
       every fcp_nraise steps the average temperature, computed from
       the last fcp_nraise steps, is rescaled to fcp_tempw

if fcp_temperature == 'berendsen' :
       the "rise time" parameter is given in units of the time step:
       tau = fcp_nraise*dt, so dt/tau = 1/fcp_nraise

if fcp_temperature == 'andersen' :
       the "collision frequency" parameter is given as nu=1/tau
       defined above, so nu*dt = 1/fcp_nraise
            
freeze_all_atoms LOGICAL
Default: .FALSE.
If .TRUE., freeze all atoms
to perform relaxation or dynamics only with FCP.
         

Namelist: &RISM

Input this namelist only if trism = .TRUE.

nsolv INTEGER
Status: REQUIRED
The number of solvents (i.e. molecular species) in the unit cell
         
closure CHARACTER
Default: 'kh'
Specify the type of closure equation:
            
'kh' :
The Kovalenko and Hirata's model.
[A.Kovalenko, F.Hirata, JCP 110, 10095 (1999), doi:10.1063/1.478883]
            
'hnc' :
The HyperNetted-Chain model, which is
suitable only for solvents without charge.
[J.P.Hansen et al., Theory of simple liquids. Academic Press, London, 1990]
            
tempv REAL
Default: 300.D0
Temperature (Kelvin) of solvents.
         
ecutsolv REAL
Default: 4 * ecutwfc
Kinetic energy cutoff (Ry) for solvent's correlation functions.
If a solute is an isolated system or slab, you may allowed to
use default value. For a frameworked or porous solute (e.g. Zeolite, MOF),
it is desirable to apply a larger value. Solvents confined in a framework
often have a high frequency.
         
solute_lj(i), i=1,ntyp CHARACTER
Default: 'uff'
Specify the Lennard-Jones potential of solute on atomic type 'i':
            
'none' :
The Lennard-Jones potential is not specified here.
you must set solute_epsilon and solute_sigma.
            
'uff' :
Universal Force Field.
[A.K.Rappe et al., JACS 144, 10024 (1992), doi:10.1021/ja00051a040]
            
'clayff' :
Clay's Force Field
[R.T.Cygan et al., JPC B 108, 1255 (2004), doi:10.1021/jp0363287]
            
'opls-aa' :
OPLS-AA (generic parameters for QM/MM)
            
solute_epsilon(i), i=1,ntyp REAL
The Lennard-Jones potential of solute on atomic type 'i'.
Here, you can set the parameter 'epsilon' (kcal/mol).
         
solute_sigma(i), i=1,ntyp REAL
The Lennard-Jones potential of solute on atomic type 'i'.
Here, you can set the parameter 'sigma' (Angstrom).
         
starting1d CHARACTER
'zero' :
Starting correlation functions of 1D-RISM from zero.
( default for scf, *relax, *md )
            
'file' :
Start from existing "1d-rism_csvv_r.xml" file in the
directory specified by variables "prefix" and "outdir".
            
'fix' :
Read from existing "1d-rism_csvv_r.xml" file in the
directory specified by variables "prefix" and "outdir",
and never calculate 1D-RISM.
For nscf and bands calculation this is the default.
            
starting3d CHARACTER
'zero' :
Starting correlation functions of 3D-RISM from zero.
( default for scf, *relax, *md )
            
'file' :
Start from existing "3d-rism_csuv_r.dat" file in the
directory specified by variables "prefix" and "outdir".
For nscf and bands calculation this is the default.
            
smear1d REAL
Default: 2.D0
Coulomb smearing radius (a.u.) for 1D-RISM.
         
smear3d REAL
Default: 2.D0
Coulomb smearing radius (a.u.) for 3D-RISM.
         
rism1d_maxstep INTEGER
Default: 50000
Maximum number of iterations in a 1D-RISM step.
         
rism3d_maxstep INTEGER
Default: 5000
Maximum number of iterations in a 3D-RISM step.
         
rism1d_conv_thr REAL
Default: 1.D-8
Convergence threshold for 1D-RISM.
         
rism3d_conv_thr REAL
Default: 1.D-5 if lgcscf == .FALSE.; 5.D-6 if lgcscf == .TRUE.
Convergence threshold for 3D-RISM.
         
mdiis1d_size INTEGER
Default: 20
Size of Modified DIIS (MDIIS) for 1D-RISM.
         
mdiis3d_size INTEGER
Default: 10
Size of Modified DIIS (MDIIS) for 3D-RISM.
         
mdiis1d_step REAL
Default: 0.5D0
Step of Modified DIIS (MDIIS) for 1D-RISM.
         
mdiis3d_step REAL
Default: 0.8D0
Step of Modified DIIS (MDIIS) for 3D-RISM.
         
rism1d_bond_width REAL
Gaussian width of bonds to smear intra-molecular correlation for 1D-RISM.
If 3D-RISM calculation, default is 0.
If Laue-RISM calculation, default is 2 / SQRT(ecutwfc).
         
rism1d_dielectric REAL
Default: -1.0D0
Dielectric constant for 1D-RISM.
If rism1d_dielectric > 0, dielectrically consistent RISM (DRISM) is performed.

For details of DRISM, see:
J.S.Perkyns and B.M.Pettitt, CPL 1992, 190, 626, doi:10.1016/0009-2614(92)85201-K
         
rism1d_molesize REAL
Default: 2.0D0
Size of solvent molecules (a.u.) for 1D-RISM.
This is used only if rism1d_dielectric > 0.
If you have large molecules, you have to set ~ 20 a.u. .
         
rism1d_nproc INTEGER
Default: 128
Number of processes to calculate 1D-RISM.
         
rism3d_conv_level REAL
Default: 0.1 if laue_both_hands == .FALSE. .AND. lgcscf == .FALSE.; 0.3 if laue_both_hands == .FALSE. .AND. lgcscf == .TRUE.; 0.5 if laue_both_hands == .TRUE.
Convergence level of 3D-RISM.
            
0.0 :
Convergence level is 'low'.
Convergence threshold of 3D-RISM is greater than
rism3d_conv_thr, when estimated energy error >> conv_thr .
The threshold becomes rism3d_conv_thr, when
estimated energy error is enough small.
            
0.0<x<1.0 :
Convergence level is 'medium'.
Convergence threshold of 3D-RISM is intermediate value
between 'low' and 'high', where rism3d_conv_level is mixing rate.
            
1.0 :
Convergence level is 'high'.
Convergence threshold of 3D-RISM is always rism3d_conv_thr .
            
rism3d_planar_average LOGICAL
If .TRUE., planar averages of solvent densities and potentials
are calculated and written to 'prefix.rism1'.
For 3D-RISM, default is .FALSE.
For Laue-RISM, default is .TRUE.
         
laue_nfit INTEGER
Default: 4
The number of z-grid points for the polynomial fit along the cell edge.
This is only for Laue-RISM.
         
laue_expand_right REAL
Default: -1.0
If positive value, set the ending position offset [in a.u.]
of the solvent region on right-hand side of the unit cell,
measured relative to the unit cell edge.
(the solvent region ends at z = + [L_z/2 + laue_expand_right].)
This is only for Laue-RISM.
         
laue_expand_left REAL
Default: -1.0
If positive value, set the ending position offset [in a.u.]
of the solvent region on left-hand side of the unit cell,
measured relative to the unit cell edge.
(the solvent region ends at z = - [L_z/2 + laue_expand_left].)
This is only for Laue-RISM.
         
laue_starting_right REAL
Default: 0.0
Set the starting position [in a.u.] of the solvent region
on right-hand side of the unit cell. Then the solvent region is
defined as [ laue_starting_right , L_z/2 + laue_expand_right ],
where distribution functions are finite.
This is only for Laue-RISM.
         
laue_starting_left REAL
Default: 0.0
Set the starting position [in a.u.] of the solvent region
on left-hand side of the unit cell. Then the solvent region is
defined as [ -L_z/2 - laue_expand_left , laue_starting_left ],
where distribution functions are finite.
This is only for Laue-RISM.
         
laue_buffer_right REAL
Default: 8.0 if laue_expand_right > 0.0; -1.0 if laue_expand_right <= 0.0
If positive value, set the buffering length [in a.u.]
of the solvent region on right-hand side of the unit cell.
Then correlation functions are defined inside of
[ laue_starting_right - laue_buffer_right , L_z/2 + laue_expand_right ].
This is only for Laue-RISM.
         
laue_buffer_left REAL
Default: 8.0 if laue_expand_left > 0.0; -1.0 if laue_expand_left <= 0.0
If positive value, set the buffering length [in a.u.]
of the solvent region on left-hand side of the unit cell.
Then correlation functions are defined inside of
[ -L_z/2 - laue_expand_left , laue_starting_left + laue_buffer_left ].
This is only for Laue-RISM.
         
laue_both_hands LOGICAL
Default: .FALSE.
If .TRUE., you can set different densities
to the solvent regions of right-hand side and left-hand side.
See SOLVENTS card.
         
laue_wall CHARACTER
Default: 'auto'
Set the repulsive wall with (1/r)^12 term of Lennard-Jones potential.
This is only for Laue-RISM.
            
'none' :
The repulsive wall is not defined.
            
'auto' :
The repulsive wall is defined, whose edge position is set automatically.
One does not have to set laue_wall_z (the edge position).
            
'manual' :
The repulsive wall is defined, whose edge position is set manually.
One have to set laue_wall_z (the edge position).
            
laue_wall_z REAL
Default: 0.0
Set the edge position [in a.u.] of the repulsive wall.
If laue_expand_right > 0.0, the repulsive wall is defined on [ -inf , laue_wall_z ].
If laue_expand_left > 0.0, the repulsive wall is defined on [ laue_wall_z , inf ].
This is only for Laue-RISM and laue_wall == 'manual' .
         
laue_wall_rho REAL
Default: 0.01
The density (1/bohr^3) of the repulsive wall.
This is only for Laue-RISM and laue_wall /= 'none' .
         
laue_wall_epsilon REAL
Default: 0.1
The Lennard-Jones potential of the repulsive wall.
Here, you can set the parameter 'epsilon' (kcal/mol).
This is only for Laue-RISM and laue_wall /= 'none' .
         
laue_wall_sigma REAL
Default: 4.0
The Lennard-Jones potential of the repulsive wall.
Here, you can set the parameter 'sigma' (Angstrom).
This is only for Laue-RISM and laue_wall /= 'none' .
         
laue_wall_lj6 LOGICAL
Default: .FALSE.
If .TRUE., the attractive term -(1/r)^6 of Lennard-Jones potential is added.
This is only for Laue-RISM and laue_wall /= 'none' .
         

Card: ATOMIC_SPECIES

Syntax:

ATOMIC_SPECIES

Description of items:

X CHARACTER
label of the atom. Acceptable syntax:
chemical symbol X (1 or 2 characters, case-insensitive)
or chemical symbol plus a number or a letter, as in
"Xn" (e.g. Fe1) or "X_*" or "X-*" (e.g. C1, C_h;
max total length cannot exceed 3 characters)
                  
Mass_X REAL
mass of the atomic species [amu: mass of C = 12]
Used only when performing Molecular Dynamics run
or structural optimization runs using Damped MD.
Not actually used in all other cases (but stored
in data files, so phonon calculations will use
these values unless other values are provided)
                  
PseudoPot_X CHARACTER
File containing PP for this species.

The pseudopotential file is assumed to be in the new UPF format.
If it doesn't work, the pseudopotential format is determined by
the file name:

*.vdb or *.van     Vanderbilt US pseudopotential code
*.RRKJ3            Andrea Dal Corso's code (old format)
none of the above  old PWscf norm-conserving format
                  

Card: ATOMIC_POSITIONS { alat | bohr | angstrom | crystal | crystal_sg }

IF calculation == 'bands' OR calculation == 'nscf' :

Specified atomic positions will be IGNORED and those from the
previous scf calculation will be used instead !!!
            

ELSE

Syntax:

ATOMIC_POSITIONS { alat | bohr | angstrom | crystal | crystal_sg }
 X(1)   x(1)   y(1)   z(1)  {  if_pos(1)(1)   if_pos(2)(1)   if_pos(3)(1)  }
 X(2)   x(2)   y(2)   z(2)  {  if_pos(1)(2)   if_pos(2)(2)   if_pos(3)(2)  }
 . . .
 X(nat)   x(nat)   y(nat)   z(nat)  {  if_pos(1)(nat)   if_pos(2)(nat)   if_pos(3)(nat)  }

Description of items:

Card's options: alat | bohr | angstrom | crystal | crystal_sg
Default: (DEPRECATED) alat
Units for ATOMIC_POSITIONS:
            
alat :
atomic positions are in cartesian coordinates, in
units of the lattice parameter (either celldm(1)
or A). If no option is specified, 'alat' is assumed;
not specifying units is DEPRECATED and will no
longer be allowed in the future
            
bohr :
atomic positions are in cartesian coordinate,
in atomic units (i.e. Bohr radii)
            
angstrom :
atomic positions are in cartesian coordinates, in Angstrom
            
crystal :
atomic positions are in crystal coordinates, i.e.
in relative coordinates of the primitive lattice
vectors as defined either in card CELL_PARAMETERS
or via the ibrav + celldm / a,b,c... variables
            
crystal_sg :
atomic positions are in crystal coordinates, i.e.
in relative coordinates of the primitive lattice.
This option differs from the previous one because
in this case only the symmetry inequivalent atoms
are given. The variable space_group must indicate
the space group number used to find the symmetry
equivalent atoms. The other variables that control
this option are uniqueb, origin_choice, and
rhombohedral.
            
X CHARACTER
 label of the atom as specified in ATOMIC_SPECIES
                        
x, y, z REAL
atomic positions

NOTE: each atomic coordinate can also be specified as a simple algebraic expression.
      To be interpreted correctly expression must NOT contain any blank
      space and must NOT start with a "+" sign. The available expressions are:

        + (plus), - (minus), / (division), * (multiplication), ^ (power)

      All numerical constants included are considered as double-precision numbers;
      i.e. 1/2 is 0.5, not zero. Other functions, such as sin, sqrt or exp are
      not available, although sqrt can be replaced with ^(1/2).

      Example:
            C  1/3   1/2*3^(-1/2)   0

      is equivalent to

            C  0.333333  0.288675  0.000000

      Please note that this feature is NOT supported by XCrysDen (which will
      display a wrong structure, or nothing at all).

      When atomic positions are of type crystal_sg coordinates can be given
      in the following four forms (Wyckoff positions):
         C  1a
         C  8g   x
         C  24m  x y
         C  48n  x y z
      The first form must be used when the Wyckoff letter determines uniquely
      all three coordinates, forms 2,3,4 when the Wyckoff letter and 1,2,3
      coordinates respectively are needed.

      The forms:
         C 8g  x  x  x
         C 24m x  x  y
      are not allowed, but
         C x x x
         C x x y
         C x y z
      are correct.
                        
if_pos(1), if_pos(2), if_pos(3) INTEGER
Default: 1
component i of the force for this atom is multiplied by if_pos(i),
which must be either 0 or 1.  Used to keep selected atoms and/or
selected components fixed in MD dynamics or
structural optimization run.

With crystal_sg atomic coordinates the constraints are copied in all equivalent
atoms.
                           

Card: K_POINTS { tpiba | automatic | crystal | gamma | tpiba_b | crystal_b | tpiba_c | crystal_c }

IF tpiba OR crystal OR tpiba_b OR crystal_b OR tpiba_c OR crystal_c :

Syntax:

K_POINTS tpiba | crystal | tpiba_b | crystal_b | tpiba_c | crystal_c
nks  
 xk_x(1)   xk_y(1)   xk_z(1)   wk(1) 
 xk_x(2)   xk_y(2)   xk_z(2)   wk(2) 
 . . .
 xk_x(nks)   xk_y(nks)   xk_z(nks)   wk(nks) 
ELSEIF automatic :

Syntax:

K_POINTS automatic
nk1  nk2  nk3  sk1  sk2  sk3  
ELSEIF gamma :

Syntax:

K_POINTS gamma

Description of items:

Card's options: tpiba | automatic | crystal | gamma | tpiba_b | crystal_b | tpiba_c | crystal_c
Default: tbipa
K_POINTS options are:
            
tpiba :
read k-points in cartesian coordinates,
in units of 2 pi/a (default)
            
automatic :
automatically generated uniform grid of k-points, i.e,
generates ( nk1, nk2, nk3 ) grid with ( sk1, sk2, sk3 ) offset.
nk1, nk2, nk3 as in Monkhorst-Pack grids
k1, k2, k3 must be 0 ( no offset ) or 1 ( grid displaced
by half a grid step in the corresponding direction )
BEWARE: only grids having the full symmetry of the crystal
        work with tetrahedra. Some grids with offset may not work.
            
crystal :
read k-points in crystal coordinates, i.e. in relative
coordinates of the reciprocal lattice vectors
            
gamma :
use k = 0 (no need to list k-point specifications after card)
In this case wavefunctions can be chosen as real,
and specialized subroutines optimized for calculations
at the gamma point are used (memory and cpu requirements
are reduced by approximately one half).
            
tpiba_b :
Used for band-structure plots.
See Doc/brillouin_zones.pdf for usage of BZ labels;
otherwise, k-points are in units of  2 pi/a.
nks points specify nks-1 lines in reciprocal space.
Every couple of points identifies the initial and
final point of a line. pw.x generates N intermediate
points of the line where N is the weight of the first point.
            
crystal_b :
As tpiba_b, but k-points are in crystal coordinates.
See Doc/brillouin_zones.pdf for usage of BZ labels.
            
tpiba_c :
Used for band-structure contour plots.
k-points are in units of  2 pi/a. nks must be 3.
3 k-points k_0, k_1, and k_2 specify a rectangle
in reciprocal space of vertices k_0, k_1, k_2,
k_1 + k_2 - k_0: k_0 + \alpha (k_1-k_0)+
\beta (k_2-k_0) with 0 <\alpha,\beta < 1.
The code produces a uniform mesh n1 x n2
k points in this rectangle. n1 and n2 are
the weights of k_1 and k_2. The weight of k_0
is not used.
            
crystal_c :
As tpiba_c, but k-points are in crystal coordinates.
            
nks INTEGER
 Number of supplied special k-points.
                     
xk_x, xk_y, xk_z, wk REAL
Special k-points (xk_x/y/z) in the irreducible Brillouin Zone
(IBZ) of the lattice (with all symmetries) and weights (wk)
See the literature for lists of special points and
the corresponding weights.

If the symmetry is lower than the full symmetry
of the lattice, additional points with appropriate
weights are generated. Notice that such procedure
assumes that ONLY k-points in the IBZ are provided in input

In a non-scf calculation, weights do not affect the results.
If you just need eigenvalues and eigenvectors (for instance,
for a band-structure plot), weights can be set to any value
(for instance all equal to 1).
                        
nk1, nk2, nk3 INTEGER
These parameters specify the k-point grid
(nk1 x nk2 x nk3) as in Monkhorst-Pack grids.
                     
sk1, sk2, sk3 INTEGER
The grid offsets;  sk1, sk2, sk3 must be
0 ( no offset ) or 1 ( grid displaced by
half a grid step in the corresponding direction ).
                     

Card: ADDITIONAL_K_POINTS { tpiba | crystal | tpiba_b | crystal_b | tpiba_c | crystal_c }

Optional card. Adds a list of k-points with zero weight, after those used for
the scf calculation. When doing an EXX calculation and nq1x, nq2x or nq3x are
different from one, also include the required k+q points. The main use of this
card is to do band plots with EXX.
      

Syntax:

ADDITIONAL_K_POINTS tpiba | crystal | tpiba_b | crystal_b | tpiba_c | crystal_c
nks_add  
 k_x(1)   k_y(1)   k_z(1)   wk_(1) 
 k_x(2)   k_y(2)   k_z(2)   wk_(2) 
 . . .
 k_x(nks_add)   k_y(nks_add)   k_z(nks_add)   wk_(nks_add) 

Description of items:

Card's options: tpiba | crystal | tpiba_b | crystal_b | tpiba_c | crystal_c
Default: tbipa
for the explanation of the K_POINTS' options, see K_POINTS
         
nks_add INTEGER
 Number of supplied "additional" k-points.
               
k_x, k_y, k_z, wk_ REAL
for the respective explanation, see the xk_x, xk_y, xk_z, wk
                  

Card: CELL_PARAMETERS { alat | bohr | angstrom }

Optional card, needed only if ibrav == 0 is specified, ignored otherwise !

Syntax:

CELL_PARAMETERS { alat | bohr | angstrom }
 v1(1)   v1(2)   v1(3) 
 v2(1)   v2(2)   v2(3) 
 v3(1)   v3(2)   v3(3) 

Description of items:

Card's options: alat | bohr | angstrom
Unit for lattice vectors; options are:

'bohr' / 'angstrom':
                     lattice vectors in bohr-radii / angstrom.
                     In this case the lattice parameter alat = sqrt(v1*v1).

'alat' / nothing specified:
                     lattice vectors in units of the lattice parameter (either
                     celldm(1) or A). Not specifying units is DEPRECATED
                     and will not be allowed in the future.

If neither unit nor lattice parameter are specified,
'bohr' is assumed - DEPRECATED, will no longer be allowed
         
v1, v2, v3 REAL
Crystal lattice vectors (in cartesian axis):
    v1(1)  v1(2)  v1(3)    ... 1st lattice vector
    v2(1)  v2(2)  v2(3)    ... 2nd lattice vector
    v3(1)  v3(2)  v3(3)    ... 3rd lattice vector
                  

Card: CONSTRAINTS

Optional card, used for constrained dynamics or constrained optimisations (only if ion_dynamics=='damp' or 'verlet', variable-cell excepted)

When this card is present the SHAKE algorithm is automatically used.
      

Syntax:

CONSTRAINTS
nconstr   { constr_tol   }
 constr_type(1)   constr(1)(1)   constr(2)(1)  [  constr(3)(1)    constr(4)(1)   ] {  constr_target(1)  }
 constr_type(2)   constr(1)(2)   constr(2)(2)  [  constr(3)(2)    constr(4)(2)   ] {  constr_target(2)  }
 . . .
 constr_type(nconstr)   constr(1)(nconstr)   constr(2)(nconstr)  [  constr(3)(nconstr)    constr(4)(nconstr)   ] {  constr_target(nconstr)  }

Description of items:

nconstr INTEGER
 Number of constraints.
               
constr_tol REAL
 Tolerance for keeping the constraints satisfied.
                  
constr_type CHARACTER
Type of constraint :
                     
'type_coord' :
constraint on global coordination-number, i.e. the
average number of atoms of type B surrounding the
atoms of type A. The coordination is defined by
using a Fermi-Dirac.
(four indexes must be specified).
                     
'atom_coord' :
constraint on local coordination-number, i.e. the
average number of atoms of type A surrounding a
specific atom. The coordination is defined by
using a Fermi-Dirac.
(four indexes must be specified).
                     
'distance' :
constraint on interatomic distance
(two atom indexes must be specified).
                     
'planar_angle' :
constraint on planar angle
(three atom indexes must be specified).
                     
'torsional_angle' :
constraint on torsional angle
(four atom indexes must be specified).
                     
'bennett_proj' :
constraint on the projection onto a given direction
of the vector defined by the position of one atom
minus the center of mass of the others.
G. Roma, J.P. Crocombette: J. Nucl. Mater. 403, 32 (2010),
doi:10.1016/j.jnucmat.2010.06.001
                     
constr(1), constr(2), constr(3), constr(4)
These variables have different meanings for different constraint types:

'type_coord' :
               constr(1) is the first index of the atomic type involved
               constr(2) is the second index of the atomic type involved
               constr(3) is the cut-off radius for estimating the coordination
               constr(4) is a smoothing parameter

'atom_coord' :
               constr(1) is the atom index of the atom with constrained coordination
               constr(2) is the index of the atomic type involved in the coordination
               constr(3) is the cut-off radius for estimating the coordination
               constr(4) is a smoothing parameter

'distance' :
               atoms indices object of the constraint, as they appear in
               the ATOMIC_POSITIONS card

'planar_angle', 'torsional_angle' :
               atoms indices object of the constraint, as they appear in the
               ATOMIC_POSITIONS card (beware the order)

'bennett_proj' :
               constr(1) is the index of the atom whose position is constrained.
               constr(2:4) are the three coordinates of the vector that specifies
               the constraint direction.
                  
constr_target REAL
Target for the constrain ( angles are specified in degrees ).
This variable is optional.
                     

Card: OCCUPATIONS

Optional card, used only if occupations == 'from_input', ignored otherwise !

Syntax:

OCCUPATIONS
 f_inp1(1)   f_inp1(2)   . . .  f_inp1(nbnd) 
[    f_inp2(1)   f_inp2(2)   . . .  f_inp2(nbnd)    ]

Description of items:

f_inp1 REAL
Occupations of individual states (MAX 10 PER ROW).
For spin-polarized calculations, these are majority spin states.
                  
f_inp2 REAL
Occupations of minority spin states (MAX 10 PER ROW)
To be specified only for spin-polarized calculations.
                     

Card: ATOMIC_VELOCITIES { a.u }

Optional card, reads velocities from standard input

Syntax:

ATOMIC_VELOCITIES { a.u }
 V(1)   vx(1)   vy(1)   vz(1) 
 V(2)   vx(2)   vy(2)   vz(2) 
 . . .
 V(nat)   vx(nat)   vy(nat)   vz(nat) 

Description of items:

V CHARACTER
 label of the atom as specified in ATOMIC_SPECIES
                  
vx, vy, vz REAL
 atomic velocities along x y and z direction
                  

Card: ATOMIC_FORCES

Optional card used to specify external forces acting on atoms.

BEWARE: if the sum of external forces is not zero, the center of mass of
        the system will move
      

Syntax:

ATOMIC_FORCES
 X(1)   fx(1)   fy(1)   fz(1) 
 X(2)   fx(2)   fy(2)   fz(2) 
 . . .
 X(nat)   fx(nat)   fy(nat)   fz(nat) 

Description of items:

X CHARACTER
 label of the atom as specified in ATOMIC_SPECIES
                  
fx, fy, fz REAL
external force on atom X (cartesian components, Ry/a.u. units)
                  

Card: SOLVENTS { 1/cell | mol/L | g/cm^3 }

Optional card, used only if trism = .TRUE., ignored otherwise !

IF laue_both_hands = .FALSE. :

Syntax:

SOLVENTS { 1/cell | mol/L | g/cm^3 }
ELSEIF laue_both_hands = .TRUE. :

Syntax:

SOLVENTS { 1/cell | mol/L | g/cm^3 }

Description of items:

Card's options: 1/cell | mol/L | g/cm^3
1/cell :
solvent's densities are specified
as number of molecules in the unit cell.
            
mol/L :
solvent's densities are specified as molar concentrations.
            
g/cm^3 :
solvent's densities are in gram per cm^3.
            
X CHARACTER
label of the solvent molecule.
                        
Density REAL
density of the solvent molecule.
if not positive value is set, density is read from MOL-file.
                        
Molecule CHARACTER
MOL-file of the solvent molecule.
in the MOL-file, molecular structure and some other data are written.
                        
X CHARACTER
label of the solvent molecule.
                        
Density_Left REAL
density of the solvent molecule in the left-hand side.
if not positive value is set, density is read from MOL-file.
                        
Density_Right REAL
density of the solvent molecule in the right-hand side.
if not positive value is set, density is read from MOL-file.
                        
Molecule CHARACTER
MOL-file of the solvent molecule.
in the MOL-file, molecular structure and some other data are written.
                        

Card: HUBBARD atomic | ortho-atomic | norm-atomic | wf | pseudo

IF DFT+U :

Syntax:

HUBBARD atomic | ortho-atomic | norm-atomic | wf | pseudo
U  label(1)-manifold(1)  u_val(1)  
[ J0  label(1)-manifold(1)  j0_val(1)   ]
. . .  
U  label(n)-manifold(n)  u_val(n)  
[ J0  label(n)-manifold(n)  j0_val(n)   ]
ELSEIF DFT+U+J :

Syntax:

HUBBARD atomic | ortho-atomic | norm-atomic | wf | pseudo
paramType(1)  label(1)-manifold(1)  paramValue(1)  
. . .  
paramType(n)  label(n)-manifold(n)  paramValue(n)  
ELSEIF DFT+U+V :

Syntax:

HUBBARD atomic | ortho-atomic | norm-atomic | wf | pseudo
U  label(I)-manifold(I)  u_val(I)  
[ J0  label(I)-manifold(I)  j0_val(I)   ]
V  label(I)-manifold(I)  label(J)-manifold(J)  I  J  v_val(I,J)  
. . .  
U  label(N)-manifold(N)  u_val(N)  
[ J0  label(N)-manifold(N)  j0_val(N)   ]
V  label(N)-manifold(N)  label(M)-manifold(M)  N  M  v_val(N,M)  

Description of items:

Card's options: atomic | ortho-atomic | norm-atomic | wf | pseudo
HUBBARD options are:
            
atomic :
use atomic orbitals (read from pseudopotential) to build the
Hubbard projectors
            
ortho-atomic :
use Lowdin orthogonalized atomic orbitals. This option is
recommended to be used whenever possible instead of atomic
because it allows to avoid applying Hubbard corrections twice
in the orbital overlap regions.
            
norm-atomic :
Lowdin normalization of atomic orbitals. Keep in mind:
atomic orbitals are not orthogonalized in this case.
This is a "quick and dirty" trick to be used when
atomic orbitals from the pseudopotential are not
normalized (and thus produce occupation whose
value exceeds unity).
            
wf :
use Wannier functions to built Hubbard projectors.
The information about the Wannier functionas are read
from file "prefix".hub that must be generated using pmw.x
(see PP/src/poormanwannier.f90 for details).
Note: these are not maximally localized Wannier functions.
(see PP/examples/example05)
            
pseudo :
use the pseudopotential projectors. The charge density
outside the atomic core radii is excluded.
N.B.: for atoms with +U, a pseudopotential with the
all-electron atomic orbitals are required (i.e.,
as generated by ld1.x with lsave_wfc flag).
            
NB: forces and stress are currently implemented only for the
'atomic', 'ortho-atomic', and 'pseudo' Hubbard projectors.
            
Check Doc/Hubbard_input.pdf to see how to specify Hubbard parameters
U, J0, J, B, E2, E3, V in the HUBBARD card.
            
label(1)-manifold(1), u_val(1) CHARACTER-LITERAL, CHARACTER, REAL
Syntax:
  U label-manifold u_val

Where:
U        = string constant "U"; indicates the specs for the U parameter will be given
label    = label of the atom (as defined in ATOMIC_SPECIES)
manifold = specs of the manifold (e.g., 3d, 2p...)
u_val    = value of the U parameter (in eV)

Example:
HUBBARD (ortho-atomic)
  U Mn-3d 5.0
  U Ni-3d 6.0
                     
label(1)-manifold(1), j0_val(1) CHARACTER-LITERAL, CHARACTER, REAL
Remark: specs of J0 parameters are optional

Syntax:
  J0 label-manifold j0_val

Where:
J0       = string constant "J0"; indicates the specs for the J0 parameter will be given
label    = label of the atom (as defined in ATOMIC_SPECIES)
manifold = specs of the manifold (e.g., 3d, 2p...)
j0_val   = value of the J0 parameter (in eV)

Example:
  HUBBARD (ortho-atomic)
  U  Mn-3d 5.0
  J0 Mn-3d 1.0
  U  Ni-3d 6.0
  J0 Ni-3d 1.2
                        
paramType(1), label(1)-manifold(1), paramValue(1) CHARACTER, CHARACTER, REAL
Syntax of the line:

  paramType label-manifold paramValue

Where:
paramType  = character describing the type of Hubbard parameter
             allowed values: U, J and either B (for d-orbitals) or E2 and E3 (for f-orbitals)
label      = label of the atom (as defined in ATOMIC_SPECIES)
manifold   = specs of the manifold (e.g., 3d, 2p...)
paramValue = value of the parameter (in eV)

Example:
  HUBBARD (ortho-atomic)
  U Mn-3d 5.0
  J Mn-3d 1.0
  B Mn-3d 1.1
  U Ni-3d 6.0
  J Ni-3d 1.2
  B Ni-3d 1.3
                     
label(I)-manifold(I), u_val(I) CHARACTER, REAL
Syntax of the line:

  U label-manifold u_val

Where:
U        = string constant "U"; indicates the specs for the U parameter will be given
label    = label of the atom (as defined in ATOMIC_SPECIES)
manifold = specs of the manifold (e.g., 3d, 2p...)
u_val    = value of the U parameter (in eV)
                     
label(I)-manifold(I), j0_val(I) CHARACTER, REAL
Remark: specs of J0 parameters are optional

Syntax of the line:

  J0 label(I)-manifold(I) j0_val(I)

Where:
J0       = string constant "J0"; indicates the specs for the J0 parameter will be given
label    = label of the atom (as defined in ATOMIC_SPECIES)
manifold = specs of the manifold (e.g., 3d, 2p...)
j0_val   = value of the J0 parameter (in eV)
                        
label(I)-manifold(I), label(J)-manifold(J), I, J, v_val(I,J) CHARACTER, CHARACTER, INTEGER, INTEGER, REAL
Syntax of the line:

  V label(I)-manifold(J) label(J)-manifold(J) I J v_val(I,J)

Where:
V           = string constant "V"; indicates the specs for the V parameter will be given
label(I)    = label of the atom I (as defined in ATOMIC_SPECIES)
manifold(I) = specs of the manifold for atom I (e.g., 3d, 2p...)
label(J)    = label of the atom J (as defined in ATOMIC_SPECIES)
manifold(J) = specs of the manifold for atom J (e.g., 3d, 2p...)
I           = index of the atom I
J           = index of the atom J
v_val(I,J)  = value of the V parameter for the atom pair I,J (in eV)

Example:
  HUBBARD (ortho-atomic)
  U Co-3d 7.70
  V Co-3d O-2p 1 19 0.75
  V Co-3d O-2p 1 46 0.75
  V Co-3d O-2p 1 43 0.75
  V Co-3d O-2p 1 54 0.75
  V Co-3d O-2p 1 11 0.75
  V Co-3d O-2p 1 22 0.75
                     
This file has been created by helpdoc utility on Wed Jun 08 15:59:56 CEST 2022.