# Input File Description

## Program: pw.x / PWscf / Quantum ESPRESSO (version: 7.2)

> ### 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 | twochem | lfcp | trism

> > &SYSTEM

> > > ibrav | celldm | A | B | C | cosAB | cosAC | cosBC | nat | ntyp | nbnd | nbnd_cond | 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_cond | nelec_cond | degauss | smearing | nspin | sic_gamma | pol_type | sic_energy | sci_vb | sci_cb | 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 | nextffield

> > &ELECTRONS

> > > electron_maxstep | exx_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).

[Back to Top]

title | CHARACTER
Default: | ' '

>     reprinted on output.

[Back to Top]

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'

[Back to Top]

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'.

[Back to Top]

wf_collect | LOGICAL

>      OBSOLETE - NO LONGER IMPLEMENTED

[Back to Top]

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.

[Back to Top]

iprint | INTEGER
Default: | write only at convergence

>     band energies are written every iprint iterations

[Back to Top]

tstress | LOGICAL
Default: | .false.

>     calculate stress. It is set to .TRUE. automatically if
>     calculation == 'vc-md' or 'vc-relax'

[Back to Top]

tprnfor | LOGICAL

>     calculate forces. It is set to .TRUE. automatically if
>     calculation == 'relax','md','vc-md'

[Back to Top]

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!!!)

[Back to Top]

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

[Back to Top]

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.

[Back to Top]

prefix | CHARACTER
Default: | 'pwscf'

>     prepended to input/output filenames:
>     prefix.wfc, prefix.rho, etc.

[Back to Top]

lkpoint_dir | LOGICAL

>     OBSOLETE - NO LONGER IMPLEMENTED

[Back to Top]

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.

[Back to Top]

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

[Back to Top]

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

[Back to Top]

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

[Back to Top]

pseudo_dir | CHARACTER
Default: | value of the $ESPRESSO_PSEUDO environment variable if set; '$HOME/espresso/pseudo/' otherwise

>     directory containing pseudopotential files

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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. !

[Back to Top]

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

[Back to Top]

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.

[Back to Top]

lberry | LOGICAL
Default: | .FALSE.

>     If .TRUE. perform a Berry phase calculation.
>     See the header of PW/src/bp_c_phase.f90 for documentation.

[Back to Top]

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.

[Back to Top]

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

[Back to Top]

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

[Back to Top]

twochem | LOGICAL
Default: | .FALSE.
See: | nelec_cond, nbnd_cond, degauss_cond

>     IF .TRUE. , a two chemical potential calculation for the simulation of
>     photoexcited systems is performed, constraining a fraction of the
>     electrons in the conduction manifold.
>     See G. Marini, M. Calandra; PRB 104, 144103 (2021).
>     Note: requires occupations to be set to 'smearing'.

[Back to Top]

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.

[Back to Top]

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

[Back to Top]

## 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

[Back to Top]

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

[Back to Top]

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.

[Back to Top]

nat | INTEGER
Status: | REQUIRED

>     number of atoms in the unit cell (ALL atoms, except if
>     space_group is set, in which case, INEQUIVALENT atoms)

[Back to Top]

ntyp | INTEGER
Status: | REQUIRED

>     number of types of atoms in the unit cell

[Back to Top]

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

[Back to Top]

nbnd_cond | INTEGER
Default: | nbnd_cond = nbnd - # of electrons / 2 in the collinear case; nbnd_cond = nbnd - # of electrons in the noncollinear case.

>     Number of electronic states in the conduction manifold
>     for a two chemical-potential calculation (twochem=.true.).

[Back to Top]

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.

[Back to Top]

starting_charge(i), i=1,ntyp | REAL
Default: | 0.0

>     starting charge on atomic type 'i',
>     to create starting potential with startingpot = 'atomic'.

[Back to Top]

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.

[Back to Top]

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.
>     For non-constrained calculations, the 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.).

[Back to Top]

ecutwfc | REAL
Status: | REQUIRED

>     kinetic energy cutoff (Ry) for wavefunctions

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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

[Back to Top]

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!)

[Back to Top]

noinv | LOGICAL
Default: | .FALSE.

>     if (.TRUE.) disable the usage of k => -k symmetry
>     (time reversal) in k-point generation

[Back to Top]

no_t_rev | LOGICAL
Default: | .FALSE.

>     if (.TRUE.) disable the usage of magnetic symmetry operations
>     that consist in a rotation + time reversal.

[Back to Top]

force_symmorphic | LOGICAL
Default: | .FALSE.

>     if (.TRUE.) force the symmetry group to be symmorphic by disabling
>     symmetry operations having an associated fractionary translation

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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

[Back to Top]

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.

[Back to Top]

degauss_cond | REAL
Default: | 0.D0 Ry

>     value of the gaussian spreading (Ry) for brillouin-zone
>     integration in the conduction manifold in a two-chemical
>     potential calculation (twochem=.true.).

[Back to Top]

nelec_cond | REAL
Default: | 0.D0

>     Number of electrons placed in the conduction manifold in a two-chemical
>     potential calculation (twochem=.true.). Of the total # of
>     electrons nelec, nelec-nelec_cond will occupy the valence
>     manifold and nelec_cond will be constrained in the conduction manifold.

[Back to Top]

degauss | REAL
Default: | 0.D0 Ry

>     value of the gaussian spreading (Ry) for brillouin-zone
>     integration in metals.

[Back to Top]

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

[Back to Top]

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

[Back to Top]

sic_gamma | REAL
Default: | 0

>     Strength of the gammaDFT potential.

[Back to Top]

pol_type | CHARACTER

>     Type of polaron in gammaDFT.

> `'e' :`

>        electron polaron

> `'h' :`

>        hole polaron

[Back to Top]

sic_energy | LOGICAL
Default: | .false.

>     Enable the calculation of the total energy in gammaDFT. When .true.,
>     a preliminary calculation is performed to calculate the electron density
>     in the absence of the polaron. When .false., the total energy printed in
>     output should not be considered. For structural relaxations, it is
>     recommended to use .false. to avoid doubling the computational cost.

[Back to Top]

sci_vb | REAL
Default: | 0

>     Valence band shift (in eV) through self-consistent
>     scissor operator. When performing gammaDFT calculations
>     of polarons, the polaron level is not shifted.

[Back to Top]

sci_cb | REAL
Default: | 0

>     Conduction band band shift (in eV) through self-consistent
>     scissor operator. When performing gammaDFT calculations
>     of polarons, the polaron level is not shifted.

[Back to Top]

noncolin | LOGICAL
Default: | .false.

>     if .true. the program will perform a noncollinear calculation.

[Back to Top]

ecfixed | REAL
Default: | 0.0
See: | q2sigma

[Back to Top]

qcutz | REAL
Default: | 0.0
See: | q2sigma

[Back to Top]

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

[Back to Top]

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!

[Back to Top]

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)

[Back to Top]

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.

[Back to Top]

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

[Back to Top]

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)

[Back to Top]

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.

[Back to Top]

ecutvcut | REAL
Default: | 0.0 Ry
See: | exxdiv_treatment

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

[Back to Top]

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.

[Back to Top]

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

[Back to Top]

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)

>     Note: Hubbard_occ cannot be used together with fully-relativistic pseudopotentials
>     (i.e. when noncolin=.true. and lspinorb=.true.) since this variable does not
>     allow to distinguish between the occupied and unoccupied channels (this is
>     needed when determining the atomic orbital offsets).

[Back to Top]

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 DFT+U or DFT+U+V).

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

[Back to Top]

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 DFT+U or DFT+U+V). See also
>     PRB 84, 115108 (2011).

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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)]

[Back to Top]

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')

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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

[Back to Top]

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)

[Back to Top]

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'

[Back to Top]

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

[Back to Top]

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

[Back to Top]

lspinorb | LOGICAL

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

[Back to Top]

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.

[Back to Top]

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

[Back to Top]

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

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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

[Back to Top]

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 .

[Back to Top]

gcscf_conv_thr | REAL
Default: | 1.D-2

>     Convergence threshold of Fermi energy (eV) for GC-SCF.

[Back to Top]

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.

[Back to Top]

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

[Back to Top]

london | LOGICAL
Default: | .FALSE.
Status: | OBSOLESCENT, same as vdw_corr='DFT-D'

[Back to Top]

london_s6 | REAL
Default: | 0.75

>     global scaling parameter for DFT-D. Default is good for PBE.

[Back to Top]

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 )

[Back to Top]

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 )

[Back to Top]

london_rcut | REAL
Default: | 200

>     cutoff radius (a.u.) for dispersion interactions

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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

[Back to Top]

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.

[Back to Top]

xdm | LOGICAL
Default: | .FALSE.
Status: | OBSOLESCENT, same as vdw_corr='xdm'

[Back to Top]

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

[Back to Top]

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

[Back to Top]

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

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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

[Back to Top]

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

[Back to Top]

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.

[Back to Top]

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[

[Back to Top]

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[

[Back to Top]

block_height | REAL
Default: | 0.1

>     used only if gate = .TRUE. and block = .TRUE.
>     Height of the potential barrier in Rydberg.

[Back to Top]

nextffield | INTEGER
Default: | 0

>     Number of activated external ionic force fields.
>     See Doc/ExternalForceFields.tex for further explanation and parameterizations

[Back to Top]

## Namelist: &ELECTRONS

electron_maxstep | INTEGER
Default: | 100

>     maximum number of iterations in a scf step. If exact exchange is active,
>     this will affect the inner loops.

[Back to Top]

exx_maxstep | INTEGER
Default: | 100

>     maximum number of outer iterations in a scf calculation with exact exchange.

[Back to Top]

scf_must_converge | LOGICAL
Default: | .TRUE.

>     If .false. do not stop molecular dynamics or ionic relaxation
>     when electron_maxstep is reached. Use with care.

[Back to Top]

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

[Back to Top]

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.

[Back to Top]

conv_thr_init | REAL
Default: | 1.D-3

>     When adaptive_thr = .TRUE. this is the convergence threshold
>     used for the first scf cycle.

[Back to Top]

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 )

[Back to Top]

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)

[Back to Top]

mixing_beta | REAL
Default: | 0.7D0

>     mixing factor for self-consistency

[Back to Top]

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.

[Back to Top]

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

[Back to Top]

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

[Back to Top]

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.

[Back to Top]

diago_cg_maxiter | INTEGER

>     For conjugate gradient diagonalization:  max number of iterations

[Back to Top]

diago_ppcg_maxiter | INTEGER

>     For ppcg diagonalization:  max number of iterations

[Back to Top]

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

[Back to Top]

diago_rmm_ndim | INTEGER
Default: | 4

>     For RMM-DIIS diagonalization: dimension of workspace
>     (number of wavefunction packets, at least 2 needed).

[Back to Top]

diago_rmm_conv | LOGICAL
Default: | .FALSE.

>     If .TRUE., RMM-DIIS is performed up to converge.
>     If .FALSE., RMM-DIIS is performed only once.

[Back to Top]

diago_gs_nblock | INTEGER
Default: | 16

>     For RMM-DIIS diagonalization:
>     blocking size of Gram-Schmidt orthogonalization

[Back to Top]

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

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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!

[Back to Top]

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!

[Back to Top]

## 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.

[Back to Top]

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

[Back to Top]

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

[Back to Top]

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

[Back to Top]

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

[Back to Top]

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.

[Back to Top]

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

[Back to Top]

tempw | REAL
Default: | 300.D0

>     Starting temperature (Kelvin) in MD runs
>     target temperature for most thermostats.

[Back to Top]

tolp | REAL
Default: | 100.D0

>     Tolerance for velocity rescaling. Velocities are rescaled if
>     the run-averaged and target temperature differ more than tolp.

[Back to Top]

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

[Back to Top]

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

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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)

[Back to Top]

trust_radius_max | REAL
Default: | 0.8D0

>     Maximum ionic displacement in the structural relaxation.
>     (bfgs only)

[Back to Top]

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)

[Back to Top]

trust_radius_ini | REAL
Default: | 0.5D0

>     Initial ionic displacement in the structural relaxation.
>     (bfgs only)

[Back to Top]

w_1 | REAL
Default: | 0.01D0
See: | w_2

[Back to Top]

w_2 | REAL
Default: | 0.5D0

>     Parameters used in line search based on the Wolfe conditions.
>     (bfgs only)

[Back to Top]

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

[Back to Top]

fire_falpha | REAL
Default: | 0.99D0

>     Scaling of the alpha mixing parameter for steps with P > 0;

[Back to Top]

fire_nmin | INTEGER
Default: | 5

>     Minimum number of steps with P > 0 before increase of dt

[Back to Top]

fire_f_inc | REAL
Default: | 1.1D0

>     Factor for increasing dt

[Back to Top]

fire_f_dec | REAL
Default: | 0.5D0

>     Factor for decreasing dt

[Back to Top]

fire_dtmax | REAL
Default: | 10.D0

>     Determines the maximum value of dt in the FIRE minimization;
>     dtmax = fire_dtmax*dt

[Back to Top]

## 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

[Back to Top]

press | REAL
Default: | 0.D0

>     Target pressure [KBar] in a variable-cell md or relaxation run.

[Back to Top]

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')

[Back to Top]

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.

[Back to Top]

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

[Back to Top]

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

[Back to Top]

## 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 .

[Back to Top]

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

[Back to Top]

fcp_conv_thr | REAL
Default: | 1.D-2

>     Convergence threshold on force (eV) for FCP relaxation.

[Back to Top]

fcp_ndiis | INTEGER
Default: | 4

>     Size of DIIS for FCP relaxation,
>     used only if fcp_dynamics = 'newton'.

[Back to Top]

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.

[Back to Top]

fcp_velocity | REAL
Default: | determined by fcp_temperature

>     Initial velocity of the FCP.

[Back to Top]

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

[Back to Top]

fcp_tempw | REAL
Default: | tempw

>     Starting temperature (Kelvin) in FCP dynamics runs
>     target temperature for most thermostats.

[Back to Top]

fcp_tolp | REAL
Default: | tolp

>     Tolerance for velocity rescaling. Velocities are rescaled if
>     the run-averaged and target temperature differ more than tolp.

[Back to Top]

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

[Back to Top]

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

[Back to Top]

freeze_all_atoms | LOGICAL
Default: | .FALSE.

>     If .TRUE., freeze all atoms
>     to perform relaxation or dynamics only with FCP.

[Back to Top]

## 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

[Back to Top]

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]

[Back to Top]

tempv | REAL
Default: | 300.D0

>     Temperature (Kelvin) of solvents.

[Back to Top]

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.

[Back to Top]

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)

[Back to Top]

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

[Back to Top]

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

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

smear1d | REAL
Default: | 2.D0

>     Coulomb smearing radius (a.u.) for 1D-RISM.

[Back to Top]

smear3d | REAL
Default: | 2.D0

>     Coulomb smearing radius (a.u.) for 3D-RISM.

[Back to Top]

rism1d_maxstep | INTEGER
Default: | 50000

>     Maximum number of iterations in a 1D-RISM step.

[Back to Top]

rism3d_maxstep | INTEGER
Default: | 5000

>     Maximum number of iterations in a 3D-RISM step.

[Back to Top]

rism1d_conv_thr | REAL
Default: | 1.D-8

>     Convergence threshold for 1D-RISM.

[Back to Top]

rism3d_conv_thr | REAL
Default: | 1.D-5 if lgcscf == .FALSE.; 5.D-6 if lgcscf == .TRUE.

>     Convergence threshold for 3D-RISM.

[Back to Top]

mdiis1d_size | INTEGER
Default: | 20

>     Size of Modified DIIS (MDIIS) for 1D-RISM.

[Back to Top]

mdiis3d_size | INTEGER
Default: | 10

>     Size of Modified DIIS (MDIIS) for 3D-RISM.

[Back to Top]

mdiis1d_step | REAL
Default: | 0.5D0

>     Step of Modified DIIS (MDIIS) for 1D-RISM.

[Back to Top]

mdiis3d_step | REAL
Default: | 0.8D0

>     Step of Modified DIIS (MDIIS) for 3D-RISM.

[Back to Top]

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

[Back to Top]

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

[Back to Top]

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

[Back to Top]

rism1d_nproc | INTEGER
Default: | 128

>     Number of processes to calculate 1D-RISM.

[Back to Top]

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 .

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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

[Back to Top]

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' .

[Back to Top]

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' .

[Back to Top]

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' .

[Back to Top]

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' .

[Back to Top]

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' .

[Back to Top]

## Card: ATOMIC_SPECIES

### Syntax:

> ATOMIC_SPECIES

> X(1) | Mass_X(1) | PseudoPot_X(1)
> X(2) | Mass_X(2) | PseudoPot_X(2)
> . . .
> X(ntyp) | Mass_X(ntyp) | PseudoPot_X(ntyp)

### 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)

> [Back to Top]

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

> [Back to Top]

> 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

> [Back to Top]

## 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.

> [Back to Top]

> X | CHARACTER

> >      label of the atom as specified in ATOMIC_SPECIES

> [Back to Top]

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

> [Back to Top]

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

> [Back to Top]

## 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.

> [Back to Top]

> nks | INTEGER

> >      Number of supplied special k-points.

> [Back to Top]

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

> [Back to Top]

> nk1, nk2, nk3 | INTEGER

> >     These parameters specify the k-point grid
> >     (nk1 x nk2 x nk3) as in Monkhorst-Pack grids.

> [Back to Top]

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

> [Back to Top]

## 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

> [Back to Top]

> nks_add | INTEGER

> >      Number of supplied "additional" k-points.

> [Back to Top]

> k_x, k_y, k_z, wk_ | REAL

> >     for the respective explanation, see the xk_x, xk_y, xk_z, wk

> [Back to Top]

## Card: CELL_PARAMETERS { alat | bohr | angstrom }

Optional card, must be present if ibrav == 0, must be absent 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

> [Back to Top]

> 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

> [Back to Top]

## Card: CONSTRAINTS

Optional card, used for constrained dynamics or constrained optimizations (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.

> [Back to Top]

> constr_tol | REAL

> >      Tolerance for keeping the constraints satisfied.

> [Back to Top]

> 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

> > `'potential_wall' :`

> >       (experimental) add a potential wall at the origin
> >       normal to the the z-axis.

> [Back to Top]

> 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.
> >     'potential_wall' :
> >                    Formula is: External force = prefac * exponent * Exp(-exponent). Force is only applied
> >                    on atoms within the cutoff.
> >                    constr(1) is the prefactor
> >                    constr(2) is the value in the exponent
> >                    constr(3) is the cutoff (in a.u.)

> [Back to Top]

> constr_target | REAL

> >     Target for the constrain ( angles are specified in degrees ).
> >     This variable is optional.

> [Back to Top]

## 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.

> [Back to Top]

> f_inp2 | REAL

> >     Occupations of minority spin states (MAX 10 PER ROW)
> >     To be specified only for spin-polarized calculations.

> [Back to Top]

## 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

> [Back to Top]

> vx, vy, vz | REAL

> >      atomic velocities along x y and z direction

> [Back to Top]

## 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

> [Back to Top]

> fx, fy, fz | REAL

> >     external force on atom X (cartesian components, Ry/a.u. units)

> [Back to Top]

## 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 }

> > X(1) | Density(1) | Molecule(1)
> > X(2) | Density(2) | Molecule(2)
> > . . .
> > X(nsolv) | Density(nsolv) | Molecule(nsolv)

ELSEIF `laue_both_hands = .TRUE. :`

> ### Syntax:

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

> > X(1) | Density_Left(1) | Density_Right(1) | Molecule(1)
> > X(2) | Density_Left(2) | Density_Right(2) | Molecule(2)
> > . . .
> > X(nsolv) | Density_Left(nsolv) | Density_Right(nsolv) | Molecule(nsolv)

### 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.

> [Back to Top]

> X | CHARACTER

> >     label of the solvent molecule.

> [Back to Top]

> Density | REAL

> >     density of the solvent molecule.
> >     if not positive value is set, density is read from MOL-file.

> [Back to Top]

> Molecule | CHARACTER

> >     MOL-file of the solvent molecule.
> >     in the MOL-file, molecular structure and some other data are written.

> [Back to Top]

> X | CHARACTER

> >     label of the solvent molecule.

> [Back to Top]

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

> [Back to Top]

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

> [Back to Top]

> Molecule | CHARACTER

> >     MOL-file of the solvent molecule.
> >     in the MOL-file, molecular structure and some other data are written.

> [Back to Top]

## 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.

> [Back to Top]

> 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

> [Back to Top]

> 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

> [Back to Top]

> 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

> [Back to Top]

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

> [Back to Top]

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

> [Back to Top]

> 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

> [Back to Top]

This file has been created by helpdoc utility on Sat Mar 18 16:00:16 CET 2023.