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 /** @file integrals_2el.h
31 
32     @brief Parameters related to integral evaluation.
33 
34     @author: Elias Rudberg <em>responsible</em>
35 */
36 
37 #ifndef INTEGRALS_2EL_HEADER
38 #define INTEGRALS_2EL_HEADER
39 
40 #include "basisinfo.h"
41 
42 namespace JK {
43 
44 struct Params
45 {
46   int use_naive_fockmat_constr;
47   ergo_real threshold_J;
48   ergo_real threshold_K;
49   ergo_real multipole_threshold_factor;
50   int use_differential_density;
51   int use_fmm;
52   ergo_real fmm_box_size;
53   int fmm_no_of_branches;
54   ergo_real fmm_branch_splitter_extent_1;
55   ergo_real fmm_branch_splitter_extent_2;
56   ergo_real fmm_branch_splitter_extent_3;
57   ergo_real fmm_branch_splitter_extent_4;
58   ergo_real fmm_branch_splitter_extent_5;
59   ergo_real exchange_box_size;
60   int noOfThreads_J;
61   int noOfThreads_K;
62 
ParamsParams63   Params() : use_naive_fockmat_constr(0),
64        threshold_J(1e-12),
65        threshold_K(1e-12),
66        multipole_threshold_factor(1),
67        use_differential_density(0),
68        use_fmm(1),
69        fmm_box_size(5.0),
70        fmm_no_of_branches(0),
71        fmm_branch_splitter_extent_1(0),
72        fmm_branch_splitter_extent_2(0),
73        fmm_branch_splitter_extent_3(0),
74        fmm_branch_splitter_extent_4(0),
75        fmm_branch_splitter_extent_5(0),
76        exchange_box_size(5.0),
77        noOfThreads_J(1),
78        noOfThreads_K(1)
79   {}
80 
81 };
82 
83 }
84 
85 #endif
86