IBAMR  IBAMR version 0.19.
Public Member Functions | Private Member Functions | Private Attributes | List of all members
IBTK::CoarsenPatchStrategySet Class Referenceabstract

Class CoarsenPatchStrategySet is a utility class that allows multiple SAMRAI::xfer::CoarsenPatchStrategy objects to be employed by a single SAMRAI::xfer::CoarsenSchedule.

#include <ibtk/CoarsenPatchStrategySet.h>

Inheritance diagram for IBTK::CoarsenPatchStrategySet:
Inheritance graph
[legend]

Public Member Functions

template<typename InputIterator >
 CoarsenPatchStrategySet (InputIterator first, InputIterator last, bool managed=true)
 Constructor. More...
 
 ~CoarsenPatchStrategySet ()
 Destructor. More...
 
SAMRAI::hier::IntVector< NDIM > getCoarsenOpStencilWidth () const override
 
void preprocessCoarsen (SAMRAI::hier::Patch< NDIM > &coarse, const SAMRAI::hier::Patch< NDIM > &fine, const SAMRAI::hier::Box< NDIM > &coarse_box, const SAMRAI::hier::IntVector< NDIM > &ratio) override
 
void postprocessCoarsen (SAMRAI::hier::Patch< NDIM > &coarse, const SAMRAI::hier::Patch< NDIM > &fine, const SAMRAI::hier::Box< NDIM > &coarse_box, const SAMRAI::hier::IntVector< NDIM > &ratio) override
 
virtual hier::IntVector< DIM > getCoarsenOpStencilWidth () const=0
 
virtual void preprocessCoarsen (hier::Patch< DIM > &coarse, const hier::Patch< DIM > &fine, const hier::Box< DIM > &coarse_box, const hier::IntVector< DIM > &ratio)=0
 
virtual void postprocessCoarsen (hier::Patch< DIM > &coarse, const hier::Patch< DIM > &fine, const hier::Box< DIM > &coarse_box, const hier::IntVector< DIM > &ratio)=0
 

Private Member Functions

 CoarsenPatchStrategySet ()=delete
 Default constructor. More...
 
 CoarsenPatchStrategySet (const CoarsenPatchStrategySet &from)=delete
 Copy constructor. More...
 
CoarsenPatchStrategySetoperator= (const CoarsenPatchStrategySet &that)=delete
 Assignment operator. More...
 

Private Attributes

std::vector< SAMRAI::xfer::CoarsenPatchStrategy< NDIM > * > d_strategy_set
 The set of SAMRAI::xfer:CoarsenPatchStrategy objects. More...
 
const bool d_managed
 Boolean value that indicates whether this class should provide memory management for the strategy objects. More...
 

Constructor & Destructor Documentation

◆ CoarsenPatchStrategySet() [1/3]

template<typename InputIterator >
IBTK::CoarsenPatchStrategySet::CoarsenPatchStrategySet ( InputIterator  first,
InputIterator  last,
bool  managed = true 
)
inline

◆ ~CoarsenPatchStrategySet()

IBTK::CoarsenPatchStrategySet::~CoarsenPatchStrategySet ( )

◆ CoarsenPatchStrategySet() [2/3]

IBTK::CoarsenPatchStrategySet::CoarsenPatchStrategySet ( )
privatedelete
Note
This constructor is not implemented and should not be used.

◆ CoarsenPatchStrategySet() [3/3]

IBTK::CoarsenPatchStrategySet::CoarsenPatchStrategySet ( const CoarsenPatchStrategySet from)
privatedelete
Note
This constructor is not implemented and should not be used.
Parameters
fromThe value to copy to this object.

Member Function Documentation

◆ getCoarsenOpStencilWidth() [1/2]

SAMRAI::hier::IntVector<NDIM> IBTK::CoarsenPatchStrategySet::getCoarsenOpStencilWidth ( ) const
override

Return maximum stencil width needed over all user-defined data coarsening operations. This is needed to determine the correct coarsening data dependencies.

◆ preprocessCoarsen() [1/2]

void IBTK::CoarsenPatchStrategySet::preprocessCoarsen ( SAMRAI::hier::Patch< NDIM > &  coarse,
const SAMRAI::hier::Patch< NDIM > &  fine,
const SAMRAI::hier::Box< NDIM > &  coarse_box,
const SAMRAI::hier::IntVector< NDIM > &  ratio 
)
override

Perform user-defined coarsening operations. This member function is called before standard coarsening operations (expressed using concrete subclasses of the SAMRAI::xfer::CoarsenOperator base class). The preprocess function moves data from the source components on the fine patch into the source components on the coarse patch in the specified coarse box region. Recall that the source components are specified in calls to the registerCoarsen() function in the SAMRAI::xfer::CoarsenAlgorithm class.

Parameters
coarseCoarse patch containing destination data.
fineFine patch containing source data.
coarse_boxBox region on coarse patch into which data is coarsened.
ratioInteger vector containing ratio relating index space between coarse and fine patches.

◆ postprocessCoarsen() [1/2]

void IBTK::CoarsenPatchStrategySet::postprocessCoarsen ( SAMRAI::hier::Patch< NDIM > &  coarse,
const SAMRAI::hier::Patch< NDIM > &  fine,
const SAMRAI::hier::Box< NDIM > &  coarse_box,
const SAMRAI::hier::IntVector< NDIM > &  ratio 
)
override

Perform user-defined coarsening operations. This member function is called after standard coarsening operations (expressed using concrete subclasses of the SAMRAI::xfer::CoarsenOperator base class). The postprocess function moves data from the source components on the fine patch into the source components on the coarse patch in the specified coarse box region. Recall that the source components are specified in calls to the registerCoarsen() function in the SAMRAI::xfer::CoarsenAlgorithm class.

Parameters
coarseCoarse patch containing destination data.
fineFine patch containing source data.
coarse_boxBox region on coarse patch into which data is copied.
ratioInteger vector containing ratio

◆ operator=()

CoarsenPatchStrategySet& IBTK::CoarsenPatchStrategySet::operator= ( const CoarsenPatchStrategySet that)
privatedelete
Note
This operator is not implemented and should not be used.
Parameters
thatThe value to assign to this object.
Returns
A reference to this object.

◆ getCoarsenOpStencilWidth() [2/2]

virtual hier::IntVector<DIM> SAMRAI::xfer::CoarsenPatchStrategy< DIM >::getCoarsenOpStencilWidth
pure virtualinherited

Return maximum stencil width needed over all user-defined data coarsening operations. This is needed to determine the correct coarsening data dependencies.

◆ preprocessCoarsen() [2/2]

virtual void SAMRAI::xfer::CoarsenPatchStrategy< DIM >::preprocessCoarsen ( hier::Patch< DIM > &  coarse,
const hier::Patch< DIM > &  fine,
const hier::Box< DIM > &  coarse_box,
const hier::IntVector< DIM > &  ratio 
)
pure virtualinherited

Perform user-defined coarsening operations. This member function is called before standard coarsening operations (expressed using concrete subclasses of the CoarsenOperator<DIM> base class).
The preprocess function should move data from the source components on the fine patch into the source components on the coarse patch in the specified coarse box region. Recall that the source components are specified in calls to the registerCoarsen() function in the CoarsenAlgorithm<DIM> class.

Parameters
coarseCoarse patch containing destination data.
fineFine patch containing source data.
coarse_boxhier::Box region on coarse patch into which data is coarsened.
ratioInteger vector containing ratio relating index space between coarse and fine patches.

◆ postprocessCoarsen() [2/2]

virtual void SAMRAI::xfer::CoarsenPatchStrategy< DIM >::postprocessCoarsen ( hier::Patch< DIM > &  coarse,
const hier::Patch< DIM > &  fine,
const hier::Box< DIM > &  coarse_box,
const hier::IntVector< DIM > &  ratio 
)
pure virtualinherited

Perform user-defined coarsening operations. This member function is called after standard coarsening operations (expressed using concrete subclasses of the CoarsenOperator<DIM> base class).
The postprocess function should move data from the source components on the fine patch into the source components on the coarse patch in the specified coarse box region. Recall that the source components are specified in calls to the registerCoarsen() function in the CoarsenAlgorithm<DIM> class.

Parameters
coarseCoarse patch containing destination data.
fineFine patch containing source data.
coarse_boxhier::Box region on coarse patch into which data is copied.
ratioInteger vector containing ratio

Member Data Documentation

◆ d_strategy_set

std::vector<SAMRAI::xfer::CoarsenPatchStrategy<NDIM>*> IBTK::CoarsenPatchStrategySet::d_strategy_set
private

◆ d_managed

const bool IBTK::CoarsenPatchStrategySet::d_managed
private

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