Go to the documentation of this file.
40 #ifndef ORGANIZE_DISTRS_HEADER
41 #define ORGANIZE_DISTRS_HEADER
93 #ifndef BASIS_FUNC_POLY_MAX_DEGREE
94 #error The constant BASIS_FUNC_POLY_MAX_DEGREE must be defined.
96 #if BASIS_FUNC_POLY_MAX_DEGREE<6
97 #define MAX_NO_OF_BASIS_FUNC_PAIRS_PER_BATCH 1000
99 #define MAX_NO_OF_BASIS_FUNC_PAIRS_PER_BATCH 10000
142 void writeToBuffer(
char* dataBuffer,
size_t const bufferSize)
const;
Treal template_blas_pow(Treal x, Treal y)
int index_2
Definition: organize_distrs.h:84
Treal template_blas_sqrt(Treal x)
Code for computing multipole moments, and multipole interaction and translation matrices.
int j
Definition: simple_sparse_mat.h:44
std::vector< int > basisFuncListForBatchs
Definition: organize_distrs.h:127
Constants for the number pi and some related numbers like sqrt(pi).
Definition: basisinfo.h:50
int pairIndex
Definition: organize_distrs.h:89
int monomialIndex
Definition: organize_distrs.h:67
Definition: organize_distrs.h:121
#define MAX_MULTIPOLE_DEGREE_BASIC
Definition: multipole_prep.h:48
std::vector< minimal_distr_struct > minimalDistrList
Definition: organize_distrs.h:122
ergo_real dmatElement
Definition: organize_distrs.h:90
std::vector< int > basisFuncList
Definition: organize_distrs.h:129
#define LOG_CAT_ERROR
Definition: output.h:47
ergo_real centerCoords[3]
x0, y0, z0
Definition: basisinfo.h:54
double ergo_real
Definition: realtype.h:69
int get_hermite_conversion_matrix_right_sparse(int nmax, ergo_real a, i_j_val_struct *result) const
Definition: integral_info.cc:281
std::vector< batch_struct > batchList
Definition: organize_distrs.h:125
void writeToBuffer(char *dataBuffer, size_t const bufferSize) const
Definition: organize_distrs.cc:58
Definition: organize_distrs.h:51
int spmat_multiply_matrices(const i_j_val_struct *A, int nnzA, const i_j_val_struct *B, int nnzB, i_j_val_struct *C, int M, int N)
Definition: simple_sparse_mat.cc:81
void assignFromBuffer(char const *dataBuffer, size_t const bufferSize)
Definition: organize_distrs.cc:94
ergo_real maxAbsDmatElementGroup
Definition: organize_distrs.h:60
ergo_real maxExtentGroup
Definition: organize_distrs.h:58
ergo_real max_CS_factor
Definition: organize_distrs.h:115
int basisFuncPairListIndex
Definition: organize_distrs.h:107
ergo_real maxMomentVectorNormList[MAX_MULTIPOLE_DEGREE_BASIC+1]
Definition: organize_distrs.h:116
ergo_real centerCoords[3]
Definition: organize_distrs.h:55
Treal template_blas_fabs(Treal x)
Definition: organize_distrs.h:65
int nmax
Definition: organize_distrs.h:54
std::vector< distr_group_struct > groupList
Definition: organize_distrs.h:123
int index_2_mod
Definition: organize_distrs.h:86
std::vector< cluster_struct > clusterList
Definition: organize_distrs.h:124
Definition: organize_distrs.h:72
int index_inbox_2
Definition: organize_distrs.h:88
#define MAX_NO_OF_GROUPS_PER_CLUSTER
monomial_info_struct monomial_info
Definition: integral_info.h:105
ergo_real multipoleEuclNormListForK[MAX_MULTIPOLE_DEGREE_BASIC+1]
Definition: organize_distrs.h:61
#define pi
Definition: pi.h:57
int basisFuncGroupIndex
Definition: organize_distrs.h:114
int no_of_monomials_list[MONOMIAL_N_MAX+1]
Definition: monomial_info.h:61
std::vector< int > spMatCountList
Definition: organize_distrs.h:131
int distrCount
Definition: organize_distrs.h:53
std::vector< int > spMatIdxList
Definition: organize_distrs.h:132
int monomial_index_list[MONOMIAL_N_MAX+1][MONOMIAL_N_MAX+1][MONOMIAL_N_MAX+1]
Definition: monomial_info.h:62
int iz
Definition: monomial_info.h:54
ergo_real maxLimitingFactorGroup
Definition: organize_distrs.h:59
int organize_distributions(const IntegralInfo &integralInfo, DistributionSpecStructLabeled *distrList_in, int distrCount, distr_org_struct *result, const ergo_real *boxCenterCoords, ergo_real boxWidth)
Definition: organize_distrs.cc:180
Contains coefficients needed for quick integral evaluation.
Definition: integral_info.h:94
Simple sparse matrix implementation.
int noOfGroups
Definition: organize_distrs.h:76
#define NO_OF_SORT_BUCKETS
Definition: basisinfo.h:58
#define MAX_NO_OF_BASIS_FUNC_PAIRS_PER_BATCH
Definition: organize_distrs.h:97
static void do_sort_int_list(int *list, int n)
Definition: organize_distrs.cc:118
Data()
Definition: organize_distrs.cc:52
Definition: organize_distrs.h:103
ergo_real coeff
Definition: organize_distrs.h:68
int iy
Definition: monomial_info.h:53
std::vector< basis_func_group_info_for_box > basisFuncGroupInfoListForK
Definition: organize_distrs.h:133
int index_inbox_1
Definition: organize_distrs.h:87
size_t getSize() const
Definition: organize_distrs.cc:77
Definition: organize_distrs.h:82
int index_1
Definition: organize_distrs.h:83
ergo_real value
Definition: simple_sparse_mat.h:46
int maxNoOfMonomials
Definition: organize_distrs.h:137
int basisFuncForBatchsIndex
Definition: organize_distrs.h:108
#define LOG_AREA_INTEGRALS
Definition: output.h:60
int compute_multipole_moments(const IntegralInfo &integralInfo, const DistributionSpecStruct *distr, multipole_struct_small *result)
Definition: multipole.cc:49
int basisFuncPairIndex
Definition: organize_distrs.h:66
int degree
Definition: multipole_prep.h:64
Definition: multipole_prep.h:62
static void get_conversion_matrix_for_group(const IntegralInfo &integralInfo, const distr_group_struct &group, int n1max, const minimal_distr_struct *minimalDistrList_1, int noOfBasisFuncPairs_1, const i_j_val_struct *convMat1_sp, int convMat1_nnz, i_j_val_struct *BB1_x_Ai1_x_convMat1_sp_result, int &BB1_x_Ai1_x_convMat1_nnz_result)
Definition: organize_distrs.cc:134
char monomialInts[4]
nx, ny, nz
Definition: basisinfo.h:55
Definition: organize_distrs.h:113
ergo_real maxSizeGroup
Definition: organize_distrs.h:57
std::vector< basis_func_pair_struct > basisFuncPairList
Definition: organize_distrs.h:126
ergo_real coeff
Coefficient A.
Definition: basisinfo.h:51
std::vector< int > basisFuncListForBatchs_map
Definition: organize_distrs.h:128
ergo_real momentList[MAX_NO_OF_MOMENTS_PER_MULTIPOLE_BASIC]
Definition: multipole_prep.h:66
Code for organizing a given set of primitive Gaussian distributions (typically coming from basis func...
int organize_distributions(const IntegralInfo &integralInfo, DistributionSpecStructLabeled *distrList_in, int distrCount, distr_org_struct *result, const ergo_real *boxCenterCoords, ergo_real boxWidth)
Definition: organize_distrs.cc:180
int nmax
Definition: organize_distrs.h:73
int startIndex
Definition: organize_distrs.h:52
void copy_vector(std::vector< T > &dest, std::vector< T > &src, int count)
Definition: organize_distrs.cc:172
ergo_real exponent
Definition: organize_distrs.h:74
DistributionSpecStruct distr
Definition: basisinfo.h:65
int global_debug_id
Definition: organize_distrs.h:110
ergo_real maxExtent
Definition: organize_distrs.h:135
std::vector< i_j_val_struct > spMatElementList
Definition: organize_distrs.h:130
Definition: organize_distrs.h:134
int clusterStartIndex
Definition: organize_distrs.h:104
ergo_real maxLimitingFactorForCluster
Definition: organize_distrs.h:77
monomial_struct * monomial_list
Definition: monomial_info.h:60
void do_output(int logCategory, int logArea, const char *format,...)
Definition: output.cc:53
int ix
Definition: monomial_info.h:52
int index_1_mod
Definition: organize_distrs.h:85
int noOfClusters
Definition: organize_distrs.h:105
int spmat_sort_elements(i_j_val_struct *A, int nnzA)
Definition: simple_sparse_mat.cc:60
int maxMultipoleDegree
Definition: organize_distrs.h:117
ergo_real maxDistanceOutsideBox
Definition: organize_distrs.h:136
ergo_real exponent
Definition: organize_distrs.h:56
ergo_real exponent
exponent alfa
Definition: basisinfo.h:52
int noOfBasisFuncPairs
Definition: organize_distrs.h:106
Data data
Definition: organize_distrs.h:140
int i
Definition: simple_sparse_mat.h:43
Definition: simple_sparse_mat.h:42
int basisFuncForBatchCount
Definition: organize_distrs.h:109
Functionality for writing output messages to a text file.
int groupStartIndex
Definition: organize_distrs.h:75