integrals_2el.h

Go to the documentation of this file.
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

Generated on Mon Sep 17 14:30:39 2012 for ergo by  doxygen 1.4.7