SimpleFilter Class Reference

SimpleFilter is a base class for predefined simple filters (MagFilter, DiffFilter...). The 'simplicity' lies in the fact that only one value per input function can be combined (e.g., not a value and a derivative). If this is not sufficient, a full-fledged filter must be derived from the Filter class (see VonMisesFilter). SimpleFilter is also intended for the user to be able to easily create custom filters only by supplying the combining function. More...

#include <filter.h>

Inherits Filter.

Inherited by AbsFilter, AngleFilter, DiffFilter, ImagFilter, MagFilter, RealFilter, SquareFilter, and SumFilter.

List of all members.

Public Member Functions

 SimpleFilter (void(*filter_fn)(int n, scalar *val1, scalar *result), MeshFunction *sln1, int item1=H2D_FN_VAL)
 SimpleFilter (void(*filter_fn)(int n, scalar *val1, scalar *val2, scalar *result), MeshFunction *sln1, MeshFunction *sln2, int item1=H2D_FN_VAL, int item2=H2D_FN_VAL)
 SimpleFilter (void(*filter_fn)(int n, scalar *val1, scalar *val2, scalar *val3, scalar *result), MeshFunction *sln1, MeshFunction *sln2, MeshFunction *sln3, int item1=H2D_FN_VAL, int item2=H2D_FN_VAL, int item3=H2D_FN_VAL)
 SimpleFilter (void(*filter_fn)(int n, scalar *val1, scalar *val2, scalar *val3, scalar *val4, scalar *result), MeshFunction *sln1, MeshFunction *sln2, MeshFunction *sln3, MeshFunction *sln4, int item1=H2D_FN_VAL, int item2=H2D_FN_VAL, int item3=H2D_FN_VAL, int item4=H2D_FN_VAL)
virtual scalar get_pt_value (double x, double y, int item=H2D_FN_VAL_0)

Protected Member Functions

void init_components ()
virtual void precalculate (int order, int mask)
 precalculates the current function at the current integration points.

Protected Attributes

int item [3]
void(* filter_fn_1 )(int n, scalar *, scalar *)
void(* filter_fn_2 )(int n, scalar *, scalar *, scalar *)
void(* filter_fn_3 )(int n, scalar *, scalar *, scalar *, scalar *)
void(* filter_fn_4 )(int n, scalar *, scalar *, scalar *, scalar *, scalar *)

Detailed Description

SimpleFilter is a base class for predefined simple filters (MagFilter, DiffFilter...). The 'simplicity' lies in the fact that only one value per input function can be combined (e.g., not a value and a derivative). If this is not sufficient, a full-fledged filter must be derived from the Filter class (see VonMisesFilter). SimpleFilter is also intended for the user to be able to easily create custom filters only by supplying the combining function.

The user specifies the combining function, the arguments ('sln1', 'sln2', 'sln3'), and optionally the 'item' for each argument, which can be any of H2D_FN_VAL_0, H2D_FN_DX_0, H2D_FN_DY_0 etc.

SimpleFilter is vector-valued, if at least one input function is vector-valued and both components are specified in 'item', e.g., item1 = H2D_FN_DX (which is H2D_FN_DX_0 | H2D_FN_DX_1). Otherwise it is scalar-valued.


Constructor & Destructor Documentation

SimpleFilter::SimpleFilter ( void(*)(int n, scalar *val1, scalar *result)  filter_fn,
MeshFunction sln1,
int  item1 = H2D_FN_VAL 
)
SimpleFilter::SimpleFilter ( void(*)(int n, scalar *val1, scalar *val2, scalar *result)  filter_fn,
MeshFunction sln1,
MeshFunction sln2,
int  item1 = H2D_FN_VAL,
int  item2 = H2D_FN_VAL 
)
SimpleFilter::SimpleFilter ( void(*)(int n, scalar *val1, scalar *val2, scalar *val3, scalar *result)  filter_fn,
MeshFunction sln1,
MeshFunction sln2,
MeshFunction sln3,
int  item1 = H2D_FN_VAL,
int  item2 = H2D_FN_VAL,
int  item3 = H2D_FN_VAL 
)
SimpleFilter::SimpleFilter ( void(*)(int n, scalar *val1, scalar *val2, scalar *val3, scalar *val4, scalar *result)  filter_fn,
MeshFunction sln1,
MeshFunction sln2,
MeshFunction sln3,
MeshFunction sln4,
int  item1 = H2D_FN_VAL,
int  item2 = H2D_FN_VAL,
int  item3 = H2D_FN_VAL,
int  item4 = H2D_FN_VAL 
)

Member Function Documentation

scalar SimpleFilter::get_pt_value ( double  x,
double  y,
int  item = H2D_FN_VAL_0 
) [virtual]

Implements MeshFunction.

void SimpleFilter::init_components (  )  [protected]
void SimpleFilter::precalculate ( int  order,
int  mask 
) [protected, virtual]

precalculates the current function at the current integration points.

Implements Function< TYPE >.


Member Data Documentation

void(* SimpleFilter::filter_fn_1)(int n, scalar *, scalar *) [protected]
void(* SimpleFilter::filter_fn_2)(int n, scalar *, scalar *, scalar *) [protected]
void(* SimpleFilter::filter_fn_3)(int n, scalar *, scalar *, scalar *, scalar *) [protected]
void(* SimpleFilter::filter_fn_4)(int n, scalar *, scalar *, scalar *, scalar *, scalar *) [protected]
int SimpleFilter::item[3] [protected]

The documentation for this class was generated from the following files:
Generated on Sat Jun 5 15:17:43 2010 for Hermes2D Library: Real Version by  doxygen 1.6.3