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

Class MultiblockRefinePatchStrategy is a virtual base class that provides interfaces for users to problem-specific routines related to issues that arise in multiblock domains, particularly the filling of boundary conditions around a singularity. More...

#include <MultiblockRefineSchedule.h>

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

Public Member Functions

 MultiblockRefinePatchStrategy ()
 
virtual ~MultiblockRefinePatchStrategy ()
 
virtual void setPhysicalBoundaryConditions (hier::Patch< DIM > &patch, const double fill_time, const hier::IntVector< DIM > &ghost_width_to_fill)
 Set the physical boundary conditions. More...
 
virtual void fillSingularityBoundaryConditions (hier::Patch< DIM > &patch, tbox::List< typename MultiblockRefineSchedule< DIM >::SingularityPatch > &singularity_patches, const double fill_time, const hier::Box< DIM > &fill_box, const hier::BoundaryBox< DIM > &boundary_box)=0
 Set the ghost data at a multiblock singularity. More...
 
virtual hier::IntVector< DIM > getRefineOpStencilWidth () const =0
 
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
 

Detailed Description

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

Class MultiblockRefineSchedule<DIM> is an extension of the concept of xfer::RefineSchedule<DIM> to be used in applications that require a multiblock domain.

This class contains several constructors called from MultiblockRefineAlgorithm. In the fillData() routine, it first uses xfer::RefineSchedule<DIM> to fill data within the interiors of each block of the multiblock domain, then communicates or copies data to fill boundary conditions at the boundaries between blocks.

See also
MultiblockPatchHierarchy
MultiblockRefineAlgorithm
xfer::RefineSchedule

Constructor & Destructor Documentation

◆ MultiblockRefinePatchStrategy()

The constructor for patch strategy does nothing interesting.

◆ ~MultiblockRefinePatchStrategy()

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

The virtual destructor for refine strategy does nothing interesting.

Member Function Documentation

◆ setPhysicalBoundaryConditions()

template<int DIM>
virtual void SAMRAI::xfer::MultiblockRefinePatchStrategy< DIM >::setPhysicalBoundaryConditions ( hier::Patch< DIM > &  patch,
const double  fill_time,
const hier::IntVector< DIM > &  ghost_width_to_fill 
)
virtual
Parameters
patchThe patch containing the data to be filled
fill_timeSimulation time at which data is filled
ghost_width_to_fillmaximum number of ghost cells to fill

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

Reimplemented in SAMRAI::mesh::MultiblockGriddingTagger< DIM >.

◆ fillSingularityBoundaryConditions()

template<int DIM>
virtual void SAMRAI::xfer::MultiblockRefinePatchStrategy< DIM >::fillSingularityBoundaryConditions ( hier::Patch< DIM > &  patch,
tbox::List< typename MultiblockRefineSchedule< DIM >::SingularityPatch > &  singularity_patches,
const double  fill_time,
const hier::Box< DIM > &  fill_box,
const hier::BoundaryBox< DIM > &  boundary_box 
)
pure virtual
Parameters
patchThe patch containing the data to be filled
singularity_patchesstructures from refine schedule that contain patches that hold data from neighboring blocks around the singularity
fill_timeSimulation time at which data is filled
fill_boxBox covering maximum amount of ghost cells to be filled
boundary_boxBoundaryBox describing location of singularity in relation to patch

Implemented in SAMRAI::mesh::MultiblockGriddingTagger< DIM >.

◆ getRefineOpStencilWidth()

template<int DIM>
virtual hier::IntVector<DIM> SAMRAI::xfer::MultiblockRefinePatchStrategy< DIM >::getRefineOpStencilWidth ( ) const
pure virtual

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

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

Implemented in SAMRAI::mesh::MultiblockGriddingTagger< DIM >.

◆ preprocessRefine()

template<int DIM>
virtual void SAMRAI::xfer::MultiblockRefinePatchStrategy< 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.

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

Reimplemented in SAMRAI::mesh::MultiblockGriddingTagger< DIM >.

◆ postprocessRefine()

template<int DIM>
virtual void SAMRAI::xfer::MultiblockRefinePatchStrategy< DIM >::postprocessRefine ( 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 after 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.

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

Reimplemented in SAMRAI::mesh::MultiblockGriddingTagger< DIM >.

◆ setFillingCoarseScratch()

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

◆ setBlockNumber()

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

◆ getBlockNumber()

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

◆ clearBlockNumber()

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

◆ 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_filling_coarse_scratch

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

◆ d_block_number

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

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