ergo
functionals.h
Go to the documentation of this file.
1 /* Ergo, version 3.8, a program for linear scaling electronic structure
2  * calculations.
3  * Copyright (C) 2019 Elias Rudberg, Emanuel H. Rubensson, Pawel Salek,
4  * and Anastasia Kruchinina.
5  *
6  * This program is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program. If not, see <http://www.gnu.org/licenses/>.
18  *
19  * Primary academic reference:
20  * Ergo: An open-source program for linear-scaling electronic structure
21  * calculations,
22  * Elias Rudberg, Emanuel H. Rubensson, Pawel Salek, and Anastasia
23  * Kruchinina,
24  * SoftwareX 7, 107 (2018),
25  * <http://dx.doi.org/10.1016/j.softx.2018.03.005>
26  *
27  * For further information about Ergo, see <http://www.ergoscf.org>.
28  */
29 
30 /*-*-mode: C; c-indentation-style: "bsd"; c-basic-offset: 4; -*-*/
44 #ifndef _FUNCTIONALS_H_
45 #define _FUNCTIONALS_H_
46 
47 /* We need to include config.h to get macro PRECISION_QUAD_FLT128 */
48 #include "config.h"
49 
50 #ifdef PRECISION_QUAD_FLT128
51 #include <quadmath.h>
52 #endif
53 
54 #include "realtype.h"
55 
56 #ifdef __cplusplus
57 #define EXTERN_C extern "C"
58 #else
59 #define EXTERN_C
60 #endif
61 
62 typedef ergo_real real;
63 
64 #if defined(FUNC_PRECISION) && FUNC_PRECISION == 1
65 
66 /* Use single-precision math functions */
67 #define ASINH asinhf
68 #define ATAN atanf
69 #define ERF erff
70 #define EXP expf
71 #define FABS fabsf
72 #define LOG logf
73 #define POW powf
74 #define SQRT sqrtf
75 
76 #elif defined(FUNC_PRECISION) && FUNC_PRECISION == 2
77 
78 /* Use double-precision math functions */
79 #define ASINH asinh
80 #define ATAN atan
81 #define ERF erf
82 #define EXP exp
83 #define FABS fabs
84 #define LOG log
85 #define POW pow
86 #define SQRT sqrt
87 
88 #else
89 
90 #ifdef PRECISION_QUAD_FLT128
91 /* Use quad-precision math functions */
92 #define ASINH asinhq
93 #define ATAN atanq
94 #define ERF erfq
95 #define EXP expq
96 #define FABS fabsq
97 #define LOG logq
98 #define POW powq
99 #define SQRT sqrtq
100 #else
101 /* Use "long double"-precision math functions */
102 #define ASINH asinhl
103 #define ATAN atanl
104 #define ERF erfl
105 #define EXP expl
106 #define FABS fabsl
107 #define LOG logl
108 #define POW powl
109 #define SQRT sqrtl
110 #endif
111 
112 #endif
113 
114 /* FirstDrv: matrix of first order derivatives with respect to two
115  * parameters: density rho and SQUARE of the gradient of density grho.
116  * zeta_i = |\nabla\rho_i|²
117  * mu = |\nabla\rho_\alpha||\nabla\rho_\beta|
118  */
119 typedef struct {
120  real df1000; /* d/drho F */
122  real df0010; /* d/zeta F */
126 
127 /* SecondFuncDrv: this structure is used by functional derivative
128  * evaluation procedures. Do not include "triplet" transformation.
129  */
130 typedef struct {
131  real df1000; /* d/drho_alpha F */
132  real df0100; /* d/drho_beta F */
133  real df0010; /* d/|zeta_alpha| F */
134  real df0001; /* d/|zeta_beta| F */
136  real df2000; /* d/drho_alpha^2 F */
137  real df1100; /* d/(drho_alpha drho_beta) F */
138  real df1010; /* d/drho_alpha d/dzeta_alpha F */
139  real df1001; /* d/drho_alpha d/dzeta_beta F */
141  real df0200; /* d/drho_beta^2 F */
142  real df0110; /* d/drho_beta d/dzeta_alpha F */
143  real df0101; /* d/drho_beta d/dzeta_beta F */
145  real df0020; /* d/dzeta_alpha^2 F */
146  real df0011; /* d2/dzeta_a zeta_b F */
148  real df0002; /* d/dzeta_beta^2 F */
152 
153 
154 /* ThirdFuncDrv: matrix of third derivatives with respect to five
155  parameters: density rho_alpha and SQUARE of the density gradient
156  zeta. and mu.
157 */
158 
159 typedef struct {
160  real df1000; /* d/drho F */
162  real df0010; /* d/|zeta| F */
165 
166  real df2000; /* d/drho_alpha^2 F */
167  real df1100; /* d/(drho_alpha drho_beta) F */
168  real df1010; /* d/drho_alpha d/dzeta_alpha F */
169  real df1001; /* d/drho_alpha d/dzeta_beta F */
171  real df0200; /* d/drho_beta^2 F */
172  real df0110; /* d/drho_beta d/dzeta_alpha F */
173  real df0101; /* d/drho_beta d/dzeta_beta F */
175  real df0020; /* d/dzeta_alpha^2 F */
176  real df0011; /* d2/dzeta_a zeta_b F */
178  real df0002; /* d/dzeta_beta^2 F */
181 
218 
219 
220 typedef struct {
221 
222  /* First order derivatives with respect to all 5 variables */
223 
229 
230  /* Second order mixed derivatives with respect to all 5 variables */
231 
247 
248  /* Third order mixed derivatives with respect to all 5 variables */
249 
285 
286  /* Fourth order mixed derivatives with respect to all 5 variables */
287 
359 
360 
361 typedef struct Functional_ Functional;
362 
364 EXTERN_C enum FunError fun_select_by_name(const char *conf_string);
365 extern Functional *selected_func;
366 extern int (*fun_printf)(const char *fmt, ...);
367 extern void (*fun_set_hf_weight)(real w);
368 extern real (*fun_get_hf_weight)(void);
369 extern void (*fun_set_cam_param)(real w, real b);
370 int dft_get_cam_param(real *alpha, real *beta, real *mu);
371 
372 /* FunDensProp structure contains properties of the density that are
373  needed for functional evaluation and possibly other purposes.
374 */
375 typedef struct FunDensProp_ {
377  real grada, gradb; /* norms of the density gradient, not squares */
378  real gradab; /* scalar product of grada and gradb */
379  /* real current[3] or something may come in the future :-) */
381 
382 /* EnergyFunc: the function returning the energy for given densities
383  and gradients. Note that some functionals(like LYP) depend explicitely
384  on separately alpha and beta densities
385 */
386 typedef int (*IsGGAFunc)(void);
387 typedef int (*ReadInputFunc)(const char* conf_string);
388 typedef void (*ReportFunc)(void);
389 typedef real (*EnergyFunc)(const FunDensProp* dens_prop);
390 typedef void (*FirstOrderFun)(FunFirstFuncDrv *ds, real factor,
391  const FunDensProp* dns_prp);
392 
393 typedef void (*SecondOrderFun)(FunSecondFuncDrv *ds, real factor,
394  const FunDensProp* dens_prop);
395 
396 typedef void (*ThirdOrderFun)(FunThirdFuncDrv *ds, real factor,
397  const FunDensProp* dens_prop);
398 typedef void (*FourthOrderFun)(FunFourthFuncDrv *ds, real factor,
399  const FunDensProp *dens_prop);
400 
401 struct Functional_ {
402  const char* name; /* descriptive functional name (usually 5 characters) */
406  /* Only unrestricted implementations are needed. A benchmark for
407  * a CO molecule with 28 basis function reveals a 4% time difference.
408  * This difference will only decrease for larger systems. */
414 };
415 
416 EXTERN_C void drv1_clear(FunFirstFuncDrv* gga); /* set all components to 0 */
417 EXTERN_C void drv2_clear(FunSecondFuncDrv* gga); /* set all components to 0 */
418 EXTERN_C void drv3_clear(FunThirdFuncDrv* gga); /* set all components to 0 */
419 EXTERN_C void drv4_clear(FunFourthFuncDrv* gga); /* set all components to 0 */
420 
421 /* The list of functionals */
422 /* sorted list of generic functionals */
424 extern Functional KTFunctional;
443 
444 /* sorted list of mixed functionals */
469 
470 /* the list of the functionals */
472 
473 extern int fun_true(void);
474 extern int fun_false(void);
475 /* fortran (and not only) functional stub routines */
476 EXTERN_C void dftlistfuncs_(void);
478 int dft_isgga_(void);
479 int dft_isgga__(void);
480 
481 EXTERN_C void dftreport_(void);
482 EXTERN_C int fun_get_cam_param(real *alpha, real *beta, real *mu);
483 
484 #endif /* _FUNCTIONALS_H_ */
cam_third
static void cam_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-cam.c:1094
FunFourthFuncDrv::df20011
real df20011
Definition: functionals.h:301
pbex_energy
static real pbex_energy(const FunDensProp *dp)
Definition: fun-pbex.c:101
FunThirdFuncDrv::df0101
real df0101
Definition: functionals.h:173
FunThirdFuncDrv::df1002
real df1002
Definition: functionals.h:194
real
ergo_real real
Definition: functionals.h:62
FunThirdFuncDrv::df20001
real df20001
Definition: functionals.h:186
FunFourthFuncDrv::df0301
real df0301
Definition: functionals.h:325
cam_second
static void cam_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-cam.c:973
LOG
#define LOG
Definition: functionals.h:107
FunThirdFuncDrv::df0300
real df0300
Definition: functionals.h:197
FAC
#define FAC
Definition: fun-cam.c:802
free_functionals
static void free_functionals(FuncList **lst)
Definition: fun-gga.c:146
b2p
static const real b2p
Definition: fun-pz81.c:70
Functional_::read
ReadInputFunc read
Definition: functionals.h:404
pw91c_isgga
static int pw91c_isgga(void)
Definition: fun-pw91c.c:99
pw91c_read
static int pw91c_read(const char *conf_line)
Definition: fun-pw91c.c:122
VWNFunctional
Functional VWNFunctional
Definition: fun-vwn.c:92
SVWN3Functional
Functional SVWN3Functional
Definition: fun-gga.c:95
pbe_read
static int pbe_read(const char *conf_line)
Definition: fun-gga.c:399
pw92c_second
static void pw92c_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pw92c.c:468
cam_b_energy_small
static real cam_b_energy_small(real a)
Definition: fun-cam.c:600
RGThirdDrv::df02
real df02
Definition: fun-cam.c:64
gu
static const real gu
Definition: fun-pz81.c:68
FunFourthFuncDrv::df01102
real df01102
Definition: functionals.h:338
__inline__
#define __inline__
Definition: fun-tester.cc:60
SecondDrv
Definition: dft_common.h:70
FunSecondFuncDrv::df0011
real df0011
Definition: functionals.h:146
FunDensProp_
Definition: functionals.h:375
RGFourthDrv::df02
real df02
Definition: fun-cam.c:68
RGFirstDrv
Definition: fun-cam.c:57
pbec_read
static int pbec_read(const char *conf_line)
Definition: fun-pbec.c:133
optx_energy
static real optx_energy(const FunDensProp *dens_prop)
Definition: fun-optx.c:92
dftlistfuncs_
void dftlistfuncs_(void)
Definition: functionals.c:173
RGThirdDrv::df20
real df20
Definition: fun-cam.c:64
lb94_second
static void lb94_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: fun-lb94.c:116
realtype.h
Definition of the main floating-point datatype used; the ergo_real type.
FunThirdFuncDrv::df01001
real df01001
Definition: functionals.h:174
FunThirdFuncDrv::df11001
real df11001
Definition: functionals.h:190
cam_isgga
static int cam_isgga(void)
Definition: fun-cam.c:80
FunFourthFuncDrv::df1003
real df1003
Definition: functionals.h:319
DaltonEnFunc
void(* DaltonEnFunc)(real *res, const real *rho, const real *rho13, const real *grad)
Definition: fun-tester.cc:63
VWN3IFunctional
Functional VWN3IFunctional
Definition: fun-vwn.c:127
RGThirdDrv::df21
real df21
Definition: fun-cam.c:65
RGFourthDrv::df30
real df30
Definition: fun-cam.c:69
FunThirdFuncDrv::df0020
real df0020
Definition: functionals.h:175
dft_common.h
Common DFT routines. Mostly functional mixing.
SPINPOLF
static const real SPINPOLF
Definition: fun-vwn.c:163
vwn_params::B
real B
Definition: fun-vwn.c:155
FunFourthFuncDrv::df02002
real df02002
Definition: functionals.h:332
dft_isgga__
int dft_isgga__(void)
Definition: functionals.c:196
Cu
static const real Cu
Definition: fun-pz81.c:69
becke_energy
static real becke_energy(const FunDensProp *dens_prop)
Definition: fun-becke.c:94
RGFourthDrv::df31
real df31
Definition: fun-cam.c:70
p86c_read
static int p86c_read(const char *conf_line)
Definition: fun-p86c.c:102
DELTA
static const real DELTA
Definition: fun-kt.c:100
test_second
static int test_second(const char *fname, FirstOrderFun first_fun, SecondOrderFun second_fun)
Definition: fun-tester.cc:150
FunFourthFuncDrv::df00003
real df00003
Definition: functionals.h:284
edrc_
void edrc_(real *drc, const real *rho, const real *rho13, const real *rhogrd)
pz81_read
static int pz81_read(const char *conf_line)
Definition: fun-pz81.c:75
vwn3_first
static void vwn3_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:531
kt_isgga
static int kt_isgga(void)
Definition: fun-kt.c:53
main
int main(int argc, char *argv[])
Definition: fun-tester.cc:559
FunFourthFuncDrv::df1101
real df1101
Definition: functionals.h:257
FunFourthFuncDrv::df0112
real df0112
Definition: functionals.h:336
FunSecondFuncDrv::df0110
real df0110
Definition: functionals.h:142
lda_read
static int lda_read(const char *conf_line)
Definition: fun-gga.c:173
camMu
static real camMu
Definition: fun-cam.c:150
FunThirdFuncDrv::df0111
real df0111
Definition: functionals.h:202
pw91c_energy
static real pw91c_energy(const FunDensProp *dp)
Definition: fun-pw91c.c:129
Cp
static const real Cp
Definition: fun-pz81.c:71
FunThirdFuncDrv::df02001
real df02001
Definition: functionals.h:200
VWN3Functional
Functional VWN3Functional
Definition: fun-vwn.c:68
FunFourthFuncDrv::df0011
real df0011
Definition: functionals.h:242
RGFourthDrv::df11
real df11
Definition: fun-cam.c:68
gga_fun_list
FuncList * gga_fun_list
Definition: fun-gga.c:124
FunFourthFuncDrv::df02001
real df02001
Definition: functionals.h:268
camb3lyp_report
static void camb3lyp_report(void)
Definition: fun-cam.c:259
ThirdOrderFun
void(* ThirdOrderFun)(FunThirdFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: functionals.h:396
FunFourthFuncDrv::df0130
real df0130
Definition: functionals.h:333
BECKE88_CORR_WEIGHT
#define BECKE88_CORR_WEIGHT
Definition: fun-cam.c:214
vwn_params::C
real C
Definition: fun-vwn.c:155
pw91x_read
static int pw91x_read(const char *conf_line)
Definition: fun-pw91x.c:110
gp
static const real gp
Definition: fun-pz81.c:70
FunThirdFuncDrv::df10001
real df10001
Definition: functionals.h:170
fun_printf
int(* fun_printf)(const char *fmt,...)
Definition: functionals.c:107
vwn3_second
static void vwn3_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:537
test_fourth
static int test_fourth(const char *fname, ThirdOrderFun third_fun, FourthOrderFun fourth_fun)
Definition: fun-tester.cc:306
RGSecondDrv::df10
real df10
Definition: fun-cam.c:61
FunFourthFuncDrv::df02101
real df02101
Definition: functionals.h:329
PZ81Functional
Functional PZ81Functional
Definition: fun-pz81.c:49
PW92cFunctional
Functional PW92cFunctional
Definition: fun-pw92c.c:131
RGFourthDrv::df04
real df04
Definition: fun-cam.c:70
FunFourthFuncDrv::df00202
real df00202
Definition: functionals.h:348
pbec_first
static void pbec_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pbec.c:219
fun_set_hf_weight
void(* fun_set_hf_weight)(real w)
Definition: functionals.c:108
FunThirdFuncDrv::df1011
real df1011
Definition: functionals.h:192
IsGGAFunc
int(* IsGGAFunc)(void)
Definition: functionals.h:386
lyp_second
static void lyp_second(FunSecondFuncDrv *ds, real fac, const FunDensProp *dp)
Definition: fun-lyp.c:209
pz81a_third
static void pz81a_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pz81.c:222
vwn_first
static void vwn_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:556
Bp
static const real Bp
Definition: fun-pz81.c:64
FunThirdFuncDrv::df0100
real df0100
Definition: functionals.h:161
lb94_third
static void lb94_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: fun-lb94.c:162
becke_first
static void becke_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: fun-becke.c:119
FunFourthFuncDrv::df20001
real df20001
Definition: functionals.h:254
lyp_first
static void lyp_first(FunFirstFuncDrv *ds, real fac, const FunDensProp *dp)
Definition: fun-lyp.c:124
FunError
FunError
Definition: functionals.h:363
FunFourthFuncDrv::df01011
real df01011
Definition: functionals.h:273
FunSecondFuncDrv
Definition: functionals.h:130
B3LYPGaussFunctional
Functional B3LYPGaussFunctional
Definition: fun-gga.c:97
cam_read
static int cam_read(const char *conf_line)
Read the configuration.
Definition: fun-cam.c:289
FunSecondFuncDrv::df1000
real df1000
Definition: functionals.h:131
pz81b_third
static void pz81b_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pz81.c:482
correlationFunctionals
static struct FunctionalList * correlationFunctionals
Definition: fun-cam.c:147
fun_select_by_name
EXTERN_C enum FunError fun_select_by_name(const char *conf_string)
Definition: functionals.c:114
CamFunctional
Functional CamFunctional
Definition: fun-cam.c:107
ELEMENTS
#define ELEMENTS(arr)
Definition: fun-cam.c:51
FunThirdFuncDrv::df1001
real df1001
Definition: functionals.h:169
bhandh_read
static int bhandh_read(const char *conf_line)
Definition: fun-gga.c:278
FunFourthFuncDrv::df11001
real df11001
Definition: functionals.h:258
lyp_isgga
static int lyp_isgga(void)
Definition: fun-lyp.c:45
ergo_real
double ergo_real
Definition: realtype.h:69
FunFourthFuncDrv::df00013
real df00013
Definition: functionals.h:356
BHandHFunctional
Functional BHandHFunctional
Definition: fun-gga.c:101
p86c_energy
static real p86c_energy(const FunDensProp *dp)
Definition: fun-p86c.c:109
cam_b_second_medium
static real cam_b_second_medium(real a)
Definition: fun-cam.c:700
Functional_::first
FirstOrderFun first
Definition: functionals.h:410
lda_third
static void lda_third(FunThirdFuncDrv *ds, real fac, const FunDensProp *dp)
Definition: fun-gga.c:200
FuncList_
Definition: fun-gga.c:118
available_functionals
Functional * available_functionals[]
Definition: functionals.c:45
pw91x_fourth_helper
static void pw91x_fourth_helper(real rhoa, real grada, real *res)
Definition: fun-pw91x.c:507
pbex_first_helper
static void pbex_first_helper(real rhoa, real grada, real *res)
Definition: fun-pbex.c:123
kt_third
static void kt_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: fun-kt.c:211
newFunc
static struct FunctionalList * newFunc(Functional *f, real weight, struct FunctionalList *next)
Definition: fun-cam.c:153
lda_second
static void lda_second(FunSecondFuncDrv *ds, real fac, const FunDensProp *dp)
Definition: fun-gga.c:193
FuncList_::weight
real weight
Definition: fun-gga.c:120
EVALUATOR
#define EVALUATOR(a, type)
Definition: fun-cam.c:803
vwn_interp
static const struct vwn_params vwn_interp
LDAFunctional
Functional LDAFunctional
Definition: fun-gga.c:92
Pw91cFunctional
Functional Pw91cFunctional
Definition: fun-pw91c.c:109
B3P86GFunctional
Functional B3P86GFunctional
Definition: fun-gga.c:99
cam_free_config
static void cam_free_config(void)
Definition: fun-cam.c:165
kt_read
static int kt_read(const char *conf_line)
Definition: fun-kt.c:85
FunFourthFuncDrv::df00021
real df00021
Definition: functionals.h:282
SQRT_PI
#define SQRT_PI
Definition: fun-cam.c:421
pw92c_isgga
static int pw92c_isgga(void)
Definition: fun-pw92c.c:117
pw91c_third
static void pw91c_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pw91c.c:613
FunFourthFuncDrv::df03001
real df03001
Definition: functionals.h:326
GGAKeyFunctional
Functional GGAKeyFunctional
Definition: fun-gga.c:107
FunThirdFuncDrv::df2010
real df2010
Definition: functionals.h:184
lda_fourth
static void lda_fourth(FunFourthFuncDrv *ds, real fac, const FunDensProp *dp)
Definition: fun-gga.c:207
test_derivatives
static int test_derivatives(Functional *f, int *orders, DaltonEnFunc dal_fun)
Definition: fun-tester.cc:539
FunDensProp_::rhoa
real rhoa
Definition: functionals.h:376
FUN_CONF_ERROR
@ FUN_CONF_ERROR
Definition: functionals.h:363
KT_THRESHOLD
static const real KT_THRESHOLD
Definition: fun-kt.c:99
OPTX_THRESHOLD
static const real OPTX_THRESHOLD
Definition: fun-optx.c:89
RGThirdDrv::df01
real df01
Definition: fun-cam.c:64
pbec_isgga
static int pbec_isgga(void)
Definition: fun-pbec.c:111
olyp_read
static int olyp_read(const char *conf_line)
Definition: fun-gga.c:387
FunFourthFuncDrv::df00102
real df00102
Definition: functionals.h:280
becke_isgga
static int becke_isgga(void)
Definition: fun-becke.c:50
Functional_::name
const char * name
Definition: functionals.h:402
fun_true
int fun_true(void)
Definition: functionals.c:153
PBE0Functional
Functional PBE0Functional
Definition: fun-gga.c:112
VWN3IFunctional
Functional VWN3IFunctional
Definition: fun-vwn.c:127
FunctionalList::weight
ergo_real weight
Definition: fun-cam.c:134
FunThirdFuncDrv::df0102
real df0102
Definition: functionals.h:204
xalpha_read
static int xalpha_read(const char *conf_line)
Definition: fun-gga.c:160
optx_second
static void optx_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: fun-optx.c:155
GGAKeyFunctional
Functional GGAKeyFunctional
Definition: fun-gga.c:107
pz81b_second
static void pz81b_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pz81.c:408
vwn_params::X0
real X0
Definition: fun-vwn.c:155
lb94_isgga
static int lb94_isgga(void)
Definition: fun-lb94.c:48
cam_b_energy_medium
static real cam_b_energy_medium(real a)
Definition: fun-cam.c:664
FunThirdFuncDrv::df00101
real df00101
Definition: functionals.h:177
FunFourthFuncDrv
Definition: functionals.h:220
FunFourthFuncDrv::df11002
real df11002
Definition: functionals.h:312
parse_table
static int parse_table(const char *func, const char *str, int cnt, const char *keywords[], double *weights)
Definition: fun-cam.c:183
drv1_clear
EXTERN_C void drv1_clear(FunFirstFuncDrv *gga)
Definition: functionals.c:131
dftlistfuncs_using_printf_
void dftlistfuncs_using_printf_(void)
Definition: functionals.c:182
RGThirdDrv::df30
real df30
Definition: fun-cam.c:65
gga_first
static void gga_first(FunFirstFuncDrv *ds, real fac, const FunDensProp *dp)
Definition: fun-gga.c:495
par_second
static void par_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp, const struct vwn_params *para, const struct vwn_params *ferro)
Definition: fun-vwn.c:337
RGThirdDrv
Definition: fun-cam.c:63
Ap
static const real Ap
Definition: fun-pz81.c:64
gga_third
static void gga_third(FunThirdFuncDrv *ds, real fac, const FunDensProp *dp)
Definition: fun-gga.c:515
FunFourthFuncDrv::df1021
real df1021
Definition: functionals.h:314
FunFirstFuncDrv::df00001
real df00001
Definition: functionals.h:124
Functional_::func
EnergyFunc func
Definition: functionals.h:409
drv1_clear
void drv1_clear(FunFirstFuncDrv *gga)
Definition: functionals.c:131
selected_func
Functional * selected_func
Definition: functionals.c:106
dftreport_
EXTERN_C void dftreport_(void)
dftreport: report the selected functional and its configuration.
Definition: functionals.c:164
lyp_fourth
static void lyp_fourth(FunFourthFuncDrv *ds, real fac, const FunDensProp *dp)
Definition: fun-lyp.c:699
real
ergo_real real
Definition: test.cc:46
dft_get_cam_param
int dft_get_cam_param(real *alpha, real *beta, real *mu)
BETA
static const real BETA
Definition: fun-lb94.c:86
kt_fourth
static void kt_fourth(FunFourthFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: fun-kt.c:294
get_hf_weight
static real get_hf_weight(void)
Definition: functionals.c:103
B3LYPFunctional
Functional B3LYPFunctional
Definition: fun-gga.c:96
FunThirdFuncDrv::df0110
real df0110
Definition: functionals.h:172
RGFirstDrv::df10
real df10
Definition: fun-cam.c:58
vwn_en_pot
static void vwn_en_pot(real *enpot, real rho, int order, const struct vwn_params *p)
Definition: fun-vwn.c:176
FunFourthFuncDrv::df0040
real df0040
Definition: functionals.h:343
FunFourthFuncDrv::df0103
real df0103
Definition: functionals.h:339
PW86xFunctional
Functional PW86xFunctional
Definition: fun-pw86x.c:50
FunThirdFuncDrv::df1110
real df1110
Definition: functionals.h:188
FunThirdFuncDrv::df3000
real df3000
Definition: functionals.h:182
bp86_read
static int bp86_read(const char *conf_line)
Definition: fun-gga.c:299
FunFourthFuncDrv::df21001
real df21001
Definition: functionals.h:296
FunFourthFuncDrv::df02011
real df02011
Definition: functionals.h:331
SVWN5Functional
Functional SVWN5Functional
Definition: fun-gga.c:94
becke_second
static void becke_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: fun-becke.c:161
FunThirdFuncDrv::df01101
real df01101
Definition: functionals.h:203
available_functionals
Functional * available_functionals[]
Definition: functionals.c:45
template_blas_fabs
Treal template_blas_fabs(Treal x)
FunSecondFuncDrv::df0020
real df0020
Definition: functionals.h:145
becke_third
static void becke_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: fun-becke.c:273
FunFourthFuncDrv::df00101
real df00101
Definition: functionals.h:243
FunFourthFuncDrv::df2101
real df2101
Definition: functionals.h:295
b3p86g_read
static int b3p86g_read(const char *conf_line)
Definition: fun-gga.c:324
Functional_::report
ReportFunc report
Definition: functionals.h:405
vwn3i_first
static void vwn3i_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:1028
BHandHFunctional
Functional BHandHFunctional
Definition: fun-gga.c:101
FunThirdFuncDrv::df1101
real df1101
Definition: functionals.h:189
VWNIFunctional
Functional VWNIFunctional
Definition: fun-vwn.c:110
BPW91Functional
Functional BPW91Functional
Definition: fun-gga.c:105
cam_third_sigma
static void cam_third_sigma(real rho, real ex, RGThirdDrv *f3, RGThirdDrv *res)
Definition: fun-cam.c:1040
SVWN3Functional
Functional SVWN3Functional
Definition: fun-gga.c:95
FunFourthFuncDrv::df00301
real df00301
Definition: functionals.h:345
FunSecondFuncDrv::df01001
real df01001
Definition: functionals.h:144
RGFourthDrv::df20
real df20
Definition: fun-cam.c:68
bpw91_read
static int bpw91_read(const char *conf_line)
Definition: fun-gga.c:337
BETA
static const real BETA
Definition: fun-becke.c:92
FunFourthFuncDrv::df0202
real df0202
Definition: functionals.h:330
p86c_second
static void p86c_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-p86c.c:235
B
#define B
kt_second
static void kt_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: fun-kt.c:160
cam_fourth_sigma
static void cam_fourth_sigma(real rho, real ex, RGFourthDrv *f4, RGFourthDrv *res)
Definition: fun-cam.c:1181
fun_get_cam_param
EXTERN_C int fun_get_cam_param(real *alpha, real *beta, real *mu)
Definition: fun-cam.c:1367
test_var
static __inline__ void test_var(real comp, real refer, const char *fun, const char *drv, int *counter)
Definition: fun-tester.cc:75
b2u
static const real b2u
Definition: fun-pz81.c:68
pz81_second
static void pz81_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pz81.c:624
FunSecondFuncDrv::df00101
real df00101
Definition: functionals.h:147
FunFourthFuncDrv::df3100
real df3100
Definition: functionals.h:289
cam_b_fourth_medium
static real cam_b_fourth_medium(real a)
Definition: fun-cam.c:749
pw91x_fourth
static void pw91x_fourth(FunFourthFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pw91x.c:733
spni_first
static void spni_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp, const struct vwn_params *para, const struct vwn_params *ferro)
Definition: fun-vwn.c:913
FunFourthFuncDrv::df0201
real df0201
Definition: functionals.h:267
PbecFunctional
Functional PbecFunctional
Definition: fun-pbec.c:119
par_energy
static real par_energy(const FunDensProp *dp, const struct vwn_params *para, const struct vwn_params *ferro)
Definition: fun-vwn.c:269
camBeta
static real camBeta
Definition: fun-cam.c:149
b3lyp_read
static int b3lyp_read(const char *conf_line)
Definition: fun-gga.c:235
FunFourthFuncDrv::df0001
real df0001
Definition: functionals.h:227
FunFourthFuncDrv::df11101
real df11101
Definition: functionals.h:309
BP86Functional
Functional BP86Functional
Definition: fun-gga.c:104
lb94_first
static void lb94_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: fun-lb94.c:95
fun_true
int fun_true(void)
Definition: functionals.c:153
FunFourthFuncDrv::df0022
real df0022
Definition: functionals.h:346
pz81a_second
static void pz81a_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pz81.c:146
slater_second
static void slater_second(FunSecondFuncDrv *ds, real fac, const FunDensProp *)
Definition: fun-slater.c:127
PW86xFunctional
Functional PW86xFunctional
Definition: fun-pw86x.c:50
EnergyFunc
real(* EnergyFunc)(const FunDensProp *dens_prop)
Definition: functionals.h:389
vwn_read
static int vwn_read(const char *conf_line)
Definition: fun-vwn.c:143
pw91x_isgga
static int pw91x_isgga(void)
Definition: fun-pw91x.c:84
FunThirdFuncDrv::df2000
real df2000
Definition: functionals.h:166
pw86x_read
static int pw86x_read(const char *conf_line)
Definition: fun-pw86x.c:63
FunFourthFuncDrv::df1210
real df1210
Definition: functionals.h:304
spni_second
static void spni_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp, const struct vwn_params *para, const struct vwn_params *ferro)
Definition: fun-vwn.c:946
FunFourthFuncDrv::df0031
real df0031
Definition: functionals.h:344
FunThirdFuncDrv::df00201
real df00201
Definition: functionals.h:209
hse_read
static int hse_read(const char *conf_line)
Definition: fun-cam.c:405
slater_energy
static real slater_energy(const FunDensProp *dp)
Definition: fun-slater.c:81
FunFourthFuncDrv::df01012
real df01012
Definition: functionals.h:341
fun_set_cam_param
void(* fun_set_cam_param)(real w, real b)
Definition: functionals.c:110
VWN_ZERO
#define VWN_ZERO
Definition: fun-vwn.c:140
p86c_first
static void p86c_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-p86c.c:146
FunDensProp_::rhob
real rhob
Definition: functionals.h:376
FunFourthFuncDrv::df2000
real df2000
Definition: functionals.h:232
FunFourthFuncDrv::df4000
real df4000
Definition: functionals.h:288
FunSecondFuncDrv::df0200
real df0200
Definition: functionals.h:141
FUN_UNKNOWN
@ FUN_UNKNOWN
Definition: functionals.h:363
FunFourthFuncDrv::df3010
real df3010
Definition: functionals.h:290
drv4_clear
void drv4_clear(FunFourthFuncDrv *gga)
Definition: functionals.c:148
kt3_read
static int kt3_read(const char *conf_line)
Definition: fun-gga.c:373
B3P86GFunctional
Functional B3P86GFunctional
Definition: fun-gga.c:99
FunThirdFuncDrv::df1020
real df1020
Definition: functionals.h:191
vwn_fourth
static void vwn_fourth(FunFourthFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:574
FunThirdFuncDrv::df0030
real df0030
Definition: functionals.h:207
FunFourthFuncDrv::df01111
real df01111
Definition: functionals.h:337
lyp_third
static void lyp_third(FunThirdFuncDrv *ds, real fac, const FunDensProp *dp)
Definition: fun-lyp.c:385
PZ81Functional
Functional PZ81Functional
Definition: fun-pz81.c:49
cam_first
static void cam_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-cam.c:884
B3P86Functional
Functional B3P86Functional
Definition: fun-gga.c:98
camb3lyp_read
static int camb3lyp_read(const char *conf_line)
Definition: fun-cam.c:224
becke_fourth
static void becke_fourth(FunFourthFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: fun-becke.c:431
B3P86Functional
Functional B3P86Functional
Definition: fun-gga.c:98
LYPFunctional
Functional LYPFunctional
Definition: fun-lyp.c:53
fun_a_third
static void fun_a_third(real rho, real a, real ex, RGThirdDrv *f3, RGThirdDrv *res)
Definition: fun-cam.c:459
pw91c_second
static void pw91c_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pw91c.c:303
RGThirdDrv::df10
real df10
Definition: fun-cam.c:64
PbexFunctional
Functional PbexFunctional
Definition: fun-pbex.c:81
VWN_WEIGHT
#define VWN_WEIGHT
Definition: fun-cam.c:220
pw92c_read
static int pw92c_read(const char *conf_line)
Definition: fun-pw92c.c:147
OLYPFunctional
Functional OLYPFunctional
Definition: fun-gga.c:111
FunctionalList
Definition: fun-cam.c:132
FunFourthFuncDrv::df0100
real df0100
Definition: functionals.h:225
pbex_first
static void pbex_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pbex.c:141
pbex_third
static void pbex_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pbex.c:259
LDA_FUNCTIONAL
#define LDA_FUNCTIONAL(name, read)
Definition: fun-gga.c:83
FunThirdFuncDrv::df00102
real df00102
Definition: functionals.h:212
cam_energy
static real cam_energy(const FunDensProp *dp)
Definition: fun-cam.c:825
VWN3Functional
Functional VWN3Functional
Definition: fun-vwn.c:68
FunFourthFuncDrv::df00121
real df00121
Definition: functionals.h:350
FunFourthFuncDrv::df3001
real df3001
Definition: functionals.h:291
vwn_energy
static real vwn_energy(const FunDensProp *dp)
Definition: fun-vwn.c:550
FunThirdFuncDrv::df00111
real df00111
Definition: functionals.h:211
ReportFunc
void(* ReportFunc)(void)
Definition: functionals.h:388
cam_keywords
static const char * cam_keywords[]
Definition: fun-cam.c:222
FunFourthFuncDrv::df01001
real df01001
Definition: functionals.h:240
fun_a_second
static void fun_a_second(real rho, real a, real ex, RGSecondDrv *f2, RGSecondDrv *res)
Definition: fun-cam.c:440
FunFourthFuncDrv::df01201
real df01201
Definition: functionals.h:335
RGFourthDrv::df10
real df10
Definition: fun-cam.c:68
FunThirdFuncDrv::df1010
real df1010
Definition: functionals.h:168
vwni_second
static void vwni_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:1010
FunThirdFuncDrv::df0001
real df0001
Definition: functionals.h:163
FunThirdFuncDrv::df0012
real df0012
Definition: functionals.h:210
vwni_third
static void vwni_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:1016
kt_first
static void kt_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: fun-kt.c:125
FunSecondFuncDrv::df00001
real df00001
Definition: functionals.h:135
exchangeFunctionals
static struct FunctionalList * exchangeFunctionals
The module uses program-wide configuration.
Definition: fun-cam.c:146
fun_false
int fun_false(void)
Definition: functionals.c:154
drv2_clear
EXTERN_C void drv2_clear(FunSecondFuncDrv *gga)
Definition: functionals.c:137
kt2_read
static int kt2_read(const char *conf_line)
Definition: fun-gga.c:360
B3PW91Functional
Functional B3PW91Functional
Definition: fun-gga.c:100
dft_isgga_
int dft_isgga_(void)
Definition: functionals.c:192
FunFourthFuncDrv::df10201
real df10201
Definition: functionals.h:315
FunFourthFuncDrv::df10111
real df10111
Definition: functionals.h:317
OPTXFunctional
Functional OPTXFunctional
Definition: fun-optx.c:60
BLYPFunctional
Functional BLYPFunctional
Definition: fun-gga.c:103
Au
static const real Au
Definition: fun-pz81.c:63
FirstOrderFun
void(* FirstOrderFun)(FunFirstFuncDrv *ds, real factor, const FunDensProp *dns_prp)
Definition: functionals.h:390
FunFourthFuncDrv::df00201
real df00201
Definition: functionals.h:277
pz81b_energy
static real pz81b_energy(const FunDensProp *dp)
Definition: fun-pz81.c:352
my_printf
static int my_printf(const char *fmt,...)
Definition: functionals.c:95
Functional_::is_gga
IsGGAFunc is_gga
Definition: functionals.h:403
XAlphaFunctional
Functional XAlphaFunctional
Definition: fun-gga.c:91
FunFourthFuncDrv::df2002
real df2002
Definition: functionals.h:300
optx_first
static void optx_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: fun-optx.c:118
FunThirdFuncDrv
Definition: functionals.h:159
main
int main(int argc, char *argv[])
Definition: bin2m.cc:45
drv3_clear
void drv3_clear(FunThirdFuncDrv *gga)
Definition: functionals.c:143
RGFourthDrv::df22
real df22
Definition: fun-cam.c:70
FunFirstFuncDrv
Definition: functionals.h:119
FunFourthFuncDrv::df01003
real df01003
Definition: functionals.h:342
FunFourthFuncDrv::df0003
real df0003
Definition: functionals.h:281
blyp_read
static int blyp_read(const char *conf_line)
Definition: fun-gga.c:224
FunThirdFuncDrv::df0210
real df0210
Definition: functionals.h:198
drv3_clear
EXTERN_C void drv3_clear(FunThirdFuncDrv *gga)
Definition: functionals.c:143
pw91x_third
static void pw91x_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pw91x.c:469
BHandHLYPFunctional
Functional BHandHLYPFunctional
Definition: fun-gga.c:102
FunFourthFuncDrv::df20101
real df20101
Definition: functionals.h:299
FunFourthFuncDrv::df30001
real df30001
Definition: functionals.h:292
fun_false
int fun_false(void)
Definition: functionals.c:154
fun_a
static real fun_a(real rho, real ex)
Definition: fun-cam.c:423
combine_read
static int combine_read(const char *conf_line)
Definition: fun-gga.c:423
large_coefs
static const real large_coefs[]
Definition: fun-cam.c:623
KT3Functional
Functional KT3Functional
Definition: fun-gga.c:110
dft_isgga_
int dft_isgga_(void)
Definition: functionals.c:192
fun_a_fourth
static void fun_a_fourth(real rho, real a, real ex, RGFourthDrv *f4, RGFourthDrv *res)
Definition: fun-cam.c:496
Functional_
Definition: functionals.h:401
fun_set_hf_weight
void(* fun_set_hf_weight)(real w)
Definition: functionals.c:108
lyp_read
static int lyp_read(const char *conf_line)
Definition: fun-lyp.c:67
Functional_::third
ThirdOrderFun third
Definition: functionals.h:412
SlaterFunctional
Functional SlaterFunctional
Definition: fun-slater.c:57
FunFourthFuncDrv::df10002
real df10002
Definition: functionals.h:264
FunFourthFuncDrv::df10012
real df10012
Definition: functionals.h:321
FunFourthFuncDrv::df0211
real df0211
Definition: functionals.h:328
vwn_paramagnetic
static const struct vwn_params vwn_paramagnetic
FunSecondFuncDrv::df0002
real df0002
Definition: functionals.h:148
Du
static const real Du
Definition: fun-pz81.c:69
CombineFunctional
Functional CombineFunctional
Definition: fun-gga.c:106
dftlistfuncs_using_printf_
EXTERN_C void dftlistfuncs_using_printf_(void)
Definition: functionals.c:182
BLYPFunctional
Functional BLYPFunctional
Definition: fun-gga.c:103
SLATER_THRESHOLD
static const real SLATER_THRESHOLD
Definition: fun-slater.c:79
FunFourthFuncDrv::df00002
real df00002
Definition: functionals.h:246
fun_select_by_name
enum FunError fun_select_by_name(const char *conf_string)
Definition: functionals.c:114
LB94Functional
Functional LB94Functional
Definition: fun-lb94.c:64
KT2Functional
Functional KT2Functional
Definition: fun-gga.c:109
lb94_energy
static real lb94_energy(const FunDensProp *dens_prop)
Definition: fun-lb94.c:89
FunSecondFuncDrv::df0100
real df0100
Definition: functionals.h:132
ebck_
void ebck_(real *bck, const real *rho, const real *rho13, const real *rhogrd)
FunFourthFuncDrv::df0111
real df0111
Definition: functionals.h:270
gga_fourth
static void gga_fourth(FunFourthFuncDrv *ds, real fac, const FunDensProp *dp)
Definition: fun-gga.c:524
THREEFTHRD2
static const real THREEFTHRD2
Definition: fun-vwn.c:164
FunThirdFuncDrv::df1100
real df1100
Definition: functionals.h:167
b1p
static const real b1p
Definition: fun-pz81.c:70
FunFourthFuncDrv::df00112
real df00112
Definition: functionals.h:351
P86cFunctional
Functional P86cFunctional
Definition: fun-p86c.c:89
vwn_params::A
real A
Definition: fun-vwn.c:155
fun_a_first
static void fun_a_first(real rho, real a, real ex, RGFirstDrv *fun1, RGFirstDrv *res)
Definition: fun-cam.c:430
FUN_OK
@ FUN_OK
Definition: functionals.h:363
FuncList_::next
FuncList * next
Definition: fun-gga.c:121
FunFourthFuncDrv::df2020
real df2020
Definition: functionals.h:297
vwni_energy
static real vwni_energy(const FunDensProp *dp)
Definition: fun-vwn.c:998
GGA_FUNCTIONAL
#define GGA_FUNCTIONAL(name, read)
Definition: fun-gga.c:87
fun_get_hf_weight
real(* fun_get_hf_weight)(void)
Definition: functionals.c:109
FunFourthFuncDrv::df1000
real df1000
Definition: functionals.h:224
FunFourthFuncDrv::df1300
real df1300
Definition: functionals.h:303
slater_isgga
static int slater_isgga(void)
Definition: fun-slater.c:49
ENERGY_THR
static const real ENERGY_THR
Definition: fun-cam.c:822
pw86x_energy
static real pw86x_energy(const FunDensProp *dp)
Definition: fun-pw86x.c:70
PbecFunctional
Functional PbecFunctional
Definition: fun-pbec.c:119
VWNIFunctional
Functional VWNIFunctional
Definition: fun-vwn.c:110
BHandHLYPFunctional
Functional BHandHLYPFunctional
Definition: fun-gga.c:102
FunSecondFuncDrv::df00002
real df00002
Definition: functionals.h:150
B3LYPGaussFunctional
Functional B3LYPGaussFunctional
Definition: fun-gga.c:97
FunFourthFuncDrv::df1110
real df1110
Definition: functionals.h:256
pw91x_second
static void pw91x_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pw91x.c:307
gga_report
static void gga_report(void)
Definition: fun-gga.c:470
lda_first
static void lda_first(FunFirstFuncDrv *ds, real fac, const FunDensProp *dp)
Definition: fun-gga.c:186
A
#define A
COMP_DER
#define COMP_DER(c, delta, eps, field, fun, ord)
Definition: fun-tester.cc:140
FunThirdFuncDrv::df0003
real df0003
Definition: functionals.h:213
pz81_energy
static real pz81_energy(const FunDensProp *dp)
Definition: fun-pz81.c:604
RGFourthDrv::df21
real df21
Definition: fun-cam.c:69
FunFourthFuncDrv::df00012
real df00012
Definition: functionals.h:283
FunFourthFuncDrv::df3000
real df3000
Definition: functionals.h:250
RGFourthDrv::df13
real df13
Definition: fun-cam.c:70
T2
#define T2(der, derdif, eps, label)
Definition: fun-tester.cc:145
pz81_first
static void pz81_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pz81.c:614
optx_third
static void optx_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: fun-optx.c:209
FunFourthFuncDrv::df0310
real df0310
Definition: functionals.h:324
FunThirdFuncDrv::df0120
real df0120
Definition: functionals.h:201
RGFourthDrv
Definition: fun-cam.c:67
ATAN
#define ATAN
Definition: functionals.h:103
RGSecondDrv::df11
real df11
Definition: fun-cam.c:61
p86c_third
static void p86c_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-p86c.c:478
pz81a_energy
static real pz81a_energy(const FunDensProp *dp)
Definition: fun-pz81.c:88
MAX_LARGE_COEFS
#define MAX_LARGE_COEFS
Definition: fun-cam.c:622
RGThirdDrv::df11
real df11
Definition: fun-cam.c:64
FunSecondFuncDrv::df0101
real df0101
Definition: functionals.h:143
POW
#define POW
Definition: functionals.h:108
FunFourthFuncDrv::df1012
real df1012
Definition: functionals.h:316
pw92c_third
static void pw92c_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pw92c.c:1224
ERF
#define ERF
Definition: functionals.h:104
HseFunctional
Functional HseFunctional
Definition: fun-cam.c:119
pw86x_first
static void pw86x_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pw86x.c:92
SQRT
#define SQRT
Definition: functionals.h:109
FunFourthFuncDrv::df1020
real df1020
Definition: functionals.h:259
FunFourthFuncDrv::df01021
real df01021
Definition: functionals.h:340
FunFourthFuncDrv::df1002
real df1002
Definition: functionals.h:262
vwn3_ferromagnetic
static const struct vwn_params vwn3_ferromagnetic
ASINH
#define ASINH
Definition: functionals.h:102
fun_get_hf_weight
real(* fun_get_hf_weight)(void)
Definition: functionals.c:109
p86c_isgga
static int p86c_isgga(void)
Definition: fun-p86c.c:79
CI
Definition: ci.h:44
FunThirdFuncDrv::df2100
real df2100
Definition: functionals.h:183
FABS
#define FABS
Definition: functionals.h:106
FunFourthFuncDrv::df0013
real df0013
Definition: functionals.h:349
RGSecondDrv::df20
real df20
Definition: fun-cam.c:61
FunSecondFuncDrv::df1010
real df1010
Definition: functionals.h:138
FunFourthFuncDrv::df2200
real df2200
Definition: functionals.h:293
FunThirdFuncDrv::df1200
real df1200
Definition: functionals.h:187
Bu
static const real Bu
Definition: fun-pz81.c:63
pz81b_first
static void pz81b_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pz81.c:368
FunFourthFuncDrv::df2001
real df2001
Definition: functionals.h:253
dft_isgga__
int dft_isgga__(void)
Definition: functionals.c:196
FunThirdFuncDrv::df01002
real df01002
Definition: functionals.h:206
KT1Functional
Functional KT1Functional
Definition: fun-gga.c:108
FunFourthFuncDrv::df0004
real df0004
Definition: functionals.h:353
b1u
static const real b1u
Definition: fun-pz81.c:68
kt_energy
static real kt_energy(const FunDensProp *dens_prop)
Definition: fun-kt.c:102
pbex_read
static int pbex_read(const char *conf_line)
Definition: fun-pbex.c:94
gga_second
static void gga_second(FunSecondFuncDrv *ds, real fac, const FunDensProp *dp)
Definition: fun-gga.c:507
FunFourthFuncDrv::df0101
real df0101
Definition: functionals.h:239
FunFourthFuncDrv::df20002
real df20002
Definition: functionals.h:302
vwn3_paramagnetic
static const struct vwn_params vwn3_paramagnetic
pw91x_first
static void pw91x_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pw91x.c:211
set_cam_param
static void set_cam_param(real w, real b)
Definition: functionals.c:104
selected_func
Functional * selected_func
Definition: functionals.c:106
FunFourthFuncDrv::df0210
real df0210
Definition: functionals.h:266
FunFourthFuncDrv::df10003
real df10003
Definition: functionals.h:322
PBEFunctional
Functional PBEFunctional
Definition: fun-gga.c:113
CombineFunctional
Functional CombineFunctional
Definition: fun-gga.c:106
FunFourthFuncDrv::df1001
real df1001
Definition: functionals.h:235
pw91c_first
static void pw91c_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pw91c.c:180
FunThirdFuncDrv::df0021
real df0021
Definition: functionals.h:208
cam_b_first_small
static real cam_b_first_small(real a)
Definition: fun-cam.c:610
FunFourthFuncDrv::df1102
real df1102
Definition: functionals.h:310
pbex_isgga
static int pbex_isgga(void)
Definition: fun-pbex.c:71
FunFourthFuncDrv::df0020
real df0020
Definition: functionals.h:241
RGFourthDrv::df01
real df01
Definition: fun-cam.c:68
dftpot1
void dftpot1(SecondDrv *ds, const real *w, const real *rho, const real *grad, const int *triplet)
fun_printf
int(* fun_printf)(const char *fmt,...)
Definition: functionals.c:107
FunFourthFuncDrv::df10011
real df10011
Definition: functionals.h:263
GRID_STEP
const int GRID_STEP
Definition: fun-tester.cc:87
vwn_params
Definition: fun-vwn.c:154
FunFourthFuncDrv::df00011
real df00011
Definition: functionals.h:245
camAlpha
static real camAlpha
Definition: fun-cam.c:148
FunThirdFuncDrv::df0200
real df0200
Definition: functionals.h:171
large_coefs1
static const real large_coefs1[]
Definition: fun-cam.c:639
SVWN5Functional
Functional SVWN5Functional
Definition: fun-gga.c:94
CamFunctional
Functional CamFunctional
Definition: fun-cam.c:107
FunThirdFuncDrv::df00002
real df00002
Definition: functionals.h:180
FunFourthFuncDrv::df10021
real df10021
Definition: functionals.h:320
Dp
static const real Dp
Definition: fun-pz81.c:71
par_first
static void par_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp, const struct vwn_params *para, const struct vwn_params *ferro)
Definition: fun-vwn.c:293
pz81_third
static void pz81_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pz81.c:634
dftreport_
void dftreport_(void)
dftreport: report the selected functional and its configuration.
Definition: functionals.c:164
vwn3i_second
static void vwn3i_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:1034
FunFourthFuncDrv::df0030
real df0030
Definition: functionals.h:275
EXP
#define EXP
Definition: functionals.h:105
FunFourthFuncDrv::df00004
real df00004
Definition: functionals.h:357
LDAFunctional
Functional LDAFunctional
Definition: fun-gga.c:92
FunSecondFuncDrv::df1100
real df1100
Definition: functionals.h:137
pw92c_energy
static real pw92c_energy(const FunDensProp *dp)
Definition: fun-pw92c.c:154
cam_first_sigma
static void cam_first_sigma(real rho, real ex, RGFirstDrv *ds, RGFirstDrv *res)
Definition: fun-cam.c:869
Pw91cFunctional
Functional Pw91cFunctional
Definition: fun-pw91c.c:109
FunFourthFuncDrv::df1120
real df1120
Definition: functionals.h:307
FunDensProp_::gradab
real gradab
Definition: functionals.h:378
FunFourthFuncDrv::df0012
real df0012
Definition: functionals.h:278
lda_energy
static real lda_energy(const FunDensProp *dp)
Definition: fun-gga.c:180
EXTERN_C
#define EXTERN_C
Definition: functionals.h:59
KT2Functional
Functional KT2Functional
Definition: fun-gga.c:109
FunctionalList::func
Functional * func
Definition: fun-cam.c:133
OLYPFunctional
Functional OLYPFunctional
Definition: fun-gga.c:111
FunFourthFuncDrv::df0110
real df0110
Definition: functionals.h:238
cam_report
static void cam_report(void)
Definition: fun-cam.c:391
cam_b_energy_large
static real cam_b_energy_large(real a)
Definition: fun-cam.c:625
VWN5Functional
Functional VWN5Functional
Definition: fun-vwn.c:79
FunThirdFuncDrv::df00012
real df00012
Definition: functionals.h:215
FunFourthFuncDrv::df2011
real df2011
Definition: functionals.h:298
FunFourthFuncDrv::df0121
real df0121
Definition: functionals.h:334
KT1Functional
Functional KT1Functional
Definition: fun-gga.c:108
PBEFunctional
Functional PBEFunctional
Definition: fun-gga.c:113
B3LYPFunctional
Functional B3LYPFunctional
Definition: fun-gga.c:96
vwn_third
static void vwn_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:568
FunFourthFuncDrv::df01101
real df01101
Definition: functionals.h:271
cam_energy_sigma
static real cam_energy_sigma(real rho, real ex)
Definition: fun-cam.c:809
FunThirdFuncDrv::df0201
real df0201
Definition: functionals.h:199
FunFourthFuncDrv::df11011
real df11011
Definition: functionals.h:311
pbec_energy
static real pbec_energy(const FunDensProp *dp)
Definition: fun-pbec.c:140
slater_fourth
static void slater_fourth(FunFourthFuncDrv *ds, real fac, const FunDensProp *)
Definition: fun-slater.c:164
KTFunctional
Functional KTFunctional
Definition: fun-kt.c:68
FunSecondFuncDrv::df10001
real df10001
Definition: functionals.h:140
FunThirdFuncDrv::df10002
real df10002
Definition: functionals.h:196
elyp_
void elyp_(real *lyp, const real *rho, const real *rho13, const real *rhogrd)
FunThirdFuncDrv::df00001
real df00001
Definition: functionals.h:164
evaluate_series
static real evaluate_series(int n, const real *coefs, real lambda)
Definition: fun-cam.c:689
FunDensProp_::grada
real grada
Definition: functionals.h:377
FunFourthFuncDrv::df00001
real df00001
Definition: functionals.h:228
FunDensProp
struct FunDensProp_ FunDensProp
HseFunctional
Functional HseFunctional
Definition: fun-cam.c:119
fun_set_cam_param
void(* fun_set_cam_param)(real w, real b)
Definition: functionals.c:110
SecondOrderFun
void(* SecondOrderFun)(FunSecondFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: functionals.h:393
pbex_third_helper
static void pbex_third_helper(real rhoa, real grada, real *res)
Definition: fun-pbex.c:210
VWNFunctional
Functional VWNFunctional
Definition: fun-vwn.c:92
lb94_read
static int lb94_read(const char *conf_line)
Definition: fun-lb94.c:80
kt1_read
static int kt1_read(const char *conf_line)
Definition: fun-gga.c:348
BECKE_THRESHOLD
static const real BECKE_THRESHOLD
Definition: fun-becke.c:91
FunFourthFuncDrv::df00111
real df00111
Definition: functionals.h:279
BPW91Functional
Functional BPW91Functional
Definition: fun-gga.c:105
FunThirdFuncDrv::df0011
real df0011
Definition: functionals.h:176
optx_isgga
static int optx_isgga(void)
Definition: fun-optx.c:50
slater_first
static void slater_first(FunFirstFuncDrv *ds, real fac, const FunDensProp *)
Definition: fun-slater.c:119
pw91x_second_helper
static void pw91x_second_helper(real rhoa, real grada, real *res)
Definition: fun-pw91x.c:230
PbexFunctional
Functional PbexFunctional
Definition: fun-pbex.c:81
PW92cFunctional
Functional PW92cFunctional
Definition: fun-pw92c.c:131
FunThirdFuncDrv::df00003
real df00003
Definition: functionals.h:216
config.h
dftlistfuncs_
EXTERN_C void dftlistfuncs_(void)
Definition: functionals.c:173
VWN5Functional
Functional VWN5Functional
Definition: fun-vwn.c:79
vwn_isgga
static int vwn_isgga(void)
Definition: fun-vwn.c:45
LYP_WEIGHT
#define LYP_WEIGHT
Definition: fun-cam.c:219
slater_read
static int slater_read(const char *conf_line)
Definition: fun-slater.c:71
FunSecondFuncDrv::df00011
real df00011
Definition: functionals.h:149
condft_
void condft_(void)
vwni_first
static void vwni_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:1004
pw91x_first_helper
static void pw91x_first_helper(real rhoa, real grada, real *res)
Definition: fun-pw91x.c:168
RGFourthDrv::df12
real df12
Definition: fun-cam.c:69
FunThirdFuncDrv::df2001
real df2001
Definition: functionals.h:185
FunFourthFuncDrv::df0002
real df0002
Definition: functionals.h:244
FunThirdFuncDrv::df10011
real df10011
Definition: functionals.h:195
drv4_clear
EXTERN_C void drv4_clear(FunFourthFuncDrv *gga)
Definition: functionals.c:148
vwn_ferromagnetic
static const struct vwn_params vwn_ferromagnetic
RGSecondDrv::df02
real df02
Definition: fun-cam.c:61
pz81a_first
static void pz81a_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pz81.c:105
bhandhlyp_read
static int bhandhlyp_read(const char *conf_line)
Definition: fun-gga.c:288
FunFourthFuncDrv::df0102
real df0102
Definition: functionals.h:272
gga_energy
static real gga_energy(const FunDensProp *dp)
Definition: fun-gga.c:481
XAlphaFunctional
Functional XAlphaFunctional
Definition: fun-gga.c:91
FunFourthFuncDrv::df0120
real df0120
Definition: functionals.h:269
FunFourthFuncDrv::df0021
real df0021
Definition: functionals.h:276
optx_read
static int optx_read(const char *conf_line)
Definition: fun-optx.c:75
FunFourthFuncDrv::df0400
real df0400
Definition: functionals.h:323
FunFourthFuncDrv::df0300
real df0300
Definition: functionals.h:265
FunFourthFuncDrv::df1011
real df1011
Definition: functionals.h:260
FunctionalList::next
struct FunctionalList * next
Definition: fun-cam.c:135
Functional_::fourth
FourthOrderFun fourth
Definition: functionals.h:413
GAMMA
static const real GAMMA
Definition: fun-optx.c:90
FunFourthFuncDrv::df1100
real df1100
Definition: functionals.h:233
RGSecondDrv::df01
real df01
Definition: fun-cam.c:61
test_first
static int test_first(const char *fun_name, EnergyFunc func, FirstOrderFun first_func)
Definition: fun-tester.cc:93
Camb3lypFunctional
Functional Camb3lypFunctional
Definition: fun-cam.c:95
BeckeFunctional
Functional BeckeFunctional
Definition: fun-becke.c:62
cam_b_third_medium
static real cam_b_third_medium(real a)
Definition: fun-cam.c:723
FunSecondFuncDrv::df0001
real df0001
Definition: functionals.h:134
pw92c_first
static void pw92c_first(FunFirstFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pw92c.c:237
lyp_energy
static real lyp_energy(const FunDensProp *dp)
The LYP formulas are based on Miehlich et al.
Definition: fun-lyp.c:80
FunFourthFuncDrv::df2100
real df2100
Definition: functionals.h:251
FunFirstFuncDrv::df1000
real df1000
Definition: functionals.h:120
cam_second_sigma
static void cam_second_sigma(real rho, real ex, RGSecondDrv *f2, RGSecondDrv *res)
Definition: fun-cam.c:939
FunFourthFuncDrv::df1200
real df1200
Definition: functionals.h:255
pbec_second
static void pbec_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pbec.c:430
FunSecondFuncDrv::df0010
real df0010
Definition: functionals.h:133
b3lypgauss_read
static int b3lypgauss_read(const char *conf_line)
Definition: fun-gga.c:248
THR
#define THR
Definition: fun-cam.c:75
FunThirdFuncDrv::df00011
real df00011
Definition: functionals.h:179
P86cFunctional
Functional P86cFunctional
Definition: fun-p86c.c:89
FunFourthFuncDrv::df1030
real df1030
Definition: functionals.h:313
vwn_second
static void vwn_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:562
LYPFunctional
Functional LYPFunctional
Definition: fun-lyp.c:53
FunDensProp_::gradb
real gradb
Definition: functionals.h:377
OPTXFunctional
Functional OPTXFunctional
Definition: fun-optx.c:60
becke_read
static int becke_read(const char *conf_line)
Definition: fun-becke.c:77
Pw91xFunctional
Functional Pw91xFunctional
Definition: fun-pw91x.c:96
vwn3i_energy
static real vwn3i_energy(const FunDensProp *dp)
Definition: fun-vwn.c:1022
RGFourthDrv::df03
real df03
Definition: fun-cam.c:69
cam_fourth
static void cam_fourth(FunFourthFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-cam.c:1274
FunFourthFuncDrv::df1111
real df1111
Definition: functionals.h:308
spni_energy
static real spni_energy(const FunDensProp *dp, const struct vwn_params *para, const struct vwn_params *ferro)
Definition: fun-vwn.c:890
FunSecondFuncDrv::df2000
real df2000
Definition: functionals.h:136
FuncList_::func
Functional * func
Definition: fun-gga.c:119
FunFourthFuncDrv::df0010
real df0010
Definition: functionals.h:226
FunThirdFuncDrv::df0010
real df0010
Definition: functionals.h:162
FunFourthFuncDrv::df00103
real df00103
Definition: functionals.h:352
par_third
static void par_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp, const struct vwn_params *para, const struct vwn_params *ferro)
Definition: fun-vwn.c:409
FunFourthFuncDrv::df2010
real df2010
Definition: functionals.h:252
RGFourthDrv::df40
real df40
Definition: fun-cam.c:70
cam_b_first_large
static real cam_b_first_large(real a)
Definition: fun-cam.c:641
Camb3lypFunctional
Functional Camb3lypFunctional
Definition: fun-cam.c:95
ReadInputFunc
int(* ReadInputFunc)(const char *conf_string)
Definition: functionals.h:387
add_functional
static FuncList * add_functional(FuncList *lst, Functional *f, float weight)
Definition: fun-gga.c:138
FunFirstFuncDrv::df0100
real df0100
Definition: functionals.h:121
slater_third
static void slater_third(FunThirdFuncDrv *ds, real fac, const FunDensProp *)
Definition: fun-slater.c:144
BeckeFunctional
Functional BeckeFunctional
Definition: fun-becke.c:62
SlaterFunctional
Functional SlaterFunctional
Definition: fun-slater.c:57
FunSecondFuncDrv::df1001
real df1001
Definition: functionals.h:139
set_hf_weight
static void set_hf_weight(real w)
Definition: functionals.c:102
Pw91xFunctional
Functional Pw91xFunctional
Definition: fun-pw91x.c:96
pbex_second
static void pbex_second(FunSecondFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-pbex.c:187
FunFourthFuncDrv::df00022
real df00022
Definition: functionals.h:355
FunThirdFuncDrv::df00021
real df00021
Definition: functionals.h:214
pw91x_third_helper
static void pw91x_third_helper(real rhoa, real grada, real *res)
Definition: fun-pw91x.c:334
pbex_second_helper
static void pbex_second_helper(real rhoa, real grada, real *res)
Definition: fun-pbex.c:158
Functional_::second
SecondOrderFun second
Definition: functionals.h:411
drv2_clear
void drv2_clear(FunSecondFuncDrv *gga)
Definition: functionals.c:137
FunFourthFuncDrv::df12001
real df12001
Definition: functionals.h:306
test_third
static int test_third(const char *fname, SecondOrderFun second_fun, ThirdOrderFun third_fun)
Definition: fun-tester.cc:215
FunFourthFuncDrv::df00031
real df00031
Definition: functionals.h:354
FunThirdFuncDrv::df10101
real df10101
Definition: functionals.h:193
RGSecondDrv
Definition: fun-cam.c:60
FunFourthFuncDrv::df0200
real df0200
Definition: functionals.h:237
FunThirdFuncDrv::df1000
real df1000
Definition: functionals.h:160
FunFourthFuncDrv::df0220
real df0220
Definition: functionals.h:327
FunFourthFuncDrv::df10101
real df10101
Definition: functionals.h:261
FunFourthFuncDrv::df2110
real df2110
Definition: functionals.h:294
FunFourthFuncDrv::df1201
real df1201
Definition: functionals.h:305
B3PW91Functional
Functional B3PW91Functional
Definition: fun-gga.c:100
FourthOrderFun
void(* FourthOrderFun)(FunFourthFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: functionals.h:398
FunThirdFuncDrv::df0002
real df0002
Definition: functionals.h:178
RGThirdDrv::df12
real df12
Definition: fun-cam.c:65
ldagauss_read
static int ldagauss_read(const char *conf_line)
Definition: fun-gga.c:214
FunFirstFuncDrv::df0001
real df0001
Definition: functionals.h:123
PBE0Functional
Functional PBE0Functional
Definition: fun-gga.c:112
FunFourthFuncDrv::df10102
real df10102
Definition: functionals.h:318
cam_b_first_medium
static real cam_b_first_medium(real a)
Definition: fun-cam.c:674
LB94Functional
Functional LB94Functional
Definition: fun-lb94.c:64
KTFunctional
Functional KTFunctional
Definition: fun-kt.c:68
b3pw91_read
static int b3pw91_read(const char *conf_line)
Definition: fun-gga.c:261
FunFourthFuncDrv::df1010
real df1010
Definition: functionals.h:234
vwn3_third
static void vwn3_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:543
FunFourthFuncDrv::df00211
real df00211
Definition: functionals.h:347
BP86Functional
Functional BP86Functional
Definition: fun-gga.c:104
functionals.h
pw86x_isgga
static int pw86x_isgga(void)
Definition: fun-pw86x.c:45
KT3Functional
Functional KT3Functional
Definition: fun-gga.c:110
FunFirstFuncDrv::df0010
real df0010
Definition: functionals.h:122
evwn_
void evwn_(real *vwn, const real *rho, const real *rho13, const real *rhogrd)
pw91x_energy
static real pw91x_energy(const FunDensProp *dp)
Definition: fun-pw91x.c:119
FOURTHREE
static const real FOURTHREE
Definition: fun-vwn.c:165
pbe0_read
static int pbe0_read(const char *conf_line)
Definition: fun-gga.c:409
RGThirdDrv::df03
real df03
Definition: fun-cam.c:65
fun_get_cam_param
int fun_get_cam_param(real *alpha, real *beta, real *mu)
Definition: fun-cam.c:1367
gga_isgga
static int gga_isgga(void)
Definition: fun-gga.c:127
FunFourthFuncDrv::df10001
real df10001
Definition: functionals.h:236
FunFourthFuncDrv::df01002
real df01002
Definition: functionals.h:274
RGFirstDrv::df01
real df01
Definition: fun-cam.c:58
vwn3_energy
static real vwn3_energy(const FunDensProp *dp)
Definition: fun-vwn.c:525
vwn3i_third
static void vwn3i_third(FunThirdFuncDrv *ds, real factor, const FunDensProp *dp)
Definition: fun-vwn.c:1040
FunThirdFuncDrv::df01011
real df01011
Definition: functionals.h:205
b3p86_read
static int b3p86_read(const char *conf_line)
Definition: fun-gga.c:311