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
Changed
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
Removed
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
Added
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
Changed
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.
Fixed
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.
Removed
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
Fixed
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.
Changed
Authors list.
[4.3.3] - 2019-02-11
Fixed
Missing pylibxc/version.py file from tarball.
Incompatible code with Python 3 in setup.py.
[4.3.2] - 2019-02-07
Fixed
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.
Changed
Handling of version number in Python interfaces.
[4.3.1] - 2019-02-05
Fixed
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
Added
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.
Fixed
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.
Deprecated
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
Added
Installation of a libxc.pc file by CMake.
Versioned shared library when buildbing with CMake.
Fixed
Timeout when generating the xc_func.h file with CMake.
[4.2.2] - 2018-06-25
Added
Missing testsuite/CMakeLists.txt file from the tarball.
Functions to get the list of available functionals to the Fortran interfaces.
Changed
License from LGPL to the Mozilla Public License 2 (MPL2).
CPP for Fortran sources macro, so that cpp -C -freestanding is used instead of cpp -ansi.
XC_LDA_C_LP_A and XC_LDA_C_LP_A to XC_LDA_XC_LP_A and XC_LDA_XC_LP_A, as they are exchange-correlation functionals, keeping the old constant for backward compatibility.
Fixed
Bug in GGA_X_PBEPOW
[4.0.5] - 2018-05-04
Fixed
Compilation with the PGI compiler.
Compilation with GCC 6.3.0 on Power8.
NaNs returned by MGGA_X_TM for large densities.
Small bug in maple2C script.
Bug in MGGA_X_MVS. This also affected HYB_MGGA_X_MVSH.
Changed
Improved documentation for range-separation parameters.
[4.0.4] - 2018-01-17
Fixed
Incorrect XC_CORRELATION flag in the XC_LDA_K_ZLP, XC_LDA_X_RAE, and XC_GGA_XC_HLE16 functionals.
Incorrect XC_EXCHANGE flag in the XC_GGA_C_SG4, XC_GGA_C_PBE_MOL, and XC_GGA_C_TM_PBE functionals.
Incorrect XC_EXCHANGE_CORRELATION flag in the XC_MGGA_C_SCAN_RVV10 functional.
Incorrect XC_FAMILY_MGGA family in the HYB_MGGA_XC_B0KCIS functional.
[4.0.3] - 2017-11-20
Fixed
Generation of libxc_docs.txt file.
Added
Missing C to Fortran interface for xc_f90_nlc_coef.
[3.0.1] - 2017-11-20
Fixed
Added missing MGGA_C_SCAN implementation (fix crash in 3.0.0).
Uninitialized cam_omega, cam_alpha, and cam_beta parameters for LDA functionals.
Flags defined in the Fortran 90 interface.
Several references.
Bugs in MGGA_X_MK00 and GGA_X_B86_R.
Behavior for small tau in MGGA_XC_B97M_V and HYB_MGGA_XC_wB97M_V.
Incorrect exchange mixing for HYB_GGA_X_CAP0.
Description of several functionals.
Added
Missing C to Fortran interface for xc_f90_nlc_coef.
Missing interfaces for the set_params functions in the Fortran 90 interface.
[4.0.2] - 2017-11-03
Fixed
Range-separation parameter in HSE functionals was not accessible through the xc_func_set_ext_params function.
Incorrect XC_CORRELATION flags in the XC_LDA_XC_1D_EHWLRG functionals.
Example programs.
Inconsistencies in the README files concerning the different build systems.
[4.0.1] - 2017-09-28
Added
XC_FLAGS_DEVELOPMENT flag to XC_MGGA_C_KCIS, XC_HYB_MGGA_XC_B0KCIS, XC_HYB_MGGA_XC_MPW1KCIS, XC_HYB_MGGA_XC_MPWKCIS1K, XC_HYB_MGGA_XC_PBE1KCIS, and XC_HYB_MGGA_XC_TPSS1KCIS.
Removed
XC_FLAGS_DEVELOPMENT flag from MGGA_C_SCAN.
Fixed
Name of several Minnesota functionals to reflect the new interface.
Missing braces in initialization of XC_MGGA_X_MN12_L, XC_HYB_MGGA_X_MN12_SX, XC_MGGA_X_MN15_L, and XC_HYB_MGGA_X_MN15.
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).
Changed
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.
Removed
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.
Fixed
Bug in HYB_GGA_XC_CAP0.
[3.0.0] - 2016-04-21
Added
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.
Removed
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.
Fixed
Incorrect family for XC_HYB_MGGA_X_MS2H, which was incorrectly defined as a normal MGGA (XC_MGGA_X_MS2H).
Bugs in GGA_X_N12, GGA_C_N12, GGA_C_N12_SX, all the GGA_X_HJS_*, GGA_X_VMT84_GE, HYB_GGA_X_N12_SX, all the HYB_GGA_XC_HJS_*, HYB_GGA_XC_O3LYP, HYB_GGA_XC_X3LYP.
Bugs in second derivatives of GGA_X_B88, GGA_X_OPTB88_VDW, GGA_X_MB88, GGA_K_LLP, GGA_K_FR_B88, GGA_K_THAKKAR.
Build with gcc 6.
[2.1.2] and [2.2.2] - 2015-02-19
Fixed
Bug in unpolarized version of GGA_X_LB and GGA_X_LBM.
Bugs in MGGA_C_REVTPSS, MGGA_C_M08_HX, MGGA_C_M08_SO, MGGA_C_M11, MGGA_C_M11_L.
Missing variable initialization that could cause Libxc to return wrong mixing parameters for all HYB_GGA and HYB_MGGA.
[2.1.1] and [2.2.1] - 2014-10-30
Fixed
Several bugs in the build system.
Bugs in GGA_X_SOGGA11, HYB_GGA_X_SOGGA11_X, HYB_GGA_XC_CAM_B3LYP, HYB_GGA_XC_TUNED_CAM_B3LYP.
[2.2.0] - 2014-03-21
Changed
Fortran bindings are now in a separate library (libxcf90).
[2.1.0] - 2014-03-21
Added
New testsuite.
xc_f90_functional_get_name and xc_f90_functional_get_number Fortran wrappers.