##### Copyright (C) 2003 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 following contributors to the ABINIT project
    between August 2002 and February 2003:
    J.-M. Beuken, J.-F. Briere, R. Caracas, S. Erwin, S. Goedecker,
    Ph. Ghosez, I. Hamada, F. Jollet, A. Masago, M. Mikami, L. Pizzagalli,
    V. Olevano, J.-Y. Raty, L. Sindic, Y. Suzukawa, M. Torrent, B. Van Renterghem,
    M. Veithen, M. Verstraete, G. Zerah, M. Zhang.

    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 4.0, released on January 9, 2003.

    Changes with respect to version 3.4 :

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

    __________________________________________________________________

    A.  WARNINGS

    A1. The algorithm for the initialisation of the wavefunctions has been
        completely changed. Previously, a pseudorandom, sequential, series
        was used : in the parallel case, each processor had his own series.
        Now, the algorithm is deterministic, and can give
        the same results in sequential and parallel executions.
        It was seen that the present initialisation is, on average,
        slightly less effective than the random one. For some test cases,
        one more SCF cycle was needed to reach the same convergence.
        In exceptional cases, more SCF cycles are needed, but also, in some cases,
        the new initialisation is faster. In practice, the difference
        is usually negligible, compared to the total time, and the advantage
        for automatic testing is obvious.

    A2. The primitive cell generated by
        angdeg 3*90
        has changed : rprim is now 1 0 0 0 1 0 0 0 1

    A3. The name of the ABINIT utility "IFC" was changed to "anaddb",
        to avoid confusion with the Intel Fortran Compiler...

    __________________________________________________________________

    B.  Most noticeable achievements

    B0. There are milestones in important projects (PAW,
        FFT parallelisation), however not available for production yet,
        see D1 and D2.

    B1. The electronic Density-Of-States can now
        be computed using the tetrahedron method (M. Verstraete).
        See the input variable prtdos=2, as well as the
        automatic test number 46 of test_v3, as an example.

    B2. The 2n+1 theorem of perturbation theory has been
        implemented. It is working for electro-optic coefficients
        (implemented and tested).
        The computation of the Raman cross-section is implemented,
        and now under testing. If you want to use these features,
        contact M. Veithen. Example : Test_v3#83 .
        (M. Veithen, +some help from Ph. Ghosez and XG)

    B3. The work on the Shubnikov magnetic group has been finished :
        (1) all the 1191 Shubnikov groups
        can be generated, see the input variables spgroupma (or genafm)
        (2) their magnetic point group is recognized, as well as
        their magnetic Bravais lattice.
        The automatic recognition of magnetic symmetry operations
        was already available previously.
        There are numerous examples (all groups are tested !):
        Test_v3#20,23,24,32 to 39 ; Test_v4#21 to 29 (R. Caracas + XG)

    B4. The Time-Dependent DFT computation of excitation energies
        and oscillator strengths has been parallelized (J.-Y. Raty)

    B5. ABINIT can output CML files (CML means "Chemical Markup Language",
        a XML-based markup language), see the input variable prtcml .
        It can also read CML files (the CML parser is rather
        primitive, but works for the files generated from ABINIT),
        see the input variable cmlfile .

    B6. A "community" Web repository has been created, by S. Erwin .
        See http://cst-www.nrl.navy.mil/~erwin/abinit
        Many ppt presentations, from the 1st ABINIT developer workshop,
        Louvain-la-Neuve 6-8 Nov 2002 are gathered, as well as
        some theory documents (see D12).

    B7. The AIM (Atom-In-Molecule) post-processor has been made more robust,
       more transferable, and much better documented. New automatic
       tests are available. Please, read the AIM help file, even
       if you had read it previously.

    __________________________________________________________________

    C. Most noticeable changes for the developers

    C1. The script "abirules", whose goal is the automatic modification
      of the Fortran source, in view of the fulfilment
      of the ABINIT coding rules, has been made more powerful (L. Sindic) :
      it can automatically reorder (using alphabetic classification)
      the variables in declaration lines.
      This means that the developer should not worry too much now about
      the fulfilment of this rule, it will be done automatically.
      Other improvements have been made to abirules as well, for cheking
      purposes.
      For those interested, the command to be executed to apply abirules is
      make abirules
      from the main directory. The abirules script is in ~abinit/abirules .

    C2. The arrays indpw (and indpw_k, indpw_diel, indpw_sus, indpw_prc ...) have been
      eliminated due to changes in fourwf, themselves due to the new FFT, see D2.
      The second dimension of npwarr (or npwar1, npwarr_sus, npwarr_diel ...)
      have been removed. The routines boundy.f, indfft.f have been eliminated.
      The content of the k+G temporary files (unkg,unkgs,unkg1 ...) has been reduced.
      The counter variable iind has been eliminated.
      The arguments of many routines have been changed, especially the often used
      rdnpw, kpgio, fourwf .
      The routine rdnpw now reads two lines (check on the first, skip the second)

    C3. The information about the reduced coordinates of each of the
      planewaves used to expand the wavefunctions is now present
      in the wavefunction files (_WFK, _WFQ ...).
      This is described in the abinis_help.html file, see section 6.7 .

    __________________________________________________________________

    D.  Other changes
    (or on-going developments, not yet finalized, but integrated in v4.0).

    D1. The first self-consistent total energy computation based on
        PAW has been achieved.
        See the automatic tests 4 and 5 of Test_v4. Need still some effort
        to have a real production tool.
        (F. Jollet, M. Torrent, G. Zerah)

    D2. A new FFT implementation is available, see the input variable fftalg .
        It was developed by SGoedecker, and has achieved excellent MPI/OpenMP
        parallelism, in standalone, up to 128 processors.
        Its implementation in ABINIT in sequential
        mode is nearly finished (fftalg 400 and 401 are OK, see
        Test_v1#87,88, Test_v3#50). The modifications
        of ABINIT for parallelism on real and reciprocal space are
        still numerous, and will be a goal for the coming months.

    D3. As a minor (but useful) improvement of the ABINIT parser :
        sqrt(xx) and yy/zz are parsed, and interpreted as the square root of xx
        and the division of yy by zz. For example, instead of
        xred 0.333333333333333 0 0
        one can specify
        xred 1/3 0 0
        Note however, that it is not possible to combine sqrt and a fraction,
        e.g.  sqrt(3/4) is invalid

    D4. The Lattice Wannier Function program has completed a first determination
        of a Wannier function : it seems to work, but should be tested more.
        Automatic tests are present : Test_v3#88 and 89.

    D5. In the directory Test_paral, the shell script "Run" has been translated
        to perl ("Run.pl"), so that it will work under DOS (L. Sindic)

    D6. Some of the memory bottlenecks of the GW part of ABINIT
        have been eliminated (J.-F. Briere)
        Also, some routines have been cleaned for portability.

    D7. Angular analysis of the wavefunctions (s-, p-, d- character) is now possible,
        within cut3D. Next step will be to obtain angular-momentum
        decomposition of DOS (M. Verstraete)

    D8. It is now possible to compile routines in different directories using different
        compiler options ;
        previously this was restricted to FFTS, NONLOCAL and IOWFDENPOT

    D9. A tutorial for GW has been set up (V. Olevano), but it is not yet
         operational : it does not yet work on PC/Intel.

    D10. Data analyser from Mike Zhang, in Utilities/MatLab_data_analysis

    D11. New makefile_macros :
     - Intel PIV IFC_MPICH , Nec SX5 by I. Hamada and A. Masago
     - SGI Origin 2000 R14000 (Spinoza)
     - Sun (sunfire) (by B. Van Renterghem)

    D12. In the framework of the self-documentation project
     (M. Mikami, helped by Y. Suzukawa), the content
     of the Infos/Theory directory has been increased (contribs by VOlevano,
     GZerah). Other contributions have been made available on the community Web site,
     see B6, by S. Erwin (contribs by F. Jollet, XG).

    D13. The "sponsor" Web page has been created (J.-M. Beuken, XG)

    D14. The Src_2cut3d dir has been renamed Src_9cut3d

    D15. new option for cut3d : OpenDX format for density as well as wavefunction,
        and associated coordinates in XYZ format (L. Pizzagalli)

    D16. More codes are mentioned in Infos/other_codes (from A. Oganov)