ABINIT, developper input variables:
List and description.
This document lists and provides the description
of the name (keywords) of the input
variables "for developpers" to be used in the
main input file of the abinit code.
The new user is advised to read first the
new user's guide,
before reading the present file. It will be easier to discover the
present file with the help of the tutorial.
When the user is sufficiently familiarized with ABINIT, the reading of the
~abinit/doc/users/tuning file might be useful. For responsefunction calculations using
abinit, please read the response function help file
Copyright (C) 19982012 ABINIT group (DCA, XG, RC)
This file is distributed under the terms of the GNU General Public License, see
~abinit/COPYING or
http://www.gnu.org/copyleft/gpl.txt .
For the initials of contributors, see ~abinit/doc/developers/contributors.txt .
Content of the file : alphabetical list of developper variables.
A.
accesswff
B.
bandpp
builtintest
C.
D.
densty
dmft_dc
dmft_iter
dmft_mxsf
dmft_nwli
dmft_nwlo
dmft_read_occnd
dmft_rslf
dmft_solv
dmft_tollc
dmftbandf
dmftbandi
dmftcheck
E.
effmass
eshift
exchmix
exchn2n3d
F.
fermie_nest
fftalg
fftcache
fft_opt_lob
freqsusin
freqsuslo
G.
getgam_eig2nkq
gpu_linalg_limit
H.
I.
idyson
ikhxc
intexact
intxc
iprcch
iprcfc
irandom
isecur
istatr
istatshft
istwfk
J.
K.
L.
ldgapp
M.
macro_uj
maxnsym
mqgrid
N.
nbandsus
nbdblock
nctime
ndyson
nloalg
nnsclo
normpawu
noseft
noseinert
np_slk
npulayit
nscforder
O.
optforces
optfreqsus
optnlxccc
ortalg
P.
papiopt
pawprt_b
pawprt_k
pawujat
pawujrad
pawujv
prepscphon
prtbltztrp
prtcif
prtdipole
prtnest
prtposcar
Q.
R.
recefermi
recgratio
recnpath
recnrec
recptrott
recrcut
rectesteg
rectolden
S.
suskxcrs
symmorphi
T.
tfkinfunc
tolrde
U.
use_slk
useria, userib, useric, userid, userie
userra, userrb, userrc, userrd, userre
useylm
V.
vdw_nfrag
vdw_tol
vdw_typfrag
vdw_supercell
vdw_xc
W.
wfoptalg
X.
xc_tb09_c
Y.
Z.
accesswff
Mnemonics: ACCESS to WaveFunction Files
Characteristic: DEVELOP
Variable type: integer parameter
Default is 0. However, if mpi_io is available, accesswff will be set to 1 for the datasets for which paral_kgb=1, while an explicit mention of accesswff in the input file will override this intermediate default.
Governs the method of access to the
internal wavefunction files. Relevant only for the wavefunctions
files for which the corresponding "mkmem"type variable is zero, that
is, for the wavefunctions that are not kept in core memory.
 0 => Use standard Fortran IO routines
 1 => Use MPI/IO routines
 2 => Directly use NetCDF routines (this option is not available)
 3 => Use ETSF_IO routines, creating NetCDF files according to the ETSF specification.
In case accesswff=1, note the following. MPI/IO routines might be much more efficient than usual Fortran IO
routines in the case of a large number of processors, with a pool of
disks attached globally to the processors, but not one disk attached
to each processor. For a cluster of workstations, where each processor
has his own temporaries, the use of accesswff=0 might be perfectly
allright. This option is useful only if one is using the bandFFT parallelism.
MPI/IO routines are available in the MPI2 library, but usually not in the MPI1 library. So, perhaps you cannot
use accesswff=1.
In case accesswff=3, note that not only the wavefunctions will be written using the ETSF_IO routines,
but also, the same input variable governs the writing of the density and potential, that can also be
written using ETSF_IO routines. In order to use accesswff=3, you need to have the plugin library ETSF_IO
working (see the documentation of the build system).
References :

"Specification of an extensible and portable file format for electronic structure and crystallographic data",
X. Gonze, C.O. Almbladh, A. Cucca, D. Caliste, C. Freysoldt, M. Marques, V. Olevano, Y. Pouillon, M.J. Verstraete,
Comput. Mat. Science 43, 1056 (2008)

"Sharing electronic structure and crystallographic data with ETSF_IO",
D. Caliste, Y. Pouillon, M.J. Verstraete, V. Olevano, X. Gonze,
Comput. Physics Communications 179, 748 (2008)

see also http://www.etsf.eu/fileformats.
Go to the top
 Complete list of input variables
bandpp
Mnemonics: BAND Per Processor
Characteristic: DEVELOP
Variable type: integer parameter
Default is 1.
Control the size of the block in the LOBPCG algorithm.
This keyword works only with paral_kgb=1 and has to be either 1 or a multiple of 2.
 With npband=1:
 1 => bandperband algorithm
 n => The minimization is performed using nband/n blocks of n bands.
Note: nband/n has to be an integer.
 With npband/=1:
Note: nband/(npband*n) has to be an integer.
By minimizing a larger number of bands together in LOBPCG, we increase the convergency of the residual.
The better minimization procedure (as concerns the convergency, but not as concerns the speed) is generally
performed by using bandpp*npband=nband.
Put bandpp=2 when istwfk=2 (the time spent in FFTs is divided by two).
Go to the top
 Complete list of input variables
builtintest
Mnemonics: BUITIN TEST number
Characteristic: DEVELOP
Variable type: integer
Default is 0
When builtintest is nonzero, the input file is a special one, that runs very quickly,
and that is accompanied by
a specific analysis by ABINIT, at the end of the run, against a hardcoded value of total energy
(and possibly stresses, forces ...). The echo of the analysis is done in the STATUS file.
In particular, such builtin tests can be used to check quickly
whether ABINIT fallbacks have been connected or not (bigdft, etsf_io, libxc, wannier90).
At present, builtintest=1 ... 7 are allowed. See more information in tests/builtin/README .
Go to the top
 Complete list of input variables
densty
Mnemonics: initial DENSity for each TYpe of atom
Characteristic: DEVELOP
Variable type: real array densty(ntypat)
Default is 0.0d0.
Gives a rough description
of the initial GS density, for each type of atom.
This value is only used to create
the first exchange and correlation potential,
and is not used anymore afterwards.
For the time being, it corresponds to an average
radius (a.u.) of the density, and is used to generate
a gaussian density. If set to 0.0d0, an optimized value is used.
No meaning for RF calculations.
Go to the top
 Complete list of input variables
dmft_dc
Mnemonics: Dynamical Mean Fied Theory: Double Counting
Characteristic: DEVELOP
Variable type: integer
Default is 1
Value of double counting used for DMFT. Only value 1 is activated for the moment and is the FLL double counting.
Go to the top
 Complete list of input variables
dmft_iter
Mnemonics: Dynamical Mean Fied Theory: number of ITERation
Characteristic: DEVELOP
Variable type: integer
Default is 0
Number of iterations for the DMFT inner loop.
Go to the top
 Complete list of input variables
dmft_mxsf
Mnemonics: Dynamical Mean Fied Theory: MiXing parameter for the SelF energy
Characteristic: DEVELOP
Variable type: real
Default is 0.3
Mixing parameter for the simple mixing of the selfenergy.
Go to the top
 Complete list of input variables
dmft_nwli
Mnemonics: Dynamical Mean Fied Theory: Number of frequency omega (W) in the LInear mesh
Characteristic: DEVELOP
Variable type: integer
Default is 0
Number of Matsubara frequencies (linear mesh)
Go to the top
 Complete list of input variables
dmft_nwlo
Mnemonics: Dynamical Mean Fied Theory: Number of frequency omega (W) in the log mesh
Characteristic: DEVELOP
Variable type: integer
Default is 0
Number of frequencies in the log mesh.
Go to the top
 Complete list of input variables
dmft_read_occnd
Mnemonics: Dynamical Mean Fied Theory: Read Occupations (Non Diagonal)
Characteristic: DEVELOP
Variable type: integer
Default is 0
Flag to read/write Occupations as computed in DMFT. This flag is useful
to restart a DFT+DMFT calculation with selfconsistency over electronic density.
The occupations are written each time a DMFT loop is finished. So if the calculations stops
because the time limit is reached, this option offers the possibility to restart the selfconsistent loop
over density at the point where it stopped.
 0=> Occupations are written but never read.
 1=> Occupations are read from I_DMFTOCCND, where I is the root for input files.
 2=> Occupations are read from O_DMFTOCCND, where O is the root for output files.
Go to the top
 Complete list of input variables
dmft_rslf
Mnemonics: Dynamical Mean Fied Theory: Read SeLF energy
Characteristic: DEVELOP
Variable type: integer
Default is 0
Flag to read/write SelfEnergy. If put to one, selfenergy is written and read at each LDA iteration.
Go to the top
 Complete list of input variables
dmft_solv
Mnemonics: Dynamical Mean Fied Theory: choice of SOLVer
Characteristic: DEVELOP
Variable type: real
Default is 0
Choice of solver for the Impurity model.
 1=> LDA+U selfenergy is used (for testing purpose)
 2=> Hubbard one solver.
WARNING: Quantum Monte Carlo (QMC) solvers are not yet interfaced with the code. The present version of LDA+DMFT implemented here
should NOT be used for correlated metals. Even of correlated (Mott) insulators, QMC is expected to be much more
precise: Hubbard one is a approximation !
Go to the top
 Complete list of input variables
dmft_tollc
Mnemonics: Dynamical Mean Fied Theory: Tolerance on Local Charge for convergency of the DMFT loop
Characteristic: DEVELOP
Variable type: real
Default is 0.00001
Tolerance for the variation of Local Charge during iterations of the DMFT Loop.
The default value is good for fast calculations. However, to obtain good convergency of the DFT Loop,
the DMFT Loop needs a better convergence criterion.
Go to the top
 Complete list of input variables
dmftbandf
dmftbandi
Mnemonics: (to be described)
Characteristic: DEVELOP
Variable type: (to be described)
Default is 0
dmftbandi and dmftbandf are the first and last bands taken into account in the Projected Local
Orbitals scheme of LDA+DMFT. They thus define the energy window used to define Wannier Functions.
(see Amadon, B., Lechermann, F., Georges, A., Jollet, F., Wehling, T. O., and Lichtenstein, A. I. Phys. Rev. B 77(20), (2008).)
Go to the top
 Complete list of input variables
dmftcheck
Mnemonics: Dynamical Mean Fied Theory: CHECKs
Characteristic: DEVELOP
Variable type: integer
Default is 0
(Introduced by B. Amadon, v6.1.0)
Go to the top
 Complete list of input variables
effmass
Mnemonics: EFFective MASS
Characteristic: DEVELOP
Variable type: real number
Default is one.
This parameter allows to change the electron mass, with respect to its
experimental value.
Go to the top
 Complete list of input variables
eshift
Mnemonics: Energy SHIFT
Characteristic: DEVELOP, ENERGY
Variable type: real number
Default is zero.
Used only if wfoptalg=3 .
eshift gives the shift of the energy used in the
shifted Hamiltonian squared.
The algorithm will determine eigenvalues and eigenvectors centered
on eshift.
Can be specified in Ha (the default), Ry, eV or Kelvin, since
ecut has the
'ENERGY' characteristics.
(1 Ha=27.2113845 eV)
Go to the top
 Complete list of input variables
exchmix
Mnemonics: EXCHange MIXing
Characteristic: DEVELOP
Variable type: real number
Default is 0.25
exchmix allows to tune the ratio of exact exchange when
useexexch is used. The default value of 0.25 corresponds to PBE0.
Go to the top
 Complete list of input variables
exchn2n3d
Mnemonics: EXCHange N2 and N3 Dimensions
Characteristic: DEVELOP
Variable type: integer parameter
Default is 0.
If exchn2n3d is 1, the internal representation of the FFT arrays
in reciprocal space will be array(n1,n3,n2), where the second and
third dimensions have been switched. This is to allow to be coherent with the
exchn2n3d=4xx FFT treatment.
Go to the top
 Complete list of input variables
fermie_nest
Mnemonics: FERMI Energy for printing the NESTing function
Characteristic:
Variable type: real parameter
Default is 0
This input variable is only effective when prtnest=1. The energy is relative to the calculated fermi energy.
Go to the top
 Complete list of input variables
fftalg
Mnemonics: Fast Fourier Transform ALGorithm
Characteristic: DEVELOP
Variable type: integer parameter
Default is 112, except for VPP Fujitsu, for which the Default is 111, and for NEC, for which the default is 200. Moreover, if the FFTW3 library has been enabled, the default becomes 312, EXCEPT if usedmft is nonzero for at least one dataset.
Finally, If paral_kgb=1, fftalg is automatically set to 401, with the hightest precedence.
This keyword is irrelevant when Fast Fourier Transforms are done using Graphics Processing Units (GPU),
i.e. when use_gpu_cuda=1 (in that case, it is ignored).
Allows to choose the algorithm
for Fast Fourier Transforms. These have to be used
when applied to wavefunctions (routine fourwf.f),
as well as when
applied to densities and potentials (routine fourdp.f).
Presently, it is the concatenation of three digits,
labelled (A), (B) and (C).
The first digit (A) is to be chosen among 1, 2, 3 and 4 :
 1=> use FFT routines written by S. Goedecker.
 2=> use machinedependent FFT algorithm, taken from the vendor
library, if it exists and if it has been implemented.
The bare fftalg=200 has little chance to be
faster than fftalg=112,
but it might be tried. Implementing library
subroutines with fftalg/=200 has not yet been done.
Currently implemented library subroutines (fftalg=200)
are:
 on HP, z3dfft from Veclib;
 on DEC Alpha, zfft_3d from DXML;
 on NEC, ZFC3FB from ASL lib;
 on SGI, zfft3d from complib.sgimath

3=> use serial or multithreaded FFTW fortran routines (http://www.fftw.org).
Currently implemented with fftalg=300.
 4=> use FFT routines written by S. Goedecker, 2002 version, that will
be suited for MPI and OpenMP parallelism.
The second digit (B) is related to fourdp.f :
 0=> only use Complextocomplex FFT
 1=> realtocomplex is also allowed (only coded for A==1)
The third digit (C) is related to fourwf.f :
 0=> no use of zero padding
 1=> use of zero padding (only coded for A==1 and A==4)
 2=> use of zero padding, and also combines actual
FFT operations (using 2 routines from S. Goedecker)
with important pre and postprocessing
operations, in order to maximize cache data reuse.
This is very efficient for cache architectures.
(coded for A==1 and A==4, but A==4 is not yet sufficiently tested)
Internal representation as ngfft(7).
Go to the top
 Complete list of input variables
fftcache
Mnemonics: Fast Fourier Transform CACHE size
Characteristic: DEVELOP
Variable type: integer parameter
Default is 16. Not yet machinedependent.
Gives the cache size of the current
machine, in Kbytes.
Internal representation as ngfft(8).
Go to the top
 Complete list of input variables
fft_opt_lob
Mnemonics: Fast Fourier Transform parallelisation  OPTion for LOB algorithm
Characteristic: DEVELOP
Variable type: integer
Default is 1. If paral_kgb=1, default is 2.
Option for LOB algorithm, used in the band/FFT/kpoint parallelisation,
see npband, npfft,
npkpt, and paral_kgb.
 =1 : old implementation
 =2 : new implementation : the
calls to getghc are made in parallel on a set of bands
nbdblock :
the aim is to reduce the number of collective communications. This is
not yet implemented in lobpcgwf.
Go to the top
 Complete list of input variables
freqsusin
Mnemonics: FREQuencies for the SUSceptibility matrix : the INcrement
Characteristic: DEVELOP
Variable type: real parameter, positive or zero
Default is 0.0
Define, with
freqsuslo, the series of imaginary frequencies at which
the susceptibility matrix should be computed.
This is still under development.
Go to the top
 Complete list of input variables
freqsuslo
Mnemonics: FREQuencies for the SUSceptibility matrix : the LOwest frequency
Characteristic: DEVELOP
Variable type: real parameter, positive or zero
Default is 0.0
Define, with
freqsusin,
the series of imaginary frequencies at which
the susceptibility matrix should be computed.
This is still under development.
Go to the top
 Complete list of input variables
getgam_eig2nkq
Mnemonics: GET the GAMma phonon data EIG2NKQ from dataset
Characteristic:
Variable type: integer parameter
Default is 0.
Only relevant if ieig2rf is nonzero, that is, if the user is performing performing secondorder eigenvalue calcul
ations using responsefunctions. Also, relevant only for nonzero wavevectors qpt
From the electronphonon matrix elements at some wavevector only, it is not possible to determine the DebyeWallercontribution : one has to know also the q=Gamma electronphonon matrix elements.
The variable getgam_eig2nkq allows to transmit the information about the secondorder derivatives of the
eigenvalues for q=Gamma from the dataset where the calculation at Gamma was done, to the datasets
for other wavevectors.
Go to the top
 Complete list of input variables
gpu_linalg_limit
Mnemonics: GPU (Cuda): LINear ALGebra LIMIT
Characteristic:
Variable type: integer parameter
Default is 2000000.
Only relevant if use_gpu_cuda=1, that is, if ABINIT is used with CUDA functionality.
Use of linear algebra and matrix algebra on GPU is only efficient if the size of the involved matrices is large enough.
The gpu_linalg_limit parameter defines the threshold above which linear (and matrix) algebra operations
are done on the Graphics Processing Unit.
The considered matrix size is equal to:
SIZE=(mpw*nspinor/
npspinor)*
(npband*bandpp)**2
When SIZE>=gpu_linalg_limit, wfoptalg parameter is
automatically set to 14 which corresponds to the use of LOBPCG algorithm for the calculation of the eigenstates.
Go to the top
 Complete list of input variables
idyson
Mnemonics: Integer giving the choice of method for the DYSON equation
Characteristic: DEVELOP
Variable type: integer parameter
Default is 1.
Choice for the method used to solve the Dyson equation in the calculation
of the interacting susceptibility matrix or/and in the calculation of the ACFD exchangecorrelation energy:
 idyson=1 : Solve the Dyson equation by direct matrix inversion
 idyson=2 : Solve the Dyson equation as a firstorder differential equation
with respect to the coupling constant lambda  only implemented for the RPA at the
present stage (see header of dyson_de.f for details)
 idyson=3 : Calculate only the diagonal of the interacting susceptibility matrix
by selfconsistently computing the linear density change in response to a set
of perturbations. Only implemented for the RPA at the present stage,
and entirely experimental (see dyson_sc.f for details).
Go to the top
 Complete list of input variables
ikhxc
Mnemonics: Integer option for KHXC = Hartree XC kernel
Characteristic:
Variable type: integer parameter
Default is 1.
Define the HXC kernel, in the cases for which it can be
dissociated with the choice of the HXC functional given by
ixc, namely the TDDFT computation of excited
states (iscf=1), and the computation of the
susceptibility matrix (for ACFD purposes). Options 2 to 6 are for the
ACFD only.
 0 => RPA for the TDDFT but no kernel for the ACFD (testing purposes).
 1 => RPA for the TDDFT and ACFD.
 2 => ALDA (PW92) for the ACFD
 3 => PGG for the ACFD [M. Petersilka, U.J. Gossmann and E.K.U. Gross, PRL 76,1212 (1996)]
 4 => BPG for the ACFD. This amounts to half the PGG kernel plus half
the ALDA kernel for spincompensated systems [K. Burke, M. Petersilka and E.K.U. Gross,
in "Recent Advances in Density Functional Methods", Vol. III, edited by P. Fantucci and A. Bencini
(World Scientific, Singapore, 2002)]
 5 => Linear energy optimized kernel [J. Dobson and J. Wang, PRB 62, 10038 (2000)]
 6 => Nonlinear energy optimized kernel [J. Dobson and J. Wang, PRB 62, 10038 (2000)]
For ACFDALDA, BPG and energy optimized kernels are highly experimental and not tested yet !!!
For ACFD calculations, a cutoff density has been defined for the ALDA, BPG and
energy optimized kernels : let rhomin = userre*rhomax (where rhomax is the maximum density
in space) ; then the actual density used to calculate the local part of these kernels
at point r is max(rho(r),rhomin.
Go to the top
 Complete list of input variables
intexact
Mnemonics: INTegration using an EXACT scheme
Characteristic: DEVELOP
Variable type: integer parameter
Default is 0.
Relates to the ACFD xc functionals only.
If intexact > 0, the integration over the coupling constant
will be performed analytically in the RPA and in the twoelectron PGG
approximation for the ACFD exchangecorrelation energy.
Otherwise, the integration over the coupling constant will be performed
numerically (also see
ndyson and
idyson.
Note that the program will stop in intexact > 0 and
ikhxc/=1 (RPA) or
ikhxc/=3 (PGG, with two electrons)
Go to the top
 Complete list of input variables
intxc
Mnemonics: INTerpolation for eXchangeCorrelation
Characteristic: DEVELOP
Variable type: integer parameter
Default is 0.
 0=> do "usual" xc quadrature on fft grid
 1=> do higher accuracy xc quadrature using fft grid
and additional points at the centers of each cube
(doubles number of grid points)the high accuracy version
is only valid for boxcut>=2. If boxcut < 2, the code stops.
For RF calculations only intxc=0 is allowed yet. Moreover,
the GS preparation runs (giving the density file and zeroorder
wavefunctions) must be done with intxc=0
Prior to ABINITv2.3, the choice intxc=1 was favoured (it was the default),
but the continuation of the development of the code lead to prefer
the default intxc=0 . Indeed, the benefit of intxc=1 is
rather small, while making it available for all cases is a
nonnegligible development effort. Other targets are prioritary...
You will notice that many automatice tests use intxc=1. Please,
do not follow this historical choice for your production runs.
Go to the top
 Complete list of input variables
etsfgroups
Mnemonics: ETSF I/O additional GROUPS of variables
Characteristic: DEVELOP
Variable type: integer parameter
Default is 0.
NOTE : NOT USED AT PRESENT (v5.3.0)
This variable is a bitwise combination of what will be written
into / read from a special WFK/DEN/POT file. The contents of the file
follow the Nanoquanta/ETSF file format specifications.
Please check the "etsf_io" module of the ETSF I/O library for possible
values.
Go to the top
 Complete list of input variables
etsfmain
Mnemonics: ETSF I/O MAIN variable
Characteristic: DEVELOP
Variable type: integer parameter
Default is 0.
NOTE : NOT USED AT PRESENT (v5.3.0)
This variable tells what will be written into / read from a
special WFK/DEN/POT file. The contents of the file follow the
Nanoquanta/ETSF file format specifications.
Please check the "etsf_io" module of the ETSF I/O library for possible
values.
Go to the top
 Complete list of input variables
iprcch
Mnemonics: Integer for PReConditioning of CHarge response
Characteristic: DEVELOP
Variable type: integer parameter
Default is 2.If ionmov=4 and iscf=5,iprcch is automatically put to 3. If paral_kgb=1, iprcch is automatically put to 6.
Used when iscf>0, to define:
 the way a change of density is derived from a change of atomic position,
 the way forces are corrected when the SCF cycle is not converged.
Supported values :
 0 => density not changed (fixed charge), forces not corrected
 1 => density not changed, forces corrected with rigid ion hypothesis (atomic charge moved with atom)
 2 => density changed and forces corrected with rigid ion hypothesis (atomic charge moves with atom)
 3 => density changed and forces corrected with a different implementation of the rigid ion hypothesis
 4 => density not changed, forces corrected with the use of Harris functional formula (*)
 5 => density changed using D. Alfe 2ndorder algorithm (**), forces not corrected
 6 => density changed using D. Alfe 2ndorder algorithm (**) and forces corrected with the use of Harris functional formula (*)
No meaning for RF calculations.
For the time being,
 the choice 3 must be used with ionmov=4
and iscf=5.
 the choices 4, 5 or 6 must be used when bandFFT parallelism is selected.
Otherwise, use the choice 2.
(*)Note concerning the use of iprcch=4 or 6 (correction of forces):
The force on the atom located at R is corrected by the addition of the following term:
F_residual=Int[dr.V_residual.dRho_atomic/dR], where Rho_atomic is an atomic (spherical) density.
 When such an atomic density (Rho_atomic) is found in the pseudopotential or PAW file, it is used. If not, a gaussian density
(defined by densty parameter) is used.
 When SCF mixing is done on the density (iscf>=10), the potential residual (V_residual)
is obtained from the density residual with the first order formula V_residual=dV/drho.Rho_residual
and uses the exchangecorrelation kernel dVxc/drho=Kxc which computation is timeconsuming for GGA functionals.
By default the LDA exchangecorrelation kernel is used (even for GGA, for which it seems to give a reasonable accuracy).
Using the exact GGA exchange correlation kernel is always possible by giving a negative value to iprcch.
(**)Note concerning the use of iprcch=5 or 6 (density prediction):
The algorithm is described in Computer Physics Communications 118 (1999) 3133.
It uses an atomic (spherical) density. When such an atomic density is found in the pseudopotential or PAW file, it is used. If not, a gaussian density
(defined by densty parameter) is used.
Also note that, to be efficient, this algorithm requires a minimum convergency of the SCF cycle;
Typically, vres2 (or nres2) has to be small enough (10^{4}...10^{5}).
Go to the top
 Complete list of input variables
iprcfc
Mnemonics: Integer for PReConditioner of Force Constants
Characteristic: DEVELOP
Variable type: integer parameter
Default is 0.
Used when iscf>0, to define the SCF preconditioning scheme.
Potentialbased preconditioning schemes for the SCF loop
are still under development.
The present parameter (force constant part)
describes the way a change of force
is derived from a change of atomic position.
Supported values :
 0 => hessian is the identity matrix
 1 => hessian is 0.5 times the identity matrix
 2 => hessian is 0.25 times the identity matrix
 1=> hessian is twice the identity matrix
 ... (simply corresponding power of 2 times the identity matrix)
No meaning for RF calculations.
Go to the top
 Complete list of input variables
irandom
Mnemonics: Integer for the choice of the RANDOM number generator
Characteristic: DEVELOP
Variable type: integer parameter
Default is 3.
For the time being, only used when imgmov=9
(Langevin PathIntegral Molecular Dynamics).
irandom defines the random number generator.
Supported values :
 1 => "uniformrandom", delivered with ABINIT package (initially comes from numerical receipies).
 2 => intrinsic Fortran 90 random number generator.
 3 => "ZBQ" nondeterministic random number generator by R. Chandler and P. Northrop.
(This was delivered for free at http://www.ucl.ac.uk/~ucakarc/work/index.html#code", but
the latter address does not seem to work anymore. In any case, the initial copyright is not violated
by the files/documentation present in the ABINIT package).
irandom=3 is strongly adviced when performing Molecular Dynamics restarts (avoids bias).
Go to the top
 Complete list of input variables
isecur
Mnemonics: Integer for level of SECURity choice
Characteristic: DEVELOP
Variable type: integer
Default is 0.
In the presently used algorithms, there is a compromise
between speed and robustness, that can be tuned by
using isecur.
If isecur =0, an extrapolation of outofline
data is allowed, and might save one nonSCF calculation every
two line minimisation when some stability conditions
are fulfilled (since there are 2 nonSCF calculations
per line minimisation, 1 out of 4 is saved)
Using isecur=1 or higher integers will raise gradually
the threshold to make extrapolation.
Using isecur=2 will allow to save 2 nonSCF calculations
every three line minimisation, but this can make the
algorithm unstable. Lower values of isecur allows
for more (tentative) savings. In any case, there must
be one nonSCF computation per line minimisation.
No meaning for RF calculations yet.
Go to the top
 Complete list of input variables
istatr
Mnemonics: Integer for STATus file repetition Rate
istatshft
Mnemonics: Integer for STATus file SHiFT
Characteristic: DEVELOP, NO_MULTI
Variable type: integer parameter
Default is 49, and 149 for Cray T3E (slow I/Os).Values lower than 10 may not work on some machines. Default istatshft is 1.
Govern the rate of output of the status file.
This status file is written when the number of the
call to the status
subroutine is equal to 'istatshft' modulo 'istatr', so that
it is written once every 'istatr' call.
There is also a writing for each of the 5 first calls,
and the 10th call.
Go to the top
 Complete list of input variables
istwfk
Mnemonics: Integer for choice of STorage of WaveFunction at each k point
Characteristic:
Variable type: integer array istwfk(nkpt)
Default is 0 for all k points for GS calculations. For RF calculations, the Default is not used : istwfk is forced to be 1 deep inside the code, for all k points. For spinorbit calculations (nspinor=2), istwfk is also forced to be 1, for all k points.
Control the way the
wavefunction for each kpoint is stored inside ABINIT,
in reciprocal space.
For the GS calculations, in the "cg" array containing the
wavefunction coefficients, there is for each kpoint
and each band, a segment cg(1:2,1:npw). The 'full' number
of plane wave is determined by ecut.
However, if the kpoint coordinates are build
only from zeroes and halves (see list below),
the use of timereversal symmetry (that connects coefficients)
has been implemented, in order to use realtocomplex
FFTs (see fftalg), and to treat explicitly only half
of the number of plane waves (this being used as 'npw').
For the RF calculations, there is not only the "cg"
array, but also the "cgq" and "cg1" arrays. For the
timereversal symmetry to decrease the number of
plane waves of these arrays, the q vector MUST be (0 0 0).
Then, for each k point, the same rule as for the
RF can be applied.
WARNING (991018) : for the time being, the timereversal
symmetry cannot be used in the RF calculations.
 1=> do NOT take advantage of the timereversal symmetry
 2=> use timereversal symmetry for k=( 0 0 0 )
 3=> use timereversal symmetry for k=(1/2 0 0 )
 4=> use timereversal symmetry for k=( 0 0 1/2)
 5=> use timereversal symmetry for k=(1/2 0 1/2)
 6=> use timereversal symmetry for k=( 0 1/2 0 )
 7=> use timereversal symmetry for k=(1/2 1/2 0 )
 8=> use timereversal symmetry for k=( 0 1/2 1/2)
 9=> use timereversal symmetry for k=(1/2 1/2 1/2)
 0=> (preprocessed) for each k point, choose automatically
the appropriate timereversal option when it is allowed,
and chose istwfk=1 for all the other k points.
Note that the input variable "mkmem" also controls
the wavefunction storage, but at the
level of core memory versus disk space.
Go to the top
 Complete list of input variables
ldgapp
Mnemonics: LeinDobsonGross approximation
Characteristic: DEVELOP
Variable type: integer parameter
Default is 0.
Concern only the ACFD computation of the correlation energy
(optdriver=3).
If ldgapp > 0, the Lein, Dobson and Gross firstorder
approximation to the correlation energy is also computed during the ACFD run.
[See Lein, Dobson and Gross, J. Comput. Chem. 20,12 (1999)]. This
is only implemented for the RPA, for the PGG kernel and
for the linear energy optimized kernel at the present time.
Go to the top
 Complete list of input variables
macro_uj
Mnemonics: Macro variable that activates the determination of the U and J parameter (for the PAW+U calculations)
Characteristic: DEVELOP
Variable type: integer parameter
Default is 0.
Sets proper input values for the determination of U and J i.e.
for pawujat (first atom treated with PAW+U),
irdwfk (=1),
tolvrs (=10^(8)),
nstep (=255),
diemix (=0.45),
atvshift (pawujat) pawujv). Do not overwrite these variables manually unless you know what you do.
 macro_uj=1 (and nsppol=2) Standard procedure to determine U on atom pawujat through a shift of the potential on both spin channels.
 macro_uj=1 (and nsppol=1) Non standand procedure to determine U from potential shift on atom pawujat (experimental).
 macro_uj=2 (and nsppol=2) Non standand procedure to determine U from potential shift on atom pawujat through a shift on spin channel 1 on this atom and the response on this channel (experimental).
 macro_uj=3 (and nsppol=2) Standand procedure to determine J from potential shift on spin channel 1 on atom pawujat and response on spin channel 2 (experimental).
Determination of U and J can be done only if the symmetry of the atomic arrangement is reduced and the atom pawujat is not connected to any other atom by symmetry relations (either input reduced symmetries manually, define concerned atom as a separate atomic species or shift concerned atom from ideal postion).
Go to the top
 Complete list of input variables
maxnsym
Mnemonics: MAXimum Number of SYMetries
Characteristic: DEVELOP
Variable type: integer parameter
Default is 384.
Gives the maximum number of spatial symetries allowed in the memory.
The default value is sufficient for most applications; it has to be increase in the case of the use of a supercell (unit cell identically repeated).
Go to the top
 Complete list of input variables
mqgrid
Mnemonics: Maximum number of Qspace GRID points for pseudopotentials
Characteristic: DEVELOP
Variable type: integer parameter
Default is 3001.
Govern the size of the onedimensional information
related to pseudopotentials, in reciprocal space :
potentials, or projector functions.
Go to the top
 Complete list of input variables
nbandsus
Mnemonics: Number of BANDs to compute the SUSceptibility
Characteristic:
Variable type: integer parameter
Default is nband.
Number of bands to be used in the calculation of the susceptibility matrix (ACFD only).
Go to the top
 Complete list of input variables
nbdblock
Mnemonics: Number of BanDs in a BLOCK
Characteristic: DEVELOP
Variable type: integer parameter
Default is 1
In case of nonstandard, blocked algorithms for the
optimization of the wavefunctions (that is, if
wfoptalg=4):
 if wfoptalg=4,
nbdblock defines the number of blocks (the number of bands in the block is
then nband/nbdblock ).
Go to the top
 Complete list of input variables
nctime
Mnemonics: NetCdf TIME between output of molecular dynamics informations
Characteristic: DEVELOP
Variable type: integer parameter
Default is 0
When nctime is nonzero, the molecular dynamics information
is output in NetCDF format, every nctime time step. Here is the content of an example file :
netcdf md32.outH_moldyn1 {
dimensions:
time = UNLIMITED ; // (11 currently)
DimTensor = 6 ;
DimCoord = 3 ;
NbAtoms = 32 ;
DimVector = 3 ;
DimScalar = 1 ;
variables:
double E_pot(time) ;
E_pot:units = "hartree" ;
double E_kin(time) ;
E_kin:units = "hartree" ;
double Stress(time, DimTensor) ;
Stress:units = "hartree/Bohr^3" ;
double Position(time, DimCoord, NbAtoms) ;
Position:units = "Bohr" ;
double Celerity(time, DimCoord, NbAtoms) ;
Celerity:units = "Bohr/(atomic time unit)" ;
double PrimitiveVector1(DimVector) ;
double PrimitiveVector2(DimVector) ;
double PrimitiveVector3(DimVector) ;
double Cell_Volume(DimScalar) ;
Cell_Volume:units = "Bohr^3" ;
}
Go to the top
 Complete list of input variables
ndyson
Mnemonics: Number of points to be added for the solution of the DYSON equation
Characteristic:
Variable type: integer parameter
Default is 1.
Number of points to be added to lambda=0 and lambda=1 (that are always calculated
for the integration ober the coupling constant lambda in the ACFD calculation of the
exchangecorrelation energy.
 ndyson=1 : let the code decide how many points to use (presently, 3 points
for idyson=1 or 3, and 9 points for
idyson=2)
 ndyson=0 : only compute the noninteracting and fullyinteracting
susceptibility matrices.
 ndyson>0 : use ndyson more points in ]0,1[
Go to the top
 Complete list of input variables
nfreqsus
Mnemonics: Number of FREQuencies for the SUSceptibility matrix
Characteristic: DEVELOP
Variable type: integer parameter
Default is 0
If 0, no computation of frequencydependent susceptibility matrix.
If 1 or larger, will read freqsuslo and
freqsusin
to define the frequencies
(1 is currently the only value allowed)
Go to the top
 Complete list of input variables
nloalg
Mnemonics: Non Local ALGorithm
Characteristic: DEVELOP
Variable type: integer variable
Default is 4 (normconserving psps) or 14 (PAW), except for the NEC where it is 2 (or 12).
Allows to choose the algorithm
for nonlocal operator application.
On superscalar architectures, the Default nloalg=4/14 is the best,
but you can save memory by using nloalg=4.
More detailed explanations:
Units figure of nloalg:
 nloalg=?2 : Should be efficient on vector machines. It is
indeed the fastest algorithm for the NEC, but
actual tests on Fujitsu machine did not gave better
performances than the other options.
 nloalg=?3 : same as nloalg==2, but the loop order is inverted.
 nloalg=?4 : same as nloalg==3, but maximal use of registers
has been coded. This should be especially efficient on
scalar and superscalar machines. This has been
confirmed by tests.
Tens figure of nloalg:
 nloalg<10 : (k+G) vectors are not precomputed, in order to save memory space.
 nloalg>=10 : (k+G) vectors are precomputed, once per kpoint.
Sign of nloalg:
Negative values of
nloalg correspond positive ones,
where the phase precomputation has been suppressed,
in order to save memory space: an array
double precision :: ph3d(2,npw,natom)
is saved (typically half the space needed
for the wavefunctions at 1 k point  this corresponds
to the silicon case). However, the computation of phases
inside nonlop is somehow timeconsuming.
Note: internally, nloalg is an array nloalg(1:5),
that also allows to initialize several internal variables (not documented):
 nloalg(1)=mod(nloalg,10)
 jump=nloalg(2)
 mblkpw=nloalg(3)
 mincat=nloalg(4)
 nloalg(5)=nloalg/10
However, only nloalg(1)+10*nloalg(5) is read as an input variable.
Go to the top
 Complete list of input variables
nnsclo
Mnemonics: Number of NonSelf Consistent LOops
Characteristic: DEVELOP
Variable type: integer parameter
Default is 0.
Gives the maximum number of
nonselfconsistent loops of nline line minimisations,
in the SCF case (when iscf >0). In the case iscf <=0 ,
the number of nonselfconsistent loops is determined
by nstep.
The Default value of 0 correspond to make
the two first fixed potential determinations
of wavefunctions have 2 nonself consistent loops,
and the next ones to have only 1 nonself consistent loop.
Go to the top
 Complete list of input variables
normpawu
Mnemonics: NORMalize atomic PAW+U projector
Characteristic: DEVELOP
Variable type: integer normpawu(ntypat)
Default is 0
Defines whether the atomic wave function (used as projectors in PAW+U) should be renormalized to 1
within PAW sphere.
 normpawu=0 : leave projector
 normpawu=1 : renormalize
Go to the top
 Complete list of input variables
noseft
Mnemonics:
Characteristic:
Variable type:
Default is
TO BE DOCUMENTED
Go to the top
 Complete list of input variables
noseinert
Mnemonics:
Characteristic:
Variable type:
Default is
TO BE DOCUMENTED
Go to the top
 Complete list of input variables
npulayit
Mnemonics: Number of PULAY ITerations for SC mixing
Characteristic: DEVELOP
Variable type: integer parameter
Default is 7.
Needed only when
iscf=7 or 17.
Gives the number of previous iterations involved in Pulay mixing (mixing
during electronic SC iterations).
Go to the top
 Complete list of input variables
np_slk
Mnemonics: Number of mpi Processors used for ScaLapacK calls
Characteristic: DEVELOP
Variable type: integer parameter
Default is 1000000
Only relevant (for GroundState calculations) when paral_kgb=1
and LOBPCG algorithm is used.
When using Scalapack (or any similar Matrix Algebra library), it is well known that
the efficiency of the eigenproblem resolution saturates as the number of CPU cores
increases. It is better to use a smaller number of CPU cores for the LINALG calls.
This maximum number of cores can be set with np_slk.
A large number for np_slk (i.e. 1000000) means that all cores are used for the
Linear Algebra calls.
Go to the top
 Complete list of input variables
nscforder
Mnemonics: SCaling Function ORDER
Characteristic:
Variable type:
Default is 16
This variable controls the order of used scaling functions when the Hartree potential is computed using the Poisson solver (see icoulomb imput variable). This variable is of seldom use since the default value is large enough. Nonetheless, possible values are 8, 14, 16, 20, 24, 30, 40, 50, 60, 100. Values greater than 20 are included in ABINIT for test purposes only.
Go to the top
 Complete list of input variables
optforces
Mnemonics: OPTions for the calculation of FORCES
Characteristic: DEVELOP
Variable type: integer parameter
Default is 2. However, optforces is automatically set to 1 when toldff or tolrff are nonzero.
Allows to choose options for the calculation of forces.
 optforces=0 : the forces are set to zero, and many steps of the
computation of forces are skipped
 optforces=1 : calculation of forces at each SCF iteration, allowing
to use forces as criterion to stop the SCF cycles
 optforces=2 : calculation of forces at the end of the SCF iterations
(like the stresses)
Go to the top
 Complete list of input variables
optfreqsus
Mnemonics: OPTion for the generation of FREQuency grids for the SUSceptibility
Characteristic: DEVELOP
Variable type: integer parameter
Default is 2
Selects the type of frequency grid that will be used to compute ACFD energies,
as follows:
 0: use preassigned mesh (see defs_suscep module)
 nfreqsus= 2: pickup 2 highest frequencies of H_2 mesh
 nfreqsus= 8: pickup 8 frequencies inside Be_2 mesh, depending on freq1
 nfreqsus= 9: pickup 9 frequencies inside H_2 mesh, depending on freq1
 nfreqsus=11: pickup 11 highest frequencies of Be_2 mesh
 nfreqsus=16: use full He mesh
 nfreqsus=18: use full H_2 mesh
 nfreqsus=20: use full He mesh good up to 8 Ha
 nfreqsus=24: use full Be_2 mesh
 1: create linear mesh and weights for quadrature by Taylor rule
 freqsusin=starting frequency
 freqsuslo=frequency increment
 2: create mesh and weights using GaussLegendre quadrature
A first GaussLegendre mesh is built for interval [0,freqsuslo], then
a second one is obtained by transforming the first for the
[freqsuslo,+\infty[ interval. freqsusin may be use to compress or expand
the mesh on the second interval (a value of 1.0 is adequate for
most cases). For practical reasons, nfreqsus must be even.
See also:
nfreqsus,
freqsuslo,
freqsusin.
Go to the top
 Complete list of input variables
optnlxccc
Mnemonics: OPTion for the calculation of NonLinear eXchangeCorrelation Core Correction
Characteristic: DEVELOP
Variable type: integer parameter
Default is 1.
Allows to choose options for the calculation of nonlinear XC correction.
At present, only relevant for the FHI type of pseudopotentials, with pspcod=6 .
 optnlxccc=1 : uses the old psp6cc.f routine, with inconsistent treatment of realspace derivatives of the core function (computed in this routine, while splined in the other parts of the code)
 optnlxccc=2 : consistent calculation derivatives, in the psp6cc_dhr.f routine from DHamann.
Go to the top
 Complete list of input variables
ortalg
Mnemonics: ORThogonalisation ALGorithm
Characteristic: DEVELOP
Variable type: integer parameter
Default is 2 when wfoptalg < 10,
2 when wfoptalg >=10.
Allows to choose the algorithm
for orthogonalisation.
Positive or zero values make two projections per
line minimisation, one before the preconditioning, one
after. This is the clean application of the bandbyband
CG gradient for finding eigenfunctions.
Negative values make only one projection per line mininisation.
The orthogonalisation step is twice faster, but the
convergence is less good. This actually calls to
a better understanding of this effect.
ortalg=0, 1 or 1 is the conventional coding, actually
identical to the one in versions prior to 1.7
ortalg=2 or 2 try to make better use of existing registers
on the particular machine one is running.
More demanding use of registers
is provided by ortalg=3 or 3, and so on.
The maximal value is presently 4 and 4.
Tests have shown that ortalg=2 or 2 is suitable for
use on the available platforms.
Go to the top
 Complete list of input variables
papiopt
Mnemonics: PAPI OPTion
Characteristic:
Variable type: integer
Default is 0
PAPI aims to
provide the tool designer and application engineer with a
consistent interface and methodology for use of the
performance counter hardware found in most major
microprocessors. PAPI enables software engineers to see, in
near real time, the relation between software performance and
processor events.
This option can be used only when ABINIT has been compiled with the
enablepapi
configure option.
If papiopt=1, then PAPI counters are used instead of
the usual time() routine. All the timing output of ABINIT is
then done with PAPI values. The measurements are more accurate and
give also access to the flops of the calculation.
Go to the top
 Complete list of input variables
pawprt_b
Mnemonics: PAW print band
Characteristic: DEVELOP
Variable type: integer
Default is 0
Forces the output of the allelectron wavefunction for
only a single band. To be used in conjuction with:
pawprtwf=1 and
pawprt_k.
The indexing of the bands start with one for the lowest occupied band
and goes up from there.
Go to the top
 Complete list of input variables
pawprt_k
Mnemonics: PAW print kpoint
Characteristic: DEVELOP
Variable type: integer
Default is 0
Forces the output of the allelectron wavefunction for
only a single kpoint. To be used in conjuction with:
pawprtwf=1 and
pawprt_b.
The indexing follows the order in ouptput of the internal
variable kpt in the beginning of the run.
Go to the top
 Complete list of input variables
pawujat
Mnemonics: PAW+macro_UJ, ATom number
Characteristic: DEVELOP
Variable type: integer
Default is 1, i.e. the first atom treated with PAW+U.
Determines the atom for which U (or J) should be determined. See also macro_uj.
Go to the top
 Complete list of input variables
pawujrad
Mnemonics: PAW+macro_UJ, sphere RADius
Characteristic: DEVELOP
Variable type: real
pawujrad has the
'LENGTH' characteristics.
Default is 20 a.u.
The sphere radius serves to extrapolate the U value calculated at r_paw to a larger sphere radius.
See also macro_uj.
As most projector functions are localized within r_paw to ≈80%,
20 a.u. contains ≈100% of the wavefunction and corresponds to r_paw → ∞.
Go to the top
 Complete list of input variables
pawujv
Mnemonics: PAW+macro_UJ, potential shift (V)
Characteristic: DEVELOP
Variable type: real,
pawujv has the
'ENERGY' characteristics.
Default is 0.1 eV.
Amplitude of the potential shift for the determination of U (or J). See also macro_uj.
Go to the top
 Complete list of input variables
prepscphon
Mnemonics: PREPare SelfConsistent PHONon calculation
Characteristic: DEVELOP
Variable type: integer
Default is 0
Print PCINFO, PHFREQ, and PHVEC files, for use with selfconsistent phonon runs, after a perturbation
calculation. Only prints out files for the present qpoint, and there is presently no tool to symmetrize
or merge these files, so use anaddb instead (with prtscphon input variable). The abinit input
variable is destined to someday bypass the use of anaddb for scphon calculations.
Go to the top
 Complete list of input variables
prtbltztrp
Mnemonics: PRinT output for BoLTZTRaP code
Characteristic: DEVELOP
Variable type: integer
Default is 0
Print out geometry (_BLZTRP_GEOM) and eigenenergy (_BLZTRP_EIGEN) files for the
BoltzTraP code by Georg Madsen.
Go to the top
 Complete list of input variables
prtcif
Mnemonics: PRinT Crystallographic Information File
Characteristic: DEVELOP
Variable type: integer flag
Default is 0
If set to 1, a CIF file is output with the crystallographic data for the present run (cell size shape and atomic positions).
Go to the top
 Complete list of input variables
prtdipole
Mnemonics: PRinT DIPOLE
Characteristic: DEVELOP
Variable type: integer
Default is 0
Print out dipole of unit cell, calculated in real space for the primitive cell only. Under development.
Go to the top
 Complete list of input variables
prtnest
Mnemonics: PRinT NESTing function
Characteristic: DEVELOP
Variable type: integer flag
Default is 0
If set to 1, the nesting function for the kpoint grid is printed. For the moment the path in q space for the nesting function is fixed, but will become an input as well.
Go to the top
 Complete list of input variables
prtposcar
Mnemonics: PRinT POSCAR file
Characteristic: DEVELOP
Variable type: integer
Default is 0
Print out VASPstyle POSCAR and FORCES files, for use with PHON or frophon codes for frozen phonon calculations.
See the associated script in ~abinit/extras/post_processing/phondisp2abi.py for further details on interfacing
with PHON, PHONOPY, etc...
Go to the top
 Complete list of input variables
recefermi
Mnemonics: RECursion  initial guess of the FERMI Energy
Characteristic: DEVELOP
Variable type: real
Default is 0
Used in Recursion method (tfkinfunc=2).
In the first SCF calculation it fixes the initial guess for the Fermi energy.
Go to the top
 Complete list of input variables
recgratio
Mnemonics: RECursion  Grid Ratio
Characteristic: DEVELOP
Variable type: integer
Default is 1
Used in Recursion method (tfkinfunc=2).
It represents the ratio of the two grid step: recgratio=fine_step/coarse_step and
it is bigger or equal than 1. It introduces a doublegrid system which permits
to compute the electronic density on a coarse grid, using a fine grid
(defined by ngfft) in the
discretisation of the green kernel (see recptrott).
Successively the density and the recursion coefficients are interpolated on the fine grid by
FFT interpolation. Note that ngfft/recgratio=number of points of the
coarse grid has to be compatible with the parallelization parameters.
Go to the top
 Complete list of input variables
recnpath
Mnemonics: RECursion  Number of point for PATH integral calculations
Characteristic: DEVELOP
Variable type: integer
Default is 500
Used in Recursion method (tfkinfunc=2).
Determine the number of discretisation points to compute some path
integral in the recursion method ; those path integrals are used to
compute the entropy and the eigenvalues energy. during the latest SFC
cycles.
Go to the top
 Complete list of input variables
recnrec
Mnemonics: RECursion  Number of RECursions
Characteristic: DEVELOP
Variable type: integer
Default is 10
Used in Recursion method (tfkinfunc=2).
Determine the maximum order of recursion, that is the dimension of the
krylov space we use to compute density. If the precision setten by
rectolden is reached before that order, the recursion method
automatically stops.
Go to the top
 Complete list of input variables
recptrott
Mnemonics: RECursion  TROTTer P parameter
Characteristic: DEVELOP
Variable type: integer
Default is 0
Used in Recursion method (tfkinfunc=2).
Determine the trotter parameter used to compute the exponential of the hamiltonian in the
recursion method: exp(beta*(Delta + V)) ~ (exp(beta/(4*recptrott)
V) exp(beta/(4*recptrott) Delta) exp(beta/(4*recptrott)
V))^(2*recptrott).
If set to 0, we use recptrott = 1/2 in the above formula.
Increasing recptrott improve the accuracy of the trotter formula, but
increase the dicretisation error: it may be necessary to increase
ngfft. The discretisation error is essentially the discretisation
error of the green kernel exp((recptrott/beta*r^2)) on the ngfft
grid.
Go to the top
 Complete list of input variables
recrcut
Mnemonics: RECursion  CUTing Radius
Characteristic: DEVELOP
Variable type: integer
Default is 0
Used in Recursion method (tfkinfunc=2).
Used to improve the
computational time in the case of the recursion method in a large
cell: the density at a point will be computed with taking account only of
a sphere of radius recrcut.
Go to the top
 Complete list of input variables
rectesteg
Mnemonics: RECursion  TEST on Electron Gas
Characteristic: DEVELOP
Variable type: integer
Default is 0
Used in Recursion method (tfkinfunc=2).
It is used to test an electron gas by putting the ion potential
equal to zero.
Go to the top
 Complete list of input variables
rectolden
Mnemonics: RECursion  TOLerance on the difference of electronic DENsity
Characteristic: DEVELOP
Variable type: real
Default is 0.0E00 (to change)
Used in Recursion method (tfkinfunc=2).
Sets a tolerance for differences of electronic density that, reached TWICE
successively, will cause one SCF cycle to stop. That electronic
density difference is computed in the infinity norm (that is, it is
computed pointbypoint, and then the maximum difference is computed).
Go to the top
 Complete list of input variables
suskxcrs
Mnemonics: SUSceptibility times KXC treated in real space
Characteristic: DEVELOP
Variable type: integer
Default is 0
Only relevant for the ACFD calculation of total energies.
If suskxcrs=1, the XC kernel is not treated in
reciprocal space, but combined with the susceptibility (chi_0), to avoid
Kxc divergences where the density goes to zero (G. Onida & M. Gatti !)
Not applicable for RPA (as there should be a Kxc present). Initially tested for ikhxc==2 (ALDA).
Go to the top
 Complete list of input variables
symmorphi
Mnemonics: SYMMORPHIc symmetry operations
Characteristic: DEVELOP, GW
Variable type: integer parameter
Default is 1
With symmorphi=1, symmetry operations with a nonsymmorphic vector are allowed.
With symmorphi=0, they are not allowed.
In the latter case, if the symmetry operations are specified in the input file, the code
will stop and print an error message if a nonsymmorphic vector is encountered.
By contrast, if the symmetry operations are to be determined automatically
(if nsym=0), then the set of symmetries will
not include the nonsymmorphic operations.
Note : this feature exist because in a previous status of the GW calculations, nonsymmorphic
symmetry operations could not be exploited. Thus, the k points were restricted
to the IBZ. In order to prepare GW calculations, and to perform GW calculations,
symmorphi=0 was to be used, together with nsym=0.
Go to the top
 Complete list of input variables
tfkinfunc
Mnemonics: ThomasFermi KINetic energy FUNCtional
Characteristic: DEVELOP
Variable type: integer
Default is 0

tfkinfunc=1 : ThomasFermi
kinetic functional (explicit functional of the density)
is used instead of KohnSham kinetic energy functional (implicit functional of the density
through KohnSham wavefunctions).
 tfkinfunc=2 : the Recursion Method is used in order to compute
electronic density, entropy, Fermi energy and eigenvalues energy. This
method computes the density without computing any orbital, is
efficient at high temperature, with a efficient parallelization
(almost perfect scalability). When that option is in use, the
ecut input variable is no longer a
convergence parameter ;
ngfft becomes
the main convergence parameter: you should adapt ecut for the ngfft
grid you need (it is not yet automatically computed). Other
convergence parameter are for the energetic values:
recnrec, recptrott,
recnpath.
Since the convergence of the selfconsistent cycle
is determined directly by the convergence of the density:
toldfe,
toldff
tolrff,
tolvrs,
tolwfr are not used, and are replaced by
rectolden; the energetic values, except for the fermi energy, are only
computed during the latest SFC cycle : the output file will show a
jump of the total energy at the end, but it is not because of a bad
convergence behavior. Computational speed can be improved by the use
of recrcut and recgratio.
The recursion method has not be tested in the case of non cubic cell
or with the use of symmetries.
In the recursion method the following variables are set to:
useylm=1,
userec=1.
Go to the top
 Complete list of input variables
tolrde
Mnemonics: TOLerance on the Relative Difference of Eigenenergies
Characteristic:
Variable type: real parameter
Default is 0.005
Sets a tolerance for the ratio of differences of eigenenergies
in the line minisation conjugategradient algorithm. It compares the
decrease of the eigenenergy due to the last line minimisation, with the
one observed for the first line minimisation.
When the ratio is lower than tolrde,
the next line minimisations are skipped.
The number of line minimisations is limited by
nline anyhow.
This stopping criterion is present for both GS and RF calculations.
In RF calculations, tolrde is actually doubled before comparing with the abovementioned
ratio, for historical reasons.
Go to the top
 Complete list of input variables
use_slk
Mnemonics: USE ScaLapacK
Characteristic: DEVELOP
Variable type: integer parameter
Default is 0
If set to 1, enable the use of ScaLapack within LOBPCG.
Go to the top
 Complete list of input variables
usedmft
Mnemonics: USE Dynamical Mean Field Theory
Characteristic: DEVELOP
Variable type: integer parameter
Default is 0
If set to 1, enable the use of LDA+DMFT, see in particular the important variables
dmft_solv,
dmftbandi,
dmftbandf,
dmft_nwli,
dmft_nwlo,
dmft_tollc,
and dmft_iter.
DMFT is currently available for collinear (nspinor=1) polarized or unpolarized calculations (nspden=nsppol=2 or nspden=nsppol=1)
and for non collinear calculations (nspinor=2,nspden=4,nsppol=1). However it is not yet available
for collinear antiferromagnetic calculations (nspden=2,nsppol=1) and non collinear non magnetic calculations (nspden=1, nsppol=1,nspinor=2).
Only static calculations without relaxation or dynamics are possible. Relevant quantity from
converged DMFT calculations are total energy and spectral function. Total and partail spectral
functions can be obtained with prtdos=1 and can be found in files OUTSpFunc* (where OUT is the root for
output files).
(see Amadon, B., Lechermann, F., Georges, A., Jollet, F., Wehling, T. O., and Lichtenstein, A. I. Phys. Rev. B 77(20), (2008)
and B Amadon 2012 J. Phys.: Condens. Matter 24 075604 )
Go to the top
 Complete list of input variables
useria, userib, useric, userid, userie
Mnemonics: USER Integer variables A, B, C, D and E
Characteristic:
Variable type: integers
Default is 0 .
These are userdefinable integers which the user may
input and then utilize in subroutines of his/her own
design. They are not used in the official versions
of the ABINIT code, and should ease independent
developments (hopefully integrated in the official
version afterwards).
Internally, they are available in the dtset structured datatype,
e.g. dtset%useria .
Go to the top
 Complete list of input variables
userra, userrb, userrc, userrd, userre
Mnemonics: USER Real variables A, B, C, D, and E
Characteristic:
Variable type: real numbers
Default is 0.0 .
These are userdefinable with the same purpose as useri.
Go to the top
 Complete list of input variables
useylm
Mnemonics: USE YLM (the spherical harmonics)
Characteristic: DEVELOP
Variable type: integer parameter
Default is 0 for normconserving pseudopotential(s), 1 for Projector AugmentedWave (PAW), 1 when the recursion method is used (tfkinfunc=1).
When this flag is activated, the nonlocal operator is applied using an algorithm based on spherical harmonics. Nonlocal projectors are used with their usual form:
P_{lmn}(r)=Y_{lm}(r)*p_{ln}(r)
When useylm=0, the sum over Y_lm can be reduced to a Legendre polynomial form.
Go to the top
 Complete list of input variables
vdw_nfrag
Mnemonics: van der Waals Number of interacting FRAGments
Characteristic: DEVELOP
Variable type: integer vdw_nfrag
Default is 1
The absolute value of vdw_nfrag is the number of vdW interacting
fragments in the unit cell. As wannierization takes place in reciprocal space, the MLWF
center positions could be translated by some lattice vector from the cell where atoms
are placed. If vdw_nfrag >= 1 then MLWFs are translated to the original
unit cell, otherwise the program will keep the positions obtained by Wannier90. The
later is usually correct if some atoms are located at the corners or at limiting
faces of the unit cell.
Used only if vdw_xc=10,11.
Go to the top
 Complete list of input variables
vdw_tol
Mnemonics: van der Waals TOLerance
Characteristic: DEVELOP
Variable type: real number
Default is 10^10
Used only when Van der Waals DFTD2 correction is activated (vdw_xc=5).
The DFTD2 (S. Grimme approach) dispersion potential is implemented as a pair potential.
The number of pairs of atoms contributing to the potential is necessarily limited. To be included
in the potential a pair of atom must have contribution to the energy larger than vdw_tol.
Go to the top
 Complete list of input variables
vdw_typfrag
Mnemonics: van der Waals TYPe of FRAGment
Characteristic: DEVELOP
Variable type: integer array vdw_typfrag(natom)
Default is 1*natom
This array defines the interacting fragments by assigning to each atom an
integer index from 1 to vdw_nfrag. The ordering of vdw_typfrag is the same as
typat or xcart. Internally each MLWF is
assigned to a given fragment by computing the distance to the atoms. MLWFs belong to
the same fragment as their nearest atom. The resulting set of MLWFs in each interacting fragment
can be found in the output file in xyz format for easy visualization.
Used only if vdw_xc=10,11.
Go to the top
 Complete list of input variables
vdw_supercell
Mnemonics: Van Der Waals correction from Wannier functions in SUPERCELL
Characteristic: DEVELOP
Variable type: integer array vdw_supercell(3)
Default is 0 0 0
Set of dimensionless positive numbers which define the maximum multiples
of the primitive translations (rprimd) in the supercell construction. Each component of vdw_supercell
indicates the maximum number of cells along both positive or negative directions of the corresponding
primitive vector i.e. the components of rprimd. In the case of layered
systems for which vdW interactions occur between layers made of tightly bound atoms, the evaluation
of vdW corrections comming from MLWFs in the same layer (fragment) must be avoided. Both a negative or
null value for one component of vdw_supercell will indicate that the corresponding direction
is normal to the layers.
Used only if vdw_xc=10,11.
Go to the top
 Complete list of input variables
vdw_xc
Mnemonics: van der Waals eXchangeCorrelation functional
Characteristic: DEVELOP
Variable type: integer
Default is 0
Selects a vanderWaals density functional to
apply the corresponding correction to the exchangecorrelation energy.
If set to zero, no correction will be applied.
Possible values are:
 0: no correction.
 1: apply vdWDF1 (DRSLL) from Dion et al.
doi:10.1103/PhysRevLett.92.246401
 2: apply vdwDF2 (LMKLL) from Lee et al.
arXiv:1003.5255v1
 5: apply vdwDFTD2 as proposed by S. Grimme (adding a semiempirical dispersion potential)
Available only for groundstate calculations ; see vdw_tol variable
to control convergency
J. Comp. Chem. 27, 1787 (2006)
 10: evaluate the vdW correlation energy from maximally localized Wannier functions, as proposed by
P. L. Silvestrelli, also known as vdWWF1 method. doi:10.1103/PhysRevLett.100.053002,
doi:10.1016/j.cpc.2011.11.003
 11: evaluate the vdW correlation energy from maximally localized Wannier functions, as proposed by
A. Ambrosetti and P. L. Silvestrelli, also known as vdWWF2 method. doi:10.1103/PhysRevB.85.073101
For vdw_xc=1 and vdw_xc=2, the implementation follows the strategy devised
in the article of RománPérez and Soler
(doi:10.1103/PhysRevLett.103.096102).
Go to the top
 Complete list of input variables
wfoptalg
Mnemonics: WaveFunction OPTimisation ALGorithm
Characteristic: DEVELOP
Variable type: integer parameter
Default is 0 when usepaw=0 (normconserving pseudopotentials),
10 when usepaw=1 (PAW).
Default is 14 if paral_kgb=1.
Allows to choose the algorithm
for the optimisation of the wavefunctions.
The different possibilities are :
 wfoptalg=0 : standard statebystate conjugate gradient algorithm,
with no possibility to parallelize over the states;
 wfoptalg=2 : minimisation of the residual with respect
to different shifts, in order to cover the whole set of occupied
bands, with possibility to parallelize over blocks of states (or bands).
The number of states in a block
is defined in nbdblock.
THIS IS STILL IN DEVELOPMENT.
 wfoptalg=3 : minimisation of the residual with respect
to a shift. Available only in the nonselfconsistent case
iscf=2,
in order to find eigenvalues and wavefunctions close to a
prescribed value.
 wfoptalg=4 : (see also wfoptalg=14), a parallel code based on the Locally Optimal
Block Preconditioned Conjugate Gradient (LOBPCG) method of Knyazev.
Reference : A.V. Knyazev, "Toward the Optimal Preconditioned Eigensolver
: Locally Optimal Block Preconditioned Conjugate Gradient Method". SIAM
Journal on Scientific Computing 23, pp517541 (2001).
The implementation rests
on the
matlab program by Knyazev.
Reference A. V. Knyazev, I. Lashuk, M. E. Argentati, and E. Ovchinnikov,
Block Locally Optimal Preconditioned Eigenvalue Xolvers (BLOPEX) in
hypre and PETSc (2007). SIAM Journal on Scientific Computing (SISC).
25(5): 22242239.
For more
information see
F. Bottin, S. Leroux, A. Knyazev, G. Zerah, Large scale
ab initio calculations based on three levels of parallelization. (2008).
Computational Material Science, 42(2), 329336.
 wfoptalg=10 : (for PAW) standard statebystate conjugate gradient algorithm,
with no possibility to parallelize over the states, but modified
scheme described in Kresse, Furthmuller, PRB 54, 11169 (1996)
(modified kinetic energy, modified preconditionning, minimal
orthogonalization, ...) ;
 wfoptalg=14 :
the recommended for massively parallel code, the same as wfoptalg=4 except that the preconditioning of
the block vectors does not depend on the kinetic energy of each band,
and the orthogonalization after the LOBPCG algorithm is no longer
performed. The first modification increases the convergence and the
second one the efficiency.
Go to the top
 Complete list of input variables
xc_denpos
Mnemonics: eXchangeCorrelation  DENsity POSitivity value
Characteristic: DEVELOP
Variable type: real
Default is 1.0e14
For the evaluation of the exchangecorrelation functionals, the density
cannot be negative, or even too small (e.g. the LDA exchange kernel
behaves like the density at power (2/3), and the density is used at the denominator
of different factors in GGAs and metaGGAs.
xc_denpos is the smallest value that the density can assume at the time of the
evaluation of a XC functional, in ABINIT. When then computed density drops below xc_denpos
before attacking the evaluation of the XC functional, then it will be (only for that purpose)
replaced by xc_denpos. Note that the evaluation of the gradients or other quantities
that are densitydependent is performed before this replacement.
It has been observed that the SCF cycle of the TranBlaha mGGA can be quite hard to make converge, for systems
for which there is some vacuum. In this case, setting xc_denpos to 1.0e7 ... 1.0e6 has been seen
to allow good convergence. Of course, this will affect the numerical results somehow, and one should play
a bit with this value to avoid incorrect calculations.
Go to the top
 Complete list of input variables
xc_tb09_c
Mnemonics: Value of the c parameter in the eXchangeCorrelation TB09 functional
Characteristic:
Variable type: real
Default is all 99.99d0
The modified BeckeJohnson exchangecorrelation functional by Tran and Blaha (Phys. Rev. Lett. 102, 226401 (2009)) reads :
V_x(r) = c * V_x^{BR}(r) + (3*c  2) * 1/pi * sqrt(5/12) * sqrt(2*kden(r)/den(r))
in which V_x^{BR}(r) is the BeckeRoussel potential.
In this equation the parameter c can be evaluated at each SCF step according to the following equation :
c = alpha + beta * sqrt(1/V_{cell} * \int_{V_{cell}} grad(den(r))/den(r) d3r)
The c parameter is evaluated thanks to the previous equation when xc_tb09_c is equal to the "magic" default value 99.99.
The c parameter can also be fixed to some (propertyoptimized or materialoptimized) value by using this variable.
Go to the top
 Complete list of input variables