ergo
functionals.h
Go to the documentation of this file.
1 /* Ergo, version 3.7, a program for linear scaling electronic structure
2  * calculations.
3  * Copyright (C) 2018 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|² * mu = |\nabla\rho_\alpha||\nabla\rho_\beta| */ typedef struct { real df1000; /* d/drho F */ real df0100; real df0010; /* d/zeta F */ real df0001; real df00001; } FunFirstFuncDrv; /* SecondFuncDrv: this structure is used by functional derivative * evaluation procedures. Do not include "triplet" transformation. */ typedef struct { real df1000; /* d/drho_alpha F */ real df0100; /* d/drho_beta F */ real df0010; /* d/|zeta_alpha| F */ real df0001; /* d/|zeta_beta| F */ real df00001; real df2000; /* d/drho_alpha^2 F */ real df1100; /* d/(drho_alpha drho_beta) F */ real df1010; /* d/drho_alpha d/dzeta_alpha F */ real df1001; /* d/drho_alpha d/dzeta_beta F */ real df10001; real df0200; /* d/drho_beta^2 F */ real df0110; /* d/drho_beta d/dzeta_alpha F */ real df0101; /* d/drho_beta d/dzeta_beta F */ real df01001; real df0020; /* d/dzeta_alpha^2 F */ real df0011; /* d2/dzeta_a zeta_b F */ real df00101; real df0002; /* d/dzeta_beta^2 F */ real df00011; real df00002; } FunSecondFuncDrv; /* ThirdFuncDrv: matrix of third derivatives with respect to five parameters: density rho_alpha and SQUARE of the density gradient zeta. and mu. */ typedef struct { real df1000; /* d/drho F */ real df0100; real df0010; /* d/|zeta| F */ real df0001; real df00001; real df2000; /* d/drho_alpha^2 F */ real df1100; /* d/(drho_alpha drho_beta) F */ real df1010; /* d/drho_alpha d/dzeta_alpha F */ real df1001; /* d/drho_alpha d/dzeta_beta F */ real df10001; real df0200; /* d/drho_beta^2 F */ real df0110; /* d/drho_beta d/dzeta_alpha F */ real df0101; /* d/drho_beta d/dzeta_beta F */ real df01001; real df0020; /* d/dzeta_alpha^2 F */ real df0011; /* d2/dzeta_a zeta_b F */ real df00101; real df0002; /* d/dzeta_beta^2 F */ real df00011; real df00002; real df3000; real df2100; real df2010; real df2001; real df20001; real df1200; real df1110; real df1101; real df11001; real df1020; real df1011; real df10101; real df1002; real df10011; real df10002; real df0300; real df0210; real df0201; real df02001; real df0120; real df0111; real df01101; real df0102; real df01011; real df01002; real df0030; real df0021; real df00201; real df0012; real df00111; real df00102; real df0003; real df00021; real df00012; real df00003; } FunThirdFuncDrv; typedef struct { /* First order derivatives with respect to all 5 variables */ real df1000; real df0100; real df0010; real df0001; real df00001; /* Second order mixed derivatives with respect to all 5 variables */ real df2000; real df1100; real df1010; real df1001; real df10001; real df0200; real df0110; real df0101; real df01001; real df0020; real df0011; real df00101; real df0002; real df00011; real df00002; /* Third order mixed derivatives with respect to all 5 variables */ real df3000; real df2100; real df2010; real df2001; real df20001; real df1200; real df1110; real df1101; real df11001; real df1020; real df1011; real df10101; real df1002; real df10011; real df10002; real df0300; real df0210; real df0201; real df02001; real df0120; real df0111; real df01101; real df0102; real df01011; real df01002; real df0030; real df0021; real df00201; real df0012; real df00111; real df00102; real df0003; real df00021; real df00012; real df00003; /* Fourth order mixed derivatives with respect to all 5 variables */ real df4000; real df3100; real df3010; real df3001; real df30001; real df2200; real df2110; real df2101; real df21001; real df2020; real df2011; real df20101; real df2002; real df20011; real df20002; real df1300; real df1210; real df1201; real df12001; real df1120; real df1111; real df11101; real df1102; real df11011; real df11002; real df1030; real df1021; real df10201; real df1012; real df10111; real df10102; real df1003; real df10021; real df10012; real df10003; real df0400; real df0310; real df0301; real df03001; real df0220; real df0211; real df02101; real df0202; real df02011; real df02002; real df0130; real df0121; real df01201; real df0112; real df01111; real df01102; real df0103; real df01021; real df01012; real df01003; real df0040; real df0031; real df00301; real df0022; real df00211; real df00202; real df0013; real df00121; real df00112; real df00103; real df0004; real df00031; real df00022; real df00013; real df00004; } FunFourthFuncDrv; typedef struct Functional_ Functional; enum FunError { FUN_OK, FUN_UNKNOWN, FUN_CONF_ERROR }; EXTERN_C enum FunError fun_select_by_name(const char *conf_string); extern Functional *selected_func; extern int (*fun_printf)(const char *fmt, ...); extern void (*fun_set_hf_weight)(real w); extern real (*fun_get_hf_weight)(void); extern void (*fun_set_cam_param)(real w, real b); int dft_get_cam_param(real *alpha, real *beta, real *mu); /* FunDensProp structure contains properties of the density that are needed for functional evaluation and possibly other purposes. */ typedef struct FunDensProp_ { real rhoa, rhob; real grada, gradb; /* norms of the density gradient, not squares */ real gradab; /* scalar product of grada and gradb */ /* real current[3] or something may come in the future :-) */ } FunDensProp; /* EnergyFunc: the function returning the energy for given densities and gradients. Note that some functionals(like LYP) depend explicitely on separately alpha and beta densities */ typedef int (*IsGGAFunc)(void); typedef int (*ReadInputFunc)(const char* conf_string); typedef void (*ReportFunc)(void); typedef real (*EnergyFunc)(const FunDensProp* dens_prop); typedef void (*FirstOrderFun)(FunFirstFuncDrv *ds, real factor, const FunDensProp* dns_prp); typedef void (*SecondOrderFun)(FunSecondFuncDrv *ds, real factor, const FunDensProp* dens_prop); typedef void (*ThirdOrderFun)(FunThirdFuncDrv *ds, real factor, const FunDensProp* dens_prop); typedef void (*FourthOrderFun)(FunFourthFuncDrv *ds, real factor, const FunDensProp *dens_prop); struct Functional_ { const char* name; /* descriptive functional name (usually 5 characters) */ IsGGAFunc is_gga; ReadInputFunc read; ReportFunc report; /* Only unrestricted implementations are needed. A benchmark for * a CO molecule with 28 basis function reveals a 4% time difference. * This difference will only decrease for larger systems. */ EnergyFunc func; FirstOrderFun first; SecondOrderFun second; ThirdOrderFun third; FourthOrderFun fourth; }; EXTERN_C void drv1_clear(FunFirstFuncDrv* gga); /* set all components to 0 */ EXTERN_C void drv2_clear(FunSecondFuncDrv* gga); /* set all components to 0 */ EXTERN_C void drv3_clear(FunThirdFuncDrv* gga); /* set all components to 0 */ EXTERN_C void drv4_clear(FunFourthFuncDrv* gga); /* set all components to 0 */ /* The list of functionals */ /* sorted list of generic functionals */ extern Functional BeckeFunctional; extern Functional KTFunctional; extern Functional LB94Functional; extern Functional LYPFunctional; extern Functional OPTXFunctional; extern Functional P86cFunctional; extern Functional PW86xFunctional; extern Functional Pw91xFunctional; extern Functional Pw91cFunctional; extern Functional PW92cFunctional; extern Functional PZ81Functional; extern Functional PbecFunctional; extern Functional PbexFunctional; extern Functional SlaterFunctional; extern Functional VWN3Functional; extern Functional VWN5Functional; extern Functional VWNIFunctional; extern Functional VWN3IFunctional; extern Functional VWNFunctional; extern Functional XAlphaFunctional; /* sorted list of mixed functionals */ extern Functional B3LYPFunctional; extern Functional B3LYPGaussFunctional; extern Functional B3P86Functional; extern Functional B3P86GFunctional; extern Functional B3PW91Functional; extern Functional BHandHFunctional; extern Functional BHandHLYPFunctional; extern Functional BLYPFunctional; extern Functional BP86Functional; extern Functional BPW91Functional; extern Functional Camb3lypFunctional; extern Functional CamFunctional; extern Functional CombineFunctional; extern Functional GGAKeyFunctional; extern Functional HseFunctional; extern Functional KT1Functional; extern Functional KT2Functional; extern Functional KT3Functional; extern Functional LDAFunctional; extern Functional OLYPFunctional; extern Functional PBE0Functional; extern Functional PBEFunctional; extern Functional SVWN3Functional; extern Functional SVWN5Functional; /* the list of the functionals */ extern Functional* available_functionals[]; extern int fun_true(void); extern int fun_false(void); /* fortran (and not only) functional stub routines */ EXTERN_C void dftlistfuncs_(void); EXTERN_C void dftlistfuncs_using_printf_(void); int dft_isgga_(void); int dft_isgga__(void); EXTERN_C void dftreport_(void); EXTERN_C int fun_get_cam_param(real *alpha, real *beta, real *mu); #endif /* _FUNCTIONALS_H_ */
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 :-) */
380 } FunDensProp;
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_ */
real df0001
Definition: functionals.h:134
real df00004
Definition: functionals.h:357
real df0030
Definition: functionals.h:275
int dft_isgga__(void)
Definition: functionals.c:196
real df0010
Definition: functionals.h:133
Functional KT3Functional
Definition: fun-gga.c:110
real(* fun_get_hf_weight)(void)
Definition: functionals.c:109
real rhob
Definition: functionals.h:376
void(* FourthOrderFun)(FunFourthFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: functionals.h:398
void(* FirstOrderFun)(FunFirstFuncDrv *ds, real factor, const FunDensProp *dns_prp)
Definition: functionals.h:390
real df1110
Definition: functionals.h:188
Functional LDAFunctional
Definition: fun-gga.c:92
Definition: functionals.h:363
Functional GGAKeyFunctional
Definition: fun-gga.c:107
real df10002
Definition: functionals.h:196
double ergo_real
Definition: realtype.h:69
real df00001
Definition: functionals.h:228
real df1001
Definition: functionals.h:139
real df0011
Definition: functionals.h:146
Functional SVWN3Functional
Definition: fun-gga.c:95
real df0201
Definition: functionals.h:267
int(* ReadInputFunc)(const char *conf_string)
Definition: functionals.h:387
real df1201
Definition: functionals.h:305
real df10011
Definition: functionals.h:195
real df01001
Definition: functionals.h:174
real df0020
Definition: functionals.h:175
void(* ReportFunc)(void)
Definition: functionals.h:388
real df2001
Definition: functionals.h:185
real df11002
Definition: functionals.h:312
real df01011
Definition: functionals.h:205
real df0300
Definition: functionals.h:265
real df0001
Definition: functionals.h:123
int dft_get_cam_param(real *alpha, real *beta, real *mu)
real df00001
Definition: functionals.h:124
real df0102
Definition: functionals.h:204
real(* EnergyFunc)(const FunDensProp *dens_prop)
Definition: functionals.h:389
enum FunError fun_select_by_name(const char *conf_string)
Definition: functionals.c:114
real df2000
Definition: functionals.h:166
FirstOrderFun first
Definition: functionals.h:410
real df00201
Definition: functionals.h:209
real df0201
Definition: functionals.h:199
real df1200
Definition: functionals.h:255
Functional B3LYPFunctional
Definition: fun-gga.c:96
ThirdOrderFun third
Definition: functionals.h:412
real df00012
Definition: functionals.h:215
Functional KTFunctional
Definition: fun-kt.c:68
Functional * available_functionals[]
Definition: functionals.c:45
real df1210
Definition: functionals.h:304
real df0103
Definition: functionals.h:339
real df1100
Definition: functionals.h:233
Definition: functionals.h:375
real df0020
Definition: functionals.h:145
SecondOrderFun second
Definition: functionals.h:411
real df01111
Definition: functionals.h:337
void(* ThirdOrderFun)(FunThirdFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: functionals.h:396
Functional LB94Functional
Definition: fun-lb94.c:64
real df20011
Definition: functionals.h:301
real df2101
Definition: functionals.h:295
real df0030
Definition: functionals.h:207
real df0301
Definition: functionals.h:325
real df01102
Definition: functionals.h:338
real df01001
Definition: functionals.h:144
real df1003
Definition: functionals.h:319
real df00022
Definition: functionals.h:355
real df1000
Definition: functionals.h:131
real df1010
Definition: functionals.h:234
Functional CamFunctional
Definition: fun-cam.c:107
void dftlistfuncs_(void)
Definition: functionals.c:173
real df10101
Definition: functionals.h:193
Definition: functionals.h:363
Functional VWN3IFunctional
Definition: fun-vwn.c:127
real df00211
Definition: functionals.h:347
real df01001
Definition: functionals.h:240
real df01012
Definition: functionals.h:341
real df02002
Definition: functionals.h:332
real df00003
Definition: functionals.h:284
Functional PbexFunctional
Definition: fun-pbex.c:81
int(* IsGGAFunc)(void)
Definition: functionals.h:386
real df4000
Definition: functionals.h:288
Definition: functionals.h:119
real df0110
Definition: functionals.h:142
real df10001
Definition: functionals.h:170
real df00201
Definition: functionals.h:277
real df01003
Definition: functionals.h:342
real df30001
Definition: functionals.h:292
Functional BHandHFunctional
Definition: fun-gga.c:101
Functional PW92cFunctional
Definition: fun-pw92c.c:131
const char * name
Definition: functionals.h:402
real df0300
Definition: functionals.h:197
real df00101
Definition: functionals.h:177
real df1001
Definition: functionals.h:169
real df0130
Definition: functionals.h:333
real df00013
Definition: functionals.h:356
void drv2_clear(FunSecondFuncDrv *gga)
Definition: functionals.c:137
void dftreport_(void)
dftreport: report the selected functional and its configuration.
Definition: functionals.c:164
int fun_true(void)
Definition: functionals.c:153
real df02101
Definition: functionals.h:329
real df1200
Definition: functionals.h:187
real df2020
Definition: functionals.h:297
real df01101
Definition: functionals.h:203
real df0021
Definition: functionals.h:208
real df1300
Definition: functionals.h:303
real df00001
Definition: functionals.h:135
Functional SlaterFunctional
Definition: fun-slater.c:57
real df10201
Definition: functionals.h:315
real gradab
Definition: functionals.h:378
real df03001
Definition: functionals.h:326
Functional B3P86GFunctional
Definition: fun-gga.c:99
real df1101
Definition: functionals.h:189
real df10111
Definition: functionals.h:317
void drv4_clear(FunFourthFuncDrv *gga)
Definition: functionals.c:148
ergo_real real
Definition: test.cc:46
real df00021
Definition: functionals.h:282
Functional SVWN5Functional
Definition: fun-gga.c:94
Functional BLYPFunctional
Definition: fun-gga.c:103
real df0003
Definition: functionals.h:213
void(* fun_set_cam_param)(real w, real b)
Definition: functionals.c:110
Functional VWNIFunctional
Definition: fun-vwn.c:110
real df3000
Definition: functionals.h:250
real df00101
Definition: functionals.h:147
real df20001
Definition: functionals.h:254
real df01011
Definition: functionals.h:273
real df2100
Definition: functionals.h:183
struct FunDensProp_ FunDensProp
real df10003
Definition: functionals.h:322
EnergyFunc func
Definition: functionals.h:409
real df0100
Definition: functionals.h:161
Functional BP86Functional
Definition: fun-gga.c:104
real df00002
Definition: functionals.h:246
real df10002
Definition: functionals.h:264
real df0002
Definition: functionals.h:148
int(* fun_printf)(const char *fmt,...)
Definition: functionals.c:107
Functional Pw91xFunctional
Definition: fun-pw91x.c:96
real df0111
Definition: functionals.h:270
real df0200
Definition: functionals.h:141
Definition of the main floating-point datatype used; the ergo_real type.
real df00111
Definition: functionals.h:211
real df02011
Definition: functionals.h:331
ReportFunc report
Definition: functionals.h:405
real df1102
Definition: functionals.h:310
real df01021
Definition: functionals.h:340
void(* SecondOrderFun)(FunSecondFuncDrv *ds, real factor, const FunDensProp *dens_prop)
Definition: functionals.h:393
Functional XAlphaFunctional
Definition: fun-gga.c:91
real df0001
Definition: functionals.h:163
real df1012
Definition: functionals.h:316
real df2010
Definition: functionals.h:184
Functional BPW91Functional
Definition: fun-gga.c:105
real df00012
Definition: functionals.h:283
Functional B3P86Functional
Definition: fun-gga.c:98
real df00101
Definition: functionals.h:243
real df0101
Definition: functionals.h:143
real df0013
Definition: functionals.h:349
real df3100
Definition: functionals.h:289
static void
Definition: sparse_matrix.cc:279
real df00102
Definition: functionals.h:212
real df2011
Definition: functionals.h:298
real df0210
Definition: functionals.h:198
real df00102
Definition: functionals.h:280
real df00301
Definition: functionals.h:345
real df1021
Definition: functionals.h:314
Functional VWN3Functional
Definition: fun-vwn.c:68
real grada
Definition: functionals.h:377
real df0100
Definition: functionals.h:132
real df0121
Definition: functionals.h:334
real df0110
Definition: functionals.h:238
real rhoa
Definition: functionals.h:376
real df1001
Definition: functionals.h:235
FourthOrderFun fourth
Definition: functionals.h:413
real df2000
Definition: functionals.h:232
real df21001
Definition: functionals.h:296
Functional PBEFunctional
Definition: fun-gga.c:113
Functional CombineFunctional
Definition: fun-gga.c:106
Functional B3LYPGaussFunctional
Definition: fun-gga.c:97
real df0040
Definition: functionals.h:343
IsGGAFunc is_gga
Definition: functionals.h:403
real df00011
Definition: functionals.h:245
real df0021
Definition: functionals.h:276
real gradb
Definition: functionals.h:377
real df0012
Definition: functionals.h:278
void drv3_clear(FunThirdFuncDrv *gga)
Definition: functionals.c:143
real df1010
Definition: functionals.h:138
real df0202
Definition: functionals.h:330
ReadInputFunc read
Definition: functionals.h:404
real df0002
Definition: functionals.h:244
real df0022
Definition: functionals.h:346
Functional OLYPFunctional
Definition: fun-gga.c:111
real df0120
Definition: functionals.h:269
real df1011
Definition: functionals.h:260
Functional KT1Functional
Definition: fun-gga.c:108
real df0100
Definition: functionals.h:225
real df0001
Definition: functionals.h:227
real df11011
Definition: functionals.h:311
real df0012
Definition: functionals.h:210
real df0031
Definition: functionals.h:344
real df11101
Definition: functionals.h:309
real df1030
Definition: functionals.h:313
real df01201
Definition: functionals.h:335
real df3001
Definition: functionals.h:291
Functional HseFunctional
Definition: fun-cam.c:119
real df00121
Definition: functionals.h:350
real df1111
Definition: functionals.h:308
Functional VWNFunctional
Definition: fun-vwn.c:92
real df3000
Definition: functionals.h:182
real df3010
Definition: functionals.h:290
int fun_false(void)
Definition: functionals.c:154
real df00031
Definition: functionals.h:354
real df00021
Definition: functionals.h:214
real df1000
Definition: functionals.h:160
Functional VWN5Functional
Definition: fun-vwn.c:79
real df2110
Definition: functionals.h:294
real df0003
Definition: functionals.h:281
Functional Pw91cFunctional
Definition: fun-pw91c.c:109
#define EXTERN_C
Definition: functionals.h:59
real df11001
Definition: functionals.h:190
real df1000
Definition: functionals.h:120
Definition: functionals.h:159
real df00002
Definition: functionals.h:180
real df2002
Definition: functionals.h:300
real df0220
Definition: functionals.h:327
void dftlistfuncs_using_printf_(void)
Definition: functionals.c:182
real df10102
Definition: functionals.h:318
real df00112
Definition: functionals.h:351
real df0200
Definition: functionals.h:237
real df1100
Definition: functionals.h:137
real df0211
Definition: functionals.h:328
real df2100
Definition: functionals.h:251
real df02001
Definition: functionals.h:200
real df2000
Definition: functionals.h:136
real df20001
Definition: functionals.h:186
real df00103
Definition: functionals.h:352
real df0100
Definition: functionals.h:121
real df1002
Definition: functionals.h:194
Functional BHandHLYPFunctional
Definition: fun-gga.c:102
real df0010
Definition: functionals.h:226
Functional BeckeFunctional
Definition: fun-becke.c:62
real df2010
Definition: functionals.h:252
real df20101
Definition: functionals.h:299
real df0010
Definition: functionals.h:162
real df00002
Definition: functionals.h:150
real df12001
Definition: functionals.h:306
real df1020
Definition: functionals.h:259
real df1011
Definition: functionals.h:192
Functional P86cFunctional
Definition: fun-p86c.c:89
real df10101
Definition: functionals.h:261
real df1020
Definition: functionals.h:191
real df00011
Definition: functionals.h:149
Functional B3PW91Functional
Definition: fun-gga.c:100
Functional PW86xFunctional
Definition: fun-pw86x.c:50
void(* fun_set_hf_weight)(real w)
Definition: functionals.c:108
real df2200
Definition: functionals.h:293
real df2001
Definition: functionals.h:253
Functional PBE0Functional
Definition: fun-gga.c:112
real df10012
Definition: functionals.h:321
real df1002
Definition: functionals.h:262
real df0101
Definition: functionals.h:239
real df00001
Definition: functionals.h:164
real df0004
Definition: functionals.h:353
real df0210
Definition: functionals.h:266
real df01002
Definition: functionals.h:274
real df0011
Definition: functionals.h:176
int fun_get_cam_param(real *alpha, real *beta, real *mu)
Definition: fun-cam.c:1367
real df1010
Definition: functionals.h:168
Definition: functionals.h:363
Functional * selected_func
Definition: functionals.c:106
real df10001
Definition: functionals.h:236
real df0011
Definition: functionals.h:242
real df0200
Definition: functionals.h:171
real df00011
Definition: functionals.h:179
real df0310
Definition: functionals.h:324
real df1110
Definition: functionals.h:256
real df1000
Definition: functionals.h:224
int dft_isgga_(void)
Definition: functionals.c:192
real df0101
Definition: functionals.h:173
Functional PbecFunctional
Definition: fun-pbec.c:119
Definition: functionals.h:401
real df10021
Definition: functionals.h:320
real df0120
Definition: functionals.h:201
void drv1_clear(FunFirstFuncDrv *gga)
Definition: functionals.c:131
Functional KT2Functional
Definition: fun-gga.c:109
real df01101
Definition: functionals.h:271
real df0010
Definition: functionals.h:122
real df0110
Definition: functionals.h:172
real df1100
Definition: functionals.h:167
real df01002
Definition: functionals.h:206
real df0002
Definition: functionals.h:178
real df20002
Definition: functionals.h:302
Functional LYPFunctional
Definition: fun-lyp.c:53
real df0112
Definition: functionals.h:336
real df1101
Definition: functionals.h:257
real df00003
Definition: functionals.h:216
Definition: functionals.h:130
Definition: functionals.h:220
real df10011
Definition: functionals.h:263
real df0111
Definition: functionals.h:202
real df02001
Definition: functionals.h:268
Functional PZ81Functional
Definition: fun-pz81.c:49
Functional Camb3lypFunctional
Definition: fun-cam.c:95
real df10001
Definition: functionals.h:140
real df0020
Definition: functionals.h:241
real df0400
Definition: functionals.h:323
real df00202
Definition: functionals.h:348
FunError
Definition: functionals.h:363
real df0102
Definition: functionals.h:272
real df00111
Definition: functionals.h:279
real df11001
Definition: functionals.h:258
Functional OPTXFunctional
Definition: fun-optx.c:60
real df1120
Definition: functionals.h:307