IBAMR  IBAMR version 0.19.
Public Member Functions | Protected Attributes | Private Attributes | List of all members
SAMRAI::mesh::MultiblockGriddingTagger< DIM > Class Template Reference

Class MultiblockGriddingTagger<DIM> is a concrete implementation of MultiblockRefinePatchStrategy<DIMI> that is used for boundary filling of patch data representing cells tagged for refinement. More...

#include <MultiblockGriddingTagger.h>

Inheritance diagram for SAMRAI::mesh::MultiblockGriddingTagger< DIM >:
Inheritance graph
[legend]

Public Member Functions

 MultiblockGriddingTagger ()
 The constructor does nothing interesting. More...
 
virtual ~MultiblockGriddingTagger ()
 The virtual destructor does nothing interesting. More...
 
virtual void setScratchTagPatchDataIndex (int buf_tag_indx)
 Set the patch data index for tag data. This routine must be called with a valid cell-centered integer patch data index. More...
 
virtual void setPhysicalBoundaryConditions (hier::Patch< DIM > &patch, const double fill_time, const hier::IntVector< DIM > &ghost_width_to_fill)
 Physical boundary fill. More...
 
virtual void fillSingularityBoundaryConditions (hier::Patch< DIM > &patch, tbox::List< typename xfer::MultiblockRefineSchedule< DIM >::SingularityPatch > &singularity_patches, const double fill_time, const hier::Box< DIM > &fill_box, const hier::BoundaryBox< DIM > &boundary_box)
 Set the ghost data at a multiblock singularity. More...
 
virtual hier::IntVector< DIM > getRefineOpStencilWidth () const
 Return maximum stencil width needed for user-defined data interpolation operations. This is needed to determine the correct interpolation data dependencies. More...
 
virtual void preprocessRefine (hier::Patch< DIM > &fine, const hier::Patch< DIM > &coarse, const hier::Box< DIM > &fine_box, const hier::IntVector< DIM > &ratio)
 
virtual void postprocessRefine (hier::Patch< DIM > &fine, const hier::Patch< DIM > &coarse, const hier::Box< DIM > &fine_box, const hier::IntVector< DIM > &ratio)
 
virtual void setFillingCoarseScratch (const bool filling_coarse_scratch)
 
virtual void setBlockNumber (const int block_number)
 
virtual int getBlockNumber ()
 
virtual void clearBlockNumber ()
 
virtual void preprocessRefineBoxes (hier::Patch< DIM > &fine, const hier::Patch< DIM > &coarse, const hier::BoxList< DIM > &fine_boxes, const hier::IntVector< DIM > &ratio)
 
virtual void postprocessRefineBoxes (hier::Patch< DIM > &fine, const hier::Patch< DIM > &coarse, const hier::BoxList< DIM > &fine_boxes, const hier::IntVector< DIM > &ratio)
 

Protected Attributes

bool d_filling_coarse_scratch
 
int d_block_number
 

Private Attributes

int d_buf_tag_indx
 

Detailed Description

template<int DIM>
class SAMRAI::mesh::MultiblockGriddingTagger< DIM >

This class is needed for the calls to MultiblockRefineSchedule<DIM> in the MultiblockGriddingAlgorithm<DIM>.

This class implements the interface from MultiblockRefinePatchStrategy for fillSingularityBoundaryConditions(), so that boundary conditions for tag data that abuts a singularity can be properly filled. Also implemented are the interfaces for xfer::RefinePatchStrategy<DIM>, needed primarily for physical boundary filling.

See also
mesh::MultiblockGriddingAlgorithm
xfer::MultiblockRefineSchedule
xfer::MultiblockRefinePatchStrategy
xfer::RefinePatchStrategy

Constructor & Destructor Documentation

◆ MultiblockGriddingTagger()

◆ ~MultiblockGriddingTagger()

template<int DIM>
virtual SAMRAI::mesh::MultiblockGriddingTagger< DIM >::~MultiblockGriddingTagger ( )
virtual

Member Function Documentation

◆ setScratchTagPatchDataIndex()

template<int DIM>
virtual void SAMRAI::mesh::MultiblockGriddingTagger< DIM >::setScratchTagPatchDataIndex ( int  buf_tag_indx)
virtual

◆ setPhysicalBoundaryConditions()

template<int DIM>
virtual void SAMRAI::mesh::MultiblockGriddingTagger< DIM >::setPhysicalBoundaryConditions ( hier::Patch< DIM > &  patch,
const double  fill_time,
const hier::IntVector< DIM > &  ghost_width_to_fill 
)
virtual

Implementation of interface defined in xfer::RefinePatchStrategy<DIM>. Fills ghost cells of patch data at physical boundaries.

Parameters
patchPatch where data is stored
fill_timeSimulation time when filling occurs
ghost_width_to_fillMaximum ghost width of all data to be filled

Reimplemented from SAMRAI::xfer::MultiblockRefinePatchStrategy< DIM >.

◆ fillSingularityBoundaryConditions()

template<int DIM>
virtual void SAMRAI::mesh::MultiblockGriddingTagger< DIM >::fillSingularityBoundaryConditions ( hier::Patch< DIM > &  patch,
tbox::List< typename xfer::MultiblockRefineSchedule< DIM >::SingularityPatch > &  singularity_patches,
const double  fill_time,
const hier::Box< DIM > &  fill_box,
const hier::BoundaryBox< DIM > &  boundary_box 
)
virtual

Implementation of interface defined in MultiblockRefinePatchStrategy<DIM>. Fills ghost cells of patch data that abut multiblock singularities. The list of singularity patches contains the data from neighboring blocks that also abut the singularity, and that data from the neighbors is used to fill data on the local patch.

Parameters
patchLocal patch containing data to be filled
singularity_patchesList of structures that contain data from neighboring blocks. See MultiblockRefineSchedule<DIM> for more information on struct SingularityPatch
fill_timeSimulation time when filling occurs
fill_boxAll ghost data to be filled will be within this box
boundary_boxBoundaryBox object that stores information about the type and location of the boundary where ghost cells will be filled

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

◆ getRefineOpStencilWidth()

template<int DIM>
virtual hier::IntVector<DIM> SAMRAI::mesh::MultiblockGriddingTagger< DIM >::getRefineOpStencilWidth ( ) const
inlinevirtual

Always returns an IntVector of ones, because that is the maximum stencil needed for the operations in MultiblockGriddingAlgorithm

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

◆ preprocessRefine()

template<int DIM>
virtual void SAMRAI::mesh::MultiblockGriddingTagger< DIM >::preprocessRefine ( hier::Patch< DIM > &  fine,
const hier::Patch< DIM > &  coarse,
const hier::Box< DIM > &  fine_box,
const hier::IntVector< DIM > &  ratio 
)
inlinevirtual

Perform user-defined refining operations. This member function is called before standard refining operations (expressed using concrete subclasses of the xfer::RefineOperator<DIM> base class). The preprocess function must refine data from the scratch components of the coarse patch into the scratch components of the fine patch on the specified fine box region. Recall that the scratch components are specified in calls to the registerRefine() function in the xfer::RefineAlgorithm<DIM> class.

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

Reimplemented from SAMRAI::xfer::MultiblockRefinePatchStrategy< DIM >.

◆ postprocessRefine()

template<int DIM>
virtual void SAMRAI::mesh::MultiblockGriddingTagger< DIM >::postprocessRefine ( hier::Patch< DIM > &  fine,
const hier::Patch< DIM > &  coarse,
const hier::Box< DIM > &  fine_box,
const hier::IntVector< DIM > &  ratio 
)
virtual

Perform user-defined refining operations. This member function is called before standard refining operations (expressed using concrete subclasses of the xfer::RefineOperator<DIM> base class). The postprocess function must refine data from the scratch components of the coarse patch into the scratch components of the fine patch on the specified fine box region. Recall that the scratch components are specified in calls to the registerRefine() function in the xfer::RefineAlgorithm<DIM> class.

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

Reimplemented from SAMRAI::xfer::MultiblockRefinePatchStrategy< DIM >.

◆ setFillingCoarseScratch()

template<int DIM>
virtual void SAMRAI::xfer::MultiblockRefinePatchStrategy< DIM >::setFillingCoarseScratch ( const bool  filling_coarse_scratch)
inlinevirtualinherited

◆ setBlockNumber()

template<int DIM>
virtual void SAMRAI::xfer::MultiblockRefinePatchStrategy< DIM >::setBlockNumber ( const int  block_number)
inlinevirtualinherited

◆ getBlockNumber()

template<int DIM>
virtual int SAMRAI::xfer::MultiblockRefinePatchStrategy< DIM >::getBlockNumber ( )
inlinevirtualinherited

◆ clearBlockNumber()

template<int DIM>
virtual void SAMRAI::xfer::MultiblockRefinePatchStrategy< DIM >::clearBlockNumber ( )
inlinevirtualinherited

◆ preprocessRefineBoxes()

template<int DIM>
virtual void SAMRAI::xfer::RefinePatchStrategy< DIM >::preprocessRefineBoxes ( hier::Patch< DIM > &  fine,
const hier::Patch< DIM > &  coarse,
const hier::BoxList< DIM > &  fine_boxes,
const hier::IntVector< DIM > &  ratio 
)
virtualinherited

Virtual function to perform user-defined refine operations. This member function is called before standard refining operations (expressed using concrete subclasses of the RefineOperator<DIM> base class). The preprocess function must refine data from the scratch components of the coarse patch into the scratch components of the fine patch on the specified fine box regions.

Typically, only the pure virtual members of this class are implemented in user-defined subclasses of this base class. This version of the preprocess function operates on an entire box list. By default, this version simply loops over the box list and calls the single-box version, which is a pure virtual function.

Parameters
fineFine patch containing destination data.
coarseCoarse patch containing source data.
fine_boxestbox::List of box regions on fine patch into which data is refined.
ratioInteger vector containing ratio relating index space between coarse and fine patches.

Reimplemented in SAMRAI::solv::CartesianRobinBcHelper< DIM >.

◆ postprocessRefineBoxes()

template<int DIM>
virtual void SAMRAI::xfer::RefinePatchStrategy< DIM >::postprocessRefineBoxes ( hier::Patch< DIM > &  fine,
const hier::Patch< DIM > &  coarse,
const hier::BoxList< DIM > &  fine_boxes,
const hier::IntVector< DIM > &  ratio 
)
virtualinherited

Virtual function to perform user-defined refine operations. This member function is called after standard refining operations (expressed using concrete subclasses of the RefineOperator<DIM> base class). The postprocess function must refine data from the scratch components of the coarse patch into the scratch components of the fine patch on the specified fine box regions.

Typically, only the pure virtual members of this class are implemented in user-defined subclasses of this base class. This version of the postprocess function operates on an entire box list. By default, this version simply loops over the box list and calls the single-box version, which is a pure virtual function.

Parameters
fineFine patch containing destination data.
coarseCoarse patch containing source data.
fine_boxestbox::List of box regions on fine patch into which data is refined.
ratioInteger vector containing ratio relating index space between coarse and fine patches.

Reimplemented in SAMRAI::solv::CartesianRobinBcHelper< DIM >.

Member Data Documentation

◆ d_buf_tag_indx

template<int DIM>
int SAMRAI::mesh::MultiblockGriddingTagger< DIM >::d_buf_tag_indx
private

◆ d_filling_coarse_scratch

template<int DIM>
bool SAMRAI::xfer::MultiblockRefinePatchStrategy< DIM >::d_filling_coarse_scratch
protectedinherited

◆ d_block_number

template<int DIM>
int SAMRAI::xfer::MultiblockRefinePatchStrategy< DIM >::d_block_number
protectedinherited

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