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

plb::ReductiveDataProcessorGenerator3D Class Reference

#include <dataProcessor3D.h>

Inheritance diagram for plb::ReductiveDataProcessorGenerator3D:

List of all members.

Public Member Functions

 ReductiveDataProcessorGenerator3D ()
virtual ~ReductiveDataProcessorGenerator3D ()
virtual void shift (plint deltaX, plint deltaY, plint deltaZ)=0
 Shift the domain of application of this data processor.
virtual void multiply (plint scale)=0
 Multiply coordinates of the domain of application of this data processor.
virtual void divide (plint scale)=0
 Divide coordinates of the domain of application of this data processor.
virtual bool extract (Box3D subDomain)=0
 Extract a subdomain (in-place operation).
virtual DataProcessor3Dgenerate (std::vector< AtomicBlock3D * > atomicBlocks)=0
 Generate the data processor.
virtual
ReductiveDataProcessorGenerator3D
clone () const =0
 Clone ReductiveDataProcessorGenerator, based on its dynamics type.
virtual BlockStatistics const & getStatistics () const =0
 Const handle to statistics object.
virtual BlockStatisticsgetStatistics ()=0
 Non-const handle to statistics object.
virtual BlockDomain::DomainT appliesTo () const
 Indicates whether data processor should be applied on envelope or not. Defaults to false.
virtual void rescale (double dxScale, double dtScale)
 This function is obsolete, and has been replaced by setscale.
virtual void getModificationPattern (std::vector< bool > &isWritten) const
 Tell which blocks are modified (written) when the processor is applied on them.
virtual void getTypeOfModification (std::vector< modif::ModifT > &modified) const =0
void setscale (int dxScale_, int dtScale_)
 Specify the scale of the block on which the data processor is acting. Defaults to no rescaling.
int getDxScale () const
 Return the space scale of the subjacent block.
int getDtScale () const
 Return the time scale of the subjacent block.
virtual void getDimensionsX (std::vector< int > &dimensions) const
 Get the space dimensions of each reduced value.
virtual void getDimensionsT (std::vector< int > &dimensions) const
 Get the time dimensions of each reduced value.
virtual void serialize (Box3D &domain, std::string &data) const

Constructor & Destructor Documentation

plb::ReductiveDataProcessorGenerator3D::ReductiveDataProcessorGenerator3D (  ) 
plb::ReductiveDataProcessorGenerator3D::~ReductiveDataProcessorGenerator3D (  )  [virtual]

Member Function Documentation

BlockDomain::DomainT plb::ReductiveDataProcessorGenerator3D::appliesTo (  )  const [virtual]

Indicates whether data processor should be applied on envelope or not. Defaults to false.

Reimplemented in plb::ReductiveBoxProcessorGenerator3D, and plb::ReductiveDotProcessorGenerator3D.

References plb::BlockDomain::bulk.

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

Clone ReductiveDataProcessorGenerator, based on its dynamics type.

Implemented in plb::ReductiveBoxProcessorGenerator3D, and plb::ReductiveDotProcessorGenerator3D.

virtual void plb::ReductiveDataProcessorGenerator3D::divide ( plint  scale  )  [pure virtual]

Divide coordinates of the domain of application of this data processor.

Implemented in plb::BoxedReductiveDataProcessorGenerator3D, and plb::DottedReductiveDataProcessorGenerator3D.

virtual bool plb::ReductiveDataProcessorGenerator3D::extract ( Box3D  subDomain  )  [pure virtual]

Extract a subdomain (in-place operation).

Returns:
True if original domain of application and subDomain intersect.

Implemented in plb::BoxedReductiveDataProcessorGenerator3D, and plb::DottedReductiveDataProcessorGenerator3D.

virtual DataProcessor3D* plb::ReductiveDataProcessorGenerator3D::generate ( std::vector< AtomicBlock3D * >  atomicBlocks  )  [pure virtual]

Generate the data processor.

Implemented in plb::ReductiveBoxProcessorGenerator3D, and plb::ReductiveDotProcessorGenerator3D.

void plb::ReductiveDataProcessorGenerator3D::getDimensionsT ( std::vector< int > &  dimensions  )  const [virtual]

Get the time dimensions of each reduced value.

Default implementation: constant dimensions.

Reimplemented in plb::ReductiveBoxProcessorGenerator3D, and plb::ReductiveDotProcessorGenerator3D.

void plb::ReductiveDataProcessorGenerator3D::getDimensionsX ( std::vector< int > &  dimensions  )  const [virtual]

Get the space dimensions of each reduced value.

Default implementation: constant dimensions.

Reimplemented in plb::ReductiveBoxProcessorGenerator3D, and plb::ReductiveDotProcessorGenerator3D.

int plb::ReductiveDataProcessorGenerator3D::getDtScale (  )  const

Return the time scale of the subjacent block.

int plb::ReductiveDataProcessorGenerator3D::getDxScale (  )  const

Return the space scale of the subjacent block.

void plb::ReductiveDataProcessorGenerator3D::getModificationPattern ( std::vector< bool > &  isWritten  )  const [virtual]

Tell which blocks are modified (written) when the processor is applied on them.

This function is obsolete and should be replaced by getTypeOfModification().

Reimplemented in plb::ReductiveBoxProcessorGenerator3D, and plb::ReductiveDotProcessorGenerator3D.

References getTypeOfModification(), plb::modif::nothing, and PLB_ASSERT.

virtual BlockStatistics& plb::ReductiveDataProcessorGenerator3D::getStatistics (  )  [pure virtual]

Non-const handle to statistics object.

Implemented in plb::ReductiveBoxProcessorGenerator3D, and plb::ReductiveDotProcessorGenerator3D.

virtual BlockStatistics const& plb::ReductiveDataProcessorGenerator3D::getStatistics (  )  const [pure virtual]

Const handle to statistics object.

Implemented in plb::ReductiveBoxProcessorGenerator3D, and plb::ReductiveDotProcessorGenerator3D.

virtual void plb::ReductiveDataProcessorGenerator3D::getTypeOfModification ( std::vector< modif::ModifT > &  modified  )  const [pure virtual]

Tell which blocks are modified and how by the processor. This method must be implemented in every data processor.

Implemented in plb::ReductiveBoxProcessorGenerator3D, and plb::ReductiveDotProcessorGenerator3D.

Referenced by getModificationPattern().

virtual void plb::ReductiveDataProcessorGenerator3D::multiply ( plint  scale  )  [pure virtual]

Multiply coordinates of the domain of application of this data processor.

Implemented in plb::BoxedReductiveDataProcessorGenerator3D, and plb::DottedReductiveDataProcessorGenerator3D.

void plb::ReductiveDataProcessorGenerator3D::rescale ( double  dxScale,
double  dtScale 
) [virtual]

This function is obsolete, and has been replaced by setscale.

Default implementation does nothing, to reflect the fact that many processor generators are invariant under change of scale. It is however important to remember to redefine this method for data processors which dependent on physical units, because otherwise the processor yields erroneous results in a MultiGrid environment.

Parameters:
dxScale Scale factor for space scale dx.
dtScale Scale factor for time scale dt.

Reimplemented in plb::ReductiveBoxProcessorGenerator3D, and plb::ReductiveDotProcessorGenerator3D.

void plb::ReductiveDataProcessorGenerator3D::serialize ( Box3D domain,
std::string &  data 
) const [virtual]
void plb::ReductiveDataProcessorGenerator3D::setscale ( int  dxScale_,
int  dtScale_ 
)

Specify the scale of the block on which the data processor is acting. Defaults to no rescaling.

Parameters:
dxScale Scale factor for space scale dx.
dtScale Scale factor for time scale dt.

If you override this function, you should always remember to invoke the original implementation as well, so the scale factors are properly set in the generator.

virtual void plb::ReductiveDataProcessorGenerator3D::shift ( plint  deltaX,
plint  deltaY,
plint  deltaZ 
) [pure virtual]

Shift the domain of application of this data processor.

Implemented in plb::BoxedReductiveDataProcessorGenerator3D, and plb::DottedReductiveDataProcessorGenerator3D.


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