Go to the documentation of this file.
38 #ifndef INTEGRALS_1EL_POTENTIAL_PREP_HEADER
39 #define INTEGRALS_1EL_POTENTIAL_PREP_HEADER
70 std::vector<DistributionSpecStructWithIndexes2>
distrList;
78 void write_to_buffer (
char * dataBuffer,
size_t const bufferSize )
const;
86 const std::vector<DistributionSpecStructWithIndexes2> & inputList,
90 template <
typename DistributionSpecStructType>
93 DistributionSpecStructType* d1 = (DistributionSpecStructType*)p1;
94 DistributionSpecStructType* d2 = (DistributionSpecStructType*)p2;
97 const ergo_real tolernance_exponent = 1e-11;
98 ergo_real dx = d1->distr.centerCoords[0] - d2->distr.centerCoords[0];
99 if(dx > tolernance_dist)
101 if(dx < -tolernance_dist)
103 ergo_real dy = d1->distr.centerCoords[1] - d2->distr.centerCoords[1];
104 if(dy > tolernance_dist)
106 if(dy < -tolernance_dist)
108 ergo_real dz = d1->distr.centerCoords[2] - d2->distr.centerCoords[2];
109 if(dz > tolernance_dist)
111 if(dz < -tolernance_dist)
113 ergo_real de = d1->distr.exponent - d2->distr.exponent;
114 if(de > tolernance_exponent)
116 if(de < -tolernance_exponent)
121 template <
typename DistributionSpecStructType>
124 int i = compare_distrs<DistributionSpecStructType>(&p1, &p2);
128 template <
typename DistributionSpecStructType>
131 std::sort(&list[0], &list[n], compare_distrs_bool<DistributionSpecStructType>);
Treal template_blas_sqrt(Treal x)
Code for computing multipole moments, and multipole interaction and translation matrices.
Definition: basisinfo.h:50
ergo_real maxMomentVectorNormList[MAX_MULTIPOLE_DEGREE_BASIC+1]
Definition: integrals_1el_potential_prep.h:59
void organize_distrs_for_V(const IntegralInfo &integralInfo, SetOfDistrsForV &setOfDistrsForV, const std::vector< DistributionSpecStructWithIndexes2 > &inputList, ergo_real threshold, ergo_real maxCharge)
Definition: integrals_1el_potential_prep.cc:141
#define MAX_MULTIPOLE_DEGREE_BASIC
Definition: multipole_prep.h:48
Code for 1-electron integrals, preparatory work for computation of electron-nuclear potential energy ...
int maxDegree
Definition: integrals_1el_potential_prep.h:54
int basisFuncIdx2
Definition: integrals_1el_potential_prep.h:47
double ergo_real
Definition: realtype.h:69
Definition: integrals_1el_potential_prep.h:50
ergo_real boundingCubeWidth
Definition: integrals_1el_potential_prep.h:66
ergo_real maxExtent
Definition: integrals_1el_potential_prep.h:55
size_t get_size() const
Function needed for Chunks and Tasks usage.
Definition: integrals_1el_potential_prep.cc:92
Treal template_blas_fabs(Treal x)
ergo_real boundingCubeCenterCoords[3]
Definition: integrals_1el_potential_prep.h:65
ergo_real maxExtentForAll
Definition: integrals_1el_potential_prep.h:63
int maxNoOfMoments
Definition: integrals_1el_potential_prep.h:53
Contains coefficients needed for quick integral evaluation.
Definition: integral_info.h:94
Definition: integrals_1el_potential_prep.h:62
int sort_distr_list(DistributionSpecStructType *list, int n)
Definition: integrals_1el_potential_prep.h:130
Definition: integrals_1el_potential_prep.h:58
void assign_from_buffer(char const *dataBuffer, size_t const bufferSize)
Function needed for Chunks and Tasks usage.
Definition: integrals_1el_potential_prep.cc:112
std::vector< multipole_struct_small > multipoleList
Definition: integrals_1el_potential_prep.h:71
void write_to_buffer(char *dataBuffer, size_t const bufferSize) const
Function needed for Chunks and Tasks usage.
Definition: integrals_1el_potential_prep.cc:60
Treal template_blas_log(Treal x)
DistributionSpecStruct distr
Definition: integrals_1el_potential_prep.h:45
static void copy_data_and_advance_src_ptr(char *destPtr, const char **srcPtr, size_t nBytes)
Definition: integrals_1el_potential_prep.cc:104
int noOfMoments
Definition: multipole_prep.h:65
Code for setting up basis functions starting from shells.
bool compare_distrs_bool(const DistributionSpecStructType &p1, const DistributionSpecStructType &p2)
Definition: integrals_1el_potential_prep.h:123
int compute_multipole_moments(const IntegralInfo &integralInfo, const DistributionSpecStruct *distr, multipole_struct_small *result)
Definition: multipole.cc:49
int degree
Definition: multipole_prep.h:64
Definition: multipole_prep.h:62
std::vector< group_struct > groupList
Definition: integrals_1el_potential_prep.h:72
maxMomentVectorNormStruct maxMomentVectorNormForAll
Definition: integrals_1el_potential_prep.h:64
Definition: integrals_1el_potential_prep.h:44
static void copy_data_and_advance_dest_ptr(char **destPtr, const char *srcPtr, size_t nBytes)
Definition: integrals_1el_potential_prep.cc:52
std::vector< DistributionSpecStructWithIndexes2 > distrList
Definition: integrals_1el_potential_prep.h:70
ergo_real momentList[MAX_NO_OF_MOMENTS_PER_MULTIPOLE_BASIC]
Definition: multipole_prep.h:66
SetOfDistrsForVInfo info
Definition: integrals_1el_potential_prep.h:74
int startIndex
Definition: integrals_1el_potential_prep.h:51
int compare_distrs(const void *p1, const void *p2)
Definition: integrals_1el_potential_prep.h:92
std::vector< maxMomentVectorNormStruct > maxMomentVectorNormList
Definition: integrals_1el_potential_prep.h:73
void organize_distrs_for_V(const IntegralInfo &integralInfo, SetOfDistrsForV &setOfDistrsForV, const std::vector< DistributionSpecStructWithIndexes2 > &inputList, ergo_real threshold, ergo_real maxCharge)
Definition: integrals_1el_potential_prep.cc:141
SetOfDistrsForV()
Definition: integrals_1el_potential_prep.cc:42
int count
Definition: integrals_1el_potential_prep.h:52
int basisFuncIdx1
Definition: integrals_1el_potential_prep.h:46
Definition: integrals_1el_potential_prep.h:69