Go to the documentation of this file.
38 #ifndef MM_LIMIT_TABLE_HEADER
39 #define MM_LIMIT_TABLE_HEADER
63 const ergo_real* maxMomentVectorNormList1,
65 const ergo_real* maxMomentVectorNormList2,
69 int maxDegreeForDistrs,
70 const ergo_real* maxMomentVectorNormForDistrsList,
75 void write_to_buffer (
char * dataBuffer,
size_t const bufferSize )
const;
int degree
Definition: multipole_prep.h:54
Treal template_blas_sqrt(Treal x)
Code for computing multipole moments, and multipole interaction and translation matrices.
Definition of the main floating-point datatype used; the ergo_real type.
This file contains preparatory stuff for computing multipole moments and related things.
interaction_matrix_limit_range_struct rangeList[NO_OF_RANGES]
Definition: mm_limit_table.h:73
const interaction_matrix_limit_struct & get_x_from_distance(ergo_real distance) const
Definition: mm_limit_table.cc:171
#define MAX_MULTIPOLE_DEGREE_BASIC
Definition: multipole_prep.h:48
const ergo_real RANGE_STEP_DIFF_FACTOR
Definition: mm_limit_table.cc:52
void inittt(const MultipolePrepManager &multipolePrep)
Definition: mm_limit_table.cc:65
double ergo_real
Definition: realtype.h:69
ergo_real x[MAX_MULTIPOLE_DEGREE+1][MAX_MULTIPOLE_DEGREE_BASIC+1]
Definition: mm_limit_table.h:47
ergo_real step
Definition: mm_limit_table.h:54
interaction_matrix_limit_struct list[NO_OF_STEPS_PER_RANGE]
Definition: mm_limit_table.h:55
const ergo_real MAX_ALLOWED_DISTANCE
Definition: mm_limit_table.cc:53
~MMLimitTable()
Definition: mm_limit_table.cc:61
Definition: multipole.h:69
Definition: multipole_prep.h:69
MMLimitTable()
Definition: mm_limit_table.cc:56
#define MAX_MULTIPOLE_DEGREE
Definition: multipole_prep.h:45
#define MAX_NO_OF_MOMENTS_PER_MULTIPOLE_BASIC
Definition: multipole_prep.h:49
void write_to_buffer(char *dataBuffer, size_t const bufferSize) const
Definition: mm_limit_table.cc:248
static const int NO_OF_RANGES
Definition: mm_limit_table.h:50
Code for computing Euclidean norm of a dense matrix.
int getInteractionMatrix(ergo_real dx, ergo_real dy, ergo_real dz, int l_1, int l_2, ergo_real *result_T)
Definition: multipole.cc:293
Definition: multipole_prep.h:52
ergo_real maxDistance
Definition: mm_limit_table.h:53
int noOfRangesUsed
Definition: mm_limit_table.h:72
Definition: mm_limit_table.h:46
void assign_from_buffer(char const *dataBuffer, size_t const bufferSize)
Definition: mm_limit_table.cc:259
Definition: mm_limit_table.h:45
size_t get_size() const
Definition: mm_limit_table.cc:255
#define MAX_NO_OF_MOMENTS_PER_MULTIPOLE
Definition: multipole_prep.h:46
ergo_real get_max_abs_mm_contrib(int degree1, const ergo_real *maxMomentVectorNormList1, int degree2, const ergo_real *maxMomentVectorNormList2, ergo_real distance) const
Definition: mm_limit_table.cc:196
ergo_real startDistance
Definition: mm_limit_table.h:52
const ergo_real HUGE_REAL_NUMBER
Definition: mm_limit_table.cc:50
const ergo_real INITIAL_STEP
Definition: mm_limit_table.cc:51
ergo_real get_euclidean_norm(int m, int n, const ergo_real *A)
Definition: matrix_norm.cc:76
int get_minimum_multipole_degree_needed(ergo_real distance, const multipole_struct_large *boxMultipole, int maxDegreeForDistrs, const ergo_real *maxMomentVectorNormForDistrsList, ergo_real threshold) const
Definition: mm_limit_table.cc:220
static const int NO_OF_STEPS_PER_RANGE
Definition: mm_limit_table.h:49
static ergo_real distance(const ergo_real *a, const ergo_real *b)
Coomputes distance between two points, they do not need to be of the Vector3D type.
Definition: dft_common.cc:526
ergo_real euclideanNormList[MAX_MULTIPOLE_DEGREE+1]
Definition: multipole_prep.h:58
MMLimitTable class used to predict the magnitude of contributions when using truncated multipole expa...
Definition: mm_limit_table.h:51