integral_matrix_wrappers.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 INTEGRAL_MATRIX_WRAPPERS_HEADER
00029 #define INTEGRAL_MATRIX_WRAPPERS_HEADER
00030 
00031 #include "basisinfo.h"
00032 #include "matrix_typedefs.h"
00033 #include "integrals_2el.h"
00034 
00035 
00036 int
00037 compute_V_sparse(const BasisInfoStruct& basisInfo,
00038                  const IntegralInfo& integralInfo,
00039                  const Molecule& molecule,
00040                  ergo_real threshold,
00041                  ergo_real boxSize,
00042                  symmMatrix & V,
00043                  std::vector<int> const & permutationHML);
00044 
00045 
00046 int
00047 compute_overlap_matrix_sparse(const BasisInfoStruct& basisInfo,
00048                               symmMatrix & S_symm,
00049                               std::vector<int> const & permutationHML);
00050 
00051 
00052 int
00053 compute_operator_matrix_sparse_symm(const BasisInfoStruct& basisInfo,
00054                                     int pow_x,
00055                                     int pow_y,
00056                                     int pow_z,
00057                                     symmMatrix & A_symm,
00058                                     std::vector<int> const & permutationHML);
00059 
00060 
00061 int
00062 compute_J_by_boxes_sparse(const BasisInfoStruct& basisInfo,
00063                           const IntegralInfo& integralInfo, 
00064                           const JK::Params& J_K_params,
00065                           symmMatrix & J,
00066                           const symmMatrix & densityMatrix_sparse,
00067                           std::vector<int> const & permutationHML);
00068 
00069 
00070 int
00071 compute_K_by_boxes_sparse(const BasisInfoStruct& basisInfo,
00072                           const IntegralInfo& integralInfo, 
00073                           const JK::ExchWeights & CAM_params,
00074                           const JK::Params& J_K_params,
00075                           symmMatrix & K,
00076                           symmMatrix & densityMatrix_sparse,
00077                           std::vector<int> const & permutationHML,
00078                           std::vector<int> const & inversePermutationHML);
00079 
00080 int
00081 compute_K_by_boxes_sparse_nosymm(const BasisInfoStruct& basisInfo,
00082                                  const IntegralInfo& integralInfo, 
00083                                  const JK::ExchWeights & CAM_params,
00084                                  const JK::Params& J_K_params,
00085                                  normalMatrix & K,
00086                                  normalMatrix & densityMatrix_sparse,
00087                                  std::vector<int> const & permutationHML,
00088                                  std::vector<int> const & inversePermutationHML);
00089 
00090 
00091 #endif

Generated on Wed Nov 21 09:32:12 2012 for ergo by  doxygen 1.4.7