ergo
|
Code for computing multipole moments, and multipole interaction and translation matrices. More...
#include <memory.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "multipole.h"
#include "output.h"
#include "integrals_general.h"
Classes | |
struct | l_m_struct |
Functions | |
static ergo_real | slow_factorial (int n) |
static ergo_real | get_lm_factor_slow (int l, int m) |
static ergo_real | get_lm_factor (int l, int m) |
static void | get_l_m_from_index (int index, int *result_l, int *result_m) |
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) |
Variables | |
static int | global_initialized_flag = 0 |
static ergo_real | global_lm_factor_list [MAX_MULTIPOLE_DEGREE+1][MAX_MULTIPOLE_DEGREE+1] |
static l_m_struct | global_l_m_list [MAX_NO_OF_MOMENTS_PER_MULTIPOLE] |
Code for computing multipole moments, and multipole interaction and translation matrices.
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, DistributionSpecStruct_::coeff, basis_func_term_struct::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, DistributionSpecStruct_::monomialInts, basis_func_term_struct::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_and_gradient_linear(), and execute_joblist_J_fmm_shared().
|
static |
Referenced by init_multipole_code().
|
static |
References global_lm_factor_list.
Referenced by MMInteractor::getInteractionMatrix(), and MMTranslator::getTranslationMatrix().
|
static |
References slow_factorial().
Referenced by init_multipole_code().
int init_multipole_code | ( | ) |
int setup_multipole_maxAbsMomentList | ( | multipole_struct_large * | multipole | ) |
|
static |
Referenced by get_lm_factor_slow().
|
static |
Referenced by init_multipole_code(), MMInteractor::MMInteractor(), and MMTranslator::MMTranslator().
|
static |
|
static |
Referenced by get_lm_factor(), and init_multipole_code().