Go to the documentation of this file.
38 #ifndef BASISINFO_BASIC_HEADER
39 #define BASISINFO_BASIC_HEADER
49 #ifndef BASIS_FUNC_POLY_MAX_DEGREE
50 #error The constant BASIS_FUNC_POLY_MAX_DEGREE must be defined.
52 #if BASIS_FUNC_POLY_MAX_DEGREE<6
53 #define MAX_NO_OF_TERMS_IN_BASIS_FUNC_POLY 12
54 #define MAX_NO_OF_POLY_12_TERMS 180
55 #define MAX_NO_OF_BASIS_FUNC_POLYS 50
57 #define MAX_NO_OF_TERMS_IN_BASIS_FUNC_POLY 16
58 #define MAX_NO_OF_POLY_12_TERMS 360
59 #define MAX_NO_OF_BASIS_FUNC_POLYS 100
136 void write_to_buffer (
char * dataBuffer,
size_t const bufferSize )
const;
Treal template_blas_pow(Treal x, Treal y)
#define BASIS_FUNC_POLY_MAX_DEGREE
Definition: polydegree.h:51
Definition: integral_info.h:70
Treal template_blas_sqrt(Treal x)
const MMLimitTable & GetMMLimitTable() const
Definition: integral_info.h:110
ergo_real mu
Definition: integral_info.h:151
Definition of the main floating-point datatype used; the ergo_real type.
static int BinCoeffs[NBIN *NBIN]
Definition: integral_info.cc:54
void write_to_buffer(char *dataBuffer, size_t const bufferSize) const
Function needed for Chunks&Tasks usage.
Definition: monomial_info.cc:110
void assign_from_buffer(char const *dataBuffer, size_t const bufferSize)
Function needed for Chunks&Tasks usage.
Definition: boysfunction.cc:303
int monomialID
Definition: integral_info.h:66
This file contains preparatory stuff for computing multipole moments and related things.
int id_2
Definition: integral_info.h:79
Definition: integral_info.h:142
int noOfTerms
Definition: integral_info.h:71
Memory allocation/deallocation routines.
void inittt(const MultipolePrepManager &multipolePrep)
Definition: mm_limit_table.cc:65
Code for conversion between integrals computed for Hermite Gaussians and Cartesian Gaussians,...
void assign_from_buffer(char const *dataBuffer, size_t const bufferSize)
Definition: multipole_prep.cc:116
void init()
Definition: monomial_info.cc:45
#define LOG_CAT_ERROR
Definition: output.h:47
void write_to_buffer(char *dataBuffer, size_t const bufferSize) const
Function needed for Chunks&Tasks usage.
Definition: hermite_conversion_prep.cc:372
int noOfTerms
Definition: integral_info.h:85
double ergo_real
Definition: realtype.h:69
Definition: integral_info.h:77
int get_hermite_conversion_matrix_right_sparse(int nmax, ergo_real a, i_j_val_struct *result) const
Definition: integral_info.cc:281
BoysFunctionManager boysFunctionManager
Definition: integral_info.h:96
Code for Boys function evaluation.
Definition: integral_info.h:84
ergo_real BoysFunction_expensive(int n, ergo_real x, int noOfIntegrationIntervals, int method=0) const
Definition: boysfunction.cc:256
ergo_real BoysFunction_expensive(int n, ergo_real x, int noOfIntegrationIntervals) const
Definition: integral_info.cc:249
int multiply_by_hermite_conversion_matrix_from_left(int n1max, int n2max, ergo_real a, ergo_real *A, ergo_real *result) const
Definition: integral_info.cc:261
#define MAX_NO_OF_TERMS_IN_BASIS_FUNC_POLY
Definition: integral_info.h:53
Definition: multipole_prep.h:69
static int get_real_solid_harmonic_poly(int l, int m, basis_func_poly_struct *result)
Definition: integral_info.cc:87
size_t get_size() const
Function needed for Chunks&Tasks usage.
Definition: boysfunction.cc:298
int multiply_by_hermite_conversion_matrix_from_left(const monomial_info_struct &monomial_info, int n1max, int n2max, ergo_real a, ergo_real *A, ergo_real *result) const
Definition: hermite_conversion_prep.cc:242
static int getBinCoeff(int i, int j)
Definition: integral_info.cc:70
char monomialInts[4]
Definition: integral_info.h:65
ergo_real alpha
Definition: integral_info.h:149
Definition: boysfunction.h:73
void write_to_buffer(char *dataBuffer, size_t const bufferSize) const
Definition: multipole_prep.cc:105
void init()
Definition: boysfunction.cc:177
size_t get_size() const
Function needed for Chunks&Tasks usage.
Definition: integral_info.cc:365
monomial_info_struct monomial_info
Definition: integral_info.h:105
#define MAX_NO_OF_POLY_12_TERMS
Definition: integral_info.h:54
Definition: integral_info.h:63
size_t get_size() const
Function needed for Chunks&Tasks usage.
Definition: monomial_info.cc:130
void write_to_buffer(char *dataBuffer, size_t const bufferSize) const
Definition: mm_limit_table.cc:248
void assign_from_buffer(char const *dataBuffer, size_t const bufferSize)
Function needed for Chunks&Tasks usage.
Definition: integral_info.cc:377
int id_1
Definition: integral_info.h:78
int monomial_index_list[MONOMIAL_N_MAX+1][MONOMIAL_N_MAX+1][MONOMIAL_N_MAX+1]
Definition: monomial_info.h:62
ergo_real beta
Definition: integral_info.h:150
void assign_from_buffer(char const *dataBuffer, size_t const bufferSize)
Function needed for Chunks&Tasks usage.
Definition: hermite_conversion_prep.cc:428
Contains coefficients needed for quick integral evaluation.
Definition: integral_info.h:94
size_t get_size() const
Function needed for Chunks&Tasks usage.
Definition: hermite_conversion_prep.cc:408
void write_to_buffer(char *dataBuffer, size_t const bufferSize) const
Function needed for Chunks&Tasks usage.
Definition: boysfunction.cc:281
void assign_from_buffer(char const *dataBuffer, size_t const bufferSize)
Definition: mm_limit_table.cc:259
#define MAX_NO_OF_BASIS_FUNC_POLYS
Definition: integral_info.h:55
Definition: mm_limit_table.h:45
Definition: hermite_conversion_prep.h:71
ExchWeights()
Definition: integral_info.h:154
int get_shell_type_from_basis_func_poly_id(int basfuncpolyid)
size_t get_size() const
Definition: mm_limit_table.cc:255
Code used to organize monomials; contributions like x, y, z, xy, xz etc. that can be used to describe...
ergo_real coeff
Definition: integral_info.h:64
const MultipolePrepManager & GetMultipolePrep() const
Definition: integral_info.h:109
Defines IntegralInfo object, providing the coefficients needed for integral evaluation.
#define LOG_CAT_INFO
Definition: output.h:49
hermite_conversion_info_struct hermite_conversion_info
Definition: integral_info.h:99
void assign_from_buffer(char const *dataBuffer, size_t const bufferSize)
Function needed for Chunks&Tasks usage.
Definition: monomial_info.cc:138
int get_hermite_conversion_matrix_right(int nmax, ergo_real a, ergo_real *result) const
Definition: integral_info.cc:269
int no_of_basis_func_polys
Definition: integral_info.h:104
#define LOG_AREA_INTEGRALS
Definition: output.h:60
Definition: integral_info.h:148
static void setup_bin_coeffs()
Definition: integral_info.cc:57
MMLimitTable mmLimitTable
Definition: integral_info.h:98
int setup_basis_func_polys(IntegralInfo *b)
Definition: integral_info.cc:180
ergo_real BoysFunction(int n, ergo_real x) const
Definition: boysfunction.cc:252
int get_hermite_conversion_matrix_right_sparse(const monomial_info_struct &monomial_info, int nmax, ergo_real a, i_j_val_struct *result) const
Definition: hermite_conversion_prep.cc:295
int get_hermite_conversion_matrix_left(int nmax, ergo_real a, ergo_real *result) const
Definition: integral_info.cc:275
int get_hermite_conversion_matrix_right(const monomial_info_struct &monomial_info, int nmax, ergo_real a, ergo_real *result) const
Definition: hermite_conversion_prep.cc:272
int multiply_by_hermite_conversion_matrix_from_right(const monomial_info_struct &monomial_info, int n1max, int n2max, ergo_real a, ergo_real *A, ergo_real *result) const
Definition: hermite_conversion_prep.cc:212
int computeRangeSeparatedExchange
shortcut for |beta| != 0
Definition: integral_info.h:152
bool initialized
Definition: integral_info.h:100
int get_hermite_conversion_matrix_left(const monomial_info_struct &monomial_info, int nmax, ergo_real a, ergo_real *result) const
Definition: hermite_conversion_prep.cc:320
Definition: monomial_info.h:58
static ergo_real factorial(int n)
Definition: integral_info.cc:80
int get_no_of_basis_func_polys_used_from_no_of_shell_types(int no_of_shell_types)
ergo_real BoysFunction(int n, ergo_real x) const
Definition: integral_info.cc:243
basis_func_poly_struct basis_func_poly_list[MAX_NO_OF_BASIS_FUNC_POLYS]
Definition: integral_info.h:103
void init(const monomial_info_struct &monomial_info)
Definition: hermite_conversion_prep.cc:56
int get_poly_info_from_shell_type(int *polyid_start, int *poly_count, int shellType)
int multiply_by_hermite_conversion_matrix_from_right(int n1max, int n2max, ergo_real a, ergo_real *A, ergo_real *result) const
Definition: integral_info.cc:253
void init()
Definition: multipole_prep.cc:79
#define NBIN
Definition: integral_info.cc:53
void do_output(int logCategory, int logArea, const char *format,...)
Definition: output.cc:53
basis_func_term_struct termList[MAX_NO_OF_TERMS_IN_BASIS_FUNC_POLY]
Definition: integral_info.h:72
void write_to_buffer(char *dataBuffer, size_t const bufferSize) const
Function needed for Chunks&Tasks usage.
Definition: integral_info.cc:331
MMLimitTable class used to predict the magnitude of contributions when using truncated multipole expa...
ergo_real coeff
Definition: integral_info.h:80
void init()
Definition: integral_info.cc:287
size_t get_size() const
Definition: multipole_prep.cc:112
ergo_real scaledSolidHarmonicPrefactor
Definition: integral_info.h:73
Definition: simple_sparse_mat.h:42
MultipolePrepManager multipolePrep
Definition: integral_info.h:97
Functionality for writing output messages to a text file.
~IntegralInfo()
Definition: integral_info.cc:312