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.
Govern the size of the one-dimensional information
related to pseudopotentials, in reciprocal space :
potentials, or projector functions.
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.
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" ;
}
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.
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