#include <electronic/ExCorr_internal.h>
Go to the source code of this file.
Classes | |
class | FunctionalLDA |
Common interface to the compute kernels shared by all LDA functionals. More... | |
struct | LDA_calc< variant, nCount > |
struct | LDA_calc< LDA_KE_TF, nCount > |
Specialization of LDA_calc for Thomas-Fermi kinetic energy (compute directly in n[s]) More... | |
struct | LDA_calc< LDA_X_Slater, nCount > |
Specialization of LDA_calc for Slater exchange (compute directly in n[s]; zeta not required) More... | |
struct | LDA_eval_C_PZ< para > |
struct | LDA_eval_C_PW< spinID, prec > |
struct | LDA_eval_C_VWN< spinID > |
Macros | |
#define | SwitchTemplate_LDA(variant, nCount, fTemplate, argList) |
Enumerations | |
enum | LDA_Variant { LDA_X_Slater, LDA_C_PZ, LDA_C_PW, LDA_C_PW_prec, LDA_C_VWN, LDA_XC_Teter, LDA_KE_TF } |
Available LDA functionals. More... | |
Functions | |
template<LDA_Variant variant> | |
__hostanddev__ double | LDA_eval (double rs, double zeta, double &e_rs, double &e_zeta) |
template<> | |
__hostanddev__ double | LDA_eval< LDA_C_PZ > (double rs, double zeta, double &e_rs, double &e_zeta) |
Perdew-Zunger correlation. | |
template<> | |
__hostanddev__ double | LDA_eval< LDA_C_PW > (double rs, double zeta, double &e_rs, double &e_zeta) |
Perdew-Wang correlation (original version, for numerical compatibility with LibXC's PW91) | |
template<> | |
__hostanddev__ double | LDA_eval< LDA_C_PW_prec > (double rs, double zeta, double &e_rs, double &e_zeta) |
Perdew-Wang correlation (extended precision version, for numerical compatibility with LibXC's PBE) | |
template<> | |
__hostanddev__ double | LDA_eval< LDA_C_VWN > (double rs, double zeta, double &e_rs, double &e_zeta) |
Vosko-Wilk-Nusair correlation. | |
template<> | |
__hostanddev__ double | LDA_eval< LDA_XC_Teter > (double rs, double zeta, double &e_rs, double &e_zeta) |
Teter LSD exchange & correlation [Phys. Rev. B 54, 1703 (1996)]. | |
Shared CPU-GPU implementation of LDA functionals
#define SwitchTemplate_LDA | ( | variant, | |
nCount, | |||
fTemplate, | |||
argList | |||
) |
Switch a function fTemplate templated over LDA variant and spin count, over all supported functionals with nCount being a compile-time constant (Used by the thread and gpu launchers of FunctionalLDA::evaluate) (This is needed to switch from a run-time variant to a compile-time template argument)
enum LDA_Variant |
Available LDA functionals.
__hostanddev__ double LDA_eval | ( | double | rs, |
double | zeta, | ||
double & | e_rs, | ||
double & | e_zeta | ||
) |
LDA interface inner layer (specialize for each functional): Return energy density given rs and zeta and set gradients w.r.t rs and zeta