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

plb::DataProcessorGenerator3D Struct Reference

This is a factory class generating LatticeProcessors. More...

#include <dataProcessor3D.h>

Inheritance diagram for plb::DataProcessorGenerator3D:

List of all members.

Public Member Functions

virtual ~DataProcessorGenerator3D ()
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) const =0
 Generate the data processor.
virtual DataProcessorGenerator3Dclone () const =0
 Clone DataProcessorGenerator, based on its dynamics type.
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 setscale (int dxScale_, int dtScale_)
 Specify the scale of the block on which the data processor is acting. Defaults to no rescaling.
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
virtual int getStaticId () const
virtual void serialize (Box3D &domain, std::string &data) const
 Serialize content into a string-stream and overwrite data with result.

Detailed Description

This is a factory class generating LatticeProcessors.

The LatticeProcessorGenerator can be tailored (shifted/reduced) to a sublattice, after which the LatticeProcessor is generated. The LatticeProcessor itself is static, i.e. the coordinates of the sublattice to which it refers cannot be changed after construction. Instead, a new LatticeProcessor must be generated with the generator.


Constructor & Destructor Documentation

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

Member Function Documentation

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

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

Reimplemented in plb::BoxProcessorGenerator3D, and plb::DotProcessorGenerator3D.

References plb::BlockDomain::bulk.

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

Clone DataProcessorGenerator, based on its dynamics type.

Implemented in plb::BoxProcessorGenerator3D, and plb::DotProcessorGenerator3D.

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

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

Implemented in plb::BoxedDataProcessorGenerator3D, and plb::DottedDataProcessorGenerator3D.

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

Extract a subdomain (in-place operation).

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

Implemented in plb::BoxedDataProcessorGenerator3D, and plb::DottedDataProcessorGenerator3D.

Referenced by plb::parallelIO::readXmlProcessors(), and plb::transferDataProcessors().

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

Generate the data processor.

Implemented in plb::BoxProcessorGenerator3D, and plb::DotProcessorGenerator3D.

void plb::DataProcessorGenerator3D::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::BoxProcessorGenerator3D, and plb::DotProcessorGenerator3D.

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

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

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

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

Reimplemented in plb::BoxProcessorGenerator3D.

virtual void plb::DataProcessorGenerator3D::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 each data processor.

Implemented in plb::BoxProcessorGenerator3D, and plb::DotProcessorGenerator3D.

Referenced by getModificationPattern().

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

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

Implemented in plb::BoxedDataProcessorGenerator3D, and plb::DottedDataProcessorGenerator3D.

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

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

Reimplemented in plb::BoxProcessorGenerator3D, and plb::DotProcessorGenerator3D.

void plb::DataProcessorGenerator3D::serialize ( Box3D domain,
std::string &  data 
) const [virtual]

Serialize content into a string-stream and overwrite data with result.

Default action does nothing to help transition period.

Reimplemented in plb::BoxProcessorGenerator3D, and plb::BoxedDataProcessorGenerator3D.

void plb::DataProcessorGenerator3D::setscale ( int  dxScale_,
int  dtScale_ 
) [virtual]

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.

Reimplemented in plb::BoxProcessorGenerator3D, and plb::DotProcessorGenerator3D.

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

Shift the domain of application of this data processor.

Implemented in plb::BoxedDataProcessorGenerator3D, and plb::DottedDataProcessorGenerator3D.


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