MultFarFieldExpansion< TKernelAux > Class Template Reference

Far field expansion class. More...

Collaboration diagram for MultFarFieldExpansion< TKernelAux >:
[legend]

List of all members.

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 Vectorget_center () const
Vectorget_center ()
 Get the center of expansion.
const Vectorget_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 &center, 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 &center)
 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.

Detailed Description

template<typename TKernelAux>
class MultFarFieldExpansion< TKernelAux >

Far field expansion class.

Definition at line 60 of file mult_farfield_expansion.h.


Member Function Documentation

template<typename TKernelAux>
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.

template<typename TKernelAux>
double MultFarFieldExpansion< TKernelAux >::bandwidth_sq (  )  const [inline]

Get the coefficients.

Definition at line 93 of file mult_farfield_expansion.h.

template<typename TKernelAux>
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.

template<typename TKernelAux>
double MultFarFieldExpansion< TKernelAux >::EvaluateField ( const Matrix &  data,
int  row_num,
int  order 
) const

Evaluates the far-field coefficients at the given point.

template<typename TKernelAux>
Vector* MultFarFieldExpansion< TKernelAux >::get_center (  )  [inline]

Get the center of expansion.

Definition at line 96 of file mult_farfield_expansion.h.

template<typename TKernelAux>
const Vector& MultFarFieldExpansion< TKernelAux >::get_coeffs (  )  const [inline]

Get the coefficients.

Definition at line 101 of file mult_farfield_expansion.h.

template<typename TKernelAux>
int MultFarFieldExpansion< TKernelAux >::get_max_order (  )  const [inline]

Get the maximum possible approximation order.

Definition at line 107 of file mult_farfield_expansion.h.

template<typename TKernelAux>
int MultFarFieldExpansion< TKernelAux >::get_order (  )  const [inline]

Get the approximation order.

Definition at line 104 of file mult_farfield_expansion.h.

template<typename TKernelAux>
double MultFarFieldExpansion< TKernelAux >::get_weight_sum (  )  const [inline]

Gets the weight sum.

Definition at line 111 of file mult_farfield_expansion.h.

template<typename TKernelAux>
void MultFarFieldExpansion< TKernelAux >::Init ( const Vector center,
const TKernelAux &  ka 
)

Initializes the current far field expansion object with the given center.

template<typename TKernelAux>
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.

template<typename TKernelAux>
template<typename TBound >
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.

Returns:
the minimum approximation order required for the error, -1 if approximation up to the maximum order is not possible
template<typename TKernelAux>
template<typename TBound >
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.

template<typename TKernelAux>
void MultFarFieldExpansion< TKernelAux >::PrintDebug ( const char *  name = "",
FILE *  stream = stderr 
) const

Prints out the series expansion represented by this object.

template<typename TKernelAux>
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.

template<typename TKernelAux>
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().

template<typename TKernelAux>
void MultFarFieldExpansion< TKernelAux >::set_order ( int  new_order  )  [inline]

Set the approximation order.

Definition at line 114 of file mult_farfield_expansion.h.

template<typename TKernelAux>
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.

template<typename TKernelAux>
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.


The documentation for this class was generated from the following file:
Generated on Mon Jan 24 12:04:40 2011 for FASTlib by  doxygen 1.6.3