1 /*
2 Copyright (C) 2014 Susi Lehtola
3
4 This Source Code Form is subject to the terms of the Mozilla Public
5 License, v. 2.0. If a copy of the MPL was not distributed with this
6 file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 */
8
9 #include "util.h"
10
11 #define XC_HYB_MGGA_XC_TPSSH 457 /* TPSS hybrid */
12 #define XC_HYB_MGGA_XC_REVTPSSH 458 /* revTPSS hybrid */
13
14 static void
hyb_mgga_xc_tpssh_init(xc_func_type * p)15 hyb_mgga_xc_tpssh_init(xc_func_type *p)
16 {
17 static int funcs_id [2] = {XC_MGGA_X_TPSS, XC_MGGA_C_TPSS};
18 static double funcs_coef[2] = {0.9, 1.0};
19
20 xc_mix_init(p, 2, funcs_id, funcs_coef);
21 p->cam_alpha = 0.10;
22 }
23
24
25 #ifdef __cplusplus
26 extern "C"
27 #endif
28 const xc_func_info_type xc_func_info_hyb_mgga_xc_tpssh = {
29 XC_HYB_MGGA_XC_TPSSH,
30 XC_EXCHANGE_CORRELATION,
31 "TPSSh",
32 XC_FAMILY_HYB_MGGA,
33 {&xc_ref_Staroverov2003_12129, NULL, NULL, NULL, NULL},
34 XC_FLAGS_3D | XC_FLAGS_I_HAVE_ALL,
35 1e-32,
36 {0, NULL, NULL, NULL, NULL},
37 hyb_mgga_xc_tpssh_init,
38 NULL, NULL, NULL, NULL /* this is taken care of by the generic routine */
39 };
40
41
42 static void
hyb_mgga_xc_revtpssh_init(xc_func_type * p)43 hyb_mgga_xc_revtpssh_init(xc_func_type *p)
44 {
45 static int funcs_id [2] = {XC_MGGA_X_REVTPSS, XC_MGGA_C_REVTPSS};
46 static double funcs_coef[2] = {0.9, 1.0};
47
48 xc_mix_init(p, 2, funcs_id, funcs_coef);
49 p->cam_alpha = 0.10;
50 }
51
52
53 #ifdef __cplusplus
54 extern "C"
55 #endif
56 const xc_func_info_type xc_func_info_hyb_mgga_xc_revtpssh = {
57 XC_HYB_MGGA_XC_REVTPSSH,
58 XC_EXCHANGE_CORRELATION,
59 "revTPSSh",
60 XC_FAMILY_HYB_MGGA,
61 {&xc_ref_Csonka2010_3688, NULL, NULL, NULL, NULL},
62 XC_FLAGS_3D | XC_FLAGS_I_HAVE_ALL,
63 1e-32,
64 {0, NULL, NULL, NULL, NULL},
65 hyb_mgga_xc_revtpssh_init,
66 NULL, NULL, NULL, NULL /* this is taken care of by the generic routine */
67 };
68