Bugs in worker functions affecting all GGAs and meta-GGAs
Several issues affecting kinetic energy functionals due to the use of inconsistent thresholds
Incorrect definition of GGA_XC_KT3
Incorrect implementation of GGA_X_OL1 and GGA_X_OL2
Incorrect implementation of GGA_K_PERDEW
Incorrect calculation of opposite-spin potentials for the ferromagnetic case
Implementation of MGGA_X_MS2B still corresponded to the original preprint, not the final published version
Numerical stability of range-separated functionals
Several numerical overflow errors, affecting especially the SCAN family of functionals
Incorrect definition of MGGA_C_B88, which was using B88 exchange instead of B86 exchange as supposed
Missing minus sign in a coefficient of GGA_XC_HCTH_P76
HYB_MGGA_X_PJS18 and HYB_MGGA_X_JS18 due to typo in the original publications
Functional form of GGA_C_LM
Bug in expint_E1 that had a huge effect on GGA_C_FT97
The renaming libxcf03 -> libxcf90 of 5.0.0 was reverted, as it proved to be problematic in downstream codes
All numerical thresholds are now adjustable
The threshold for the reduced gradient is now initialized based on the density threshold, instead of a hard-coded definition
The CMake build system now generates pkgconfig files for the Fortran libraries
The GGA functionals LCGAU, LCGAU_CORE, and LC2GAU, since the implementation was not complete; the functionals have range-separation terms that cannot be described by the infrastructure in the version 5 series. The correct implementations are included in the version 6 branch
[5.0.0] - 2020-04-06
Framework to include worker functionals. These functionals are not intended to be use on their own, but as part of other functionals.
Correction to the Fermi_D term in MGGA_C_M05, MGGA_C_M05_2X, and MGGA_C_DLDF to avoid divergences when the kinetic energy density is zero, but not the density. This is similar to the correction proposed in from JCP 127, 214103 (2007). The correction is controlled by the Fermi_D_cnst external parameter, and its default value is 1e-10.
Access to the internal parameters of several functionals. This is done using the same functions as for the external parameters.
All functionals are now handled by Maple.
Up to 4th-order for almost all functionals, and interface to access them.
Printing of supported derivatives by the xc-info utility.
New flag XC_FLAG_HAVE_ALL to indicate functionals that include all the currently available derivatives (exc, vxc, fxc, kxc, and lxc).
Added the possibility of selectively disabling the compilation of vxc, fxc, kxc, and lxc to both Autotools and CMake build systems. By default kxc and lxc are not compiled. This allows for faster compilation times.
Initial implementation of a GPU version of libxc
External parameters structure to include the name of the parameter. The name of the internal parameters is prepended with an underscore.
Several functionals were modified to improve numerical stability. There are no more NaN or Infinities.
Variable np is now size_t (8 bytes)
Maple framework to generate the C code. In the new framework, the whole functional is handled by Maple, allowing the introduction of a unpolarized, ferromagnetic, and polarized case such that limiting cases are better handled.
Integer type to c_int type in all Fortran 2003 interfaces.
MGGA_C_TPSS to enforce z = tW/t <= 1 condition.
XC_GGA_C_BCGP to XC_GGA_C_ACGGA, upon request by Antonio Cancio, keeping the old constant for backward compatibility.
Missing terms in LDA_XC_KSDT and LDA_XC_GDSMFB.
Incorrect parameter of GGA_C_GAPC.
Incorrect definition of MGGA_C_KCIS.
Incorrect definition of GGA_C_OPTC.
xc_mix_func function from public API.
obsolete custom Fortran interface libxcf90 replaced with the 2003 version (libxcf03) that employs standard iso_c_binding to wrap the C functions to Fortran.
[4.3.4] - 2019-03-04
Bug in XC_HYB_GGA_XC_CAM_QTP_01. Functional erroneously had 81% LYP and 19% VWN5, whereas it is supposed to have 80% LYP and 20% VWN5 correlation.
Bug in GGA_X_2D_B88. The value of beta was wrong.
Bug in HSE12 and HSE12s. Range separation parameter were incorrect.
[4.3.3] - 2019-02-11
Missing pylibxc/version.py file from tarball.
Incompatible code with Python 3 in setup.py.
[4.3.2] - 2019-02-07
Incorrect version number in Python interfaces.
CMake build of Fortran interfaces. The build was failing due to non-existent file.
NaN issues in MGGA_X_TM.
Handling of version number in Python interfaces.
[4.3.1] - 2019-02-05
Inclusion of xc_mgga_c_pkzb_set_params function in the public API, as this function does not exist anymore.
[4.3.0] - 2019-01-30
Several set_params functions to the API. These functions were removed from the API in version 4.0.0 and will be removed again in version 5.0.0, where they will be replaced by a more generic API.
Several issues that prevented compilation on Windows.
Inclusion of config.h in the xc.h header file.
Incorrect SOVERSION with CMake builds.
Use of non-POSIX function strdup.
Installation of Fortran module files with CMake.
Installation of pkg-config .pc file with CMake.
Forrtran 90 bindings. These are replaced by the Fortran 2003 bindings and should be removed in version 5.0.0.
[4.2.3] - 2018-07-02
Installation of a libxc.pc file by CMake.
Versioned shared library when buildbing with CMake.
Timeout when generating the xc_func.h file with CMake.
[4.2.2] - 2018-06-25
Missing testsuite/CMakeLists.txt file from the tarball.
New generic function xc_func_set_ext_params to set external parameters. This replaces the functional specific functions xc_*_set_par.
CMake based build system. It is not intended to replace the Autotools based build system, but rather to make it easier to integrate Libxc in projects that use CMake.
New interface to hybrid Minnesota exchange functionals HYB_MGGA_X_M05, HYB_MGGA_X_M05_2X, HYB_MGGA_X_M06_2X, HYB_MGGA_X_M06_HF, HYB_MGGA_X_M06, HYB_MGGA_X_M08_SO, HYB_MGGA_X_M08_HF, HYB_MGGA_X_M11.
Function xc_func_set_dens_threshold to set the threshold for small densities. All quantities are evaluated to zero when the density is smaller than this threshold.
New utility xc-threshold to evaluate the behavior of a given functional in the limit of small densities for a variety of test cases. This is particularly useful in choosing the appropriate density threshold to be set by xc_func_set_dens_threshold.
File KNOWN_ISSUES with a list of issues affecting some functionals that we are aware of.
XC_FLAGS_NEEDS_LAPLACIAN flag to signal MGGA functionals that depend on the laplacian of the density.
New xc_funcs_removed.h header file containing the ID’s of removed functionals for backward compatibility.
Several missing functions and flags from the Fortran interfaces.
Functions to get the list of available functionals (xc_number_of_functionals, xc_maximum_name_length, xc_available_functional_numbers, and xc_available_functional_names).
All functionals have been reimplemented using Maple to generate the corresponding C code.
Updated default density thresholds for all functionals.
Tests from the test suite are now separated by the derivative order (exc, vxc, and fxc). This allows to more easily identify the reason for failed tests and to set different tolerances for the different quantities.
Split LDA_X into LDA_X and LDA_X_REL (see added functionals above). This replaces the external parameter that allowed to choose between the relativistic and non-relativistic versions of the functional.
GGA_X_BGCP and GGA_C_BGCP to GGA_X_BCGP and GGA_C_BCGP, respectively, keeping the old constants for backward compatibility.
MGGA_C_CC06 to MGGA_XC_CC06, as the functional includes an exchange part, keeping the old constant for backward compatibility.
Helper functionals that could be used in error instead of the true hybrid functional: MGGA_X_M05, MGGA_X_M05_2X, MGGA_X_M06_2X, MGGA_X_M06_HF, MGGA_X_M06, MGGA_X_M08_SO, MGGA_X_M08_HF, MGGA_X_M11.
Exchange-correlation functional wrappers: HYB_MGGA_XC_M05, HYB_MGGA_XC_M05_2X, HYB_MGGA_XC_M06_2X, HYB_MGGA_XC_M06_HF, HYB_MGGA_XC_M06, HYB_MGGA_XC_M08_SO, HYB_MGGA_XC_M08_HF, HYB_MGGA_XC_M11. Replaced by e.g. the combination HYB_MGGA_X_M11+MGGA_C_M11.
Functional specific functions xc_*_set_par to set external parameters.
Single precision version.
Bug in HYB_GGA_XC_CAP0.
[3.0.0] - 2016-04-21
Micro version number to version function and version header file.
Version_string function, which returns the version number in the following format: major.minor.micro
Fortran 2003 interface using the iso_c_bindings module.
lda_vxc_fxc, gga_vxc_fxc, and mgga_vxc_fxc functions to Fortran 90 interface.
GGA_XC_HCTH_A to GGA_C_HCTH_A, as it does not include exchange (it uses a different form for exchange than the other functionals from the HCTH family), keeping the old constant for backward compatibility.
GGA_C_VPBE to GGA_C_regTPSS, as that is the name used in the paper, keeping the old constant for backward compatibility.
Helper functionals that can be used in error instead of the true hybrid functional: GGA_XC_B97, GGA_XC_B97_1, GGA_XC_B97_2, GGA_XC_B97_K, GGA_XC_B97_3, GGA_XC_SB98_1a, GGA_XC_SB98_1b, GGA_XC_SB98_1c, GGA_XC_SB98_2a, GGA_XC_SB98_2b, GGA_XC_SB98_2c, GGA_XC_WB97, GGA_XC_WB97X, GGA_XC_WB97X_V, GGA_C_WB97X_D, MGGA_X_MN12_SX.
Incorrect family for XC_HYB_MGGA_X_MS2H, which was incorrectly defined as a normal MGGA (XC_MGGA_X_MS2H).