#include <electronic/ExCorr_internal_LDA.h>
Classes | |
class | FunctionalGGA |
Common interface to the compute kernels for GGA-like functionals. More... | |
struct | GGA_calc< variant, spinScaling, nCount > |
struct | GGA_calc< variant, true, nCount > |
Specialization of GGA_calc for spin-scaling functionals (exchange and KE) More... | |
struct | GGA_calc< variant, false, nCount > |
Specialization of GGA_calc for functionals that do not spin-scale (correlation) More... | |
struct | GGA_calc< GGA_X_GLLBsc, true, nCount > |
struct | GGA_calc< GGA_X_LB94, true, nCount > |
Macros | |
#define | SwitchTemplate_GGA(variant, nCount, fTemplate, argList) |
Enumerations | |
enum | GGA_Variant { GGA_X_PBE, GGA_C_PBE, GGA_X_PBEsol, GGA_C_PBEsol, GGA_X_PW91, GGA_C_PW91, GGA_X_wPBE_SR, GGA_X_GLLBsc, GGA_X_LB94, GGA_KE_VW, GGA_KE_PW91 } |
Available GGA functionals. More... | |
Functions | |
template<GGA_Variant variant> | |
__hostanddev__ double | GGA_eval (double rs, double s2, double &e_rs, double &e_s2) |
template<GGA_Variant variant> | |
__hostanddev__ double | GGA_eval (double rs, double zeta, double g, double t2, double &e_rs, double &e_zeta, double &e_g, double &e_t2) |
__hostanddev__ double | slaterExchange (double rs, double &e_rs) |
Slater exchange as a function of rs (PER PARTICLE): | |
__hostanddev__ double | GGA_PBE_exchange (const double kappa, const double mu, double rs, double s2, double &e_rs, double &e_s2) |
PBE GGA exchange [JP Perdew, K Burke, and M Ernzerhof, Phys. Rev. Lett. 77, 3865 (1996)]. | |
template<> | |
__hostanddev__ double | GGA_eval< GGA_X_PBE > (double rs, double s2, double &e_rs, double &e_s2) |
PBE GGA exchange [JP Perdew, K Burke, and M Ernzerhof, Phys. Rev. Lett. 77, 3865 (1996)]. | |
template<> | |
__hostanddev__ double | GGA_eval< GGA_X_PBEsol > (double rs, double s2, double &e_rs, double &e_s2) |
PBEsol GGA exchange [JP Perdew et al, Phys. Rev. Lett. 100, 136406 (2008)]. | |
__hostanddev__ double | GGA_PW91_Enhancement (double s2, double &F_s2, const double P, const double Q, const double R, const double S, const double T, const double U) |
template<> | |
__hostanddev__ double | GGA_eval< GGA_X_PW91 > (double rs, double s2, double &e_rs, double &e_s2) |
PW91 GGA exchange [JP Perdew et al, Phys. Rev. B 46, 6671 (1992)]. | |
template<int n> | |
__hostanddev__ double | integralErfcGaussian (double A, double B, double &result_A, double &result_B) |
Evaluate \( \int_0^\infty dy y^n e^{-Ay^2} \textrm{erfc}{By} \) and its derivatives. | |
template<> | |
__hostanddev__ double | integralErfcGaussian< 1 > (double A, double B, double &result_A, double &result_B) |
template<> | |
__hostanddev__ double | integralErfcGaussian< 2 > (double A, double B, double &result_A, double &result_B) |
template<> | |
__hostanddev__ double | integralErfcGaussian< 3 > (double A, double B, double &result_A, double &result_B) |
template<> | |
__hostanddev__ double | integralErfcGaussian< 5 > (double A, double B, double &result_A, double &result_B) |
template<> | |
__hostanddev__ double | GGA_eval< GGA_X_wPBE_SR > (double rs, double s2, double &e_rs, double &e_s2) |
__hostanddev__ double | PW91_H0 (const double gamma, double beta, double g3, double t2, double ecUnif, double &H0_beta, double &H0_g3, double &H0_t2, double &H0_ecUnif) |
__hostanddev__ double | GGA_PBE_correlation (const double beta, const double beta_rs, double rs, double zeta, double g, double t2, double &e_rs, double &e_zeta, double &e_g, double &e_t2) |
template<> | |
__hostanddev__ double | GGA_eval< GGA_C_PBE > (double rs, double zeta, double g, double t2, double &e_rs, double &e_zeta, double &e_g, double &e_t2) |
PBE GGA correlation [JP Perdew, K Burke, and M Ernzerhof, Phys. Rev. Lett. 77, 3865 (1996)]. | |
template<> | |
__hostanddev__ double | GGA_eval< GGA_C_PBEsol > (double rs, double zeta, double g, double t2, double &e_rs, double &e_zeta, double &e_g, double &e_t2) |
PBEsol GGA correlation [JP Perdew et al, Phys. Rev. Lett. 100, 136406 (2008)]. | |
template<> | |
__hostanddev__ double | GGA_eval< GGA_C_PW91 > (double rs, double zeta, double g, double t2, double &e_rs, double &e_zeta, double &e_g, double &e_t2) |
PW91 GGA correlation [JP Perdew et al, Phys. Rev. B 46, 6671 (1992)]. | |
__hostanddev__ double | TFKinetic (double rs, double &e_rs) |
Thomas Fermi kinetic energy as a function of rs (PER PARTICLE): | |
template<> | |
__hostanddev__ double | GGA_eval< GGA_KE_VW > (double rs, double s2, double &e_rs, double &e_s2) |
von Weisacker gradient correction to Thomas Fermi LDA kinetic energy (with correct gradient expansion parameter lambda) | |
template<> | |
__hostanddev__ double | GGA_eval< GGA_KE_PW91 > (double rs, double s2, double &e_rs, double &e_s2) |
PW91k GGA kinetic energy [PRB 46, 6671-6687 (1992)] parameterized by Lembarki and Chermette [PRA 50, 5328-5331 (1994)]. | |
Shared CPU-GPU implementation of GGA functionals