Public Member Functions

apf::Integrator Class Reference

A virtual base for user-defined integrators. More...

List of all members.

Public Member Functions

 Integrator (int o)
 Construct an Integrator given an order of accuracy.
void process (Mesh *m)
 Run the Integrator over the local Mesh.
void process (MeshElement *e)
 Run the Integrator over a Mesh Element.
virtual void inElement (MeshElement *)
 User callback: element entry.
virtual void outElement ()
 User callback: element exit.
virtual void atPoint (Vector3 const &p, double w, double dV)=0
 User callback: accumulation.
virtual void parallelReduce ()
 User callback: parallel reduction.

Detailed Description

A virtual base for user-defined integrators.

Users of APF can define an Integrator object to handle integrating expressions over elements and over meshes. Users specify the accuracy of the integration and provide accumulation callbacks which APF uses at each integration point. The APF-provided process functions will perform the integration over an element or mesh using the callbacks. In parallel, users must provide a reduction callback to turn locally accumulated values into a globally integrated value.


Member Function Documentation

virtual void apf::Integrator::atPoint ( Vector3 const &  p,
double  w,
double  dV 
) [pure virtual]

User callback: accumulation.

APF will call this function at each integration point. Users should evaluate their expression and accumulate the value.

Parameters:
p The local coordinates of the point.
w The integration weight of the point.
dV The differential volume at that point.
virtual void apf::Integrator::inElement ( MeshElement  )  [virtual]

User callback: element entry.

APF will call this function every time the Integrator begins operating over a new element. Users can then construct Field Elements, for example.

virtual void apf::Integrator::outElement (  )  [virtual]

User callback: element exit.

APF will call this function once an Integrator is done operating over an element. This can be used to destroy Field Elements, for example.

virtual void apf::Integrator::parallelReduce (  )  [virtual]

User callback: parallel reduction.

This function should use communication to reduce process-local integrations into a global mesh integration, if that is the user's goal.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines