Copyright (C) 2006 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 .
Many thanks to the contributors to the ABINIT project
between February 2006 and November 2006. These release notes
are relative to improvements of ABINITv5.2 with respect to v5.1.

The list of contributors includes :
B. Amadon, P.-M. Anglade, N. Bandeira, F. Bottin, M. Boulet,
D. Caliste, M. Cote, T. Deutsch, L. Genovese,
M. Giantomassi, S. Goedecker, D. Hamann, F. Jollet,
F. Lambert, Bo Liu, Deyu Lu,
S. Mazevet, Y. Pouillon, V. Recoules, L. Sindic, M. Torrent,
M. Verstraete, Xinjie Wang, C. Wiegert, G. Zerah, Zhou "Bob John"

Also, P.M. Anglade and D. Caliste have contributed a lot to finding
errors during the merge of the different branches.

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.2, released on August 14, 2006.

Changes with respect to version 5.1 :

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

A1. For the developers, there are important changes described in
    section C . Please, also have a look at the new installation notes,
    (either from the Web, or in
    ~abinit/doc/install_notes/install_v5.2.html )

A2. The default value of ntime has been changed from 5 to 0. Indeed
    a non-zero value was misleading (some people did not care about that variable,
    and got underconverged results without noticing it).
    See indefo.F90, and https://www.abinit.org/Infos_v5.2/input_variables/varrlx.html#ntime

A3. In v5.2.3, a bug with some bearing on numerical results,
    related to molecular dynamics and optimization
    has been removed. Bug found by Craig Wiegert.
    Precisely : instead of correctly removing the average force from
    the force felt by each atom, the total force acting on the cell
    was removed from the force felt by each atom. This was the case
    for the Broyden algorithm (brdmin.F90 routine) as well as the
    Molecular Dynamics (moldyn.F90 routine). Of course, if the XC grid
    was sufficiently fine, such overall force should tend to zero,
    and the coding error should have little effect.
    Still, this bug might perhaps explain some painfully
    slow relaxations previously observed.

A4. In v5.2.4, a bug that might have an important effect on numerical
    results has been removed. Test case given by Bo Liu.
    This bug could only appear in phonon dynamical matrix calculations,
    for non-zero wavevectors, in case in the list of admitted
    symmetries for that wavevector, an atom
    would send an atom to an equivalent atom in another cell, and the
    difference vector between the two atoms
    would have non-zero scalar product with the wavevector.
    Precisely : in the non-stationary generation of dynamical matrix
    elements, the action of the symmetrizer for the non-local part included
    an erroneous phase. None of the automatic tests of phonon generations
    tested that possibility. A new test case has been created,
    test v5#21 , from input files by Bo Liu

__________________________________________________________________

B.  Most noticeable achievements

(B0. This version is the first v5 to lead to a full production version. The
    build system seems stable, at least ...).

B1. The computation of phonon band structure in the presence of
    a finite electric field is now possible
    (contribution by Xinjie Wang, with help by David Vanderbilt and Don Hamann)
    See Test_v4#80 , as well as the description of the input variable berryopt
    1. Run a scf ground-state calculation at zero electric field
       to get wave functions for the ground-state calculation in finite electric fields.
    2. Run a scf ground-state calculation in finite electric field. The
       electric field is controlled by the input variable 'efield'. And
       'berryopt' should be 4. The input variable 'kptopt' should be set to be 2.
    3. Based on the wave functions obtained in step (2), perform phonon
       calculation by setting 'berryopt=4','kptopt=3' and 'efield'.
       nsym should be set to 1 currently but this restriction may be
       removed later . The other
       parameters are the same as phonon calculation at zero electric field.
    The choice of k-point sampling N x N x N should be the same in the three runs
    and N should be an even number.

B2. The treatment of Hartree potential with open boundary
    conditions has been included by Damien Caliste.
    This might be useful for treating molecules or clusters in a big empty box
    (not periodic solids, slabs, or 1D systems)
    It is based on a wavelet Poisson solver (from S. Goedecker,
    T. Deutsch, L. Genovese - BIGDFT project).
    The local part of potential created by ions is also treated
    in real space (when GTH pseudo-potentials are involved) and the Ewald
    energy has been replaced by a simple Coulombian ion-ion interaction.
    The treatment in real space is control by the input variable
    icoultrtmt. An other input variable nscforder) is used to tune the scaling
    functions basis used by the Poisson solver. See Test_v5#07 which tests these
    two variables for the hydrogen atom. The forces can also be computed with
    this real space computation but is still in an early stage of
    implementation.

B3. The generation of wavefunction files following the SpecFFNQ
    specification has been coded.
    (Note : the merge of this development is not yet done, likely for v5.2.4)

__________________________________________________________________

C. Changes for the developers

C1. Interfaces are now automatically generated, thanks to the
    script abilint.py, written by T. Deutsch.
    This guarantees a better coherence between the F90 files,
    compilers being able to cross-check the content of the
    arguments.
    Note, however, that each time a new argument is introduced
    in a subroutine, one have to run

     */abilint . .

    in the top directory. See the explanations in the installation
    notes, section 6 (either from the Web, or in
    ~abinit/doc/install_notes/install_v5.2.html )

C2. A brief report is now issued when automatic tests
    are performed, mentioning that each test has
    succeeded (no worry anymore), passed (usually it is OK),
    passed marginally (within 1.5 of the usually accepted deviation)
    or failed. This mechanism is activated in case
    all automatic tests in one test directory are performed.
    As examples, this happen when one issues, in the tests directory :
    make tests_acc
    or
    make tests_min
    or also
    make tests_fast
    and for similar targets.
    This mechanism is based on the fact that now, the (usual)
    fldiff.report files contain a one-line summary of the behaviour of each
    test (this has been added by L. Sindic), and these one-line
    summaries are examined, and compared with a database
    (see the files tests/*/Input/report.in ).
    The output is a file named "report", that is present in
    the directory where the tests were performed.
    See also the section X of the installation notes
    (either from the Web, or in
    ~abinit/doc/install_notes/install_v5.2.html ).

C3. The new directory tests/v5 was started by Pierre-Matthieu Anglade and Damien Caliste
    to accomodate new features.

C4. The new task "make tests_speed" is available in the tests directory,
    to test quickly the speed of the code, after installation.
    This produces results, to be compared
    to those of https://www.abinit.org/documentation/?text=benchmarks .

C5. To new parameters have been defined : czero and cone (for
    complex zero and complex one). See defs_basis.F90 .
    They can be used in call to zgemm or other blas or lapack routines,
    in case the argument has to be complex instead of real.

__________________________________________________________________

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

D1. Implementation of LDA+U in the PAW framework is underway.
    Test cases and doc must still be added.
    Work by F. Jollet and coworkers B. Amadon

D2. In ANADDB, related to electron-phonon interaction,
    it is now possible to compute and print the nesting factor.
    See the input variable prtnest (of ANADDB). Implemented by  Matteo Giantomassi.
    See also automatic test elphon_5 .

D3. In ANADDB, related to electron-phonon interaction, it is now
    possible to output the Fermi surface, in a format compatible with XCrysDen.
    Implemented by  Matteo Giantomassi.
    Still need an automatic test ...

D4. Better use of memory and more efficient coding of XC routines, from Luigi Genovese

D5. Improvements of the PAW implementation, by Marc Torrent.

D6. Debugging and bug fixes of the build system by Yann Pouillon, as well as Damien Caliste.

D7. Some output values are exported into XML files when the input variable
    outputxml is set. The corresponding
    DTD is distributed as extras/post_processing/abinitRun.dtd. All the DTD is not
    yet implemented and this one is currently restricted to ground computations
    (and derivative such as geometry optimisation). Development by Damien Caliste.

D8. A restart for molecular dynamics has been coded by Stephane Mazevet
    Still need to be documented, with test cases.

D9. Computation of the conductivity has been coded within PAW, by V. Recoules.
    Still need to be documented, with test cases.

D10. Two new SCF preconditioners are under development :
    one is based on a real space treatment of the density-potential
    relationship, and the other is based on Thomas-Fermi-Von Weiszacker
    model. This has been developed by Pierre-Matthieu Anglade.

D11. FFT parallelism has been tested, in a selected regime, and has shown
    excellent performance. However, it is not yet in production stage.
    Full generality should be reached, automatic tests and documentation are still lacking.
    (contribution by Mireille Boulet, Gilles Zerah)

D12. A "Materials studio to ABINIT" converter has been written by Zhou (bobjohn.lzu@gmail.com).
     It is available at util/users/Cell2Abinit.py .

D13. Debugging of memory use (deallocate missing) by Deyu Lu and PM Anglade, as well as DCaliste.
     Other debugging by Nuno Bandeira, MVerstraete, DCaliste, MTorrent, GZerah, MBoulet,
     BAmadon, FBottin, FLambert

D14. The documentation of the input variable kptbounds has been improved a lot : it indicates
     now the coordinate of different k points, for FCC, BCC and exagonal lattices, as well as
     typical paths in reciprocal space, useful for drawing electronic (and phononic band structures).