ergo
|
00001 /* Ergo, version 3.2, a program for linear scaling electronic structure 00002 * calculations. 00003 * Copyright (C) 2012 Elias Rudberg, Emanuel H. Rubensson, and Pawel Salek. 00004 * 00005 * This program is free software: you can redistribute it and/or modify 00006 * it under the terms of the GNU General Public License as published by 00007 * the Free Software Foundation, either version 3 of the License, or 00008 * (at your option) any later version. 00009 * 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 * GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License 00016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00017 * 00018 * Primary academic reference: 00019 * KohnâSham Density Functional Theory Electronic Structure Calculations 00020 * with Linearly Scaling Computational Time and Memory Usage, 00021 * Elias Rudberg, Emanuel H. Rubensson, and Pawel Salek, 00022 * J. Chem. Theory Comput. 7, 340 (2011), 00023 * <http://dx.doi.org/10.1021/ct100611z> 00024 * 00025 * For further information about Ergo, see <http://www.ergoscf.org>. 00026 */ 00027 00028 #ifndef INTEGRALS_2EL_HEADER 00029 #define INTEGRALS_2EL_HEADER 00030 00031 #include "basisinfo.h" 00032 00033 00034 namespace JK { 00035 00036 struct Params 00037 { 00038 int use_naive_fockmatrix_construction; 00039 ergo_real threshold_J; 00040 ergo_real threshold_K; 00041 ergo_real multipole_threshold_factor; 00042 int use_densfit_for_J; 00043 int use_differential_density; 00044 int use_fmm; 00045 ergo_real fmm_box_size; 00046 int fmm_no_of_branches; 00047 ergo_real fmm_branch_splitter_extent_1; 00048 ergo_real fmm_branch_splitter_extent_2; 00049 ergo_real fmm_branch_splitter_extent_3; 00050 ergo_real fmm_branch_splitter_extent_4; 00051 ergo_real fmm_branch_splitter_extent_5; 00052 ergo_real exchange_box_size; 00053 int noOfThreads_J; 00054 int noOfThreads_K; 00055 00056 Params() : use_naive_fockmatrix_construction(0), 00057 threshold_J(1e-12), 00058 threshold_K(1e-12), 00059 multipole_threshold_factor(1), 00060 use_densfit_for_J(0), 00061 use_differential_density(0), 00062 use_fmm(1), 00063 fmm_box_size(5.0), 00064 fmm_no_of_branches(0), 00065 fmm_branch_splitter_extent_1(0), 00066 fmm_branch_splitter_extent_2(0), 00067 fmm_branch_splitter_extent_3(0), 00068 fmm_branch_splitter_extent_4(0), 00069 fmm_branch_splitter_extent_5(0), 00070 exchange_box_size(5.0), 00071 noOfThreads_J(1), 00072 noOfThreads_K(1) 00073 {} 00074 00075 }; 00076 00077 00078 00079 } 00080 00081 00082 #if 0 00083 00084 typedef struct 00085 { 00086 int shell_idx_1; 00087 int shell_idx_2; 00088 int noOfExponentPairs; 00089 int exponentPairIndex; 00090 } shell_pair_struct; 00091 00092 00093 typedef struct 00094 { 00095 int idx_1; 00096 int idx_2; 00097 int productOrgIdx; 00098 ergo_real exponent_1; 00099 ergo_real exponent_2; 00100 ergo_real coeff_1; 00101 ergo_real coeff_2; 00102 ergo_real coeff_12, exponent_12; 00103 ergo_real sizeOfProduct; 00104 ergo_real centerCoords_1[3]; 00105 ergo_real centerCoords_2[3]; 00106 ergo_real centerCoords_12[3]; 00107 int n1max; 00108 int n2max; 00109 } exponent_pair_struct; 00110 00111 #endif 00112 00113 00114 #endif