$treeview $search $mathjax
Palabos  Version 1.1
$projectbrief
$projectbrief
$searchbox

plb::DataProcessor3D Struct Reference

DataProcessors are used to run extended operations on a lattice or data field. More...

#include <dataProcessor3D.h>

Inheritance diagram for plb::DataProcessor3D:

List of all members.

Public Member Functions

virtual ~DataProcessor3D ()
virtual void process ()=0
 Execute processing operation.
virtual DataProcessor3Dclone () const =0
 Clone Data Processor, on its dynamic type.
virtual plint extent () const
 Extent of application area (0 for purely local operations).
virtual plint extent (int direction) const
 Extent of application area along a direction (0 or 1).
virtual int getStaticId () const

Detailed Description

DataProcessors are used to run extended operations on a lattice or data field.


Constructor & Destructor Documentation

virtual plb::DataProcessor3D::~DataProcessor3D (  )  [inline, virtual]

Member Function Documentation

virtual DataProcessor3D* plb::DataProcessor3D::clone (  )  const [pure virtual]

Clone Data Processor, on its dynamic type.

Implemented in plb::BoxProcessor3D, plb::DotProcessor3D, plb::ReductiveBoxProcessor3D, and plb::ReductiveDotProcessor3D.

plint plb::DataProcessor3D::extent ( int  direction  )  const [virtual]

Extent of application area along a direction (0 or 1).

By default, this method assumes a symmetric neighborhood relation and refers to the non-directed version of extent().

References extent().

plint plb::DataProcessor3D::extent (  )  const [virtual]

Extent of application area (0 for purely local operations).

This method returns the maximum extent of the processor, over any direction. By extent one means the the size of the neighborhood for non-local accesses. For example, if the processor implements a second-order accurate laplace operator, the value returned by extent() is 1, because the second derivative is evaluated with help of the -1 2 -1 stencil, requiring one left and one right neighbor. The default implementation of this method returns an extent of 1, based on the assumption that most LB stuff is somehow based on nearest-neighbor interaction. This is a bit dangerous though, as one easily forgets to override the method in case of larger-than-nearest-neighbor Processors. Still, LatticeProcessors are much easier to write when there's only one method to override, so we'll let it be this way.

Referenced by extent().

int plb::DataProcessor3D::getStaticId (  )  const [virtual]

Unique identifier for a given DataProcessor class. Produces the same ID as the corresponding processor generator.

Return -1 as default to help transition period as some data processors have no ID.

Reimplemented in plb::BoxProcessor3D, and plb::ReductiveBoxProcessor3D.

virtual void plb::DataProcessor3D::process (  )  [pure virtual]

The documentation for this struct was generated from the following files: