#include "realtype.h"
#include "integral_info.h"
#include "basisinfo.h"
Go to the source code of this file.
Classes | |
struct | multipole_struct_large |
struct | multipole_struct_small |
class | MMTranslator |
class | MMInteractor |
Defines | |
#define | MAX_MULTIPOLE_DEGREE 15 |
#define | MAX_NO_OF_MOMENTS_PER_MULTIPOLE ((MAX_MULTIPOLE_DEGREE+1)*(MAX_MULTIPOLE_DEGREE+1)) |
#define | MAX_MULTIPOLE_DEGREE_BASIC BASIS_FUNC_POLY_MAX_DEGREE |
#define | MAX_NO_OF_MOMENTS_PER_MULTIPOLE_BASIC ((MAX_MULTIPOLE_DEGREE_BASIC+1)*(MAX_MULTIPOLE_DEGREE_BASIC+1)) |
Functions | |
int | init_multipole_code () |
int | compute_multipole_moments (const IntegralInfo &integralInfo, const DistributionSpecStruct *distr, multipole_struct_small *result) |
int | setup_multipole_maxAbsMomentList (multipole_struct_large *multipole) |
#define MAX_MULTIPOLE_DEGREE 15 |
#define MAX_MULTIPOLE_DEGREE_BASIC BASIS_FUNC_POLY_MAX_DEGREE |
Referenced by box_struct::box_struct(), compute_J_by_boxes_linear(), compute_K_by_boxes(), compute_multipole_moments(), compute_V_linear(), distr_list_description_struct::distr_list_description_struct(), do_multipole_interaction_between_2_boxes_branches(), get_joblists_J_for_two_boxes_recursive(), and MMLimitTable::init().
#define MAX_NO_OF_MOMENTS_PER_MULTIPOLE ((MAX_MULTIPOLE_DEGREE+1)*(MAX_MULTIPOLE_DEGREE+1)) |
#define MAX_NO_OF_MOMENTS_PER_MULTIPOLE_BASIC ((MAX_MULTIPOLE_DEGREE_BASIC+1)*(MAX_MULTIPOLE_DEGREE_BASIC+1)) |
Referenced by compute_J_by_boxes_linear(), compute_multipole_moments(), and MMLimitTable::init().
int compute_multipole_moments | ( | const IntegralInfo & | integralInfo, | |
const DistributionSpecStruct * | distr, | |||
multipole_struct_small * | result | |||
) |
References IntegralInfo::basis_func_poly_list, DistributionSpecStruct_::centerCoords, multipole_struct_small::centerCoords, basis_func_term_struct::coeff, DistributionSpecStruct_::coeff, compute_integral_of_simple_prim(), multipole_struct_small::degree, do_output(), LOG_AREA_INTEGRALS, LOG_CAT_ERROR, MAX_MULTIPOLE_DEGREE_BASIC, MAX_NO_OF_MOMENTS_PER_MULTIPOLE_BASIC, multipole_struct_small::momentList, basis_func_term_struct::monomialInts, DistributionSpecStruct_::monomialInts, IntegralInfo::no_of_basis_func_polys, multipole_struct_small::noOfMoments, basis_func_poly_struct::noOfTerms, basis_func_poly_struct::scaledSolidHarmonicPrefactor, and basis_func_poly_struct::termList.
Referenced by compute_J_by_boxes_linear(), compute_K_by_boxes(), compute_V_linear(), and execute_joblist_J_fmm_shared().
int init_multipole_code | ( | ) |
References A, get_l_m_from_index(), get_lm_factor_slow(), global_initialized_flag, global_lm_factor_list, MAX_MULTIPOLE_DEGREE, and MAX_NO_OF_MOMENTS_PER_MULTIPOLE.
Referenced by compute_J_by_boxes_linear(), compute_V_linear(), and MMLimitTable::init().
int setup_multipole_maxAbsMomentList | ( | multipole_struct_large * | multipole | ) |