ergo
integrals_2el.h
Go to the documentation of this file.
1 /* Ergo, version 3.3, a program for linear scaling electronic structure
2  * calculations.
3  * Copyright (C) 2013 Elias Rudberg, Emanuel H. Rubensson, and Pawel Salek.
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  *
18  * Primary academic reference:
19  * Kohn−Sham Density Functional Theory Electronic Structure Calculations
20  * with Linearly Scaling Computational Time and Memory Usage,
21  * Elias Rudberg, Emanuel H. Rubensson, and Pawel Salek,
22  * J. Chem. Theory Comput. 7, 340 (2011),
23  * <http://dx.doi.org/10.1021/ct100611z>
24  *
25  * For further information about Ergo, see <http://www.ergoscf.org>.
26  */
27 
28 #ifndef INTEGRALS_2EL_HEADER
29 #define INTEGRALS_2EL_HEADER
30 
31 #include "basisinfo.h"
32 
33 
34 namespace JK {
35 
36 struct Params
37 {
44  int use_fmm;
55 
56  Params() : use_naive_fockmatrix_construction(0),
57  threshold_J(1e-12),
58  threshold_K(1e-12),
59  multipole_threshold_factor(1),
60  use_densfit_for_J(0),
61  use_differential_density(0),
62  use_fmm(1),
63  fmm_box_size(5.0),
64  fmm_no_of_branches(0),
65  fmm_branch_splitter_extent_1(0),
66  fmm_branch_splitter_extent_2(0),
67  fmm_branch_splitter_extent_3(0),
68  fmm_branch_splitter_extent_4(0),
69  fmm_branch_splitter_extent_5(0),
70  exchange_box_size(5.0),
71  noOfThreads_J(1),
72  noOfThreads_K(1)
73  {}
74 
75 };
76 
77 
78 
79 }
80 
81 
82 #if 0
83 
84 typedef struct
85 {
86  int shell_idx_1;
87  int shell_idx_2;
88  int noOfExponentPairs;
89  int exponentPairIndex;
90 } shell_pair_struct;
91 
92 
93 typedef struct
94 {
95  int idx_1;
96  int idx_2;
97  int productOrgIdx;
98  ergo_real exponent_1;
99  ergo_real exponent_2;
100  ergo_real coeff_1;
101  ergo_real coeff_2;
102  ergo_real coeff_12, exponent_12;
103  ergo_real sizeOfProduct;
104  ergo_real centerCoords_1[3];
105  ergo_real centerCoords_2[3];
106  ergo_real centerCoords_12[3];
107  int n1max;
108  int n2max;
109 } exponent_pair_struct;
110 
111 #endif
112 
113 
114 #endif
ergo_real fmm_branch_splitter_extent_5
Definition: integrals_2el.h:51
double ergo_real
Definition: realtype.h:53
ergo_real exchange_box_size
Definition: integrals_2el.h:52
int use_naive_fockmatrix_construction
Definition: integrals_2el.h:38
Definition: integrals_2el.h:36
ergo_real multipole_threshold_factor
Definition: integrals_2el.h:41
int use_differential_density
Definition: integrals_2el.h:43
int fmm_no_of_branches
Definition: integrals_2el.h:46
ergo_real fmm_box_size
Definition: integrals_2el.h:45
Params()
Definition: integrals_2el.h:56
ergo_real fmm_branch_splitter_extent_2
Definition: integrals_2el.h:48
ergo_real threshold_J
Definition: integrals_2el.h:39
int noOfThreads_J
Definition: integrals_2el.h:53
int use_fmm
Definition: integrals_2el.h:44
ergo_real threshold_K
Definition: integrals_2el.h:40
Definition: integral_info.h:115
int noOfThreads_K
Definition: integrals_2el.h:54
int use_densfit_for_J
Definition: integrals_2el.h:42
ergo_real fmm_branch_splitter_extent_1
Definition: integrals_2el.h:47
ergo_real fmm_branch_splitter_extent_4
Definition: integrals_2el.h:50
ergo_real fmm_branch_splitter_extent_3
Definition: integrals_2el.h:49