IBAMR  IBAMR version 0.19.
Public Member Functions | Protected Attributes | List of all members
SAMRAI::xfer::MultiblockCoarsenPatchStrategy< DIM > Class Template Referenceabstract

Class MultiblockCoarsenPatchStrategy is an abstract base class that provides interfaces between coarsen operations in the multiblock classes and user's problem specific routines. In general, it mimics the standard CoarsenPatchStrategy class but implements some additional methods that supply information about the blocks. More...

#include <MultiblockCoarsenPatchStrategy.h>

Inheritance diagram for SAMRAI::xfer::MultiblockCoarsenPatchStrategy< DIM >:
Inheritance graph
[legend]

Public Member Functions

 MultiblockCoarsenPatchStrategy ()
 
virtual ~MultiblockCoarsenPatchStrategy ()
 
virtual hier::IntVector< DIM > getMultiblockCoarsenOpStencilWidth ()=0
 
virtual void preprocessCoarsen (hier::Patch< DIM > &coarse, const hier::Patch< DIM > &fine, const hier::Box< DIM > &coarse_box, const hier::IntVector< DIM > &ratio)
 
virtual void postprocessCoarsen (hier::Patch< DIM > &coarse, const hier::Patch< DIM > &fine, const hier::Box< DIM > &coarse_box, const hier::IntVector< DIM > &ratio)
 
virtual void setCoarsenBlockNumber (const int block_number)
 
virtual int getCoarsenBlockNumber ()
 
virtual void clearCoarsenBlockNumber ()
 
virtual hier::IntVector< DIM > getCoarsenOpStencilWidth () const =0
 

Protected Attributes

int d_block_number
 

Detailed Description

template<int DIM>
class SAMRAI::xfer::MultiblockCoarsenPatchStrategy< DIM >

See also
xfer::CoarsenPatchStrategy
xfer::MultiblockCoarsenSchedule

Constructor & Destructor Documentation

◆ MultiblockCoarsenPatchStrategy()

The constructor for coarsen strategy does nothing interesting.

◆ ~MultiblockCoarsenPatchStrategy()

template<int DIM>
virtual SAMRAI::xfer::MultiblockCoarsenPatchStrategy< DIM >::~MultiblockCoarsenPatchStrategy ( )
virtual

The virtual destructor for coarsen strategy does nothing interesting.

Member Function Documentation

◆ getMultiblockCoarsenOpStencilWidth()

template<int DIM>
virtual hier::IntVector<DIM> SAMRAI::xfer::MultiblockCoarsenPatchStrategy< DIM >::getMultiblockCoarsenOpStencilWidth ( )
pure virtual

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

◆ preprocessCoarsen()

template<int DIM>
virtual void SAMRAI::xfer::MultiblockCoarsenPatchStrategy< DIM >::preprocessCoarsen ( hier::Patch< DIM > &  coarse,
const hier::Patch< DIM > &  fine,
const hier::Box< DIM > &  coarse_box,
const hier::IntVector< DIM > &  ratio 
)
inlinevirtual

Perform user-defined coarsening operations. This member function is called before standard coarsening operations (expressed using concrete subclasses of the MultiblockCoarsenOperator<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 MultiblockCoarsenAlgorithm<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.

Implements SAMRAI::xfer::CoarsenPatchStrategy< DIM >.

◆ postprocessCoarsen()

template<int DIM>
virtual void SAMRAI::xfer::MultiblockCoarsenPatchStrategy< DIM >::postprocessCoarsen ( hier::Patch< DIM > &  coarse,
const hier::Patch< DIM > &  fine,
const hier::Box< DIM > &  coarse_box,
const hier::IntVector< DIM > &  ratio 
)
inlinevirtual

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 registerMultiblockCoarsen() function in the MultiblockCoarsenAlgorithm<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

Implements SAMRAI::xfer::CoarsenPatchStrategy< DIM >.

◆ setCoarsenBlockNumber()

template<int DIM>
virtual void SAMRAI::xfer::MultiblockCoarsenPatchStrategy< DIM >::setCoarsenBlockNumber ( const int  block_number)
inlinevirtual

◆ getCoarsenBlockNumber()

template<int DIM>
virtual int SAMRAI::xfer::MultiblockCoarsenPatchStrategy< DIM >::getCoarsenBlockNumber ( )
inlinevirtual

◆ clearCoarsenBlockNumber()

template<int DIM>
virtual void SAMRAI::xfer::MultiblockCoarsenPatchStrategy< DIM >::clearCoarsenBlockNumber ( )
inlinevirtual

◆ getCoarsenOpStencilWidth()

template<int DIM>
virtual hier::IntVector<DIM> SAMRAI::xfer::CoarsenPatchStrategy< DIM >::getCoarsenOpStencilWidth ( ) const
pure virtualinherited

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

Implemented in SAMRAI::algs::HyperbolicPatchStrategy< DIM >, and SAMRAI::algs::MethodOfLinesPatchStrategy< DIM >.

Member Data Documentation

◆ d_block_number

template<int DIM>
int SAMRAI::xfer::MultiblockCoarsenPatchStrategy< DIM >::d_block_number
protected

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