#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