ERKALE
ERKALE - DFT from Hel
 All Classes Functions Variables Friends Pages
dftfuncs.h
1 /*
2  * This source code is part of
3  *
4  * E R K A L E
5  * -
6  * DFT from Hel
7  *
8  * Written by Susi Lehtola, 2010-2011
9  * Copyright (c) 2010-2011, Susi Lehtola
10  *
11  * This program is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU General Public License
13  * as published by the Free Software Foundation; either version 2
14  * of the License, or (at your option) any later version.
15  */
16 
17 #ifndef ERKALE_DFTFUNCS
18 #define ERKALE_DFTFUNCS
19 
20 #include <string>
21 
23 typedef struct {
25  std::string name;
27  int func_id;
28 } func_t;
29 
31 std::string get_keyword(int func_id);
32 
34 int find_func(std::string name);
35 
37 void parse_xc_func(int & x_func, int & c_func, const std::string & xc);
38 
40 void print_info(int x_func, int c_func);
42 void print_info(int func_id);
43 
45 bool is_exchange(int func_id);
47 bool is_correlation(int func_id);
49 bool is_exchange_correlation(int func_id);
51 bool is_kinetic(int func_id);
52 
54 void is_gga_mgga(int func_id, bool & gga, bool & mgga);
55 
57 double exact_exchange(int func_id);
59 bool is_range_separated(int func_id, bool check=true);
61 void range_separation(int func_id, double & omega, double & alpha, double & beta, bool check=true);
62 
64 bool needs_VV10(int func_id, double & b, double & C);
65 
67 bool gradient_needed(int func);
69 bool laplacian_needed(int func);
70 
72 bool has_exc(int func);
73 
74 #endif
Struct for a functional.
Definition: dftfuncs.h:23
int func_id
Number of functional.
Definition: dftfuncs.h:27
std::string name
Name of functional.
Definition: dftfuncs.h:25