ABINIT. List of features.
This file describes the major features of the ABINIT package.
Copyright (C) 19982014 ABINIT group (DCA,XG)
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 .
Contents:
 0. Related documentation.
 1. Available physical properties.
 1.A. Total energy of an assembly of nuclei and electrons placed in a repeated cell.
 1.B. Derivatives of the total energy and eigenenergies (forces, electric field, phonons, ...).
 1.C. Excited states and other electronic properties.
 1.D. Displacement of atoms, and changes of cell parameters.
 1.E. Properties at the nuclei sites.
 1.F. Analysis and graphical tools.
 1.G. Interfacing with other codes.
 1.H. Verification (cross checking with other codes).
 2. Speed and memory.
 2.A. Speed in the sequential version.
 2.B. Speed in the parallel version.
 2.C. Memory.
 3. The user's point of view.
 3.A. The Web site.
 3.B. Portability.
 3.C. Running jobs, input and output files.
 3.D. Documentation.
 3.E. Generation of the kpoints, geometries, and starting wavefunctions.
 3.F. Automatic determination of input parameters.
 4. The programmer's point of view.
0. Related documentation
Besides the documentation available on the Web,
there is a wealth of information inside the package itself, see the
directory "doc".
The reader might consult the latest version of the "doc/users/context.txt" file
for the description of the ABINIT project and its history.
The different versions of the "doc/release_notes/*html" files will allow to
see the actual development of the project since version 1.5,
released in August 1998. They give also an idea of ongoing developments.
Discussions on the forum might also
allow to get documentation.
1. Available physical properties
1.A. Computation of the total energy of an assembly of nuclei and electrons
placed in a repeated cell.

1.A.1. The computation can be done using (1) plane waves and normconserving
pseudopotentials, or, (2) socalled
"ProjectorAugmented Waves" (PAW method), with appropriate pseudoatomic data,
or (3) wavelets, see 1.A.14.

1.A.2. The total energy computation is done according to the Density Functional
Theory (also +U and DMFT, see 1.A.15 and 1.A.20).
Many exchangecorrelation functionals are available,
through two different implementations : one is the native ABINIT implementation,
the other is the ETSF library of XC functionals (LibXC is a plugin to ABINIT).
In the native ABINIT set,
most of the important local approximations (LDA) are
available, including the PerdewZunger one. Two different local spin density
(LSD) are available, including the Perdew Wang 92, and one due to M. Teter.
The PerdewBurkeErnzerhof, the revPBE, the RPBE
and the HCTH GGAs (spin unpolarized as well as polarized)
are also available.
In the LibXC 2.0 library, as interfaced with ABINIT,
there are 24 functional forms of the 3D LDA type, and over 80 functional forms of the GGA type.
They can be used with normconserving pseudopotentials as well as PAW atomic data.
Also, some metaGGA can be used with ABINIT (normconserving case only).
For responsefunction type calculations, the native ABINIT LDA and GGA kernels
can be used as well as the LibXC ones.
The exchange can also be computed on the basis of the Fock expression (exact exchange), and the correlation
can be computed on the basis of the RPA approximation (see the GW section).
Hybrid functionals calculations (HSE06, PBE0, B3LYP) can be performed.
The implementation of the exact exchange, correlation and hybrid does not deliver the forces and stresses at present.
Several Van Der Waals functionals are available : Grimme, Silvestrelli.

1.A.3. Selfconsistent calculations will generate the DFT groundstate,
with associated energy and density. Afterwards, a nonselfconsistent
calculation might generate eigenenergies at a large number
of kpoints, for band structures. The electronic DensityOfStates
can be computed either within the tetrahedron method, or using a smearing
technique.

1.A.4. The program admits many different types of pseudopotentials.
There are two complete sets of pseudopotentials available for
the whole periodic table, one of the TroullierMartins type,
one of the Goedecker type (this one include the spinorbit coupling).
Three large sets of PAW atomic data can be read by ABINIT.
One is from GPAW (0.9), another one has been developed by ABINIT developers,
see http://arxiv.org/abs/1309.7274.
a third one by K.F. Garrity, J.W. Bennet, K.M. Rabe, D. Vanderbilt, arXiv:1305.5973v1
Both are in the PAW XML format. They have been tested against allelectron
calculations, see http://molmod.ugent.be/DeltaCodesDFT
Most elements in the periodic table are present, except the rare earth elements and actinides.
Five codes are available to generate
new pseudopotentials when needed. Two of them are able to generate
pseudopotentials with a core hole, in order to compute corelevel shifts.
(see the ABINIT web site).
Two of them are able to generate GGA pseudopotentials.
The ultrasoft pseudopotentials are approximations of the
Projector Augmented Wave approach, and are treated within this framework.
Normconserving pseudopotentials can be mixed, to generate "alchemical" pseudoatoms.
See also section 1.G.8, for the special case of the AtomPAW generator.

1.A.5. Metallic as well as insulating systems can be treated. Schemes for
determination of the occupation number include the Fermi broadening,
the Gaussian broadening, the GaussianHermite broadening, as well as
the modifications proposed by Marzari. Finite temperatures
can also be treated using a smearing scheme (Verstraete scheme).

1.A.6. The cell may be orthogonal or nonorthogonal.
Any kind of symmetries and corresponding sets of kpoint can be input,
and taken into account in the computation.

1.A.7. The electronic system may be computed in the
spinunpolarized or spinpolarized
case, with the possibility to impose occupation numbers of majority and
minority spins, and the spins of the starting configuration.
A specific option for efficient treatment of
antiferromagnetism (Shubnikov groups) is available.
The treatment of noncollinear magnetism is available.
The total magnetic moment of the unit cell can be constrained.
The local magnetization can also be constrained.

1.A.8. The total energy, forces, stresses, and electronic structure
can be provided with the spinorbit coupling included.

1.A.9. A finite electric field can be imposed on insulators, using the proper
Hamiltonian for periodic systems based on Berry's phase. The generalisation
to fixed Dfield or fixed reduced fields are also available,
as described in M. Stengel, N.A. Spaldin and D. Vanderbilt, Nat. Phys. 5,304 (2009).

1.A.10. The decomposition of energy in its different component (local potential,
XC, hartree ...) is provided.

1.A.11. Inner electronic eigenvalues can be computed thanks to the
minimisation of the residual with respect to a target energy value.

1.A.12. The charge density of states close to the Fermi energy can be output,
and provide a simple approach to STM image calculations (not for PAW).
The angular momentum decomposed DOS can be evaluated in a sphere around any point,
and provide STS analysis.

1.A.13. The lifetime of positrons and their annihilation rate can be computed,
using the selfconsistent twocomponent DFT, including force and stress computation,
LDA and GGA, normconserving as well as PAW.

1.A.14. The use of wavelets (instead of plane waves) is also being implemented.
At present, it works for the SCF cycles : one can get density, total energy
and forces, in some basic cases (HGH or GTH pseudopotentials only, or PAW  in v7.2).
Available also : the finite size corrections to the
total energy, restart on wavefunctions following the ETSF norm and geometry
relaxation using BFGS. Molecular dynamic is also available for
test purposes.

1.A.15. The DFT+U approximation is also available (LDA+U, GGA+U), on the basis
of PAW calculations.
Available for nonspinpolarized, spinpolarized, and spinor cases (with spinorbit also).
The U and J values can be determined using the method by Coccocioni and De Gironcoli,
as well as from a cRPA (constrained RPA) calculation.

1.A.16. The local exchange (atomic exact exchange) approximation is also available, on the basis
of PAW calculations.

1.A.17. Possibility to add a jellium slab in the cell.

1.A.18. The kinetic energy density can be computed, as well as the electron localisation function
(in the normconserving pseudopotential case). The ELF is not available in the noncollinear spin case.

1.A.19. The Van der Waals energy can be added at postprocessing time, following the Silvestrelli method (and
variation thereof), as well as the vdWDFTD2 (Grimme) semiempirical potential.

1.A.20. Dynamical meanfield calculations (nonself consistent and selfconsistent) can be performed.
In order to solved the Anderson impurity model, the continuoustime Quantum Monte Carlo algorithm is used.
1.B. Derivatives of the total energy and eigenenergies (incl. linear and nonlinear DFPT responses)

1.B.1. HellmanFeynman forces are computed from an analytical formula,
and corresponds exactly to the limit of finite differences of energy
for infinitesimally small atomic displacements when the groundstate
calculation is at convergence. This feature is available for all the
cases where the total energy can be computed.
A correction for nonconverged
cases allows to get accurate forces with less converged wavefunctions
than without it. The decomposition of the forces in their different
components can be provided.

1.B.2. Stress can also be computed. This feature is available for all
the cases where the total energy can be computed (except wavelets).
The decomposition of the stresses in their different
components can be provided. A smearing scheme applied to the kinetic
energy allows to get smooth energy curves as a function of
lattice parameters and angles.

1.B.3. The polarization can be computed within the Berry phase
formulation. This feature is available for insulators,
magnetic or nonmagnetic, and also when spinorbit splitting
is present. The localisation tensor can also be computed.
Constrainedpolarization calculations can be performed, following Na Sai
et al, PRB 66, 104108 (2002).

1.B.4. For normconserving pseudopotentials and PAW,
computation of the derivative with respect to the wavevector
(d/dk  DDK perturbation) is available. This also includes the analytical
first derivative of the eigenvalues with respect to wavevector.

1.B.5. For normconserving pseudopotentials, accurate responses
to atomic displacements and homogeneous electric fields
are available, and allows to compute the interatomic force constants,
the Born effective charges, the dielectric constant, the phonon band
structure. Symmetry characters of the phonons at Gamma
are computed. Thermodynamical properties, like the free energy,
the heat capacity or the entropy, can also be computed, in the
quasiharmonic approximation.
The atomic temperature factors (DebyeWaller factors) are also available.
Phonon DOS and twophonon DOS sum and difference spectra can be computed.
Available also for the GGAs (except the HCTH one).

1.B.6. For normconserving pseudopotentials, accurate responses
to strain perturbations are available,
and allow to compute, presently, the elastic constants
("rigidion" as well as "relaxed"), the piezoelectricity tensor,
as well as the socalled "internal strains", change of forces to atoms
due to a strain, or change of the stress due to an atomic displacement.
(no treatment of spinorbit coupling yet).

1.B.7. For normconserving pseudopotentials, approximate or accurate susceptibility matrix
and dielectric matrix can be computed, thanks to a sum over states.
(no treatment of spinpolarized cases or spinorbit coupling yet)

1.B.8. For normconserving pseudopotentials and PAW, derivatives of the
electronic eigenenergies with respect
to the wavevector can be computed analytically.

1.B.9. For normconserving pseudopotentials and PAW, optical conductivity
can be computed, thanks to the KuboGreenwood formula.
(no treatment of spinorbit coupling yet)

1.B.10. For normconserving pseudopotentials,
the bandbyband decomposition of the Born effective charges,
and the localisation tensor is available.
(no treatment of spinpolarized cases or spinorbit coupling yet)

1.B.11. For normconserving pseudopotentials, selected nonlinear
response coefficients can be computed thanks to the
2n+1 theorem of perturbation theory. At present :
 the electrooptic coefficients
(no treatment of spinpolarized cases or spinorbit coupling yet)
 the Raman cross sections
(no treatment of spinorbit coupling yet)
This is available for the nonspinpolarized case and the
spinpolarized case, but only in some flavors of LDA at present.

1.B.12. For normconserving pseudopotentials,
electronphonon matrix elements are available directly from the
output of a linearresponse phonon calculation. They can be analyzed
to give e.g. the phonon linewidth or superconducting temperature.
(no treatment of spinpolarized cases or spinorbit coupling yet),
or the thermal conductivity (phonon transport, limited by electronphonon
collisions), and the electrical conductivity (electron transport,
limited by electronphonon collisions)

1.B.13. For normconserving pseudopotentials,
the computation of responses with respect to atomic displacement
is possible when a finite electric field is present.
This feature is available for insulators,
nonmagnetic, no spinorbit coupling.
Computation of other linear or nonlinear responses within
an electric field is not yet possible.

1.B.14. For normconserving pseudopotentials,
the computation of the second derivative of the eigenvalues
with respect to atomic displacements
giving access to the temperature dependence of the bandgap (in the DFT)
is possible.

1.B.15. Selfconsistent phonon calculations are possible, following
the method of Souvatzis and coworkers.
1.C. Excited states and other electronic properties.

1.C.1. Computation of ionisation energies (N > N1 electrons)
and affinities (N > N+1 electrons) in the GW approximation.
Four plasmon pole models are available, but that calculation
can also be done by a full integration over frequencies.
ABINIT is able to treat insulators as well as metals,
also polymers or clusters.
In the GW implementation, it is possible to disable the full computation,
and actually do an HartreeFock, screened exchange or COHSEX calculation.
Selfconsistency is implemented at a rather primitive level.
The Faleev method, see PRL 93, 126406 (2004), is implemented.
Available for the nonspinpolarized as well as spinpolarized case,
but not yet for spinor wavefunctions.
Spectral method for setup of the frequencydependent matrices
is available.
GW is available for normconserving as well as PAW methodology.
Not wavelets.
Convergence over the number of unoccupied band is much improved
with respect to usual implementations of GW, thanks to the
"extrapolar" method or the Effectiveenergy technique.
The Coulomb interaction can be cutoff in real space, in order
to treat efficiently in the supercell methodology : finite systems
and 1Dperiodic systems (like polymers, nanowires or nanotubes)
Different treatments of the exchange for the core electrons
have been implemented : either the core contribution is approximated with vxc
or the core term is approximated with the Fock operator inside the PAW spheres.
Available in normconserving as well as in PAW.

1.C.2. Excited states of atoms and molecules
can be computed within TDDFT (Casida approach  only normconserving
pseudopotentials)). Oscillator strengths
are available. In the nonspinpolarized case, spinsinglet as well
as spintriplet excitations are computed. Spinpolarized
case is also available.

1.C.3. Frequencydependent linear optical response is available,
for all components of the tensor (xx,yy,zz,xy,yz,zx),
real as well as imaginary part. This property is computed within the very simple
"sumoverstate" approximation (i.e. without local field corrections).
See the "optics" utility, for normconserving pseudopotentials and PAW.

1.C.4. Frequencydependent nonlinear optical response is available,
for all components of the tensor (xxx,yyy,zzz,xyz ... ),
real as well as imaginary part. This property is computed within the very simple
"sumoverstate" approximation (i.e. without local field corrections).
See the "optics" utility, for normconserving pseudopotentials only.

1.C.5. Frequencydependent electronic conductivity,
dielectric tensor, index of refraction, reflectivity, absorption,
the thermal conductivity, and the thermopower
(electron transport, high temperature, KuboGreenwood formalism)
real as well as imaginary part. This property is computed within the very simple
"sumoverstate" approximation (i.e. without local field corrections).
See the "conducti" utility, for normconserving pseudopotentials,
as well as PAW.

1.C.6. Computation of the random stopping power, in the RPA and in the TDLDA.
1.D. Displacement of atoms, and changes of cell parameters.

1.D.1. Different algorithms (Broyden; modified Broyden; Verlet with sudden
stop of atoms) allows to find the equilibrium configuration
of the nuclei, for which the forces vanish. The cell parameters
can also be optimized concurently with the atomic positions.
Specified lattice parameters, or angles, or atomic positions,
can be kept fixed if needed.

1.D.2. Three molecular dynamics algorithm (Numerov, Verlet, Blanes and Moanes)
allow to perform simulations in real
(simulated) time. The displacement of atoms may be computed according to
Newton's law, or by adding a friction force to it.
NoseHoover thermostat is available with Verlet algorithm.
Langevin dynamics is also available.

1.D.3. The string method is available, to compute transition paths between
two configurations/local minima of the BornOppenheimer hypersurface (typically reactants and products).
The Nudged Elastic Band method, with the same goal, is also available.
A genetic algorithm to find global optima is also available.
These make use of the "image" concept (a population of cells is treated).

1.D.4. The PathIntegral Molecular Dynamics in NVT ensemble is available
with two thermostats (Langevin and NoseHoover chains) and possible coordinate transformations (primitive, staging, normal modes).

1.D.5. The code can provide an automatic analysis of bond lengths and angles,
and the atomic coordinates in a format suitable for vizualisation with XMOL.

1.D.6. Response function from Molecular Dynamics.
Phonon spectrum obtained from trajectories (with a minimal set of coefficients)
Included in APPA.
1.E. Properties at the nuclei sites.

1.E.1. Electric field gradients at nuclei sites are available.
(Only in the Projector Augmented Waves formalism).

1.E.2. The Fermi contact term is also available (needed
to compute isomer shifts in Mossbauer spectroscopy)
(Only in the Projector Augmented Waves formalism).
1.F. Analysis and graphical tools.

1.F.1. A postprocessor, called "cut3d", is available to analyse density,
potential and wavefunction files. It is able to change the format of these
files, to extract the data on a 2D plane, or along a 1D line.
It can perform the Hirshfeld computation of atomic charges.
It can analyse the charge contained in an atomic sphere,
and determine the angular momentum projected charge (l=0 to 4)
contained in that sphere.
(only available for normconserving pseudopotentials)

1.F.2. Another postprocessor, called "aim", is available to
perform the Bader "AtomInMolecule" analysis of the density.
(only available for normconserving pseudopotentials)

1.F.3. A special part in the tutorial (see later) indicates how
to generate properly formatted data for the visualisation of :
 the band structure (visualisation thanks to XMGR)
 total energies vs different parameters (also using XMGR)
 the charge density (3D isosurfaces)
(the cut3d postprocessor must be used, followed by matlab)
The cut3d postprocessor also allows to prepare 2D charge density plots.

1.F.4. The postprocessor band2eps allows to draw phonon dispersion
curves automatically, in a file written in Encapsulated PostScript (eps).
Moreover, a color code allows to emphasize the contribution of individual
atoms to the corresponding eigenvector (at most three types of atoms).

1.F.5. Utilities to view the structures and make the band structure
are available (StructureViewer, BandStructureMaker).
1.G. Interfacing with other codes.

1.G.1. ABINIT is interfaced with WanT (see http://www.wanniertransport.org).
WanT, as a postprocessor of ABINIT results, allows to compute
maximally localized Wannier functions, as well as transport
properties through nanostructures.

1.G.2. ABINIT is interfaced with CASINO, a code for Quantum Monte Carlo
calculation of the properties of solids and molecules.

1.G.3. XML pseudopotentials can be used, these being common with the SIESTA
code.

1.G.4. The _WFK or _KSS functions can be used as starting basis
by the TDDFT, GW and/or BetheSalpether softwares EXC, SELF and DP
code, see http://www.abinit.org/community/?text=links .

1.G.5. ABINIT can produce and read files following the Nanoquanta/ETSF
file format (http://www.etsf.eu/fileformats)

1.G.6. ABINIT is interfaced with Wannier90 (see http://www.wannier90.org).
Wannier90, as a postprocessor of ABINIT results, allows to compute
maximally localized Wannier functions, as well as transport
properties through nanostructures.

1.G.7. ABINIT is interfaced with V_Sim , a structure and density visualisation tool.
(http://wwwdrfmc.cea.fr/sp2m/L_Sim/V_Sim/index.en.html)

1.G.8. The PAW atomic data generator is a plugin of ABINIT. The integration
is such that there are ABINIT automatic tests in which a PAW atomic data is generated, and then
used in ABINIT.
1.H. Verification (cross checking with other codes).
1.H.1. The ground state total energy, geometry relaxation, phonon frequencies, electronphonon matrix elements,
temperature dependence of the electronic gap has been cross checked with Quantum Espresso and YAMBO.
See S. Poncé and G. Antonius and P. Boulanger and E. Cannuccia and A. Marini and M. Côté and X. Gonze,
Verification of firstprinciples codes: Comparison of total energies, phonon frequencies, electronphonon coupling and zeropoint motion correction to the gap between ABINIT and QE/Yambo.
Computational Materials Science 83, 341 (2014).
1.H.2. It is possible to choose the same convention for the definition of the average eletrostatic potential, than Quantum Espresso,
allowing verification of results for charged systems.
See F. Bruneval, J.P. Crocombette, X. Gonze, B. Dorado, M. Torrent and F. Jollet
Consistent treatment of charged systems within periodic boundary conditions : the projector augmentedwave and pseudopotential methods revisited
Phys. Rev. B (accepted 23 December 2013)

2. Speed and memory.
2.A. Speed in the sequential version.

2.A.1. Depending on the number of atoms, there are two regimes in the
code : at low number of atoms and electrons,
the CPU time is dominated by Fast Fourier
Transforms with an average scaling O(N^2 log N) where N is some
number characteristics of the size of the system (atoms, electrons);
at large number of atoms and electrons, the CPU time is dominated
by nonlocal operator aplication and orthogonalisation, with
an average scaling O(N^3).

2.A.2. The complextocomplex Fast Fourier Transform routine for application
of the Hamiltonian has been highly optimized, and take into account
the fact that the wavefunction do not fill the reciprocal space FFT box.
Library FFTs are also available, but they are found to be slower than the
present FFT routine, developed starting from a routine
provided by S. Goedecker.
A realtocomplex FFT is used for treating potential and densities
of the ground state, since they are real.
For selected kpoints, invariant under timereversal symmetry,
( (0 0 0), (1/2 0 0), (0 1/2 0), (0 0 1/2), (1/2 1/2 0) ... (1/2 1/2 1/2) ),
the number of planewave explicitly treated is divided by two. A
realtocomplex FFT is used then.

2.A.3. The nonlocal potential is applied in reciprocal space. It has been
optimized carefully, although there is still some speedup to be
coded when the kpoint is invariant under timereversal.
The orthogonalisation procedure can be done twice per loop or only once.

2.A.4. At the level of the generation of electronic eigenfunctions, an efficient
bandbyband preconditioned conjugategradient algorithm is used,
in its nonselfconsistent version. An alternative algorithm "lobpcg"
is also available.

2.A.5. At the level of the selfconsistency loop, an efficient
potentialbased preconditioned conjugategradient algorithm is used.
Simple mixing is also available, as well as the Anderson algorithm.
Preconditioning of this algorithm is achieved through a model
dielectric function, or through an approximate dielectric matrix.
2.B. Speed in the parallel version.

2.B.1. For groundstate calculations, MPIbased parallelism.
The code has been parallelized
on the kpoints, on the spins, on the spinor components, on the bands,
and on the FFT grid and plane wave coefficients.
For the kpoint and spin parallelisations (using MPI), the communication
load is generally very small. This allows it to be used on a cluster of workstations.
However, the number of nodes that can be used in parallel might
be small, and depends strongly on the physics of the problem.
A combined FFT / band parallelisation is available, and has shown
very large speed up (>1000) on powerful computers with a large number of processors
and highspeed interconnect. The combination of FFT / band / k point and spin
parallelism is also available, and quite efficient for such computers.
Available for normconserving as well as PAW cases.
Automatic determination of the best combination of parallelism levels is available.
Use of MPIIO is mandatory for the largest speed ups to be observed.

2.B.2. For groundstate calculations, with a set of images (e.g. nudged elastic band method,
the string method, the pathintegral molecular dynamics, the genetic algorithm), MPIbased parallelism.
The work load for the different images has been distributed, and this marallelism can be
combined with the parallelism described in point 2.B.1, leading to speedup beyond 5000.

2.B.3. For groundstate calculations, GPU can be used. This is based on CUDA+MAGMA.

2.B.4. For groundstate calculations, the wavelet part of ABINIT (BigDFT) is also very well parallelized :
MPI band parallelism, combined with GPUs.

2.B.5. For response calculations, MPIbased parallelism.
The code has been parallelized
on kpoints, spins, bands, as well as on perturbations.
For the kpoints, spins and bands parallelisation,
the communication load is rather
small also, and, unlike for the GS calculations, the number
of nodes that can be used in parallel will be large,
nearly independently of the physics of the problem.
Parallelism on perturbations is very similar to the parallelism on images in the ground state case (so, very efficient),
although the load balancing problem for perturbations with different number of k points is not adressed at present.
Use of MPIIO is mandatory for the largest speed ups to be observed.

2.B.6. GW calculations are MPIparallelized over kpoints.
They are also parallelized over transitions (valence to conduction band pairs), but the two parallelisation
cannot be used currently at present.
The transition parallelism has been show to allow speed ups as large as 300.

2.B.7. Ground state, response function, and GW parallel calculations
can be done also by using OpenMP parallelism, even combined with MPI parallelism.

2.C.1. The requirements of the different conjugate gradient algorithms
on memory are relatively low, especially when the number of atoms
is large. Optionally, it is even possible to use disk space
to save memory, at the expense of computing time.
In particular, when the number of k points is large, they can
be stored in memory one at a time. Phase factors in the application of
the nonlocal operator can also be recomputed at each application,
in order to save memory. For kpoints that are invariant under
timereversal symmetry, the storage required for wavefunctions
is half the storage for other kpoint.
3. The user's point of view.
3.A. The Web site.

3.A.1. A Web site can be accessed. The complete sources (and all the tests)
of the ABINIT package are available there.
Executables for many different platforms are also available,
in specific packages that also include
the 'Infos' directory are also available.
Installation notes, current features of ABINIT,
the tutorial, online help can be vizualized directly from the web.

3.A.2. Also available from the Web site :
 the pseudopotentials
 some utilities (including cut3d, a density analyser)
 five mailing lists
(one for "official announcements", one for the developpers, one for the developers using the GNU Arch repository, one "forum mailing list" , one for the advisory committee)
 the ABINIT bibliography database, that contains references of papers
in which ABINIT or one of its predecessors have been used
 the FAQ (frequently asked questions) database
 ... (many more infos)
3.B. Portability.

3.B.1. The ABINIT package v6 is routinely installed (sequential and parallel) on different platforms :
 PC/Linux based on Intel Xeon processors or AMD processors
with GFort compiler, g95 compiler, Intel compiler, pathscale compiler.
 PC under Windows
 ItaniumII
 IBM RS6000 based on Power processors
 Mac OS X

3.B.2. Installation is made thanks to the autotools (autoconf and automake)
as well as different scripts. All machinedependent parameters
are grouped in one single short file for each machine.
The parallel and sequential
version of the code, as well as the different versions for the different
machines, are prepared onthefly,
so that there is only one unique source code.

3.B.3. Binaries for different machines can be managed in the
same main directory, as they might be placed automatically in different
subdirectories.
3.C. Running jobs, input and output files.

3.C.1. The input variables are gathered in one unique file,
read by a text processing facility build in the code.
Many defaults values are provided, so that
the input file can be kept rather short.

3.C.2. Many different stopping criteria allow the user to target the accuracy
he or she wants to obtain.

3.C.3. The outputs are provided to one main file and one auxiliary file,
as well as different specialized files (for density, potential,
wavefunctions, ...) .
The main file is shorter than the auxiliary file, and well formatted,
while all important results are gathered
there. It can be used for archival purposes. The auxiliary (log) file
will contain all exception messages.

3.C.4. Exception handling is provided through four different types
of messages : COMMENT, WARNING, BUG and ERROR. In each case, the
accurate meaning of the exception is described, as well as the
eventual action to be taken by the user.

3.C.5. Statistics of foreseen memory and disk usage is printed at
the beginning of the run. Statistics of CPU time usage
is printed at the end of the run.

3.C.6. There is a facility to stop the run in a clean way at any time.
The user may specify a cpu time limit, after which the job must end
smoothly.

3.C.7. A status file, updated very frequently, gives an onthefly
report of progress of the current run.

3.C.8. The code can handle multiple datasets contained in the input
file, where generic input variables valid for all datasets
can be defined. These calculations for different dataset
can be chained, so that in one run, many complex tasks can be accomplished.
This allows easy convergence studies.

3.C.9. The code can start the current run from a wavefunction input file
generated in a previous run. This allows to cut down the number
of iteration to selfconsistency, or to perform other tasks.
This can be done even if the previous job
had different computational parameters, like different k points,
different energy cutoff, spinunpolarized or spinpolarized wavefunctions,
scalr or spinor wavefunctions ... Of course, the restart from
wildly different parameters will not save a lot of CPU time.

3.C.10. ABINIT can produce CML (Chemical Markup Language) output files.
It can also read the CML files it produced.

3.C.11. A GUI is available, see the directory gui, also containing instructions to run it.
3.D. Documentation.

3.D.1. A new_user_guide and a few rather detailed help files
(abinit_help, respfn_help, anaddb_help, mrgddb_help, newsp_help,
aim_help ... ) are available online.

3.D.2. A tutorial with more than 30 lessons is available online.
It starts with the computation of
different properties of the H2 molecule, describes convergence studies,
then focuses on bulk Silicon, bulk Al and Al surface. It describes
the use of responsefunction features, the GW calculation of band structures,
the PAW methodology, generation and validation of PAW atomic data,
computation of spindependent properties,
DFT+U (incl. determination of U),
analysis tools, the phonon band structure, linear and nonlinear optics,
electrooptic effects, electronphonon coupling, phonon linewidths due
to electronphonon interaction, Raman scattering efficiencies, piezoelectricity,
the computation of elastic constants, parallelism, the source code, etc ...
A set of seven lessons specifically deals with the use of the parallelism.

3.D.3. Many test cases are provided, and can help the user in setting up a run.

3.D.4. An ABINIT bibliography database, that contains references of papers
in which ABINIT or one of its predecessors is available on the Web site.
3.E. Generation of the kpoints, geometries, and starting wavefunctions.

3.E.1. The code can automatically generate symmetries from the primitive cell
and the position of atoms. In this case, it identifies
automatically the Bravais lattice, point group and space group.
Alternatively, it can start from the
symmetries and generate the atomic positions from the irreducible
set. Also, a database of the 230 spatial groups of symmetry
is built inside ABINIT.

3.E.2. Antiferromagnetic symmetry operations, and associated
magnetic space groups (Shubnikov groups) can be treated with the
same facility as usual space groups, including a database of the
1191 Shubnikov groups.

3.E.3. A geometry builder is available inside the code.
It can take one (or two) group
of atoms, rotate it, translate it and repeat it, then create vacancies.

3.E.4. The generation of special k point sets (MonkhorstPack sets)
and band structure k points can also be done directly inside ABINIT.
A list of interesting k point sets, can be generated automatically,
including a measure of their accuracy in term of integration
within the Brillouin Zone.

3.E.5. A utility for generating wavefunctions with new characteristic
(cutoff, kpoint) from already existing wavefunctions with
different characteristics is available (newsp).
3.F. Automatic determination of input parameters.

3.F.1. Many defaults values are provided.

3.F.2. The FFT grid parameters can be automatically generated
from the cutoff energy and geometry of the system.

3.F.3. The number of bands and starting occupation numbers can be automatically
generated from the input set of atoms.

3.F.4. There is a database of atomic masses.
4. The programmer's point of view.

4.A. The code is distributed without charge under the
GNU General Public Licence (GPL). This
garantees that the future modifications of the code
stay available to the developpers and users for free.
This Copyright is often referred to as a "Copyleft".

4.B. The code is written in clean Fortran90. Strict programming rules
have been followed. These are documented. Comments are numerous, and
all in english.

4.C. Quick, fully automatic, testing of the code is available in the makefile,
giving diagnostics on the validity of computed energy, forces, stresses
and eigenvalues for five typical cases.

4.D. More extensive testing is provided in five batteries of tests
(altogether more than 600 different runs), with automatic comparison
with results of preceding versions. A specialized diff script (called
'fldiff') has been written in order to ease the diagnostic on the
suite of tests. A short onelinepertest file is produced (report file).
In addition to tests of the correctness of the execution,
for the sequential or parallel version of the main code, as well as some
utilities, there are automatic diagnostics of the speed of crucial
routines, and the response to a load of up to 4 instances of the
main code, running concurrently.

4.E. Debugging facilities are provided inside the code, and can be directly
accessed from the input file. The compilation can be done in both
debugging or normal mode : the Cpreprocessed files are either kept
or removed automatically.

4.F. "Designbycontract" utility routines are present, as well as
a flag to preprocess the sources, and eliminate the designbycontract
features in production mode.