# 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 abinis 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 response-function calculations using abinis, please read the response function help file

##### Copyright (C) 1998-2009 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 .

Goto : ABINIT home Page | Suggested acknowledgments | List of input variables | Tutorial home page | Bibliography

Help files : New user's guide | Abinis (main) | Abinis (respfn) | Mrgddb | Anaddb | AIM (Bader) | Cut3D | Optic | Mrgscr

Files that describe other input variables:

- Basic variables, VARBAS
- File handling variables, VARFIL
- Geometry builder + symmetry related variables, VARGEO
- Ground-state calculation variables, VARGS
- GW variables, VARGW
- Internal variables, VARINT
- Parallelisation variables, VARPAR
- Projector-Augmented Wave variables, VARPAW
- Response Function variables, VARRF
- Structure optimization variables, VARRLX
- Wannier90 interface variables, VARW90

### Content of the file : alphabetical list of developper variables.

A. accesswff atvshift
B. bandpp
C. ceksph
D. dedlnn densty
E. effmass eshift exchn2n3d
F. fftalg fftcache freqsusin freqsuslo
G.
H.
I. idyson ikhxc intexact intxc iprcch iprcfc isecur istatr istatshft istwfk
J.
K.
L. ldgapp
M. mqgrid
N. natvshift nbandsus nbdblock nctime ndyson nloalg nnsclo noseft noseinert npulayit nscforder
O. optforces optfreqsus optnlxccc ortalg outputxml
P. parareel
Q. qprtrb
R.
S. suskxcrs
T. tfkinfunc tfnewton
U. useria, userib, useric, userid, userie userra, userrb, userrc, userrd, userre useylm
V. vprtrb
W. wfoptalg
X.
Y.
Z.

accesswff
Mnemonics: ACCESS to WaveFunction Files
Characteristic: DEVELOP
Variable type: integer parameter
Default is 0.
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 (this option is only available in parallel)
- 2 => Use NetCDF routines (this option is not yet available)
- 3 => Use ETSF routines, creating files according to the ETSF specification, see http://www.etsf.eu/fileformats

The 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.
Go to the top | Complete list of input variables

atvshift
Mnemonics: ATomic potential (V) energy SHIFTs
Characteristic: DEVELOP
Variable type: real array atvshift (natvshift, nsppol, natom)
Default is a set of 0.0d0.
Define, for each atom, and each spin channel (at present, can only be used with nsppol=2, like the +U scheme), a possible potential shift, for the d (with lpawu=2, natvshift=5), or f states (with lpawu=3, natvshift=7). In the case of d states, and 2 spin channels, a set of 10 numbers for each atom must be defined. The first set of 5 numbers corresponds to real spherical harmonics m=-2 to m=+2 for the spin-up channel, the second set of 5 numbers corresponds to real spherical harmonics m=-2 to m=+2 for the spin-down channel. In the case of f states, the same ordering applies, for sets of 7 numbers, corresponding to m=-3 to m=+3.
usepawu should be non-zero, lpawu should be 2 or 3.
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 the abinip executable) and has to be a multiple of 2.
-- With npband=1:

- 1 => band-per-band algorithm
- n => The minimization is performed using nband/n blocks of n bands.

Note: nband/n has to be an integer.
-- With npband/=1:

- 1 => The minimization is performed using nband/npband blocks of npband bands.
- n => The minimization is performed using nband/(npband*n) blocks of npband*n bands.

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

ceksph
Mnemonics: CEnter K SPHere
Characteristic: DEVELOP
Variable type: integer parameter
Default is 0.
Control the set of plane waves in a sphere, generated for each k point.

- 0 => do not center the sphere on Gamma
- 1 => do center the sphere on Gamma (this option is allowed only in the program newsp, not in abinis or abinip)

The value 0 is desirable for all usual band structure calculation, since this choice allows the symmetry to be preserved at each k-points, so that degeneracies are correct. The value 1 is used to generate input wavefunctions to the GW code of Rex Gody and coworkers. This option is only allowed in newsp.
Go to the top | Complete list of input variables

dedlnn
Mnemonics:
Characteristic: ENERGY
Variable type: real parameter
Default is 0, i.e. no correction.
Gives a value for derivative d(Etotal)/d(log(Npw)) for given value of ecut. Here "log" refers to a natural, base "e" logarithm. Since Etotal is an energy, dedlnn is also an energy. Can be specified in Ha (the default), Ry, eV or Kelvin, since ecut has the 'ENERGY' characteristics. (1 Ha=27.2113845 eV).
dedlnn is used to compute the Pulay correction to the stress tensor using:
correction=(1/ucvol)*dedlnn.
See the discussion on the stress tensor given below.
This value must be computed independently by making several runs at fixed geometry and variable ecut, generally within +/- 3% of the desired ecut, and using the Etotal(npw) data to compute the derivative.
NOTE: ABINIT computes the stress tensor whenever a self-consistent energy run is performed, but the values along the diagonal of the stress tensor can have large systematic errors unless a user-provided value of dedlnn is input so that the appropriate Pulay correction to the diagonal stress tensor is computed.
An alternative (and more elegant) way to correct these systematic errors is provided through the use of the ecutsm input variable.
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

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

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

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.
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 machine-dependent 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 multi-threaded 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 Complex-to-complex FFT
- 1=> real-to-complex 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 post-processing 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 machine-dependent.
Gives the cache size of the current machine, in Kbytes.
Internal representation as ngfft(8).
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

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 exchange-correlation energy:

- idyson=1 : Solve the Dyson equation by direct matrix inversion
- idyson=2 : Solve the Dyson equation as a first-order 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 self-consistently 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 TD-DFT 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 spin-compensated 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 => Non-linear energy optimized kernel [J. Dobson and J. Wang, PRB 62, 10038 (2000)]

For ACFD-ALDA, BPG and energy optimized kernels are highly experimental and not tested yet !!! For ACFD calculations, a cut-off 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 two-electron PGG approximation for the ACFD exchange-correlation 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 eXchange-Correlation
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 zero-order 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 non-negligible 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 bit-wise 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, unless ionmov=4 and iscf=5, in which case iprcch is automatically put to 3.
Used when iscf>0, to defined:
- 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 2nd-order algorithm (**), forces not corrected
- 6 => density changed using D. Alfe 2nd-order 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 band-FFT 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 exchange-correlation kernel dVxc/drho=Kxc which computation is time-consuming for GGA functionals. By default the LDA exchange-correlation 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) 31-33. 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. Potential-based preconditioning schemes for the SCF loop are still under development.
The present parameter (force constant part) describe the way the 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

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 out-of-line data is allowed, and might save one non-SCF calculation every two line minimisation when some stability conditions are fulfilled (since there are 2 non-SCF 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 non-SCF 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 non-SCF 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

istwfkall
Mnemonics: Integer for choice of STorage of WaveFunction at each k point are ALL = 1
Characteristic:
Variable type: integer (0 or 1)
Default is 0 (get information from istwfk or defaults
This meta-variable forces all the nkpt elements of the istwfk array.
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 spin-orbit calculations (nspinor=2), istwfk is also forced to be 1, for all k points.
Control the way the wavefunction for each k-point is stored inside ABINIT, in reciprocal space.
For the GS calculations, in the "cg" array containing the wavefunction coefficients, there is for each k-point and each band, a segment cg(1:2,1:npw). The 'full' number of plane wave is determined by ecut. However, if the k-point coordinates are build only from zeroes and halves (see list below), the use of time-reversal symmetry (that connects coefficients) has been implemented, in order to use real-to-complex 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 time-reversal 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 time-reversal symmetry cannot be used in the RF calculations.

- 1=> do NOT take advantage of the time-reversal symmetry
- 2=> use time-reversal symmetry for k=( 0 0 0 )
- 3=> use time-reversal symmetry for k=(1/2 0 0 )
- 4=> use time-reversal symmetry for k=( 0 0 1/2)
- 5=> use time-reversal symmetry for k=(1/2 0 1/2)
- 6=> use time-reversal symmetry for k=( 0 1/2 0 )
- 7=> use time-reversal symmetry for k=(1/2 1/2 0 )
- 8=> use time-reversal symmetry for k=( 0 1/2 1/2)
- 9=> use time-reversal symmetry for k=(1/2 1/2 1/2)
- 0=> (preprocessed) for each k point, choose automatically the appropriate time-reversal 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

kpara
Mnemonics:
Characteristic:
Variable type:
Default is
Input variable linked to the parareel algorithm, to be documented.
Go to the top | Complete list of input variables

ldgapp
Mnemonics: Lein-Dobson-Gross 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 first-order 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

mqgrid
Mnemonics: Maximum number of Q-space GRID points for pseudopotentials
Characteristic: DEVELOP
Variable type: integer parameter
Default is 3001.

Govern the size of the one-dimensional 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

natvshift
Mnemonics: Number of ATomic potential (V) energy SHIFTs (per atom)
Characteristic:
Variable type: integer parameter
Default is 0.
Number of atomic potential energy shifts (per atom), to be used to defined the array atvshift. If non-zero, only two possibilities exist : 5 for d states (with lpawu=2), and 7 for f states (with lpawu=3). If non-zero, one should define usepawu, lpawu and atvshift.
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 non-standard, blocked algorithms for the optimization of the wavefunctions (that is, if wfoptalg=1 or wfoptalg=4):

- if wfoptalg=1, nbdblock defines the number of bands (or states) in a block, and, by the same token, the maximal number of processors that can be used for that type of parallelism.
- if wfoptalg=4, nbdblock defines the number of blocks (the number of bands in the block is then nband/nbdblock ), at variance with the case wfoptalg=1.

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 non-zero, 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 exchange-correlation 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 non-interacting and fully-interacting 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 frequency-dependent 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 (norm-conserving psps) or 14 (PAW), except for the NEC where it is 2 (or 12).
Allows to choose the algorithm for non-local operator application. On super-scalar 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 super-scalar 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 k-point.
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 time-consuming.
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 Non-Self Consistent LOops
Characteristic: DEVELOP
Variable type: integer parameter
Default is 0.
Gives the maximum number of non-self-consistent loops of nline line minimisations, in the SCF case (when iscf >0). In the case iscf <=0 , the number of non-self-consistent loops is determined by nstep.
The Default value of 0 correspond to make the two first fixed potential determinations of wavefunctions have 2 non-self consistent loops, and the next ones to have only 1 non-self consistent loop.
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

npack
Mnemonics:
Characteristic:
Variable type:
Default is
Input variable linked to the parareel algorithm, to be documented.
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

npara
Mnemonics:
Characteristic:
Variable type:
Default is
Input variable linked to the parareel algorithm, to be documented.
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 1.
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: pick-up 2 highest frequencies of H_2 mesh
  - nfreqsus= 8: pick-up 8 frequencies inside Be_2 mesh, depending on freq1
  - nfreqsus= 9: pick-up 9 frequencies inside H_2 mesh, depending on freq1
  - nfreqsus=11: pick-up 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 Gauss-Legendre quadrature

  A first Gauss-Legendre 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 Non-Linear eXchange-Correlation Core Correction
Characteristic: DEVELOP
Variable type: integer parameter
Default is 1.
Allows to choose options for the calculation of non-linear 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 real-space 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 band-by-band 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

outputxml
Mnemonics: OUTPUT XML
Characteristic:
Variable type: 0 or 1
Default is 0
Create an XML output with common values. The corresponding DTD is distributed in sources as extras/post_processing/abinitRun.dtd. All the DTD is not yet implemented and this one is currently restricted to ground computations (and derivative such as geometry optimisation).
Go to the top | Complete list of input variables

parareel
Mnemonics:
Characteristic:
Variable type: integer
Default is 0
When non-zero, use the parareel algorithm (contact developer Gilles Zerah)
Go to the top | Complete list of input variables

qprtrb
Mnemonics: Q-wavevector of the PERTurbation
Characteristic: DEVELOP
Variable type: integer array of three values
Default is 0 0 0.
Gives the wavevector, in units of reciprocal lattice primitive translations, of a perturbing potential of strength vprtrb. See vprtrb for more explanation.
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 TESTED for ikhxc/=1 !!

Go to the top | Complete list of input variables

tfkinfunc
Mnemonics: Thomas-Fermi KINetic energy FUNCtional
Characteristic: DEVELOP
Variable type: integer
Default is 0
If tfkinfunc=1, Thomas-Fermi kinetic functional (explicit functional of the density) is used instead of Kohn-Sham kinetic energy functional (implicit functional of the density through Kohn-Sham wavefunctions).
Go to the top | Complete list of input variables

tfnewton
Mnemonics: Thomas-Fermi kinetic functional, parameter for NEWTON algorithms
Characteristic: DEVELOP
Variable type: real
Default is -0.4
Needed when tfkinfunc=1, to initialize the search using the Newton-Raphson algorithm.
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 user-definable 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
These are user-definable with the same purpose as useri above.
Default is 0.0 .
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.
(Should be documented ... This variable is set automatically to 1 in the PAW case)
Go to the top | Complete list of input variables

vprtrb
Mnemonics: potential -V- for the PeRTuRBation
Characteristic: DEVELOP, ENERGY
Variable type: real array of 2 elements
Default is 0.d0 0.d0.
Gives the real and imaginary parts of a scalar potential perturbation. Can be specified in Ha (the default), Ry, eV or Kelvin, since ecut has the 'ENERGY' characteristics.
This is made available for testing responses to such perturbations. The form of the perturbation, which is added to the local potential, is:

- (vprtrb(1)+I*vprtrb(2))/2 at G=qprtrb and
- (vprtrb(1)-I*vprtrb(2))/2 at G=-qprtrb (see qprtrb also).

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 (norm-conserving pseudopotentials), 10 when usepaw=1 (PAW).
Allows to choose the algorithm for the optimisation of the wavefunctions.
The different possibilities are :

- wfoptalg=0 : standard state-by-state conjugate gradient algorithm, with no possibility to parallelize over the states;
- wfoptalg=1 : blocked conjugate gradient algorithm, with possibility to parallelize over the states (or bands), but at the expense of a few more operations when a block of states has been optimized separately, to obtain a coherent set of wavefunctions. The number of states in a block is defined in nbdblock
- 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 non-self-consistent case iscf=-2, in order to find eigenvalues and wavefunctions close to a prescribed value.
- wfoptalg=4 : 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, pp517-541 (2001). The implementation (by G. Zerah), rests on the matlab program by Knyazev. For more information see Knyazev page.
- wfoptalg=10 : (for PAW) standard state-by-state 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=11 : blocked conjugate gradient algorithm, with possibility to parallelize over the states (or bands), but at the expense of a few more operations when a block of states has been optimized separately, to obtain a coherent set of wavefunctions. The number of states in a block is defined in nbdblock. Modified scheme described in Kresse, Furthmuller, see wfoptalg=10.
- wfoptalg=14 : 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, pp517-541 (2001). The implementation (by G. Zerah), rests on the matlab program by Knyazev. For more information see Knyazev page. At odds with wfoptalg=4, the preconditionning of the block vectors does not depend on the kinetic energy of each band. In addition, the orthogonalization after the LOBPCG algorithm is no more performed. The first modification increases the convergency and the second one the efficiency.

Go to the top | Complete list of input variables

Goto : ABINIT home Page | Suggested acknowledgments | List of input variables | Tutorial home page | Bibliography

Help files : New user's guide | Abinis (main) | Abinis (respfn) | Mrgddb | Anaddb | AIM (Bader) | Cut3D | Optic | Mrgscr