This document lists and provides the description
of the name (keywords) of structural optimization input
variables 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
response-function calculations using abinit, please read the response function help file

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 .

A. amu

B. bmass

C. cineb_start

D. delayperm diismemory dilatmx dtion dynimage

E. ecutsm

F. friction fxcartfactor

G. ga_algor ga_fitness ga_n_rules ga_rules ga_opt_percent getcell getxcart getxred goprecon goprecprm

H.

I. iatcon iatfix iatfixx iatfixy iatfixz imgmov ionmov istatimg

J.

K.

L.

M. mdtemp mdwall mep_mxstep mep_solver

N. natfix natfixx natfixy natfixz natcon nconeq neb_algo neb_spring nimage nnos noseinert ntime ntimimage

O. optcell

P. pimass pitransform prtatlist

Q. qmass

R. random_atpos restartxf

S. signperm strfact string_algo strprecon strtarget

T. tolimg tolmxf

U.

V. vel vel_cell vis

W. wtatcon

X.

Y.

Z.

ESSENTIAL. ionmov optcell ntime

IMAGES cineb_start dynimage imgmov mep_mxstep mep_solver neb_algo neb_spring nimage ntimimage string_algo

TOLERANCES strtarget tolimg tolmxf

FIXING OF ATOMS iatcon iatfix iatfixx iatfixy iatfixz natfix natfixx natfixy natfixz

GEOMETRY PRECONDITIONERS goprecon goprecprm

CELL PARAMETERS OPTIMIZATION dilatmx strfact strprecon

MOLECULAR DYNAMICS amu dtion vel vel_cell vis

INTER DATASETS getcell getxcart getxred

TEMPERATURE mdtemp

bmass delayperm ecutsm friction fxcartfactor mdwall natcon nconeq nnos noseinert pimass pitransform prtatlist qmass random_atpos restartxf signperm wtatcon

amu

Mnemonics: Atomic Mass Units

Characteristic: EVOLVING

Variable type: real array amu(ntypat)

Default is provided by a database of atomic masses.

Gives the masses in atomic mass units for each kind of atom in cell. These masses are used in performing molecular dynamical atomic motion if ionmov=1, 6, 7 or 8. Note that one may set all masses to 1 for certain cases in which merely structural relaxation is desired and not actual molecular dynamics.

sing 1986 recommended values, 1 atomic mass unit = 1.6605402e-27 kg. In this unit the mass of Carbon 12 is exactly 12.

A database of atomic masses is provided, giving
default values.
Note that the default database uses mixed isotope masses (for Carbon
the natural occurence of Carbon 13 is taken into account).
The values are those recommended by the commission on Atomic Weights
and
Isotopic Abundances, Inorganic Chemistry Division, IUPAC, in
*Pure Appl. Chem.* **60**, 841 (1988).
For Tc, Pm, Po to Ac, Pa and beyond U,
none of the isotopes has a half-life greater than 3.0d10 years, and
the values provided in the database do not come from that source.

For alchemical pseudoatoms, the masses of the constituents atoms are mixed, according to the alchemical miwing coefficients mixalch

In most cases, the use of **amu**
will be as a static (non-evolving) variable. However, the possibility to have
different values of **amu** for different images has been coded. A population of
cells with different atomic characteristics can thus be considered,
and can be made to evolve, e.g. with a genetic algorithm (not coded in v7.0.0 though).
Go to the top
** | **Complete list of input variables

bmass Mnemonics: Barostat mass

Characteristic:

Variable type: real parameter

Default is 10.

bmass is the mass of the barostat when ionmov=13 (constant pressure)
Go to the top
** | **Complete list of input variables

cineb_start

Mnemonics: Climbing-Image Nudged Elastic Band: STARTing iteration

Characteristic:

Variable type: integer parameter

Default is

Relevant only when imgmov=5 (Nudged Elastic Band) and
neb_algo=2 (CI-NEB).

Gives the index of the first CI-NEB iteration..

The CI-NEB method constitutes a small modification to the NEB method allowing a rigorous
convergence to the saddle point. As the image with the highest energy has to be identified,
the calculation begins with several iterations of the standard NEB algorithm.
The effective CI-NEB begins at the **cineb_start** iteration.

*See: J. Chem. Phys. 113, 9901 (2000).*
Go to the top
** | **Complete list of input variables

delayperm

Mnemonics: DELAY between trials to PERMUTE atoms

Characteristic:

Variable type: integer

Default is 0.

Delay (number of time steps) between trials to permute
two atoms, in
view of accelerated search of minima. Still in development. See the
routine moldyn.F90. See also signperm.
When **delayperm** is zero, there is not permutation trials.
Go to the top
** | **Complete list of input variables

diismemory

Mnemonics: Direct Inversion in the Iterative Subspace MEMORY

Characteristic:

Variable type: integer

Default is 8.

Gives the maximum number of "time" steps for which the
forces and stresses are stored, and taken into account in the
DIIS algorithm (ionmov=20)
to find zero-force and stress configurations.
Go to the top
** | **Complete list of input variables

dilatmx

Mnemonics: DILATation : MaXimal value

Characteristic:

Variable type: real parameter

Default is 1.0 .

Gives the maximal permitted scaling of
the lattice parameters when the cell shape and
dimension is varied (see variable optcell).
It is used to define the sphere of plane waves
and FFT box coherent with the possible modifications
of the cell (ionmov==2 and optcell/=0).
For these definitions, it is equivalent
to changing ecut by multiplying it by **dilatmx**^{2}
(the result is an "effective ecut", called internally "ecut_eff",
other uses of ecut being not modified
when **dilatmx**>1.0 .

Using **dilatmx**<1.0 is equivalent to changing ecut
in all its uses. This is allowed, although its meaning
is no longer related to a maximal expected scaling.

Setting **dilatmx** to a large value leads to waste
of CPU time and memory. Supposing you think that the
optimized acell values might be 10%
larger than your
input values, use simply **dilatmx** 1.1 . This will already
lead to an increase of the number of planewaves by a factor
(1.1)^{3}=1.331 , and a corresponding increase in CPU time
and memory.

It is possible to use **dilatmx** when optcell=0, but
a value larger than 1.0 will be a waste.
Go to the top
** | **Complete list of input variables

dtion

Mnemonics: Delta Time for IONs

Characteristic:

Variable type: real parameter

Default is 100.

Used for controlling ion time steps.
If ionmov is set to 1, 6 or 7, then
molecular dynamics is
used to update atomic positions in response to
forces. The parameter **dtion** is a time step in
atomic units of time. (One atomic time unit is
2.418884e-17 seconds, which is the value of
Planck's constant in hartree*sec.)
In this case the atomic masses, in amu (given in array "amu"),
are used in Newton's equation and the viscosity (for ionmov=1)
and number of time steps are provided to the code using input
variables "vis" and "ntime".
The code actually converts
from masses in amu to masses in atomic units (in units
of electron masses) but the user enters masses in amu.
(The conversion from amu to atomic units (electron
masses) is 1822.88851 electron masses/amu.)

A typical good value for **dtion** is about 100.
The user must try several values
for **dtion** in order to establish the stable and efficient
choice for the accompanying amu, atom types and positions,
and vis (viscosity).

For quenched dynamics (ionmov=7), a
larger time step might
be taken, for example 200.

No meaning for RF calculations.
Go to the top
** | **Complete list of input variables

dynimage

Mnemonics: DYNamics of the IMAGE

Characteristic:

Variable type: integer dynimage(nimage)

Default is

This input variable is relevant when sets of images are activated (see
imgmov). Not all images might be required to evolve from one time step to the other.
Indeed, in the String Method or the Nudged Elastic Band, one might impose that the extremal configurations of the string are fixed.
In case the **dynimage**(iimage)=0, the image with index "iimage" will be consider as fixed.
Thus, there is no need to compute forces and stresses for this image at each time step. The purpose of
nevertheless defining extremal images is to make the input/output easier.

In order to save CPU time, the computation of properties of static images (**dynimage**(iimage)=0)
can be avoided: see istatimg keyword.
Go to the top
** | **Complete list of input variables

ecutsm

Mnemonics: Energy CUToff SMearing

Characteristic: ENERGY

Variable type: real parameter (in Hartree)

Default is 0.d0

This input variable is important when performing
relaxation of unit cell
size and shape (non-zero optcell).
Using a non-zero
**ecutsm**, the total energy curves as a function of
ecut, or acell,
can be smoothed,
keeping consistency with
the stress (and automatically including the Pulay stress). The
recommended
value is 0.5 Ha. Actually, when optcell/=0,
ABINIT requires
**ecutsm** to be larger than zero. If you want to optimize cell
shape and size without
smoothing the total energy curve (a dangerous thing to do), use a very
small **ecutsm**,
on the order of one microHartree.

Technical information :

See Bernasconi et al, J. Phys. Chem. Solids 56, 501 (1995)
for a related method.

**ecutsm** allows to define an effective kinetic energy for plane
waves, close to, but
lower than the
maximal kinetic energy ecut. For
kinetic
energies less than ecut-**ecutsm**,
nothing is modified,
while between ecut-**ecutsm** and ecut,
the kinetic energy is multiplied by:

1.0 / ( x^{2} (3+x-6x^{2}+3x^{3}))

where x = (ecut - kinetic_energy)/**ecutsm**

Note that x^{2} ( 3+x-6x^{2}+3x^{3}) is 0 at
x=0, with vanishing derivative,
and that at x=1 , it is 1, with also vanishing derivative.

If **ecutsm** is zero, the unmodified kinetic energy is used.

**ecutsm** can be specified in Ha (the default), Ry, eV or Kelvin,
since
**ecutsm** has the
'ENERGY'
characteristics.
(1 Ha=27.2113845 eV).

A few test for Silicon (diamond structure, 2 k-points) have
shown 0.5 Ha to be largely enough for ecut
between 2Ha and 6Ha,
to get smooth curves. It is likely that this value is OK
as soon as ecut is larger than 4Ha.
Note that prior to v4.4 (in v4.3 and older versions), the smoothing
function was

1.0 / ( x^{2} ( 3-2*x) )

However, the second derivative was not continuous at the cut-off
energy. This
leads to problems for elastic constant calculations using response
functions.
Go to the top
** | **Complete list of input variables

friction

Mnemonics: internal FRICTION coefficient

Characteristic:

Variable type: real parameter

Default is 0.001

Gives the internal friction coefficient (atomic units) for Langevin dynamics (when ionmov=9): fixed temperature simulations with random forces.

The equation of motion is :

M_{I} d^{2}R_{I}/dt^{2}= F_{I}
- **friction** M_{I} dR_{I}/dt - F_random_{I}

where F_random_{I} is a Gaussian random force with average
zero,
and variance 2 **friction** M_{I} kT.

The atomic unit of friction is
hartrees*electronic mass*(atomic time units)/Bohr^{2}. See J.
Chelikowsky, J. Phys. D : Appl Phys. 33(2000)R33.
Go to the top
** | **Complete list of input variables

fxcartfactor

Mnemonics: Forces to (X) CARTesian coordinates FACTOR

Characteristic:

Variable type: real parameter

Default is (Bohr^2)/Hartree

The forces multiplied
by **fxcartfactor** will be treated like difference in cartesian coordinates in the
process of optimization. This is a simple preconditioner.

TO BE UPDATED See (ionmov=2,
non-zero
optcell).
For example, the stopping criterion defined by
tolmxf relates to these scaled
stresses.
Go to the top

** | **Complete list of input variables

ga_algor

Mnemonics: Genetic Algorithm selection

Characteristic:

Variable type: integer

Default is 1

Choosing method to make the structure selection. Only the enthalpy is used now but we
plan to include, energy, electronic band gap and alchemical potentials. Right now only value of 1 (enthalpy)
works.
Go to the top

** | **Complete list of input variables

ga_fitness

Mnemonics: Genetic Algorithm FITNESS function selection

Characteristic:

Variable type: integer

Default is 1

Different methodologies to perform the roulette-wheel selection of parents. Even though, the
objective function is the crystalline enthalpy (H_i), the weight of the population elements to be chosen from
in a roulette-wheel selection can be given through different functions. We consider the following cases.

1. F = H_i / Sum H_i

2. F = exp(-(H_i-H_min)) / Sum exp(-(H_i-H_min))

3. F = (1/n_i) / Sum (1/n_i). Where n_i is the position in the ordered list of enthalpies
Go to the top
** | **Complete list of input variables

ga_n_rules

Mnemonics: Genetic Algorithm Number of RULES

Characteristic:

Variable type: integer

Default is 1

Different genetic rules have been implemented and the user has the change to choose between any of them.
Right now we have 4 rules. See ga_rules
Go to the top
** | **Complete list of input variables

ga_rules

Mnemonics: Genetic Algorithm RULES

Characteristic:

Variable type: integer vector

Default is 1

Different genetic rules have been implemented and the user has the change to choose between any of them.
The chosen number of rules have been defined in ga_n_rules

Implemented rules are

1) crossover. Two parents are randomly chosen and two springs are mixed from the two by (a) chosing randomly (through
Fitness function) two parents and then randomly rotating and shifting the coordinates withing that particular cell.
(b) Slice every one of the unit cell of the parents along a random direction and creating the spring offs from the
pieces of the two parents.

2) Vector flip mutation. From the coordinates from a given parent, a piece of it is inverted.

3) random strain. A random anisotropic deformation is given to the unit cell.

4) Coordinates mutation of 1/4 of the whole coordinates.

Go to the top
** | **Complete list of input variables

ga_opt_percent

Mnemonics: Genetic Algorithm OPTIMAL PERCENT

Characteristic:

Variable type: double

Default is 0.2

Percentage of the population that according to the fitness function passes
to the following iteration.
Go to the top
** | **Complete list of input variables

getcell

Mnemonics: GET CELL parameters from ...

Characteristic:

Variable type: integer parameter, an instance of a 'get' variable.

Default is 0.

This variable is typically used to chain the
calculations,
in the multi-dataset mode (ndtset>0),
since it describes from which dataset acell
and
rprim are to be taken, as input of the
present
dataset. The cell parameters are EVOLVING variables,
for which such a chain of calculations is useful.

If ==0, no use of previously computed values must occur.

If it is positive, its value gives the index of the dataset
from which the data are to be used as input data.
It must be the index of a dataset already computed in the
SAME run.

If equal to -1, the output data of the previous dataset
must be taken, which is a frequently occuring case.
However, if the first dataset is treated, -1 is equivalent
to 0, since no dataset has yet been computed in the same run.

If another negative number, it indicates the number
of datasets to go backward to find the needed data
(once again, going back beyond the first dataset is equivalent
to using a null get variable).
Go to the top
** | **Complete list of input variables

getxcart

Mnemonics: GET XCART from ...

getxred

Mnemonics: GET XRED from ...

getvel

Mnemonics: GET VEL from ...

Characteristic:

Variable type: integer parameters, instances of 'get' variables

Default is 0.

These variables are typically used to chain the
calculations,
in the multi-dataset mode (ndtset>0)
since they describe from which dataset the corresponding
output variables are to be taken, as input of the present
dataset. The atomic positions and velocities are EVOLVING variables,
for which such a chain of calculation is useful.

Note that the use of **getxcart** and **getxred** differs when
acell and rprim
are different from one dataset
to the other.

If ==0, no use of previously computed values must occur.

If it is positive, its value gives the index of the dataset
from which the data are to be used as input data.
It must be the index of a dataset already computed in the
SAME run.

If equal to -1, the output data of the previous dataset
must be taken, which is a frequently occuring case.
However, if the first dataset is treated, -1 is equivalent
to 0, since no dataset has yet been computed in the same run.

If another negative number, it indicates the number
of datasets to go backward to find the needed data
(once again, going back beyond the first dataset is equivalent
to using a null get variable).

Note : **getxred** and **getxcart** cannot be simultaneously
non-zero for the same dataset. On the other hand the use of
**getvel** with **getxred** is allowed, despite the different
coordinate system.
Go to the top
** | **Complete list of input variables

goprecon

Mnemonics: Geometry Optimization PREconditioner equations

Characteristic:

Variable type: integer parameter

Default is 0

Set the kind of preconditioner to be used for Geometry Optimization

(Note : Under development now (2011.05.20))

**goprecon**=0 : No preconditioner**goprecon**=[1-9] : Linear preconditioner**goprecon**=[11-19] : Non-linear preconditioner

Go to the top

goprecprm

Mnemonics: Geometry Optimization PREconditioner PaRaMeters equations

Characteristic:

Variable type: real array of 3 elements

Default is 0

Set the paramenters use by the preconditioner to be
used for Geometry Optimization

(Note : Under development now (2011.06.06))
Go to the top
** | **Complete list of input variables

iatcon

Mnemonics: Indices of AToms in CONstraint equations

Characteristic: NO MULTI, NOT INTERNAL

Variable type: integer array iatcon(natcon,nconeq)

Default is 0

Gives the indices of the atoms appearing in each of the
nconeq
independent equations constraining the motion of
atoms during structural optimization or molecular dynamics (see nconeq, natcon,
and wtatcon).

(Note : combined with wtatcon to give internal representation of the
latter - this should be described)
Go to the top
** | **Complete list of input variables

iatfix

Mnemonics: Indices of AToms that are FIXed

iatfixx

Mnemonics: Indices of AToms that are FIXed along the X direction

iatfixy

Mnemonics: Indices of AToms that are FIXed along the Y direction

iatfixz

Mnemonics: Indices of AToms that are FIXed along the Z direction

Characteristic: **iatfixx**,**iatfixy** and **iatfixz** are NOT INTERNAL

Variable type: integer arrays of length natfix, natfixx, natfixy or natfixz

Default is No Default (ignored unless natfix,natfixx, natfixy or natfixz > 0).

Give the index (in the range 1 to natom)
of each atom which is to
be held fixed for structural optimization or molecular dynamics.
The variable **iatfix** lists those fixed in the three directions,
while the other variables allow to fix some atoms along
x, y or z directions, or a combination of these.

WARNING : The implementation is inconsistent !! For ionmov==1, the fixing of directions was done in cartesian coordinates, while for the other values of ionmov, it was done in reduced coordinates. Sorry for this.

There is no harm in fixing one atom in the three
directions
using **iatfix**, then fixing it again in other directions
by mentioning it in **iatfixx**, **iatfixy** or **iatfixz**.

The internal representation of these input data is done
by the mean of one variable **iatfix**(3,natom),
defined
for each direction and each atom, being 0 if the atom is
not fixed along the direction, and 1 if the atom is fixed
along the direction.
When some atoms are fixed along 1 or 2 directions, the
use of symmetries is restricted to symmetry operations
whose (3x3) matrices symrel are
diagonal.

If the geometry builder is used, **iatfix** will be related
to the preprocessed set of atoms, generated by the
geometry builder. The user must thus foresee the effect
of this geometry builder (see objarf).
Go to the top
** | **Complete list of input variables

imgmov

Mnemonics: IMaGe MOVEs

Characteristic:

Variable type: integer parameter

Default is 0.

Control the collective changes of images (see nimage,
npimage, dynimage,
ntimimage, tolimg,
istatimg, prtvolimg).

Similar to ionmov
in spirit, although here, a population of self-consistent calculations for different geometries is managed,
while with ionmov,
only one geometry for self-consistent calculation is managed.

In this respect the maximal number of time step for image propagation is
ntimimage, corresponding to the input variable ntime of the single
geometry case.
Also, the stopping criterion is governed by
tolimg, corresponding to the input variable toldfe of the single
geometry case. The stopping condition is crude: the image propagation is stopped
when the mean value (over dynamic images) of the absolute difference of total energy
(previous and current time step) is less than tolimg.

Actually, there might be combinations of ionmov
and **imgmov** in which the two mechanisms are at work. Usually, however, only one mechanim
will be activated (so, usually, either ntimimage is bigger than one OR ntime
is bigger than one).
In order for the user to acquire a mental representation of the
interplay between ionmov and **imgmov**, here is a F90 pseudo-code presenting
the interplay between the different above-mentioned input variables, as well as with the parallelism (see input variable npimage).

do itimimage=1,ntimimage do iimage=1,nimage (possibly, parallelisation over images) do itime=1,ntime Compute the forces and stresses for image(iimage) Examine whether the stopping criteron defined by tolmxf is fulfilled Predict the next geometry for image(iimage) using ionmov enddo enddo Examine whether the stopping criteron defined by tolimg is fulfilled Predict the next geometries for all images using imgmov enddo

- 0=> simply
**copy**images from previous timimage step. - 1=> move images according to
**Steepest Descent**following the (scaled) forces, the scaling factor being fxcartfactor - 2=>
**String Method**for finding Minimal Energy Path (MEP) connecting to minima (see*PRB 66, 052301 (2002)*); the algorithm variant can be selected with the string_algo keyword ("Simplified String Method" by default). The solver for the Ordinary Differential Equation (ODE) can be selected with mep_solver (steepest-descent by default). See also mep_mxstep keyword. - 3=> (tentatively, not yet coded)
**Metadynamics**. - 4=> (tentatively, not yet coded)
**Genetic Algorithm**. - 5=>
**Nudged Elastic Band (NEB)**for finding Minimal Energy Path (MEP) connecting to minima; the algorithm variant can be selected with the neb_algo keyword (NEB+improved tangent by default). The solver for the Ordinary Differential Equation (ODE) can be selected with mep_solver (steepest-descent by default). The spring constant connecting images along the path is defined by neb_spring. See also mep_mxstep keyword. - 9 or 13 =>
**Path-Integral Molecular Dynamics**(see e.g.*D. Marx and M. Parrinello, J. Chem. Phys. 104, 4077 (1996)*). Will use 9 for**Langevin**and 13 for**chain of thermostats**(see ionmov=9 or 13 for the definition of associated parameters governing the dynamics). nimage is the Trotter number (no use of dynimage); possible transformations of the dynamics of the PI chains are defined by pitransform; Inertial masses of the atoms (possibly different from the true masses given by amu) can be specified by pimass. At present, it is possible to perform calculations in (N,V,T) ensemble (optcell=0) or in (N,P,T) ensemble (EXPERIMENTAL - NOT YET USEABLE) (optcell=2). For the latter, starting velocities of the cell parameters can be specified with vel_cell.

No meaning for RF calculations. Go to the top

ionmov

Mnemonics: IONic MOVEs

Characteristic:

Variable type: integer parameter

Default is 0.

Control the displacements of ions, and eventually (see optcell) changes of cell shape and size.

- 0=> do not move ions;
- 1=> move atoms using molecular dynamics with
optional viscous damping (friction linearly proportional
to velocity). The viscous damping is controlled by the
parameter "vis".
If actual undamped molecular dynamics is desired,
set vis to 0. The implemented algorithm
is the generalisation
of the Numerov technique (6th order), but is NOT invariant
upon time-reversal, so that the energy is not conserved.
The value
**ionmov**=6 will usually be preferred, although the algorithm that is implemented is lower-order. The time step is governed by dtion.

**Purpose:**Molecular dynamics (if vis=0), Structural optimization (if vis>0)

**Cell optimization:**No (Use optcell=0 only)

**Variables related:**Viscous parameter vis, time step dtion, index of atoms fixed iatfix

- 2=> conduct structural optimization using the
Broyden-Fletcher-Goldfarb-Shanno minimization (BFGS).
This is much more efficient for structural optimization
than viscous damping, when there are less than
let's say 10 degrees of freedom to optimize.

**Purpose:**Structural optimization

**Cell optimization:**Yes (if optcell/=0)

**Variables related:**

- 3=> conduct structural optimization using the
Broyden-Fletcher-Goldfarb-Shanno minimization (BFGS),
modified to take into account the total energy as well as
the gradients (as in usual BFGS).

See the paper by Schlegel, J. Comp. Chem. 3, 214 (1982). Might be better than**ionmov**=2 for few degrees of freedom (less than 3 or 4).

**Purpose:**Structural optimization

**Cell optimization:**Yes (if optcell/=0)

**Variables related:**

- 4=> conjugate gradient algorithm for simultaneous
optimization of potential and ionic degrees of freedom.
It can be used with iscf=2 and iscf=5 or 6
(WARNING : this is under development, and does not work very well in
many
cases).

**Purpose:**Structural optimization

**Cell optimization:**No (Use optcell=0 only)

**Variables related:**

- 5=> Simple relaxation of ionic positions according
to (converged) forces. Equivalent to
**ionmov**=1 with zero masses, albeit the relaxation coefficient is not vis, but iprcfc.

**Purpose:**Structural optimization

**Cell optimization:**No (Use optcell=0 only)

**Variables related:**

- 6=> Molecular dynamics using the Verlet algorithm, see
Allen & Tildesley "Computer simulation of liquids" 1987, p 81.
The only related parameter is the time step
(dtion).

**Purpose:**Molecular dynamics

**Cell optimization:**No (Use optcell=0 only)

**Variables related:**time step dtion, index of atoms fixed iatfix

- 7=> Quenched Molecular dynamics using the Verlet
algorithm, and stopping each atom for which the scalar product
of velocity and force is negative.
The only related parameter is the time step
(dtion).
The goal is not
to produce a realistic dynamics, but to go as fast as possible
to the minimum. For this purpose, it is advised to set
all the masses to the same value (for example, use the Carbon mass,
i.e. set amu to 12 for all type of
atoms).

**Purpose:**Structural optimization

**Cell optimization:**No (Use optcell=0 only)

**Variables related:**time step dtion, index of atoms fixed iatfix

- 8=> Molecular dynamics with Nose-Hoover thermostat,
using the Verlet algorithm.

**Purpose:**Molecular dynamics

**Cell optimization:**No (Use optcell=0 only)

**Variables related:**time step (dtion), Temperatures (mdtemp), and thermostat mass (noseinert).

- 9=> Langevin molecular dynamics.

**Purpose:**Molecular dynamics

**Cell optimization:**No (Use optcell=0 only)

**Variables related:**time step (dtion), temperatures (mdtemp), and friction coefficient (friction).

- 10=> Delocalized internal coordinates. with BFGS simple

**Purpose:**Structural optimization

**Cell optimization:**No (Use optcell=0 only)

**Variables related:**

- 11=> Delocalized internal coordinates. with BFGS using total energy

**Purpose:**Structural optimization

**Cell optimization:**No (Use optcell=0 only)

**Variables related:**

- 12=> Isokinetic ensemble molecular dynamics.
The equation of motion of the ions in contact with a thermostat
are solved with the algorithm proposed by Zhang [J. Chem. Phys. 106,
6102 (1997)],
as worked out by Minary et al [J. Chem. Phys. 188, 2510 (2003)].
The conservation of the kinetic energy is obtained within machine
precision,
at each step.

~~Related parameters : the time step (dtion), the temperatures (mdtemp), and the friction coefficient (friction).~~

**Purpose:**Molecular dynamics

**Cell optimization:**No (Use optcell=0 only)

**Variables related:**

- 13=> Isothermal/isenthalpic ensemble.
The equation of motion of the ions in contact with a thermostat
and a barostat are solved with the algorithm proposed by Martyna,
Tuckermann Tobias and Klein [Mol. Phys., 1996, p. 1117].

If optcell=1 or 2, the mass of the barostat (bmass) must be given in addition.

**Purpose:**Molecular dynamics

**Cell optimization:**Yes (if optcell/=0)

**Variables related:**The time step (dtion), the temperatures (mdtemp), the number of thermostats (nnos), and the masses of thermostats (qmass).

- 14=> simple molecular dynamics with a symplectic algorithm proposed
by S.Blanes and P.C.Moans [called SRKNa14 in Practical symplectic partitioned
Runge--Kutta and Runge--Kutta--NystrÃ¶m methods, Journal of Computational
and Applied Mathematics archive, volume 142, issue 2 (May 2002), pages 313 - 330]
of the kind first published by H. Yoshida [Construction of higher order symplectic
integrators, Physics Letters A, volume 150, number 5 to 7, pages 262 - 268].
This algorithm requires at least 14 evaluation of the forces (actually 15 are done
within Abinit) per time step. At this cost it usually gives much better
energy conservation than the verlet algorithm (ionmov 6) for a 30 times bigger
value of dtion. Notice that the potential
energy of the initial atomic configuration is never evaluated using this
algorithm.

**Purpose:**Molecular dynamics

**Cell optimization:**No (Use optcell=0 only)

**Variables related:**

- 20=> Direct inversion of the iterative subspace.
Given a starting point xred that is a vector of length 3*natom
(reduced nuclei coordinates), and unit cell parameters (rprimd)
this routine uses the DIIS (direct inversion of the iterative
subspace) to minize the gradient (forces) on atoms. The preconditioning
used to compute errors from gradients is using an inversed hessian
matrix obtained by a BFGS algorithm.
This method is known to converge to the nearest point where gradients
vanish. This is efficient to refine positions around a saddle point
for instance.

**Purpose:**Structural optimization

**Cell optimization:**No (Use optcell=0 only)

**Variables related:**DIIS memory diismemory

- 23=> Use of Learn on The Fly method (LOTF) for Molecular Dynamics.
In the framework of isokinetic MD, the atomic forces and positions are computed
by using LOTF interpolation.
A SCF computation is performed only any lotf_nitex
steps. The results of the SCF are used to compute the parameters of a
short range classical potential (for the moment only the glue potential for gold is implemented).
Then these parameters are continuously tuned to compute atomic trajectories.
LOTF has to be enabled at configure time. If LOTF is not enabled and ionmov=23,
abinit will set automatically ionmov=12.

The LOTF cycle is divided in the following steps:

a) Initialization (SFC at t=0) and computation of potential parameters.

b) Extrapolation of the atomic forces and positions for lotf_nitex time step. To perform this extrapolation, the potential computed in a) is used (Verlet algorithm).

c) SFC at t=lotf_nitex. Computation of the potential parameters.

d) LOTF interpolation, linear interpolation of the potential parameters and computation of the atomic forces and positions between t=0 and t=lotf_nitex.

**Purpose:**Molecular Dynamics

**Cell optimization:**No (Use optcell=0 only)

**Variables related:****Variables related:**dtion, lotf_classic, lotf_nitex, lotf_nneigx, lotf_version.

- 30=> Using a supercell, calculate a self consistent phonon structure
as in PRL 100 095901 (2008). The initial phonon eigenvectors and
eigenvalues are read in, and then atoms are displaced according
to the normal modes populated at a given temperature until
convergence of the vibrational free energy (or so I hope)

**Purpose:**Phonon structure

**Cell optimization:**No (Use optcell=0 only)

**Variables related:**

No meaning for RF calculations. Go to the top

istatimg

Mnemonics: Integer governing the computation of STATic IMaGes

Characteristic:

Variable type: integer parameter

Default is

This input variable is relevant when sets of images are activated (see
imgmov).

Not all images might be required to evolve from one time step to the other
(seedynimage): these are static images.

If **istatimg**=0, the total energy of static images is not computed (but static images are
used to make the dynamic images evolve). This can be useful to save CPU time.

If **istatimg**=1, the total energy of static images is computed.
Go to the top
** | **Complete list of input variables

mdtemp

Mnemonics: Molecular Dynamics Temperatures

Characteristic:

Variable type: real array mdtemp(2)

Default is

Give the initial and final temperature
of the Nose-Hoover thermostat (ionmov=8)
and Langevin dynamics (ionmov=9), in
Kelvin.
This temperature will change linearly from the initial temperature
**mdtemp(1)** at itime=1 to
the final temperature **mdtemp(2)** at the end of the
ntime timesteps.
Go to the top
** | **Complete list of input variables

mdwall

Mnemonics: Molecular Dynamics WALL location

Characteristic:

Variable type: real parameter

Default is 10000.0 Bohr (the walls are extremely far away).

Gives the location (atomic units) of walls
on which the atoms will bounce back.
when ionmov=6, 7, 8 or 9. For each
cartesian direction idir=1, 2 or 3, there is a pair of walls with
coordinates xcart(idir)=-wall and xcart(idir)=rprimd(idir,idir)+wall .
Supposing the particle will cross the wall, its velocity normal to the
wall is reversed, so that it bounces back.

By default, given in Bohr atomic units
(1 Bohr=0.5291772108 Angstroms), although Angstrom can be specified,
if preferred, since **mdwall** has the
'LENGTH'
characteristics.
Go to the top
** | **Complete list of input variables

mep_mxstep

Mnemonics: Minimal Energy Path search: MaXimum allowed STEP size

Characteristic: LENGTH

Variable type: real parameter

Default is

Relevant only when imgmov=1 (Steepest-Descent), 2 (String Method) or 5 (Nudged Elastic Band).

The optimizer used to solve the Ordinary Differential Equation (ODE) can be constrained with a maximum allowed step size for each image. By default this feature is only activated for Nudged Elastic Band (NEB) and the value is inspired by *J. Chem. Phys. 128, 134106 (2008)*.

Note that the step size is defined for each image as
*step = SQRT[SUM(R_i dot R_i)]* where the *R_i* are the positions of
the atoms in the cell.
Go to the top
** | **Complete list of input variables

mep_solver

Mnemonics: Minimal Energy Path ordinary differential equation SOLVER

Characteristic:

Variable type: integer parameter

Default is

Relevant only when imgmov=2 (String Method) or 5 (Nudged Elastic Band).

Gives the algorithm used to solve the Ordinary Differential Equation (ODE) when searching for
a Minimal Energy Path (MEP).

Possible values can be:

- 0=>
**Steepest-Descent algorithm**following the (scaled) forces, the scaling factor being fxcartfactor (forward Euler method).

Compatible with all MEP search methods. - 1=>
**Quick-min optimizer**following the (scaled) forces, the scaling factor being fxcartfactor. The "quick minimizer" improves upon the steepest-descent method by accelerating the system in the direction of the forces. The velocity (of the image) is projected long the force and cancelled if antiparallel to it.

Compatible only with Nudged Elastic Band (imgmov=5).

*See, for instance: J. Chem. Phys. 128, 134106 (2008).*

- 2=>
**Local Broyden-Fletcher-Goldfarb-Shanno (L-BFGS) algorithm**; each image along the band is minimized with a different instance of the BFGS optimizer.

Compatible only with Nudged Elastic Band (imgmov=5).

*See, for instance: J. Chem. Phys. 128, 134106 (2008).*

IN DEVELOPPMENT - NOT RELIABLE - 3=>
**Global Broyden-Fletcher-Goldfarb-Shanno (GL-BFGS) algorithm**; all images along the band are minimized with a single instance of the BFGS optimizer.

Compatible only with Nudged Elastic Band (imgmov=5).

*See, for instance: J. Chem. Phys. 128, 134106 (2008).*

IN DEVELOPPMENT - NOT RELIABLE - 4=>
**Fourth-order Runge-Kutta method**; the images along the band are moved every four steps (1<=istep<=ntimimage) following the Runge-Kutta algorithm, the time step being fxcartfactor.

Compatible only with Simplified String Method (imgmov=2 and string_algo=1 or 2).

*See: J. Chem. Phys. 126, 164103 (2007).*

natcon Mnemonics: Number of AToms in CONstraint equations Characteristic: NO MULTI, NOT INTERNAL Variable type: integer array of length nconeq

Default is 0

Gives the number of atoms appearing in each of the nconeq
independent equations constraining the motion of
atoms during structural optimization or molecular dynamics (see nconeq, iatcon,
and wtatcon).
Go to the top
** | **Complete list of input variables

natfix

Mnemonics: Number of Atoms that are FIXed

natfixx

Mnemonics: Number of Atoms that are FIXed along the X direction

natfixy

Mnemonics: Number of Atoms that are FIXed along the Y direction

natfixz

Mnemonics: Number of Atoms that are FIXed along the Z direction

Characteristic: NOT INTERNAL

Variable type: integer parameter

Default is 0 (no atoms held fixed).

Gives the number of atoms (not to exceed
natom) which are to be held fixed
during a structural
optimization or molecular dynamics.

When **natfix** > 0,
**natfix** entries should be provided in array iatfix.

When **natfixx** > 0, **natfixx** entries should be provided
in array iatfixx, and so on ...
Go to the top
** | **Complete list of input variables

nconeq

Mnemonics: Number of CONstraint EQuations

Characteristic: NO MULTI

Variable type: integer parameter

Default is 0

Gives the number of independent equations constraining
the motion of
atoms during structural optimization or molecular dynamics (see natcon, iatcon,
and wtatcon).
Go to the top
** | **Complete list of input variables

neb_algo

Mnemonics: Nudged Elastic Band ALGOrithm

Characteristic:

Variable type: integer parameter

Default is

Relevant only when imgmov=5 (Nudged Elastic Band).

Gives the variant of the NEB method used.

Possible values can be:

- 0=>
**Original NEB method**.

*See: Classical and Quantum Dynamics in Condensed Phase Simulations, edited by Berne, Ciccotti, Coker (World Scientific, Singapore, 1998), pp. 385-404* - 1=>
**NEB + improved tangent**.

The Improved Tangent Method builds on the NEB with an improved estimate of the tangent direction and a resulting change of the component of the spring force acting on the images.

*See: J. Chem. Phys. 113, 9978 (2000).* - 2=>
**Climbing-Image NEB (CI-NEB)**.

The CI-NEB method constitutes a small modification to the NEB method. Information about the shape of the MEP is retained, but a rigorous convergence to a saddle point is also obtained. By defaut the spring constants are variable (see neb_spring). As the image with the highest energy has to be identified, the calculation begins with several iterations of the standard NEB algorithm. The effective CI-NEB begins at the cineb_start iteration.

*See: J. Chem. Phys. 113, 9901 (2000).*

neb_spring

Mnemonics: Nudged Elastic Band: SPRING constant

Characteristic:

Variable type: real array neb_spring(2)

Default is

Relevant only when imgmov=5 (Nudged Elastic Band).

Gives the minimal and maximal values of the spring constant connecting images for the NEB method.

In the standard "Nudged Elastic Band" method, the spring constant is constant along the path,
but, in order to have higher resolution close to the saddle point, it can be better
to have stronger springs close to it.

Units: Hartree/Bohr^2.

*See: J. Chem. Phys. 113, 9901 (2000).*
Go to the top
** | **Complete list of input variables

nimage Mnemonics: Number of IMAGEs Characteristic:

Variable type: integer parameter Default is 1

Give the number of images (or replicas) of the system,
for which the forces and stresses might be computed independantly,
in the context of the string method, the genetic algorithm, hyperdynamics or Path-Integral Molecular Dynamics
depending on the value of imgmov).
Related input variables : dynimage,
npimage, ntimimage
and prtvolimg.

Images might differ by the position of atoms in the unit cell, their
velocity, as well as by their cell geometry. The following input variables might be used to define
the images :

It usually happen that the images do not have the same symmetries and space group. ABINIT has not been designed to use different set of symmetries for different images. ABINIT will use the symmetry and space group of the image number 2, that is expected to have a low number of symmetries. This might lead to erroneous calculations, in case some image has even less symmetry. By contrast, there is no problem if some other image has more symmetries than those of the second image. Go to the top

nnos Mnemonics: Number of nose masses Characteristic:

Variable type: integer parameter Default is 0

Give the number of oscillators in the Martyna et al.
chain of oscillators thermostats (when ionmov=13).
The mass of these oscillators is given by qmass (similar to noseinert)
Go to the top
** | **Complete list of input variables

noseinert

Mnemonics: NOSE INERTia factor

Characteristic:

Variable type: real noseinert

Default is 1.0d5

Give the inertia factor W_{T} of the
Nose-Hoover thermostat
(when ionmov=8), in atomic
units of weight*length^{2}, that is (electron mass)*(Bohr)^{2}.
The equations of motion are :

M_{I} d^{2}R_{I}/dt^{2}= F_{I}
- dX/dt M_{I} dR_{I}/dt

and

W_{T} d^{2}X/dt^{2}=
Sum(I) M_{I} (dR_{I}/dt)^{2}
- 3Nk_{B}T

where I represent each nucleus, M_{I} is the mass of each
nucleus
(see amu),
R_{I} is the coordinate of each nucleus (see xcart),
dX/dt is a dynamical friction coefficient, and T is the temperature
of the thermostat (see mdtemp.
Go to the top
** | **Complete list of input variables

ntime

Mnemonics: Number of TIME steps

Characteristic:

Variable type: integer parameter

Default is 0.

Gives the number of molecular dynamics time steps or
Broyden
structural optimization steps to be done if ionmovis non-zero.

Note that at the present
the option ionmov=1 is initialized
with four
Runge-Kutta steps which costs some overhead in the startup.
By contrast, the initialisation of
other ionmov values is only one
SCF call.

**ntime** is ignored if ionmov=0.
Go to the top
** | **Complete list of input variables

ntimimage

Mnemonics: Number of TIME steps for IMAGE propagation

Characteristic:

Variable type: integer parameter

Default is 1.

Gives the maximal number of molecular dynamics time steps or
structural optimization steps to be done
for the set of images, referred to as 'image-timesteps'. At each image-timestep,
all the images are propagated simulaneously, each according to the algorithm
determined by imgmov and the usual accompanying
input variables, and then the next positions and velocities for each image
are determined from the set of results obtained for all images.
Go to the top
** | **Complete list of input variables

ntypat

Mnemonics: Number of TYPEs of atoms

Characteristic: NO MULTI

Variable type: integer parameter

Default is 1.

Gives the number of types of atoms. E.g. for
a homopolar system (e.g. pure Si) **ntypat** is 1.

The code tries to read the same number pseudopotential files.

The first pseudopotential is assigned type number 1, and so
on ...
Go to the top
** | **Complete list of input variables

optcell

Mnemonics: OPTimize the CELL shape and dimensions Characteristic:

Variable type: integer parameter

Default is

Allows to optimize the unit cell shape and dimensions, when ionmov=2 or 3. The configuration for which the stress almost vanishes is iteratively determined, by using the same algorithms as for the nuclei positions. Will eventually modify acell and/or rprim. The ionic positions are ALWAYS updated, according to the forces. A target stress tensor might be defined, see strtarget

**optcell**=0 : modify nuclear positions, since ionmov=2, but no cell shape and dimension optimisation.**optcell**=1 : optimisation of volume only (do not modify rprim, and allow an homogeneous dilatation of the three components of acell)**optcell**=2 : full optimization of cell geometry (modify acell and rprim - normalize the vectors of rprim to generate the acell). This is the usual mode for cell shape and volume optimization. It takes into account the symmetry of the system, so that only the effectively relevant degrees of freedom are optimized.**optcell**=3 : constant-volume optimization of cell geometry (modify acell and rprim under constraint - normalize the vectors of rprim to generate the acell)**optcell**=4,5 or 6 : optimize acell(1), acell(2) or acell(3), respectively (only works if the two other vectors are orthogonal to the optimized one, the latter being along its cartesian axis).**optcell**=7,8 or 9 : optimize the cell geometry while keeping the first, second or third vector unchanged (only works if the two other vectors are orthogonal to the one left unchanged, the latter being along its cartesian axis).

- one has to get rid of the discontinuites due to discrete changes of plane wave number with cell size, by using a suitable value of ecutsm;
- one has to allow for the possibility of a larger sphere of plane waves, by using dilatmx;
- one might have to adjust the scale of stresses to the scale of forces, by using strfact.
- if all the reduced coordinates of atoms are fixed by symmetry, one cannot use toldff to stop the SCF cycle. (Suggestion : use toldfe with a small value, like 1.0d-10)

Presently (v3.1), one cannot restart (restartxf)
a calculation with a non-zero **optcell** value from the
(x,f) history of another run with a different non-zero **optcell**
value. There
are still a few problems at that level.
Go to the top
** | **Complete list of input variables

pimass

Mnemonics: Path Integral inertial MASSes

Characteristic:

Variable type: real array pimass(ntypat)

Default is amu(ntypat).

Only relevant if imgmov=9 or 13 (Path-Integral Molecular Dynamics).

Gives the inertial masses (called "fictitious masses" in
*D. Marx and M. Parrinello, J. Chem. Phys. 104, 4077 (1996)*)
in atomic mass units for each kind of atom in cell. These masses are used
in performing molecular dynamical atomic motion.

See amu for further details.
Go to the top
** | **Complete list of input variables

pitransform

Mnemonics: Path Integral TRANSFORMation

Characteristic:

Variable type: integer parameter

Default is 0.

Only relevant if imgmov=13 (Path-Integral Molecular Dynamics). Allows to change the dynamics of the Path Integral chains, as described by M. Tuckerman et al, J. Chem. Phys. 104, 5579 (1996).

If equal to 1, staging transformation.

If equal to 2, normal modes transformation.
Go to the top
** | **Complete list of input variables

prtxtypat

Mnemonics: PRinT by ATom LIST of ATom

Characteristic: NO MULTI

Variable type: integer array

Default is 0.

This is an array of the numbers associated to the index atoms that
the user want to print in the output or log files, this is useful when
you have a large number of atoms and you are only interested to
follow especific atoms, the numbers associated should be consistent
with the list in xcart or
xred
This input varible does not affect the contents of the "OUT.nc" or
"HIST.nc", those are NetCDF files containing the information about
all the atoms.
Go to the top
** | **Complete list of input variables

restartxf

Mnemonics: RESTART from (X,F) history

Characteristic:

Variable type: integer parameter

Default is 0.

Control the restart of a molecular dynamics or structural
optimization job.

**restartxf>0 (Deprecated)**:The code reads from the input wf file,
the previous history of atomic coordinates and corresponding forces, in order
to continue the work done by the job that produced this wf file.
If optcell/=0, the history of
acell and
rprim variables is also taken into account.
The code will take into consideration the whole history (if **restartxf**=1),
or discard the few first (x,f) pairs, and begin only at the
pair whose number corresponds to **restartxf**.

Works only for ionmov=2 (Broyden) and
when an input wavefunction file is specified, thanks to the
appropriate values of irdwfk or getwfk.

NOTES :

* The input wf file must have been produced by a run that exited cleanly.
It cannot be one of the temporary wf files that exist when a job crashed.

* One cannot restart a calculation with a non-zero optcell
value from the (x,f) history of another run with a different non-zero optcell value. Starting a non-zero optcell run from a zero
optcell run should work.

* Deprecated, the use of the new options (-1 and -2) is prefered.

**restartxf=0 (Default)**: No restart procedure is enable
and will start a Molecular dynamics or structural optimization
from scratch.

**restartxf=-1 (New)**: Use the HIST file to reconstruct the
a partial calculation. It will reconstruct the different configurations
using the forces and stress store in the HIST file, instead of calling
the SCF procedure.

Enable **restartxf=-1** from the begining is harmless.
The only condition is to keep the input file the same in such a way
that the same predictor is used and it will predict the same structure
recorded in the HIST file.

This option will always compute extra ntime
iterations independent of the number of iterations recovered previously.

**restartxf=-2 (New)**:Read the HIST file and select the atomic
positions and cell parameters with the lowest energy. Forget all the
history and start the calculation using those values. The original
atomic coordinates and cell parameters are irrelevant in that case.

NOTES:

* You can use **restartxf=-1 or -2** for all predictiors that
make no use of random numbers.

* You can use **restartxf=-1 or -2** to restart a calculation
that was not completed. The HIST file is written on each iteration. So
you always have something to recover from.

* You can take advantage of the appropriate values
of irdwfk or getwfk to get a good wave function
to continue your job.
Go to the top
** | **Complete list of input variables

signperm

Mnemonics: SIGN of PERMutation potential

Characteristic:

Variable type: integer

Default is 1.

In development. See the routine moldyn.F90. Decides the bias of permutation operations on atoms. See also delayperm.

+1 favors alternation of species

-1 favors segregation
Go to the top
** | **Complete list of input variables

strfact

Mnemonics: STRess FACTor

Characteristic:

Variable type: real parameter

Default is 100.0 (Bohr^2)

The stresses multiplied
by **strfact** will be treated like forces in the
process of optimization (ionmov=2,
non-zero
optcell).

For example, the stopping criterion defined by
tolmxf relates to these scaled
stresses.
Go to the top
** | **Complete list of input variables

string_algo

Mnemonics: STRING method ALGOrithm

Characteristic:

Variable type: integer parameter

Default is

Relevant only when imgmov=2 (String Method).

Gives the variant of the String Method method used.

Possible values can be:

- 0=>
**Original String Method**.

NOT YET IMPLEMENTED

*See: Phys. Rev. B 66, 052301 (2002)* - 1=>
**Simplified String Method**with parametrization by**equal arc length**.

Instead of using the normal force (wr the band), the full force is used; the reparametrization is enforced by keeping the points of the string equally spaced.

*See: J. Chem. Phys. 126, 164103 (2007)* - 2=>
**Simplified String Method**with parametrization by**energy-weighted arc length**.

A variant of the Simplified String Method (like 2-); the reparametrization is done by using energy-weight arc-lengths, giving a finer distribution near the saddle point..

*See: J. Chem. Phys. 126, 164103 (2007) and J. Chem. Phys. 130, 244108 (2009)*

strprecon

Mnemonics: STRess PRECONditioner

Characteristic:

Variable type: real parameter

Default is 1.0

This is a scaling factor to initialize the part of
the Hessian related to the treatment of the stresses (optimisation
of the unit cell). In case there is an instability, decrease the
default value, e.g. set it to 0.1 .
Go to the top
** | **Complete list of input variables

strtarget

Mnemonics: STRess TARGET

Characteristic:

Variable type: real array strtarget(6)

Default is 6*0.0 (Ha/Bohr**3)

The optimization of cell size and shape,
as might be asked through optcell,
will target
the stress tensor defined by
by **strtarget**, or part thereof (if restricted optimizations
are asked, like fixed shape). Presently, this required target
stress is not taken into account for the determination of
the symmetries. If it breaks the symmetries of the input unit cell,
so that symrel disagrees with **strtarget**,
the result will be unreliable. Also, presently, the thermodynamical
potential to be used in this situation (the free energy) does not
replace the total energy, so that, for exemple,
ionmov=3 cannot be used,
since this algorithm is taking into account the total energy.

The components of the stress tensor must be stored
according to :
(1,1)->1 ; (2,2)->2 ; (3,3)->3 ; (2,3)->4 ; (3,1)->5 ;
(1,2)->6.
The conversion factor
between Ha/Bohr**3 and GPa is : 1 Ha/Bohr**3 = 29421.033d0 GPa.

Not used if optcell==0.
Go to the top
** | **Complete list of input variables

qmass Mnemonics: Q thermostat mass

Characteristic:

Variable type: real array qmass(nnos)

Default is nnos*10.0

This are the masses of the chains of nnos thermostats to be used when ionmov=13.

This temperature control can be used with optcell==0, 1 (homogeneous cell
deformation) or 2 (full cell deformation)
Go to the top
** | **Complete list of input variables

tolmxf

Mnemonics: TOLerance on the MaXimal Force

Characteristic:

Variable type: real parameter

Default is 5.0d-5 hartree/Bohr.

Sets a maximal absolute force tolerance
(in hartree/Bohr) below which
BFGS structural relaxation iterations will stop.

Can also control tolerance on stresses, when optcell/=0,
using the conversion factor strfact.
This tolerance applies to any particular cartesian
component of any atom, excluding fixed ones.
See the parameter ionmov.

This is to be used when trying to equilibrate a
structure to its lowest energy configuration (ionmov=2).

A value of about 5.0d-5 hartree/Bohr or smaller
is suggested (this corresponds to about 2.5d-3 eV/Angstrom).

No meaning for RF calculations.
Go to the top
** | **Complete list of input variables

tolimg

Mnemonics: TOLerance on the mean total energy for IMaGes

Characteristic: ENERGY

Variable type: real parameter

Default is 5.0d-5 hartree

Sets a maximal absolute energy tolerance (in hartree, averaged over dynamic images)
below which iterations on images (the one governed by the ntimimage input variable) will stop.

This is to be used when trying to optimize a
population of structures to their lowest energy configuration,
taking into account the particular algorithm defined by imgmov

A value of about 5.0d-5 hartree or smaller
is suggested (this corresponds to about 3.7d-7 eV).

No meaning for RF calculations.
Go to the top
** | **Complete list of input variables

vel

Mnemonics: VELocity

Characteristic: EVOLVING

Variable type: real array vel(3,natom) represented internally as vel(3,natom,nimage)

Default is 3*natom 0's.

Gives the starting velocities
of atoms, in cartesian coordinates, in Bohr/atomic time
units (atomic time units given where dtion
is described).

Irrelevant unless ionmov > 0.

For ionmov=8 (Nose thermostat),
if **vel** is not initialized, a random initial
velocity giving the right kinetic energy will be generated.

If the geometry builder is used, **vel** will be related
to the preprocessed set of atoms, generated by the
geometry builder. The user must thus foresee the effect
of this geometry builder (see objarf).

Velocities evolve is ionmov==1.
Go to the top
** | **Complete list of input variables

vel_cell

Mnemonics: VELocity of the CELL parameters

Characteristic: EVOLVING

Variable type: real array vel_cell(3,3) represented internally as vel_cell(3,3,nimage)

Default is 3*3 0's.

Irrelevant unless imgmov=9 or 13
and optcell>0 (Path-Integral Molecular Dynamics
with NPT algorithm).

Gives the starting velocities of the dimensional cell parameters in Bohr/atomic time
units (atomic time units given where dtion
is described).
Go to the top
** | **Complete list of input variables

vis

Mnemonics: VIScosity

Characteristic:

Variable type: real parameter

Default is 100.

Gives the viscosity (atomic units) for linear frictional damping term applied to molecular dynamics when ionmov=1. Used for eventual relaxation of structure (however, ionmov=2 is in general more efficient).

The equation of motion is :

M_{I} d^{2}R_{I}/dt^{2}= F_{I}
- **vis** dR_{I}/dt

The atomic unit of viscosity is hartrees*(atomic time units)/Bohr^{2}.
Units are not
critical as this is a fictitious damping used to relax
structures. A typical value for silicon is 400 with
dtion of 350 and atomic mass 28 amu. Critical
damping is most desirable and is found only by
optimizing **vis** for a given situation.
Go to the top
** | **Complete list of input variables

random_atpos

Mnemonics: RANDOM ATomic POSitions

Characteristic:

Variable type: integer parameter

Default is 0.

Control the inner coordinates, which can be generated randomly by using 4 different methods depending
ont its value

(0) if zero, no random generation and xred are taken as they have been introduced by the user

(1) if one, particles are generated completly random within the unit cell.

(2) if two, particles are generated randomly but the inner particle distace is always larger than a factor of the
sum of the covalent bonds between the atoms (note : this is incompatible with the definition of alchemical mixing, in which
ntypat differs from npsp)
Go to the top
** | **Complete list of input variables

wtatcon

Mnemonics: WeighTs for AToms in CONstraint equations

Characteristic: NO MULTI

Variable type: real array wtatcon(3,natcon,nconeq)

Default is 0.

Gives the weights determining how the motion of atoms
is constrained
during structural optimization or molecular dynamics (see nconeq, natcon,
and iatcon). For each of the nconeq independent constraint equations,
wtatcon is a 3*natcon array giving
weights, W_{I},
for the x, y, and z components of each of the atoms (labeled by I) in
the list of indices iatcon.
Prior to taking an atomic step, the calculated forces, F_{I},
are
replaced by projected forces, F'_{I}, which satisfy the set of
constraint equations

Sum_{mu=x,y,z; I=1,natcon}: W_{mu,I} * F'_{mu,I}
= 0 for each of the nconeq arrays W_{I}.

Different types of motion constraints can be implemented this way. For
example,

nconeq 1 natcon 2 iatcon 1 2 wtatcon 0 0 +1 0 0 -1

could be used to constrain the relative height difference of two
adsorbate atoms on a surface (assuming their
masses are equal), since F'_{z,1} - F'_{z,2} = 0
implies z_{1} - z_{2} = constant.
Go to the top
** | **Complete list of input variables