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 <source/mesh/multiblock/MultiblockGriddingTagger.h>

Inheritance diagram for SAMRAI::mesh::MultiblockGriddingTagger< DIM >:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 MultiblockGriddingTagger ()
 The constructor does nothing interesting.
virtual ~MultiblockGriddingTagger ()
 The virtual destructor does nothing interesting.
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.
virtual void setPhysicalBoundaryConditions (hier::Patch< DIM > &patch, const double fill_time, const hier::IntVector< DIM > &ghost_width_to_fill)
 Physical boundary fill.
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.
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.
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)

Detailed Description

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

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

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

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

The constructor does nothing interesting.

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

The virtual destructor does nothing interesting.


Member Function Documentation

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

Set the patch data index for tag data. This routine must be called with a valid cell-centered integer patch data index.

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

Physical boundary fill.

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

Parameters:
patch Patch where data is stored
fill_time Simulation time when filling occurs
ghost_width_to_fill Maximum ghost width of all data to be filled

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

template<int DIM>
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]

Set the ghost data at a multiblock singularity.

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:
patch Local patch containing data to be filled
singularity_patches List of structures that contain data from neighboring blocks. See MultiblockRefineSchedule<DIM> for more information on struct SingularityPatch
fill_time Simulation time when filling occurs
fill_box All ghost data to be filled will be within this box
boundary_box BoundaryBox object that stores information about the type and location of the boundary where ghost cells will be filled

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

template<int DIM>
virtual hier::IntVector<DIM> SAMRAI::mesh::MultiblockGriddingTagger< DIM >::getRefineOpStencilWidth (  )  const [inline, virtual]

Return maximum stencil width needed for user-defined data interpolation operations. This is needed to determine the correct interpolation data dependencies.

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

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

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 
) [inline, 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 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:
fine Fine patch containing destination data.
coarse Coarse patch containing source data.
fine_box Box region on fine patch into which data is refined.
ratio Integer vector containing ratio relating index space between coarse and fine patches.

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

template<int DIM>
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:
fine Fine patch containing destination data.
coarse Coarse patch containing source data.
fine_box Box region on fine patch into which data is refined.
ratio Integer vector containing ratio relating index space between coarse and fine patches.

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


The documentation for this class was generated from the following files:
Generated on Thu Jun 18 11:28:42 2009 for SAMRAI by  doxygen 1.5.1