Copyright (C) 2008 ABINIT group (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 .
Many thanks to the contributors to the ABINIT project
between December 2007 and February 2009. These release notes
are relative to improvements of ABINITv5.6 with respect to v5.5.

The list of contributors includes :
B. Amadon, E. Arras, J.-M. Beuken, F. Bottin, F. Bruneval, D. Caliste, Chunping Hu, M. Cote,
T. Deutsch, M. Giantomassi, D. Hamann, A. Jacques, J. Janssen,
F. Jollet, T. Jourdan, S. Leroux, C. Motta, S. Pesant,
Y. Pouillon, T. Rangel, G.-M. Rignanese, R. Shaltaf, L. Sindic, M. Torrent,
M. Verstraete, G. Zerah, J. Zwanziger

It is worth to read carefully
all the modifications that are mentioned in the present file,
and examine the links to help files or test cases ...
This might take some time ...
Please note the WARNINGS !

Xavier

__________________________________________________________________

Version 5.6, released on September 3, 2008.

Changes with respect to version 5.5 :

A. WARNINGS.
B. Most noticeable achievements (for users)
C. Changes in the package, for developers
D. Other changes (or on-going developments, not finalized)

__________________________________________________________________

A.  WARNINGS

A.1 The input variable ratsph is now an array ratsph(ntypat).

A.2 The input variable exchn2n3 has been replaced by exchn2n3d,
    because the former was terminated with a digit, which is incompatible
    with the indexing of the input variables by the dataset number.

A.3 The interface to the configure system for the production of the parallel version of abinit (abinip),
    has changed. In brief, if you were using the "manual" generation previously,
    you likely have to switch to the "auto-detection" (enable_mpi=yes).
    Also, with enable_mpi=yes, the user should provide the path to
    the correct MPI directory prefix, e.g.
    with_mpi_prefix="/usr/local/mpich-1.2.7p1-intel-9.1-64".
    The "manual" generation of the MPI support (enable_mpi=manual)
    needs many configure variables to be define explicitely, unlike
    previously.

    More details :
    Interface changes to the configure system :
    configure: reporting user interface changes:
    configure:  * new option --enable-error-handlers is available
    configure:  * new option --enable-gw-dpc is available
    configure:  * --enable-mpi has a new meaning
    configure:    please check that enable-mpi="yes" is OK for you
    configure:  * new option --enable-scalapack is available
    configure:  * --with-fc-name renamed --with-fc-vendor
    configure:  * new option --with-mpi-level is available
    configure:  * new option --with-plugins-prefix is available
    configure:  * new option --with-plugins-srcdir is available
    configure:  * new option --with-scalapack-includes is available
    configure:  * new option --with-scalapack-libs is available
    configure:  * --enable-tricks has a new meaning
    configure:    please check that enable-tricks="yes" is OK for you

__________________________________________________________________

B.  Most noticeable achievements

B.1 The PAW can be used to perform GW calculations.
    Compared to the norm-conserving case, this will allow
    to get closer to all-electron calculations,
    and also will allow to gain CPU (when the planewave energy cut-off to be used is smaller)
    This new capability of ABINIT is exemplified in v5#66 .
    Work done by Matteo Giantomassi.

B.2 The convergence of the GW calculations with respect to the number of bands
    has been improved dramatically, thanks to the extrapolar method,
    described in Phys.Rev.B78, 085125 (2008).
    This should results in a 3-5 speed up of GW calculations for realistic systems,
    thanks to a large lowering of the number of unoccupied bands needed to obtain the same accuracy.
    See the new input variables gwcomp and gwencomp, and the new
    automatic tests v5#65, 69 and paral#V .
    Work by Fabien Bruneval. Test v5#69 provided by Matteo Giantomassi.

B.3 Non-collinear magnetism (with spinors) is available for PAW calculations.
    Also, spin-orbit interaction is available for PAW calculations.
    For the spin-orbit calculation, the new input variable pawnsporb has
    been defined.
    Automatic test v5#17
    Work done by Marc Torrent, with participation of T. Jourdan and E. Arras.

B.4 LDA+U is now available in production (always need PAW).
    See the (already existing) input variables usepawu, upawu, jpawu
    as well as some new ones : dmatudiag, lpawu, dmatpuopt, usedmatpu
    (and the internal variable natpawu).
    Automatic tests v5#08, 11, 19, 53
    Work done by Bernard Amadon.

    LDA+U is available with non-collinear magnetism and with spin-orbit interaction
    Automatic test v5#16 for non-collinear magnetism
    Work done by M. Torrent

    A tutorial is available to explain the use of LDA+U,
    see the menu of the tutorials, work by Simon Pesant, helped
    by M. Coté and XG. In this tutorial, several additional examples
    are given.

    A lm-dependent energy shift can be applied atom by atom,
    see the input variables natvshift, atvshift. This would e.g. allow
    to compute the value of the U according to the method by
    Coccochioni and de Gironcoli.
    Automatic tests v5#14 and 15 are available. Work done by XG.

B.5 In the framework of band/FFT/k-point parallelisation,
    spin-polarized (nsppol=2 or nspden=2) as well as PAW method calculations
    are now allowed.
    PAW case is shown in the test paral#R .
    Precondition of density and/or correction of forces (see iprcch) and time-reversal
    symmetry (istwfk=2) are now available for beta tests.
    Work done by F. Bottin, with M. Torrent, F. Jollet and G. Zerah.

    Also allowed within band/FFT/k-point parallelization : optics_paw.
    Work by M. Torrent.

    The computation of the static susceptibility is now compatible with
    band/FFT/k-point parallelisation (done in sequential on the nfftdiel grid).
    Work done by G. Zerah.

B.6 The static susceptibility can now be computed within PAW, opening access
    to the extrapolar algorithm to speed up and/or stabilize the SCF cycles.
    The iprcel input variable can thus be used with the following values : 4x, 6x, 14x .
    Automatic test paral#R.
    Work done by M. Torrent.

B.7 The Wannier90 library, interfaced with ABINIT, can now
    be used in production,
    work by Tonatiuh Rangel, Bernard Amadon, and Don Hamann, helped by G.-M. Rignanese, as well as
    Y. Pouillon for the build system.
    New test has been provided in the tests/wannier90 directory (B. Amadon).
    Related input variables w90iniprj, w90lplot, w90nplot, w90prtunk.
    However, the testing procedure is still rather incomplete. Only the .out is tested.

B.8 Anti ferromagnetic symmetries can be used for GW calculations,
    providing significant speed up for antiferromagnetic materials.
    Test v5#68. Work done by Matteo Giantomassi.
    See also section D.15 .

B.9 A cut-off for the Coulomb interaction, to be used for GW calculations
    of nanosystems (clusters and wires) has been introduced.
    See the new input variable vcutgeo, as well as icutcoul, and the related rcut.
    One test is provided, paral#V , for a finite system.
    More tests should be provided for the case of the cylinder geometry.
    Work done by M. Giantomassi. Test paral#V provided by F. Bruneval.

B.10 Local exchange (=atom-centered-only part of the exchange)
     has been coded within the PAW.
     Input variables : useexexch, lexexch.
     Automatic test v5#18 is available, testing local part of PBE0 hybrid functional.
     Work done by Francois Jollet.

B.11 The ability to compute the Fermi contact interaction at each nuclear
    site, that is, the electronic density at each nuclear site, has been coded (PAW).
    This is needed for the computation of isomer shifts to model Mossbauer spectra.
    Input variable prtfc.  Automatic test v5#34.
    Also, the input variable prtefg, coupled with ptcharge,
    allows to compute the Electric Field Gradient using an ionic point charge model .
    Automatic test number v5#35.
    Work done by Joe Zwanziger, with some help from M. Torrent.

B.12 For very high electronic temperatures, the direct computation
    of the density based on the recursion method (instead of the
    iterative determination of the eigenfunctions) has been coded.
    Input variables recnpath, recnrec, recptrott, rectesteg,
    recrcut, recefermi, rectolden.
    Still to be documented. Automatic test paral T (to be activated !).
    Reference ?
    Work by Stephane Leroux and Gilles Zerah.

B.13 Make the ABINIT parser independent for third party codes
     through a libabinis.a library.
     Introduction of language bindings for C and Python.
     See src/bindings/README .
     Based on the libabinis.a library, one can parse an ABINIT input
     file and access all scalar and array data of all datasets on this file through
     get routines using the name of the attribute as a keyword.
     A simple pyGtk interface has been created to read ABINIT input
     file to demonstrate the capabilities of Python bindings.
     Further developments will be done later to access the geometry tools
     (symmetry finder ...) with the binding.
     The binding can be used by V_Sim (http://www-drfmc.cea.fr/sp2m/L_Sim/V_Sim/index.en.html)
     Work by Damien Caliste.

B.14 The m-projected DOS is now available via the input variable prtdosm,
     and has been parallelised (including band/FFT), and made compatible with mkmem=0
     (among other improvements). Tests to be provided.
     Work by M. Torrent

B.15 The algorithm of D. Alfe (Comp. Phys. Comm. 118, 31 (1999)) for the
     prediction of the density, especially useful for the parallel case,
     has been implemented. It is available with iprcch 5 or 6.
     Tests to be provided.
     Work by M. Torrent

__________________________________________________________________

C. Changes for the developers


C.1 The PAW part of ABINIT has been largely rewritten :
    creation of methods to manipulate the objects, routines to modularise the
    operations, etc. This was needed to gather the new developements
    related to GW as well as response-function.
    Some speed-up of PAW calculations thanks to the storage in memory
    of the coefficients of the scalar product between wavefunctions and
    projectors (cprj). Input variable pawusecp. Default value is such
    that the cprj coefficients are now always stored
    Also, new DEV variables for PAW : e.g. pawnhatxc .
    Work by M. Torrent and M. Giantomassi.

C.2 The robustness of the build system (bug fixing) has been
    improved a lot by Y. Pouillon . Also, several problems have been
    observed, isolated, fixed by Y. Pouillon, J.-M. Beuken, D. Caliste and A. Jacques.

C.3 Preparation of a testing farm (platforms, compilers) by JM Beuken.
    At present, the machine chum has been customized with 6 compilers.
    New config/build-examples/*cf files have been prepared.

C.4 The GW part of the code can now use double precision complex
    or single precision complex. This is to allow better portability and testing.
    At present, only accessible through modification by hand of the
    meaning of gwp and gwpc in src/defs_basis.F90 .
    Work by Matteo Giantomassi.

    abiruls.pl has been updated to accomodate this modification (L. Sindic)

C.5 Cleaning : lib has been replaced by plugins ; lib/light
    has been suppressed ; lib/numeric transferred to src
__________________________________________________________________

D.  Other changes
(or on-going developments, not yet finalized).

D.1 PAW + Response function  (phonons) is under development, by M. Torrent.

D.2 For GW calculations, more choice is offered concerning
    memory management. Input variable gwmem.
    Test v5#65. Work done by Matteo Giantomassi.

D.3 In order to restart calculations of Sigma, one will be able to rely on the susceptibility,
    thanks to the input variables irdsuscep and getsuscep .
    Doc and automatic tests missing.
    Work in progress, by Matteo Giantomassi.

D.4 The input variable prtgkk can be used to ease the preparation of the
    computation of electron-phonon matrix elements.
    See automatic test v5#85,86,87,88.
    Associated input variable prepgkk.
    Work done by Matthieu Verstraete.

D.5 The response to a magnetic field (with PAW) is under development.
    Work by Joe Zwanziger. Input variable rfmgfd.

D.6 The ability to define the number of bands per processor for the lobpcg
    algorithm has been coded. Input variable bandpp.
    No automatic test available yet.
    Work by Francois Bottin.

D.7 New test v5#67, for the input variable mbpt_sciss, namely the
    scissor operator possibly used in GW calculations.
    Contributed by Riad Shaltaf.

D.8 New test paral#U, to test the parallelism of GW calculations without
    plasmon pole models. Contributed by F. Bruneval.

D.9 Cut3D output of wavefunction : option 14, to output wfs using the Gaussian/cube format.
    Work by F. Bruneval.

D.10 New input variable prtspcur, only for development, by MVerstraete.
    Associated tests v5#95,96,97,98

D.11 New test v5#91, for the development of the lobpcgII algorithm.
     Work by S. Leroux and G. Zerah .

D.12 Maintenance work on abilint by T. Deutsch

D.13 Decomposition of the frequency-dependent response of a slab
     into a bulk contribution and a surface contribution.
     Work by C. Motta. Tests and documentation to be provided.

D.14 For spin polarized systems, density and magnetization are mixed,
     instead of up and down density.
     Work by M. Torrent

D.15 Work on GW for spin-polarized and spinorial cases.
     In particular, for spin-polarized case, COH and contour integration method are treated.
     Work by M. Giantomassi

D.16 Work on parallelism of GW, by F. Bruneval.

D.17 Work on LDA + DMFT, by B. Amadon.

D.18 Allowing GW for charged system, by F. Bruneval. Test to be provided ?!

D.19 In addition, miscellaneous bug fixes by many developers (see the list of contributors),
     many bug fixes in documentation, improvements in the tutorials ...

D.20 Allowed to use '*' in the input file, without specifying the number of times the value has to be repeated.