IBAMR
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
|
Class CartCellDoubleQuadraticCFInterpolation is a concrete SAMRAI::xfer::RefinePatchStrategy which sets coarse-fine interface ghost cell values for cell-centered double precision patch data via quadratic interpolation in the normal and tangential directions at coarse-fine interfaces. More...
#include </home/runner/work/IBAMR/IBAMR/ibtk/include/ibtk/CartCellDoubleQuadraticCFInterpolation.h>
Public Member Functions | |
CartCellDoubleQuadraticCFInterpolation ()=default | |
Constructor. | |
~CartCellDoubleQuadraticCFInterpolation () | |
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 |
SAMRAI::hier::IntVector< NDIM > | getRefineOpStencilWidth () const override |
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 |
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 |
Public Member Functions inherited from IBTK::CoarseFineBoundaryRefinePatchStrategy | |
CoarseFineBoundaryRefinePatchStrategy ()=default | |
Constructor. | |
virtual | ~CoarseFineBoundaryRefinePatchStrategy ()=default |
Destructor. | |
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 | |
void | setConsistentInterpolationScheme (bool consistent_type_2_bdry) override |
void | setPatchDataIndex (int patch_data_index) override |
Reset the patch data index operated upon by this class. | |
void | setPatchDataIndices (const std::set< int > &patch_data_indices) override |
Reset the patch data indices operated upon by this class. | |
void | setPatchDataIndices (const SAMRAI::hier::ComponentSelector &patch_data_indices) override |
Reset the patch data indices operated upon by this class. | |
void | setPatchHierarchy (SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy) override |
void | clearPatchHierarchy () override |
void | computeNormalExtension (SAMRAI::hier::Patch< NDIM > &patch, const SAMRAI::hier::IntVector< NDIM > &ratio, const SAMRAI::hier::IntVector< NDIM > &ghost_width_to_fill) override |
Class CartCellDoubleQuadraticCFInterpolation is a concrete SAMRAI::xfer::RefinePatchStrategy which sets coarse-fine interface ghost cell values for cell-centered double precision patch data via quadratic interpolation in the normal and tangential directions at coarse-fine interfaces.
The postprocessRefine() function performs quadratic interpolation in the tangential direction using the values from O to fill in an approximation to A. The function computeNormalExtension() must be called to fill in a value at location G, which computes a quadratic interpolation using interior values x and the approximation at A.
Note: If this class is used in conjunction with RefineAlgorithm, to correctly fill in ghost cells, computeNormalExtension() must be called after RefineAlgorithm::refine() is completed.
Note: This class is specialized for the case of a single ghost cell width. Additional ghost cells are not guaranteed to be filled correctly.
|
overridevirtual |
Clear the patch hierarchy used in constructing coarse-fine interface boundary boxes.
Implements IBTK::CoarseFineBoundaryRefinePatchStrategy.
|
overridevirtual |
Compute the normal extension of fine data at coarse-fine interfaces. Performs quadratic interpolation in the normal direction to fill in ghost cells.
This function assumes that the first ghost cell is filled with a reasonable value, see the class description.
Implements IBTK::CoarseFineBoundaryRefinePatchStrategy.
|
overridevirtual |
Function to return maximum stencil width needed over user-defined data interpolation operations. This is needed to determine the correct interpolation data dependencies.
Implements IBTK::CoarseFineBoundaryRefinePatchStrategy.
|
overridevirtual |
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.
This function computes a quadratic approximation in the tangential direction. To complete the approximation of ghost cells, computeNormalExtension() must be called after postprocessRefine().
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. |
Implements IBTK::CoarseFineBoundaryRefinePatchStrategy.
|
overridevirtual |
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.
Presently, the implementation does nothing.
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. |
Implements IBTK::CoarseFineBoundaryRefinePatchStrategy.
|
overridevirtual |
Whether or not to employ a consistent interpolation scheme at "Type 2" coarse-fine interface ghost cells.
Implements IBTK::CoarseFineBoundaryRefinePatchStrategy.
|
overridevirtual |
Set the patch hierarchy used in constructing coarse-fine interface boundary boxes.
Implements IBTK::CoarseFineBoundaryRefinePatchStrategy.
|
overridevirtual |
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.
Presently, the implementation does nothing.
patch | Patch on which to fill boundary data. |
fill_time | Double simulation time for boundary filling. |
ghost_width_to_fill | Integer vector describing maximum ghost width to fill over all registered scratch components. |
Implements IBTK::CoarseFineBoundaryRefinePatchStrategy.