Far field expansion class. More...
Public Member Functions | |
void | AccumulateCoeffs (const Matrix &data, const Vector &weights, int begin, int end, int order) |
Accumulates the far field moment represented by the given reference data into the coefficients. | |
double | bandwidth_sq () const |
Get the coefficients. | |
double | ConvolveField (const MultFarFieldExpansion &fe2, const MultFarFieldExpansion &fe3, int order1, int order2, int order3) const |
Evaluates the three-way convolution with two other far field expansions. | |
double | ConvolveField (const MultFarFieldExpansion &fe, int order) const |
double | EvaluateField (const double *x_q, int order) const |
double | EvaluateField (const Matrix &data, int row_num, int order) const |
Evaluates the far-field coefficients at the given point. | |
const Vector * | get_center () const |
Vector * | get_center () |
Get the center of expansion. | |
const Vector & | get_coeffs () const |
Get the coefficients. | |
int | get_max_order () const |
Get the maximum possible approximation order. | |
int | get_order () const |
Get the approximation order. | |
double | get_weight_sum () const |
Gets the weight sum. | |
void | Init (const TKernelAux &ka) |
void | Init (const Vector ¢er, const TKernelAux &ka) |
Initializes the current far field expansion object with the given center. | |
double | MixField (const Matrix &data, int node1_begin, int node1_end, int node2_begin, int node2_end, const MultFarFieldExpansion &fe2, const MultFarFieldExpansion &fe3, int order2, int order3) const |
Evaluates the two-way convolution mixed with exhaustive computations with two other far field expansions. | |
template<typename TBound > | |
int | OrderForConvertingToLocal (const TBound &far_field_region, const TBound &local_field_region, double min_dist_sqd_regions, double max_dist_sqd_regions, double required_bound, double *actual_error) const |
Computes the required order for converting to the local expansion inside another region, so that the total error (truncation error of the far field expansion plus the conversion * error) is bounded above by the given user bound. | |
template<typename TBound > | |
int | OrderForEvaluating (const TBound &far_field_region, const TBound &local_field_region, double min_dist_sqd_regions, double max_dist_sqd_regions, double max_error, double *actual_error) const |
Computes the required order for evaluating the far field expansion for any query point within the specified region for a given bound. | |
void | PrintDebug (const char *name="", FILE *stream=stderr) const |
Prints out the series expansion represented by this object. | |
void | RefineCoeffs (const Matrix &data, const Vector &weights, int begin, int end, int order) |
Refine the far field moment that has been computed before up to a new order. | |
void | set_center (const Vector ¢er) |
Set the center of the expansion - assumes that the center has been initialized before. | |
void | set_order (int new_order) |
Set the approximation order. | |
void | TranslateFromFarField (const MultFarFieldExpansion &se) |
Translate from a far field expansion to the expansion here. | |
void | TranslateToLocal (MultLocalExpansion< TKernelAux > &se, int truncation_order) |
Translate to the given local expansion. |
Far field expansion class.
Definition at line 60 of file mult_farfield_expansion.h.
void MultFarFieldExpansion< TKernelAux >::AccumulateCoeffs | ( | const Matrix & | data, | |
const Vector & | weights, | |||
int | begin, | |||
int | end, | |||
int | order | |||
) |
Accumulates the far field moment represented by the given reference data into the coefficients.
double MultFarFieldExpansion< TKernelAux >::bandwidth_sq | ( | ) | const [inline] |
Get the coefficients.
Definition at line 93 of file mult_farfield_expansion.h.
double MultFarFieldExpansion< TKernelAux >::ConvolveField | ( | const MultFarFieldExpansion< TKernelAux > & | fe2, | |
const MultFarFieldExpansion< TKernelAux > & | fe3, | |||
int | order1, | |||
int | order2, | |||
int | order3 | |||
) | const |
Evaluates the three-way convolution with two other far field expansions.
double MultFarFieldExpansion< TKernelAux >::EvaluateField | ( | const Matrix & | data, | |
int | row_num, | |||
int | order | |||
) | const |
Evaluates the far-field coefficients at the given point.
Vector* MultFarFieldExpansion< TKernelAux >::get_center | ( | ) | [inline] |
Get the center of expansion.
Definition at line 96 of file mult_farfield_expansion.h.
const Vector& MultFarFieldExpansion< TKernelAux >::get_coeffs | ( | ) | const [inline] |
Get the coefficients.
Definition at line 101 of file mult_farfield_expansion.h.
int MultFarFieldExpansion< TKernelAux >::get_max_order | ( | ) | const [inline] |
Get the maximum possible approximation order.
Definition at line 107 of file mult_farfield_expansion.h.
int MultFarFieldExpansion< TKernelAux >::get_order | ( | ) | const [inline] |
Get the approximation order.
Definition at line 104 of file mult_farfield_expansion.h.
double MultFarFieldExpansion< TKernelAux >::get_weight_sum | ( | ) | const [inline] |
Gets the weight sum.
Definition at line 111 of file mult_farfield_expansion.h.
void MultFarFieldExpansion< TKernelAux >::Init | ( | const Vector & | center, | |
const TKernelAux & | ka | |||
) |
Initializes the current far field expansion object with the given center.
double MultFarFieldExpansion< TKernelAux >::MixField | ( | const Matrix & | data, | |
int | node1_begin, | |||
int | node1_end, | |||
int | node2_begin, | |||
int | node2_end, | |||
const MultFarFieldExpansion< TKernelAux > & | fe2, | |||
const MultFarFieldExpansion< TKernelAux > & | fe3, | |||
int | order2, | |||
int | order3 | |||
) | const |
Evaluates the two-way convolution mixed with exhaustive computations with two other far field expansions.
int MultFarFieldExpansion< TKernelAux >::OrderForConvertingToLocal | ( | const TBound & | far_field_region, | |
const TBound & | local_field_region, | |||
double | min_dist_sqd_regions, | |||
double | max_dist_sqd_regions, | |||
double | required_bound, | |||
double * | actual_error | |||
) | const [inline] |
Computes the required order for converting to the local expansion inside another region, so that the total error (truncation error of the far field expansion plus the conversion * error) is bounded above by the given user bound.
int MultFarFieldExpansion< TKernelAux >::OrderForEvaluating | ( | const TBound & | far_field_region, | |
const TBound & | local_field_region, | |||
double | min_dist_sqd_regions, | |||
double | max_dist_sqd_regions, | |||
double | max_error, | |||
double * | actual_error | |||
) | const [inline] |
Computes the required order for evaluating the far field expansion for any query point within the specified region for a given bound.
void MultFarFieldExpansion< TKernelAux >::PrintDebug | ( | const char * | name = "" , |
|
FILE * | stream = stderr | |||
) | const |
Prints out the series expansion represented by this object.
void MultFarFieldExpansion< TKernelAux >::RefineCoeffs | ( | const Matrix & | data, | |
const Vector & | weights, | |||
int | begin, | |||
int | end, | |||
int | order | |||
) |
Refine the far field moment that has been computed before up to a new order.
void MultFarFieldExpansion< TKernelAux >::set_center | ( | const Vector & | center | ) | [inline] |
Set the center of the expansion - assumes that the center has been initialized before.
..
Definition at line 120 of file mult_farfield_expansion.h.
References GenVector< T >::length().
void MultFarFieldExpansion< TKernelAux >::set_order | ( | int | new_order | ) | [inline] |
Set the approximation order.
Definition at line 114 of file mult_farfield_expansion.h.
void MultFarFieldExpansion< TKernelAux >::TranslateFromFarField | ( | const MultFarFieldExpansion< TKernelAux > & | se | ) |
Translate from a far field expansion to the expansion here.
The translated coefficients are added up to the ones here.
void MultFarFieldExpansion< TKernelAux >::TranslateToLocal | ( | MultLocalExpansion< TKernelAux > & | se, | |
int | truncation_order | |||
) |
Translate to the given local expansion.
The translated coefficients are added up to the passed-in local expansion coefficients.