ABINIT: the tutorial
The lessons of this tutorial are aimed at teaching the use of ABINIT, in the
UNIX/Linux OS and its variants (OSF, HP-UX, AIX ...). They might be used
for other operating systems, but the commands have to be adapted.
Note that they can be accessed from the ABINIT web site as well as
from your local ~abinit/doc/tutorial/welcome.html file. The latter
solution is of course preferable, as the response time will not depend
on the network traffic.
At present, more than thirty lessons are available. Each of them is
at most two hours of student work. Lessons 1-4 cover the basics, other
lectures are more specialized.
Copyright (C) 2000-2015 ABINIT group (XG,RC)
This file is distributed under the terms of the GNU General Public License, see
For the initials of contributors, see ~abinit/doc/developers/contributors.txt .
Before following the tutorials, you should have read the "new user's guide", as well as
the pages 1045-1058 of the paper "Iterative minimization
techniques for ab initio total-energy calculations: molecular dynamics
and conjugate gradients", by M.C. Payne, M.P. Teter, D.C.
Allan, T.A. Arias and J.D. Joannopoulos, Rev. Mod. Phys. 64, 1045
(1992) or, if you have more time, you should browse through the
Chaps. 1 to 13 , and appendices L and M of the book Electronic
Structure. Basic Theory and Practical Methods. R. M. Martin. Cambridge
University Press (2004) ISBN 0 521 78285 6. The latter reference
is a must if you have not yet used another electronic structure code or
a Quantum Chemistry package.
After the tutorial, you might find it useful to learn about the test
cases contained in the subdirectories of ~abinit/tests/, e.g. the
directories fast, v1, v2, ... v6, that provide many example input files.
You should have a look at the README files of these directories.
Additional information can be found in the ~abinit/doc directory,
including the description of the ABINIT project, guide lines for
developpers, more on the use of the code (tuning) ...
Some lessons depends on other lessons. The following schema should
help you to understand these dependencies. In blue, one has the basic lessons. The blocks in red
represents additional lessons related to ground-state features of ABINIT. Response-function
features of ABINIT are explained in the lessons in the green blocks. Finally,
the Many-Body Perturbation Theory capabilities are demonstrated in the lessons belonging to the violet blocks.
The right-hand side blocks gather the lessons related to the parallelism inside ABINIT.
Brief description of each lesson's content
The lessons 1-4 present the basic concepts, and form a global
entity: you should not skip any of these.
- The lesson 1 deals with the H2
molecule : get the total energy, the electronic energies, the charge
density, the bond length, the atomisation energy
- The lesson 2 deals again with the H2
molecule: convergence studies, LDA versus GGA
- The lesson 3 deals with crystalline
silicon (an insulator): the definition of a k-point grid, the smearing
of the cut-off energy, the computation of a band structure, and again,
convergence studies ...
- The lesson 4 deals with crystalline
aluminum (a metal), and its surface: occupation numbers, smearing the
Fermi-Dirac distribution, the surface energy, and again, convergence
Other lessons present more specialized topics.
There is a group of lessons that can be started without any other prerequisite than the lessons 1 to 4, and that you can do in any order (there are some exceptions, though):
- The lesson on spin in ABINIT
presents the properties related to spin: spin-polarized calculations
and spin-orbit coupling.
- The lesson on the use of PAW (PAW1)
presents the Projector-Augmented Wave method, implemented in ABINIT as
an alternative to norm-conserving pseudopotentials, with a sizeable
accuracy and CPU time advantage.
- The lesson on the generation of PAW
atomic data files (PAW2) presents the generation of atomic data
for use with the PAW method. Prerequisite : PAW1.
- The lesson on the validation of a PAW
atomic datafile (PAW3) demonstrates how to test a generated PAW
dataset using ABINIT, against the ELK all-electron code, for diamond
and magnesium. Prerequisite : PAW1 and PAW2.
- The lesson on the properties of the nuclei
shows how to compute the electric field gradient. Prerequisite : PAW1.
- The lesson on Wannier90 deals
with the Wannier90 library to obtain Maximally Localized Wannier
- The lesson on polarization and finite
electric field deals with the computation of the polarization of
an insulator (e.g. ferroelectric, or dielectric material) thanks to
the Berry phase approach, and also presents the computation of
materials properties in the presence of a finite electric field (also
thanks to the Berry phase approach).
- The lesson on Analysis
Tools deals with the use of the CUT3D utility to analyse
wavefunctions and densities.
- The lesson on DFT+U shows
how to perform a DFT+U calculation using ABINIT, and will lead to
compute the projected DOS of NiO. Prerequisite : PAW1.
- The lesson on DFT+DMFT shows
how to perform a DFT+DMFT calculation on SrVO3 using projected Wannier functions. Prerequisite : DFT+U, Wannier90.
- The lesson on the determination of U
for DFT+U shows how to determine the U value with the linear response method, to be used in the
DFT+U approach. Prerequisite : DFT+U.
- The lesson on TDDFT deals with the
computation of the excitation spectrum of finite systems, thanks to
the Time-Dependent Density Functional Theory approach, in the
- The lesson "Source code"
introduces the user to the development of new functionalities in
ABINIT: in this lesson, one learns how to add a new input variable
There is an additional group of lessons on response functions
(phonons, optics, dielectric constant, electron-phonon interaction,
elastic response, non-linear optics, Raman coefficients,
piezoelectricity ...), for which some common additional information are
An additional lesson has been developed outside the standard structure of the ABINIT tutorial,
in the experimental Wiki of ABINIT,
The lesson on temperature-dependence of the electronic structure.
- The lesson Response-Function 1 (RF1)
presents the basics of response-functions within ABINIT. The example
given is the study of dynamical and dielectric properties of AlAs (an
insulator): phonons at Gamma, dielectric constant, Born effective
charges, LO-TO splitting, phonons in the whole Brillouin zone. The
creation of the "Derivative Data Base" (DDB) is presented.
- The lesson Response-Function 2 (RF2)
presents the analysis of the DDBs that have been introduced in the
preceeding lesson RF1. The computation of the interatomic forces and
the computation of thermodynamical properties is an outcome of this
- The additional information given by lesson RF1 opens the door to
The lesson on Optic, the utility that
allows to obtain the frequency dependent linear optical dielectric
function and the frequency dependent second order nonlinear optical
susceptibility, in the simple "Sum-Over-State" approximation.
- The additional information given by lesson RF1 and RF2 opens
the door to a group of lessons that can be followed independently of
each other: The lesson on the
electron-phonon interaction presents the use of the utility MRGKK
and ANADDB to examine the electron-phonon interaction and the
subsequent calculation of superconductivity temperature (for bulk
- The lesson on the elastic
properties presents the computation with respect to the strain
perturbation and its responses: elastic constants,
- The lesson on static non-linear
properties presents the computation of responses beyond the linear
order, within Density-Functional Perturbation Theory (beyond the
simple Sum-Over-State approximation): Raman scattering efficiencies
(non-resonant case), non-linear electronic susceptibility,
electro-optic effect. Comparison with the finite field technique
(combining the computation of linear response functions with finite
difference calculations), is also provided.
There is another additional group of lessons on many-body
perturbation theory (GW approximation, Bethe-Salpeter equation),
to be done sequentially):
The first lesson on GW deals with
the computation of the quasi-particle band gap of Silicon
(semiconductor), in the GW approximation (much better than the
Kohn-Sham LDA band structure), with a plasmon-pole model.
The second lesson on GW deals with
the computation of the quasi-particule band structure of Aluminum, in
the GW approximation (so, much better than the Kohn-Sham LDA band
structure) without using the plasmon-pole model.
The lesson on BSE deals with the
computation of the macroscopic dielectric function of Silicon within
the Bethe-Salpeter equation.
Concerning parallelism, there is another set of specialized
lessons. For each of these lessons, you are suposed to be familiarized
with the corresponding tutorial for the sequential calculation.
- An introduction on ABINIT in
Parallel should be read before going to the next lessons about
parallelism. One simple example of parallelism in ABINIT will be
- Parallelism for ground-state
calculations, with plane waves presents the combined k-point (K),
plane-wave (G), band (B), spin/spinor parallelism of ABINIT (so, the
"KGB" parallelism), for the computation of total energy, density, and
ground state properties
- Parallelism for molecular
- Parallelism based on "images",
e.g. for the determination of transitions paths (string method),
that can be activated on top of the "KGB" parallelism for force
- Parallelism for ground-state
calculations, with wavelets presents the parallelism of ABINIT,
when wavelets are used as a basis function instead of planewaves, for
the computation of total energy, density, and ground state properties
- Parallelism of response-function
calculations - you need to be familiarized with the calculation of
linear-response properties within ABINIT, see the tutorial Response-Function 1 (RF1)
- Parallelism of Many-Body
Perturbation calculations (GW) allows to speed up the calculation of
accurate electronic structures (quasi-particle band structure,
including many-body effects).
The following topics should be covered later:
- the choice of pseudopotentials
NOTE that not all features of ABINIT are covered by these
tutorials. For a complete feature list, please see the
~abinit/doc/features/ directory. For examples on how to use these
features, please see the ~abinit/tests/* directories and their
accompanying README files.