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