00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00039 #ifndef INTEGRAL_MATRIX_WRAPPERS_HEADER
00040 #define INTEGRAL_MATRIX_WRAPPERS_HEADER
00041
00042 #include "basisinfo.h"
00043 #include "matrix_typedefs.h"
00044 #include "integrals_2el.h"
00045
00046
00047 int
00048 compute_V_sparse(const BasisInfoStruct& basisInfo,
00049 const IntegralInfo& integralInfo,
00050 const Molecule& molecule,
00051 ergo_real threshold,
00052 ergo_real boxSize,
00053 symmMatrix & V,
00054 std::vector<int> const & permutationHML,
00055 ergo_real & result_nuclearRepulsionEnergy);
00056
00057 int
00058 compute_V_sparse_hierarchical(const BasisInfoStruct& basisInfo,
00059 const IntegralInfo& integralInfo,
00060 const Molecule& molecule,
00061 ergo_real threshold,
00062 ergo_real boxSize,
00063 symmMatrix & V,
00064 std::vector<int> const & permutationHML,
00065 ergo_real & result_nuclearRepulsionEnergy);
00066
00067
00068 int
00069 compute_gradient_of_nucl_and_trDV(const BasisInfoStruct& basisInfo,
00070 const IntegralInfo& integralInfo,
00071 const Molecule& molecule,
00072 ergo_real threshold,
00073 ergo_real boxSize,
00074 const symmMatrix & densityMatrix_sparse,
00075 std::vector<int> const & permutationHML,
00076 ergo_real* result_gradient_list);
00077
00078
00079 ergo_real
00080 get_electron_nuclear_attraction_energy(const IntegralInfo& integralInfo,
00081 const Molecule& molecule,
00082 const BasisInfoStruct& basisInfo,
00083 const symmMatrix & D,
00084 ergo_real threshold_integrals_1el,
00085 mat::SizesAndBlocks const & matrix_size_block_info,
00086 std::vector<int> const & permutationHML);
00087
00088
00089 int
00090 compute_T_sparse_linear(const BasisInfoStruct& basisInfo,
00091 const IntegralInfo& integralInfo,
00092 ergo_real threshold,
00093 ergo_real boxSize,
00094 symmMatrix & T,
00095 std::vector<int> const & permutationHML);
00096
00097
00098 int
00099 compute_overlap_matrix_sparse(const BasisInfoStruct& basisInfo,
00100 symmMatrix & S_symm,
00101 std::vector<int> const & permutationHML);
00102
00103
00107 int
00108 compute_R_matrix_sparse(const BasisInfoStruct & basisInfo_A,
00109 const BasisInfoStruct & basisInfo_B,
00110 normalMatrix & result_R,
00111 ergo_real sparse_threshold,
00112 std::vector<int> const & matrixPermutationVec_A,
00113 std::vector<int> const & matrixPermutationVec_B);
00114
00115
00116 int
00117 compute_operator_matrix_sparse_symm(const BasisInfoStruct& basisInfo,
00118 int pow_x,
00119 int pow_y,
00120 int pow_z,
00121 symmMatrix & A_symm,
00122 std::vector<int> const & permutationHML);
00123
00124
00125 int
00126 compute_J_by_boxes_sparse(const BasisInfoStruct& basisInfo,
00127 const IntegralInfo& integralInfo,
00128 const JK::Params& J_K_params,
00129 symmMatrix & J,
00130 const symmMatrix & densityMatrix_sparse,
00131 std::vector<int> const & permutationHML);
00132
00133
00134 int
00135 compute_K_by_boxes_sparse(const BasisInfoStruct& basisInfo,
00136 const IntegralInfo& integralInfo,
00137 const JK::ExchWeights & CAM_params,
00138 const JK::Params& J_K_params,
00139 symmMatrix & K,
00140 symmMatrix & densityMatrix_sparse,
00141 std::vector<int> const & permutationHML,
00142 std::vector<int> const & inversePermutationHML);
00143
00144 int
00145 compute_K_by_boxes_sparse_nosymm(const BasisInfoStruct& basisInfo,
00146 const IntegralInfo& integralInfo,
00147 const JK::ExchWeights & CAM_params,
00148 const JK::Params& J_K_params,
00149 normalMatrix & K,
00150 normalMatrix & densityMatrix_sparse,
00151 std::vector<int> const & permutationHML,
00152 std::vector<int> const & inversePermutationHML);
00153
00154
00155 #endif