Release notes

##### Copyright (C) 2010-2021 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
    January 2017 and May 2017. These release notes
    are relative to modifications/improvements of ABINITv8.4 with respect to v8.2.

    The list of contributors includes :
    F. Altvater, G. Antonius, L. Baguet, J.-M. Beuken, J. Bieder, E. Bousquet,
    W. Chen, G. Geneste, M. Giantomassi, Y. Gillet, X. Gonze, F. Jollet, A. Martin,
    F. Naccarato, G. Petretto, S. Prokhorenko, F. Ricci, M. Torrent , M. Verstraete, 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 ...

    Xavier

    __________________________________________________________________

    Version 8.4, released on June 2, 2017.

    Changes with respect to version 8.2 :

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

    __________________________________________________________________

    A.  Warnings and important remarks

    A.1 The Github ABINIT Web page, at https://github.com/abinit, allows one to
        access the mirror of the repository of ABINIT, as well as some other projects
        related to ABINIT, like AbiPy or the pseudo-dojo.

    A.2 The content of the ABINIT Web portal, specifically for the pages related to the presentation of
        ABINIT (https://www.abinit.org/about/what-is-abinit), has been upgraded.

    __________________________________________________________________

    B.  Most noticeable achievements

    B.1 Implementation of algorithms to interpolate the electronic band structure,
        based either on "star functions" of on "B-splines" (as alternatives to Wannier function interpolation).
        See the input variables einterp, nkpath, and prtebands, and tests Tlibxc#42, Tv8#04.
        Work by M. Giantomassi

    B.2 The Fock mixing factor for the HSE hybrid functional can be tuned thanks to the input variable gwfockmix  .
        (Warning : this is for the GW-type approach to electronic structure only, not for total energies)
        See test Tlibxc#43 .
        Work by W. Chen.

    B.3 Implementation of spatially-varying chemical potential, for each atomic species.
        See the input variables chempot and nzchempot, and tests Tv8#30 and 31.
        Work by X. Gonze

    B.4 Linear geometrical constraints can now be imposed on PIMD runs.
        This allows ABINIT to use the blue moon sampling technique.
        See the input variable pimd_contraint, and test Tv8#05
        The use of history (HIST) files is now possible with images.
        Work by G. Geneste and M. Torrent.

    B.5 Computation of linear reponse (optics executable as well as BSE part of ABINIT)
        in the case of temperature-dependent electronic structure.
        See tests Tv67mbpt#50-53.
        WARNING : This capability of ABINIT has not been fully tested. However, the
        basic tests for non-spin-polarized simple semiconductors are OK.
        As usual, use at your own risk.
        Work by Y. Gillet and M. Giantomassi.

    B.6 Computation of Gruneisen parameters by finite differences, within ANADDB.
        See test v8#45
        Work by M. Giantomassi

    B.7 New LOBPCG implementation wfoptalg=114.
        This is the default when paral_kgb=1.
        Performances are equivalent in standard use (MPI alone) and much better with openmp+multithreaded linalg.
        It also allows to have only one block for large system and to reduce memory copies.
        This version has been developed keeping in mind the next generation of HPC.
        Work by J. Bieder

    B.8 New algorithms for the displacement of nuclei (ionmov) :
        - Hybrid Monte Carlo (HMC) predictor (ionmov=25)
        - Velocity Verlet (VV) NVE molecular dynamics predictor (ionmov=24)
        See Tv8#12 for ionmov=24.
        Work by S. Prokhorenko

    B.9 Refactoring of ANADDB for the production of DOS and other thermodynamic quantities,
        also the mean square displacement and mean square velocity.
        The DOS is obtained using usual DOS methods, instead of the histogram method,
        and converges much faster with ng2qpt. Activated with prtdos 1 or 2 in anaddb.
        Work by M. Verstraete.

    __________________________________________________________________

    C. Changes for the developers (also compilers)

    C.1 Management of the test farm : the new bot ubu_intel_17_openmpi
        has been activated, so that Intel 17 is now supported.
        Also, replacement of shiva_gnu_6.3_py3k by inca_gnu_6.3_py3k,
        update of graphene (MacPorts) to gcc6.3 + scalapack.
        By J.M. Beuken.

    __________________________________________________________________

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

    D.1 The printing of potentials (e.g. prtvxc ...) works now for DFPT.
        By M. Verstraete.

    D.2 New input variable prtphbands.
        See tests v7#88 and v8#46.
        By M. Giantomassi

    D.3 In case the ANADDB interpolation of phonon frequencies produces
        erroneously a negative slope around gamma, the new nsphere=-1 possibility
        allows ANADDB to select a set of IFCs that does not lead to such non-physical behaviour.
        See test v8#46.
        Work by M. Giantomassi.

    D.4 Added new value for nlflag=3 that computes only the non-linear susceptibility.
        By F. Naccarato.

    D.5 Computation of forces is now possible in the Wavelets + PAW case.
        By M. Torrent.

    D.6 Ongoing work concerning the new "driver" optdrive=7 specifically dealing with electron-phonon
        related computations (including zero-point renormalisation).
        See new tests v8#41 to 44.
        Work by M. Giantomassi.

    D.7 Ongoing work : Raman intensities, in the PAW case, using DFPT.
        By L. Baguet and M. Torrent

    D.8 Ongoing work related to non-collinear DFPT.
        Definition of the new input variable rfmagn, as well as Tv8#20 .
        DFPT with static B-field (Zeeman term only) works for q=(0 0 0).
        Adjustmanet of dfpt corrections for metals to non-collinear case.
        Bug fix for GS calculations with finite magnetic field (case of collinear spins).
        By S. Prokhorenko, F. Ricci, and E. Bousquet

    D.9 Ongoing work on the multibinit project.
        NPT simulations are possible.
        New tests v8#06 and paral#100, to check the correct IO of XML files.
        Note that tests Tv7#120-124 have been renumbered Tv8#07-11.
        Work by A. Martin

    D.10 New test paral#62, to make sure paralkgb=0 works when there are some idle procs.
         By M. Giantomassi

    D.11 Ongoing work on forces and stresses for hybrid functionals.
         By F. Jollet

    D.12 Ongoing work on the electron-phonon postprocessor ElectronPhononCoupling.
         Fix bug affecting MPI runs.
         By G. Antonius.

    D.13 Improvement of zheevd using MAGMA (from a msg on the forum)
         By M. Torrent

    D.14 Implemented KSS.nc output with netcdf primitives
         By M. Giantomassi

    D.15 Concerning  the Fourier interpolation of the phonon band structure,
         inside ANADDB, work by G Petretto :
         - Updates in the calculation of sound velocity,
         - Small modifications for nlflag==3 and added some quantities to the anaddb netcdf file,
         - Fix a bug in the implementation of the new weights

    D.16 Concerning Path Integral Molecular Dynamics with Quantum Thermal Bath :
         allow restart from history file.
         By M. Torrent

    D.17 Refactored the computation of the electric dipole moment.
         By M. Torrent

    D.18 The energy width for the bands in the Boltztrap intrans file is now automatically set.
         Previously a constant 0.4 Ryd, and the user should have checked by hand if
         the value was sufficient. Should be considered a bug fix.
         By M Verstraete

    D.19 Numerous miscellaneous additional bug fixes and improvements of documentation by :
         F. Altvater, G. Antonius, J. Bieder, M. Giantomassi, F. Jollet,
         G. Petretto, M. Verstraete, M. Torrent, J. Zwanziger.