Changelog

1.0.2

  1. Further improvement of handling of s,p,d ordering problem

  2. Code should be totally case insensitive (all strcmp’s replaced with strcasecmp).

  3. Param file appended to fhi, ncpp files (thanks Wissam!)

  4. Plot help ‘vi’ example corrected.

  5. Added fclose() in do_nl.c (thanks Keith!)

  6. Configure script modified to allow LDFLAGS to be appended from command line

  7. Fixed spelling of Schrodinger in descreen.f

  8. AE and PS eigenvalues were actually reversed in descreen.f (they are identical so no big deal).

  9. Fixed bug in nllogd for KB log-derivative (missed common block)

  10. Adjusted do_logplt so ‘ae ps nl’ need not be repeated to make plot (thanks Rongqin!)

  11. Added line for refernece energy in logder plot (thanks Rongqin!)

  12. Modified treatment of unbound states to work with semicore (thanks Sara!)

  13. Modified output for .ncpp and .fhi to indicate PW XC correctly

  14. Changed MacOSX configure defs so -r8 included by default

  15. Major modification of ghost state reporting, now states whether ghost testing was inconclusive (no bound states for local potential)

  16. Ghost testing added for unbound states as local or non-local

  17. Interp.f output cleaned up

  18. Logder plotting states that no [loginfo] key block is set (not just a core dump!)

  19. Fixed legends for plots that were not correct

1.0.3

  1. Ghost testing fixed, removed the ‘?’ output if a local state was not bound. Now this eigenvalue is treated as if its eigenvalue = 0.0

  2. Changed the way an unbound state is selected. Now, if the filling is set to <-1.0e-12, the state is treated as unbound (and treated as if it is empty). The eigenvalue is fixed by the guess or set to 0.0 if no guess specified.

  3. Added the .recpot output format routines (contributed by KeithRefson). This format is native to the solid state code CASTEP.

  4. Added GNU license information, license header prepended to every .f .c and .h file and added a “COPYING” file which contains the full-text of the license.

  5. Fixed bug related to DNL in the PWF format (introduced in the previous version).

  6. Added the Fuchs + Scheffler partial core correction method which is implemented in fhi98pp.

  7. Fixed bug related to labeling the eigenvalues in the logdplot

  8. Changed keyblock help to reflect #2 and #6 above.

  9. Configure script changed such that ifort and ifc libcxa gets statically linked (requested by Keith Refson).

  10. Added true NULL characters to nwrite calls in writepwf for better compatibility.

2.0.1

  1. Troullier-Martins potential method added

  2. Cleaned up plotting output

  3. Added calculation of the convergence of the kinetic energy error, output is sent to both rpt and log file

  4. Can now plot the KE convergence

  5. Explicit announcement of the presence of ghost states in the rpt file

  6. Changed configure script to generate ONE set of makevars such that users can edit them if configure fails

  7. Added listing of compile and execution platform in log file

  8. Fixed some errors in the element symbol table

  9. Increased number of keyblock reads so that keyblocks ending in string reads don’t screw things up.

  10. Added the ability to set an environmental variable called $XMGRACE_OPTS which is included in the command-line call to xmgrace.

  11. Increased the dimensions of all parameters such that 5f elements can be constructed

2.0.2

  1. Bug fix for ncpp (PWSCF) style output. Wavefunctions had wrong number of r’s in 1.0.2, 1.0.3, and 2.0.1. See doc/README_solidstatecodes for more information.

2.0.3

  1. Bug fix for f-projectors in .pwf output format

  2. Applied patch from Keith Refson to repair .recpot output format

  3. Some (but not all) sprintf statements changed to snprintf

  4. BETA level implementation of .psf (siesta) format and .cpmd (CPMD) output format, see ‘opium -c’ for more information

  5. GGA functional allows for smoothing near the origin (see ‘opium -k’ for how to invoke).

  6. Corrections to KE convergence output when semicore states are involved. Now the KE convergence of all valence orbitals is computed.

2.0.4

  1. .pwf output file now contains the wavefunctions from the MOST RECENT configuration at the time of generation. This is done since often the reference is not the desired ground state atomic configuration.

  2. Included the rudimentary emacs OPIUM mode file “_emacs_mode”. This can be appended to ones ~/.emacs init file to included highlighting of the acceptable keyblocks.

2.0.5

  1. Bugfix for new .pwf output (eigenvalues match the configuration used for the output wavefunctions).

  2. Useful information (compile and execution host, os, date, version, and command line used for psp generation) written at the end of most psp output file types.

  3. Bugfix in do_ke.c and kcomp.F (dimensioning error)

  4. Bugfix for ‘all’ command – no longer attempts ‘fc’ step.

2.0.6

  1. 2.0.5 left the core-correction out of .pwf format. This is now fixed.

3.0

  1. Change in versioning scheme (3 numbers is too many).

  2. Removal of relativistic grid, now srl potentials use the same grid as the nrl grid. This means that the following routines have been removed: (atm.F, difrel.F, etotal.F, dsolv2.F, velect.F)

  3. Ability to perform unbound states in a srl potential has been added

  4. A modified version of the Hartree-Fock code by C. Froese-Fischer and G. Gaigalas has been incorporated into OPIUM to construct HF psps.

  5. A modified version of the Dirac-Fock code by A.L. Ankudinov, S.I. Zabinsky, J.J. Rehr has been incorporated into OPIUM to construct srl HF psps.

  6. Two new routines, hfindesc.F and hfsmooth.F have been added to pseudo/ (hfindesc.F, hfsmooth.F)

  7. Each psp and ps-wavefunction is written to its own file (labeled by .l=<nnn>). This allows for one to (for now by hand) use a different reference state for each psp.

  8. Most plots have been changed to show more construction info in the title and subtitle.

  9. Submissions from K. Refson have been incorporated (adds a partial core correction to the .recpot format).

      1. Al-saidi added the .champ format for the QMC CHAMP code.

  10. .casino format added for the QMC CASINO code (not thoroughly tested)

  11. Internal changes to redundant fortran common blocks. Now much fortran info is in the aorb, adat, and aval common blocks.

  12. Default grid now extends to 120 au.

  13. Ability to do semi-local tests in DFT resurrected. For now, HF tests can only be done via “sl”, trying “nl” throws an warning and reverts to sl. The “tc” command performs “nl” tests for DFT psps and “sl” tests for HF psps.

  14. The Wu-Cohen GGA and Perdew-Wang 91 GGA functionals were added to excorr.

  15. GGA XC functionals are changed to LDA smoothly starting at 0.001 bohr and ending at 0.0 bohr. This is due to heavier atoms resulting in “spikes” occurring near r=0.0 (this comes from the GGA enhancement terms behaving badly where the density gets very small). This is only done automatically for Z>36, for Z<=36 no smoothing is done.

  16. The behavior of unbound states has changed. Now a occupation number < 0 signals that the state should be treated as unbound. If the state is NOT marked as unbound and the solver can’t find a bound state, the run fails (it used to mark such a state as unbound and keep going). If the state is constructed as unbound and a test case DOES NOT indicate and unbound state, it will use the psp to try and find a bound state.

  17. Instead of having each part of the code figure out the correct states for a semicore calculation, the parameter.c routine now REORDERS the param file on the fly to put all states in s,p,d,f,s,p,d,f etc. order, i.e. the first instance of each ‘l’ is put in increasing ‘l’ order, then the next instance of each ‘l’ is put in increasing ‘l’ order, etc. until there are no more valence states. The Atom, Configs, Pseudo, and Optinfo keyblocks are all reordered the same way.

3.1

  1. .ncpp output no longer lists “-1” electrons when a state is unbound.

  2. ghost reporting in .rpt fixed (used to always say “no ghosts”)

3.2

  1. Cleanup of src/atom/average.f

  2. Scalar relativistic averaging now defaults to being done correctly for GGA XC potentials. Previous versions of OPIUM would average the rel-wavefunctions from infinity -> rc for each channel. This is ok and still the default for LDA, however, for GGA ALL wavefunctions must be averaged down to the same radius. This is the minimum radius by default.

  3. Due to the change in the srl averaging mentioned in the previous change, a new keyblock “[Average]”, has been add to allow users to try the old behavior on GGA potentials.

  4. A new string variable has been added to the [Relativity] keyblock. This string refers to whether the relativistic corrections to the XC functional are used or not. If the value is “rxc” then the corrections are used, if it is “nxc” then they are not used. If the calculation is not relativistic, this is ignored.

  5. The eigenvalue guesses supplied in the param file are ignored for atomic SRL calculations. This was always done prior to version 3.0, the srl solve is not robust enough to take a poor user guess and still converge in all cases.

  6. A small bug in the smoothing of the GGA XC functional has been corrected. Now the correct transition to LDA XC is done as you approach the origin from the smoothing radius.

  7. A newer GGA XC smoothing method is introduced which simply fits the XC potential to a quadratic near some user defined radius and then continues the analytic form back to the origin. To access this smoothing method, simply make the GGA smoothing radius negative.

  8. A semilocal solve and test can be done instead of the non-local solve from the command line. See “opium -c” for more info.

  9. The bug which caused a command line like: opium mn log ae nl fhi to core dump (the ‘ps’ step is missing ; this is necessary for psps using potentials from different reference states) has been fixed.

  10. An update of the “champ” output has been done. The header was changed, and instead of interpolating onto the unshifted grid from the shifted grid, the shifted grid output is just written out.

  11. Changed .ncpp output to no longer print element name after XC functional due to conflict between “HF” - hartree-fock and “Hf” - Hafnium.

  12. The ability to use augmentation functions has been added to “ncpp” output

  13. An error is now thrown if the SIESTA output is tried for a psp with augmentation functions. Also, a warning is written about the fact that the SIESTA code redefines the form of the local potential within the target calculation.

3.3

Bugfix release:

  1. In version 3.2, the relativistic XC corrections were NOT applied to the test pseudo (NL or SL) configurations. This bug does not effect the reference configuration or the output pseudo files (.fhi, .pwf etc.) This bug was also pretty small, most changes are less than 1 mRy in the transferability error.

  2. Added a new variable to the [HFsmooth] keyblock to allow for less strict tolerances on the conservation of the eigenvalues when smoothing the HF potentials.

3.4

  1. Patch to enable partial core corrections for the .recpot (castep) format

3.5

  1. Fixed casino output - Significant help from William Parker

  2. PBEsol xc functional added by William Parker

  3. precision on xmgrace files increased

  4. modified logplt to plot semi-core correctly

  5. cpmd output fixed for DNL

  6. worked more on gfortran compatibility

3.6

  1. Added fully-relativistic psps – needed significant modifications which resulted in many routines needed changing

  2. Restored most if not all of the support for separate command line action (>>opium al log ae ; >>opium al log ps ; etc..) which had been lost in previous releases.

  3. Implemented QuantumESPRESSO’s upf version 1 psp output. Version 2 is in progress.

  4. Added DNL modifications from Ben Truscott

  5. Added FlexLib corrections submitted by Keith Refson

3.7

  1. Added “teter” output which is format usable for frl/spin-orbit in ABINIT

  2. Added “upf” (version 1) output which can be used for Quantum-Espresso (including frl/spin-orbit calculations)

  3. Added “qso” output which is suitable for “QBOX” calculations

  4. Added “QSOMesh” keyblock to define a linear mesh upon which the psp can be defined

  5. Cleaned up a number of warning and error message output

  6. Changed the printing in pwf and recpot output so gfortran will now work.

3.8

  1. Restored the PCC version number for the recpot output.

  2. Added PCC for the QE upf output.

  3. Cleaned up a lot of the printing errors for the gfortran version.

4.0

  1. PBE0 density functional pseudopotentials can now be constructed , but only for non-relativitic atoms.

  2. Documentation is updated, including the undocumented computational flags usage

  3. HF pseudopotentials are available for Quantum ESPRESSO use.

4.1

  1. Add designed non-local transformation to PBE0 pseudopotentials generation

  2. Fix bugs for some convergence problems