IBAMR
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
Public Member Functions | List of all members
IBTK::CoarseFineBoundaryRefinePatchStrategy Class Referenceabstract

Class CoarseFineBoundaryRefinePatchStrategy is a subclass of the abstract base class SAMRAI::xfer::RefinePatchStrategy that extends the functionality of SAMRAI::xfer::RefinePatchStrategy to facilitate the implementation of coarse-fine interface discretizations. More...

#include </home/runner/work/IBAMR/IBAMR/ibtk/include/ibtk/CoarseFineBoundaryRefinePatchStrategy.h>

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

Public Member Functions

 CoarseFineBoundaryRefinePatchStrategy ()=default
 Constructor.
 
virtual ~CoarseFineBoundaryRefinePatchStrategy ()=default
 Destructor.
 
SAMRAI::xfer::RefinePatchStrategy interface.
void setPhysicalBoundaryConditions (SAMRAI::hier::Patch< NDIM > &patch, double fill_time, const SAMRAI::hier::IntVector< NDIM > &ghost_width_to_fill) override=0
 
SAMRAI::hier::IntVector< NDIM > getRefineOpStencilWidth () const override=0
 
void preprocessRefine (SAMRAI::hier::Patch< NDIM > &fine, const SAMRAI::hier::Patch< NDIM > &coarse, const SAMRAI::hier::Box< NDIM > &fine_box, const SAMRAI::hier::IntVector< NDIM > &ratio) override=0
 
void postprocessRefine (SAMRAI::hier::Patch< NDIM > &fine, const SAMRAI::hier::Patch< NDIM > &coarse, const SAMRAI::hier::Box< NDIM > &fine_box, const SAMRAI::hier::IntVector< NDIM > &ratio) override=0
 
- Public Member Functions inherited from SAMRAI::xfer::RefinePatchStrategy< NDIM >
virtual void preprocessRefineBoxes (hier::Patch< NDIM > &fine, const hier::Patch< NDIM > &coarse, const hier::BoxList< NDIM > &fine_boxes, const hier::IntVector< NDIM > &ratio)
 
virtual void postprocessRefineBoxes (hier::Patch< NDIM > &fine, const hier::Patch< NDIM > &coarse, const hier::BoxList< NDIM > &fine_boxes, const hier::IntVector< NDIM > &ratio)
 

Extension of SAMRAI::xfer::RefinePatchStrategy interface to support more

complex coarse-fine interface discretizations.

virtual void setConsistentInterpolationScheme (bool consistent_type_2_bdry)=0
 
virtual void setPatchDataIndex (int patch_data_index)=0
 Reset the patch data index operated upon by this class.
 
virtual void setPatchDataIndices (const std::set< int > &patch_data_indices)=0
 Reset the patch data indices operated upon by this class.
 
virtual void setPatchDataIndices (const SAMRAI::hier::ComponentSelector &patch_data_indices)=0
 Reset the patch data indices operated upon by this class.
 
virtual void setPatchHierarchy (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy)=0
 
virtual void clearPatchHierarchy ()=0
 
virtual void computeNormalExtension (SAMRAI::hier::Patch< NDIM > &patch, const SAMRAI::hier::IntVector< NDIM > &ratio, const SAMRAI::hier::IntVector< NDIM > &ghost_width_to_fill)=0
 

Detailed Description

Class CoarseFineBoundaryRefinePatchStrategy is a subclass of the abstract base class SAMRAI::xfer::RefinePatchStrategy that extends the functionality of SAMRAI::xfer::RefinePatchStrategy to facilitate the implementation of coarse-fine interface discretizations.

Member Function Documentation

◆ clearPatchHierarchy()

virtual void IBTK::CoarseFineBoundaryRefinePatchStrategy::clearPatchHierarchy ( )
pure virtual

Clear the patch hierarchy used in constructing coarse-fine interface boundary boxes.

Implemented in IBTK::CartSideDoubleQuadraticCFInterpolation, IBTK::CartCellDoubleQuadraticCFInterpolation, and IBTK::CartCellDoubleLinearCFInterpolation.

◆ computeNormalExtension()

virtual void IBTK::CoarseFineBoundaryRefinePatchStrategy::computeNormalExtension ( SAMRAI::hier::Patch< NDIM > &  patch,
const SAMRAI::hier::IntVector< NDIM > &  ratio,
const SAMRAI::hier::IntVector< NDIM > &  ghost_width_to_fill 
)
pure virtual

Compute the normal extension of fine data at coarse-fine interfaces.

Implemented in IBTK::CartSideDoubleQuadraticCFInterpolation, IBTK::CartCellDoubleQuadraticCFInterpolation, and IBTK::CartCellDoubleLinearCFInterpolation.

◆ getRefineOpStencilWidth()

SAMRAI::hier::IntVector<NDIM> IBTK::CoarseFineBoundaryRefinePatchStrategy::getRefineOpStencilWidth ( ) const
overridepure virtual

Function to return maximum stencil width needed over user-defined data interpolation operations. This is needed to determine the correct interpolation data dependencies.

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

Implemented in IBTK::CartSideDoubleQuadraticCFInterpolation, IBTK::CartCellDoubleQuadraticCFInterpolation, and IBTK::CartCellDoubleLinearCFInterpolation.

◆ postprocessRefine()

void IBTK::CoarseFineBoundaryRefinePatchStrategy::postprocessRefine ( SAMRAI::hier::Patch< NDIM > &  fine,
const SAMRAI::hier::Patch< NDIM > &  coarse,
const SAMRAI::hier::Box< NDIM > &  fine_box,
const SAMRAI::hier::IntVector< NDIM > &  ratio 
)
overridepure virtual

Function to perform user-defined postprocess data refine operations. This member function is called after standard refine operations (expressed using concrete subclasses of the SAMRAI::xfer::RefineOperator 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 SAMRAI::xfer::RefineAlgorithm 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< NDIM >.

Implemented in IBTK::CartSideDoubleQuadraticCFInterpolation, IBTK::CartCellDoubleQuadraticCFInterpolation, and IBTK::CartCellDoubleLinearCFInterpolation.

◆ preprocessRefine()

void IBTK::CoarseFineBoundaryRefinePatchStrategy::preprocessRefine ( SAMRAI::hier::Patch< NDIM > &  fine,
const SAMRAI::hier::Patch< NDIM > &  coarse,
const SAMRAI::hier::Box< NDIM > &  fine_box,
const SAMRAI::hier::IntVector< NDIM > &  ratio 
)
overridepure virtual

Function to perform user-defined preprocess data refine operations. This member function is called before standard refine operations (expressed using concrete subclasses of the SAMRAI::xfer::RefineOperator 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 SAMRAI::xfer::RefineAlgorithm 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< NDIM >.

Implemented in IBTK::CartSideDoubleQuadraticCFInterpolation, IBTK::CartCellDoubleQuadraticCFInterpolation, and IBTK::CartCellDoubleLinearCFInterpolation.

◆ setConsistentInterpolationScheme()

virtual void IBTK::CoarseFineBoundaryRefinePatchStrategy::setConsistentInterpolationScheme ( bool  consistent_type_2_bdry)
pure virtual

Whether or not to employ a consistent interpolation scheme at "Type 2" coarse-fine interface ghost cells.

Note
This subclasses may choose not to support a consistent "Type 2" coarse-fine interface ghost cell interpolation scheme.

Implemented in IBTK::CartSideDoubleQuadraticCFInterpolation, IBTK::CartCellDoubleQuadraticCFInterpolation, and IBTK::CartCellDoubleLinearCFInterpolation.

◆ setPatchHierarchy()

virtual void IBTK::CoarseFineBoundaryRefinePatchStrategy::setPatchHierarchy ( SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > >  hierarchy)
pure virtual

Set the patch hierarchy used in constructing coarse-fine interface boundary boxes.

Implemented in IBTK::CartSideDoubleQuadraticCFInterpolation, IBTK::CartCellDoubleQuadraticCFInterpolation, and IBTK::CartCellDoubleLinearCFInterpolation.

◆ setPhysicalBoundaryConditions()

void IBTK::CoarseFineBoundaryRefinePatchStrategy::setPhysicalBoundaryConditions ( SAMRAI::hier::Patch< NDIM > &  patch,
double  fill_time,
const SAMRAI::hier::IntVector< NDIM > &  ghost_width_to_fill 
)
overridepure virtual

Function to set data associated with the given list of patch data indices at patch boundaries that intersect the physical domain boundary. The patch data components set in this routine correspond to the "scratch" components specified in calls to the registerRefine() function in the SAMRAI::xfer::RefineAlgorithm class.

Parameters
patchPatch on which to fill boundary data.
fill_timeDouble simulation time for boundary filling.
ghost_width_to_fillInteger vector describing maximum ghost width to fill over all registered scratch components.

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

Implemented in IBTK::CartSideDoubleQuadraticCFInterpolation, IBTK::CartCellDoubleQuadraticCFInterpolation, and IBTK::CartCellDoubleLinearCFInterpolation.


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