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,
90template <
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)
121template <
typename DistributionSpecStructType>
124 int i = compare_distrs<DistributionSpecStructType>(&p1, &p2);
128template <
typename DistributionSpecStructType>
131 std::sort(&list[0], &list[n], compare_distrs_bool<DistributionSpecStructType>);
Code for setting up basis functions starting from shells.
Contains coefficients needed for quick integral evaluation.
Definition integral_info.h:94
bool compare_distrs_bool(const DistributionSpecStructType &p1, const DistributionSpecStructType &p2)
Definition integrals_1el_potential_prep.h:123
int compare_distrs(const void *p1, const void *p2)
Definition integrals_1el_potential_prep.h:92
int sort_distr_list(DistributionSpecStructType *list, int n)
Definition integrals_1el_potential_prep.h:130
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
double ergo_real
Definition realtype.h:69
Definition integrals_1el_potential_prep.h:44
int basisFuncIdx2
Definition integrals_1el_potential_prep.h:47
DistributionSpecStruct distr
Definition integrals_1el_potential_prep.h:45
int basisFuncIdx1
Definition integrals_1el_potential_prep.h:46
Definition basisinfo.h:50
Definition integrals_1el_potential_prep.h:62
maxMomentVectorNormStruct maxMomentVectorNormForAll
Definition integrals_1el_potential_prep.h:64
ergo_real boundingCubeCenterCoords[3]
Definition integrals_1el_potential_prep.h:65
ergo_real boundingCubeWidth
Definition integrals_1el_potential_prep.h:66
ergo_real maxExtentForAll
Definition integrals_1el_potential_prep.h:63
Definition integrals_1el_potential_prep.h:69
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
size_t get_size() const
Function needed for Chunks and Tasks usage.
Definition integrals_1el_potential_prep.cc:92
std::vector< DistributionSpecStructWithIndexes2 > distrList
Definition integrals_1el_potential_prep.h:70
std::vector< maxMomentVectorNormStruct > maxMomentVectorNormList
Definition integrals_1el_potential_prep.h:73
std::vector< group_struct > groupList
Definition integrals_1el_potential_prep.h:72
SetOfDistrsForV()
Definition integrals_1el_potential_prep.cc:42
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
SetOfDistrsForVInfo info
Definition integrals_1el_potential_prep.h:74
Definition integrals_1el_potential_prep.h:50
int maxDegree
Definition integrals_1el_potential_prep.h:54
int count
Definition integrals_1el_potential_prep.h:52
int maxNoOfMoments
Definition integrals_1el_potential_prep.h:53
ergo_real maxExtent
Definition integrals_1el_potential_prep.h:55
int startIndex
Definition integrals_1el_potential_prep.h:51
Definition integrals_1el_potential_prep.h:58
ergo_real maxMomentVectorNormList[MAX_MULTIPOLE_DEGREE_BASIC+1]
Definition integrals_1el_potential_prep.h:59