#include <mm_limit_table.h>
Classes | |
struct | interaction_matrix_limit_range_struct |
struct | interaction_matrix_limit_struct |
Public Member Functions | |
MMLimitTable () | |
~MMLimitTable () | |
void | inittt (const MultipolePrepManager &multipolePrep) |
ergo_real | get_max_abs_mm_contrib (int degree1, const ergo_real *maxMomentVectorNormList1, int degree2, const ergo_real *maxMomentVectorNormList2, ergo_real distance) const |
int | get_minimum_multipole_degree_needed (ergo_real distance, const multipole_struct_large *boxMultipole, int maxDegreeForDistrs, const ergo_real *maxMomentVectorNormForDistrsList, ergo_real threshold) const |
void | write_to_buffer (char *dataBuffer, size_t const bufferSize) const |
size_t | get_size () const |
void | assign_from_buffer (char const *dataBuffer, size_t const bufferSize) |
Public Attributes | |
int | noOfRangesUsed |
interaction_matrix_limit_range_struct | rangeList [NO_OF_RANGES] |
Private Member Functions | |
const interaction_matrix_limit_struct & | get_x_from_distance (ergo_real distance) const |
Static Private Attributes | |
static const int | NO_OF_STEPS_PER_RANGE = 5 |
static const int | NO_OF_RANGES = 40 |
MMLimitTable::MMLimitTable | ( | ) |
References noOfRangesUsed.
MMLimitTable::~MMLimitTable | ( | ) |
void MMLimitTable::assign_from_buffer | ( | char const * | dataBuffer, | |
size_t const | bufferSize | |||
) |
Referenced by IntegralInfo::assign_from_buffer().
ergo_real MMLimitTable::get_max_abs_mm_contrib | ( | int | degree1, | |
const ergo_real * | maxMomentVectorNormList1, | |||
int | degree2, | |||
const ergo_real * | maxMomentVectorNormList2, | |||
ergo_real | distance | |||
) | const |
References get_x_from_distance(), and MMLimitTable::interaction_matrix_limit_struct::x.
Referenced by create_joblist_exchange_for_two_boxes_recursive(), and get_K_contribs_from_2_interacting_boxes().
int MMLimitTable::get_minimum_multipole_degree_needed | ( | ergo_real | distance, | |
const multipole_struct_large * | boxMultipole, | |||
int | maxDegreeForDistrs, | |||
const ergo_real * | maxMomentVectorNormForDistrsList, | |||
ergo_real | threshold | |||
) | const |
References multipole_struct_large::degree, multipole_struct_large::euclideanNormList, get_x_from_distance(), and MMLimitTable::interaction_matrix_limit_struct::x.
Referenced by check_if_multipoles_can_be_used(), do_interaction_recursive(), do_interaction_recursive_2(), and do_multipole_interaction_between_2_boxes_branches().
size_t MMLimitTable::get_size | ( | ) | const |
const MMLimitTable::interaction_matrix_limit_struct & MMLimitTable::get_x_from_distance | ( | ergo_real | distance | ) | const [private] |
References MMLimitTable::interaction_matrix_limit_range_struct::list, NO_OF_STEPS_PER_RANGE, noOfRangesUsed, rangeList, MMLimitTable::interaction_matrix_limit_range_struct::startDistance, and MMLimitTable::interaction_matrix_limit_range_struct::step.
Referenced by get_max_abs_mm_contrib(), and get_minimum_multipole_degree_needed().
void MMLimitTable::inittt | ( | const MultipolePrepManager & | multipolePrep | ) |
References get_euclidean_norm(), MMInteractor::getInteractionMatrix(), HUGE_REAL_NUMBER, MMLimitTable::interaction_matrix_limit_range_struct::list, MAX_MULTIPOLE_DEGREE, MAX_MULTIPOLE_DEGREE_BASIC, MAX_NO_OF_MOMENTS_PER_MULTIPOLE, MAX_NO_OF_MOMENTS_PER_MULTIPOLE_BASIC, MMLimitTable::interaction_matrix_limit_range_struct::maxDistance, NO_OF_RANGES, NO_OF_STEPS_PER_RANGE, noOfRangesUsed, rangeList, MMLimitTable::interaction_matrix_limit_range_struct::startDistance, MMLimitTable::interaction_matrix_limit_range_struct::step, template_blas_sqrt(), and MMLimitTable::interaction_matrix_limit_struct::x.
Referenced by IntegralInfo::init().
void MMLimitTable::write_to_buffer | ( | char * | dataBuffer, | |
size_t const | bufferSize | |||
) | const |
References get_size().
Referenced by IntegralInfo::write_to_buffer().
const int MMLimitTable::NO_OF_RANGES = 40 [static, private] |
Referenced by inittt().
const int MMLimitTable::NO_OF_STEPS_PER_RANGE = 5 [static, private] |
Referenced by get_x_from_distance(), and inittt().
Referenced by get_x_from_distance(), inittt(), and MMLimitTable().
Referenced by get_x_from_distance(), and inittt().