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

#include <RefineOperator.h>

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

Public Member Functions

 RefineOperator ()
 
virtual ~RefineOperator ()
 
virtual bool findRefineOperator (const tbox::Pointer< hier::Variable< DIM > > &var, const std::string &op_name) const =0
 
virtual const std::string & getOperatorName () const =0
 
virtual int getOperatorPriority () const =0
 
virtual hier::IntVector< DIM > getStencilWidth () const =0
 
virtual void refine (hier::Patch< DIM > &fine, const hier::Patch< DIM > &coarse, const int dst_component, const int src_component, const hier::Box< DIM > &fine_box, const hier::IntVector< DIM > &ratio) const =0
 

Private Member Functions

 RefineOperator (const RefineOperator< DIM > &)
 
void operator= (const RefineOperator< DIM > &)
 

Detailed Description

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

Class RefineOperator<DIM> is an abstract base class for each spatial refinement operator used in the SAMRAI framework. This class defines the interface between numerical refinement routines and the rest of the framework. Each concrete refinement operator subclass must provide three four operations:

To add a new refinement operator (either for a new patch data type or for a new time refinement routine on an existing type), define the operator by inheriting from this abstract base class. The operator subclass must implement the refinement operation in the refine() fnction, and provide a response to a general operator request in the findRefineOperator() function. The stencil width and operator priority must be returned from the getStencilWidth() and getOperatorPriority() functions, respectively. Then, the new operator must be added to the operator list for the appropriate transfer geometry object using the Geometry<DIM>::addSpatialRefineOperator() function.

Since spatial refinement operators usually depend on patch data centering and data type as well as the mesh coordinate system, they are defined in the geometry package.

See also
xfer::Geometry

Constructor & Destructor Documentation

◆ RefineOperator() [1/2]

template<int DIM>
SAMRAI::xfer::RefineOperator< DIM >::RefineOperator ( )

The default constructor for the refinement operator does nothing interesting.

◆ ~RefineOperator()

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

The virtual destructor for the refinement operator does nothing interesting.

◆ RefineOperator() [2/2]

template<int DIM>
SAMRAI::xfer::RefineOperator< DIM >::RefineOperator ( const RefineOperator< DIM > &  )
private

Member Function Documentation

◆ findRefineOperator()

template<int DIM>
virtual bool SAMRAI::xfer::RefineOperator< DIM >::findRefineOperator ( const tbox::Pointer< hier::Variable< DIM > > &  var,
const std::string &  op_name 
) const
pure virtual

Return true if the refinement operation matches the variable and name string identifier request; false, otherwise.

Implemented in SAMRAI::geom::CartesianCellComplexConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianCellDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianCellFloatConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianEdgeDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianEdgeFloatConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianFaceDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianFaceFloatConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianSideDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianSideFloatConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianCellDoubleConservativeLinearRefine< NDIM >, SAMRAI::geom::CartesianCellComplexLinearRefine< DIM >, SAMRAI::geom::CartesianCellDoubleLinearRefine< DIM >, SAMRAI::geom::CartesianCellFloatLinearRefine< DIM >, SAMRAI::geom::CartesianNodeComplexLinearRefine< DIM >, SAMRAI::geom::CartesianNodeDoubleLinearRefine< DIM >, SAMRAI::geom::CartesianNodeFloatLinearRefine< DIM >, SAMRAI::pdat::CellComplexConstantRefine< DIM >, SAMRAI::pdat::CellDoubleConstantRefine< DIM >, SAMRAI::pdat::CellFloatConstantRefine< DIM >, SAMRAI::pdat::CellIntegerConstantRefine< DIM >, SAMRAI::pdat::EdgeComplexConstantRefine< DIM >, SAMRAI::pdat::EdgeDoubleConstantRefine< DIM >, SAMRAI::pdat::EdgeFloatConstantRefine< DIM >, SAMRAI::pdat::EdgeIntegerConstantRefine< DIM >, SAMRAI::pdat::FaceComplexConstantRefine< DIM >, SAMRAI::pdat::FaceDoubleConstantRefine< DIM >, SAMRAI::pdat::FaceFloatConstantRefine< DIM >, SAMRAI::pdat::FaceIntegerConstantRefine< DIM >, SAMRAI::pdat::OuterfaceComplexConstantRefine< DIM >, SAMRAI::pdat::OuterfaceDoubleConstantRefine< DIM >, SAMRAI::pdat::OuterfaceFloatConstantRefine< DIM >, SAMRAI::pdat::OuterfaceIntegerConstantRefine< DIM >, SAMRAI::pdat::SideComplexConstantRefine< DIM >, SAMRAI::pdat::SideDoubleConstantRefine< DIM >, SAMRAI::pdat::SideFloatConstantRefine< DIM >, SAMRAI::pdat::SideIntegerConstantRefine< DIM >, SAMRAI::pdat::CellDoubleConstantRefine< NDIM >, and SAMRAI::geom::SkeletonRefine< DIM >.

◆ getOperatorName()

template<int DIM>
virtual const std::string& SAMRAI::xfer::RefineOperator< DIM >::getOperatorName ( ) const
pure virtual

Return name string identifier of the refinement operation.

Implemented in SAMRAI::geom::CartesianEdgeFloatConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianCellComplexConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianCellDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianCellFloatConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianEdgeDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianFaceDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianFaceFloatConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianSideDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianSideFloatConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianCellComplexLinearRefine< DIM >, SAMRAI::geom::CartesianCellDoubleLinearRefine< DIM >, SAMRAI::geom::CartesianCellFloatLinearRefine< DIM >, SAMRAI::geom::CartesianNodeComplexLinearRefine< DIM >, SAMRAI::geom::CartesianNodeDoubleLinearRefine< DIM >, SAMRAI::geom::CartesianNodeFloatLinearRefine< DIM >, SAMRAI::pdat::CellComplexConstantRefine< DIM >, SAMRAI::pdat::CellDoubleConstantRefine< DIM >, SAMRAI::pdat::CellFloatConstantRefine< DIM >, SAMRAI::pdat::CellIntegerConstantRefine< DIM >, SAMRAI::pdat::EdgeComplexConstantRefine< DIM >, SAMRAI::pdat::EdgeDoubleConstantRefine< DIM >, SAMRAI::pdat::EdgeFloatConstantRefine< DIM >, SAMRAI::pdat::EdgeIntegerConstantRefine< DIM >, SAMRAI::pdat::FaceComplexConstantRefine< DIM >, SAMRAI::pdat::FaceDoubleConstantRefine< DIM >, SAMRAI::pdat::FaceFloatConstantRefine< DIM >, SAMRAI::pdat::FaceIntegerConstantRefine< DIM >, SAMRAI::pdat::OuterfaceComplexConstantRefine< DIM >, SAMRAI::pdat::OuterfaceDoubleConstantRefine< DIM >, SAMRAI::pdat::OuterfaceFloatConstantRefine< DIM >, SAMRAI::pdat::OuterfaceIntegerConstantRefine< DIM >, SAMRAI::pdat::SideComplexConstantRefine< DIM >, SAMRAI::pdat::SideDoubleConstantRefine< DIM >, SAMRAI::pdat::SideFloatConstantRefine< DIM >, SAMRAI::pdat::SideIntegerConstantRefine< DIM >, and SAMRAI::geom::SkeletonRefine< DIM >.

◆ getOperatorPriority()

template<int DIM>
virtual int SAMRAI::xfer::RefineOperator< DIM >::getOperatorPriority ( ) const
pure virtual

Return the priority of this operator relative to other refinement operators. The SAMRAI transfer routines guarantee that refinement using operators with lower priority will be performed before those with higher priority.

Implemented in SAMRAI::geom::CartesianCellComplexConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianCellDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianCellFloatConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianEdgeDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianFaceDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianFaceFloatConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianSideDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianSideFloatConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianCellComplexLinearRefine< DIM >, SAMRAI::geom::CartesianCellDoubleLinearRefine< DIM >, SAMRAI::geom::CartesianCellFloatLinearRefine< DIM >, SAMRAI::geom::CartesianNodeComplexLinearRefine< DIM >, SAMRAI::geom::CartesianNodeDoubleLinearRefine< DIM >, SAMRAI::geom::CartesianNodeFloatLinearRefine< DIM >, SAMRAI::pdat::CellComplexConstantRefine< DIM >, SAMRAI::pdat::CellDoubleConstantRefine< DIM >, SAMRAI::pdat::CellFloatConstantRefine< DIM >, SAMRAI::pdat::CellIntegerConstantRefine< DIM >, SAMRAI::pdat::EdgeComplexConstantRefine< DIM >, SAMRAI::pdat::EdgeDoubleConstantRefine< DIM >, SAMRAI::pdat::EdgeFloatConstantRefine< DIM >, SAMRAI::pdat::EdgeIntegerConstantRefine< DIM >, SAMRAI::pdat::FaceComplexConstantRefine< DIM >, SAMRAI::pdat::FaceDoubleConstantRefine< DIM >, SAMRAI::pdat::FaceFloatConstantRefine< DIM >, SAMRAI::pdat::FaceIntegerConstantRefine< DIM >, SAMRAI::pdat::OuterfaceComplexConstantRefine< DIM >, SAMRAI::pdat::OuterfaceDoubleConstantRefine< DIM >, SAMRAI::pdat::OuterfaceFloatConstantRefine< DIM >, SAMRAI::pdat::OuterfaceIntegerConstantRefine< DIM >, SAMRAI::pdat::SideComplexConstantRefine< DIM >, SAMRAI::pdat::SideDoubleConstantRefine< DIM >, SAMRAI::pdat::SideFloatConstantRefine< DIM >, SAMRAI::pdat::SideIntegerConstantRefine< DIM >, SAMRAI::geom::SkeletonRefine< DIM >, and SAMRAI::geom::CartesianEdgeFloatConservativeLinearRefine< DIM >.

◆ getStencilWidth()

template<int DIM>
virtual hier::IntVector<DIM> SAMRAI::xfer::RefineOperator< DIM >::getStencilWidth ( ) const
pure virtual

Return the stencil width associated with the refinement operator. The SAMRAI transfer routines guarantee that the source patch will contain sufficient ghost cell data surrounding the interior to satisfy the stencil width requirements for each refinement operator.

Implemented in SAMRAI::geom::CartesianCellComplexConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianCellDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianCellFloatConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianEdgeDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianEdgeFloatConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianFaceDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianFaceFloatConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianSideDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianSideFloatConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianCellComplexLinearRefine< DIM >, SAMRAI::geom::CartesianCellDoubleLinearRefine< DIM >, SAMRAI::geom::CartesianCellFloatLinearRefine< DIM >, SAMRAI::geom::CartesianNodeComplexLinearRefine< DIM >, SAMRAI::geom::CartesianNodeDoubleLinearRefine< DIM >, SAMRAI::geom::CartesianNodeFloatLinearRefine< DIM >, SAMRAI::pdat::CellComplexConstantRefine< DIM >, SAMRAI::pdat::CellDoubleConstantRefine< DIM >, SAMRAI::pdat::CellFloatConstantRefine< DIM >, SAMRAI::pdat::CellIntegerConstantRefine< DIM >, SAMRAI::pdat::EdgeComplexConstantRefine< DIM >, SAMRAI::pdat::EdgeDoubleConstantRefine< DIM >, SAMRAI::pdat::EdgeFloatConstantRefine< DIM >, SAMRAI::pdat::EdgeIntegerConstantRefine< DIM >, SAMRAI::pdat::FaceComplexConstantRefine< DIM >, SAMRAI::pdat::FaceDoubleConstantRefine< DIM >, SAMRAI::pdat::FaceFloatConstantRefine< DIM >, SAMRAI::pdat::FaceIntegerConstantRefine< DIM >, SAMRAI::pdat::OuterfaceComplexConstantRefine< DIM >, SAMRAI::pdat::OuterfaceDoubleConstantRefine< DIM >, SAMRAI::pdat::OuterfaceFloatConstantRefine< DIM >, SAMRAI::pdat::OuterfaceIntegerConstantRefine< DIM >, SAMRAI::pdat::SideComplexConstantRefine< DIM >, SAMRAI::pdat::SideDoubleConstantRefine< DIM >, SAMRAI::pdat::SideFloatConstantRefine< DIM >, SAMRAI::pdat::SideIntegerConstantRefine< DIM >, and SAMRAI::geom::SkeletonRefine< DIM >.

◆ refine()

template<int DIM>
virtual void SAMRAI::xfer::RefineOperator< DIM >::refine ( hier::Patch< DIM > &  fine,
const hier::Patch< DIM > &  coarse,
const int  dst_component,
const int  src_component,
const hier::Box< DIM > &  fine_box,
const hier::IntVector< DIM > &  ratio 
) const
pure virtual

Refine the source component on the coarse patch to the destination component on the fine patch. The refinement operation is performed on the intersection of the destination patch and the fine box. The coarse patch is guaranteed to contain sufficient data for the stencil width of the refinement operator.

Implemented in SAMRAI::geom::CartesianCellComplexConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianCellDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianCellFloatConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianEdgeDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianEdgeFloatConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianFaceDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianFaceFloatConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianSideDoubleConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianSideFloatConservativeLinearRefine< DIM >, SAMRAI::geom::CartesianCellDoubleConservativeLinearRefine< NDIM >, SAMRAI::geom::CartesianCellComplexLinearRefine< DIM >, SAMRAI::geom::CartesianCellDoubleLinearRefine< DIM >, SAMRAI::geom::CartesianCellFloatLinearRefine< DIM >, SAMRAI::geom::CartesianNodeComplexLinearRefine< DIM >, SAMRAI::geom::CartesianNodeDoubleLinearRefine< DIM >, SAMRAI::geom::CartesianNodeFloatLinearRefine< DIM >, SAMRAI::pdat::CellComplexConstantRefine< DIM >, SAMRAI::pdat::CellDoubleConstantRefine< DIM >, SAMRAI::pdat::CellFloatConstantRefine< DIM >, SAMRAI::pdat::CellIntegerConstantRefine< DIM >, SAMRAI::pdat::EdgeComplexConstantRefine< DIM >, SAMRAI::pdat::EdgeDoubleConstantRefine< DIM >, SAMRAI::pdat::EdgeFloatConstantRefine< DIM >, SAMRAI::pdat::EdgeIntegerConstantRefine< DIM >, SAMRAI::pdat::FaceComplexConstantRefine< DIM >, SAMRAI::pdat::FaceDoubleConstantRefine< DIM >, SAMRAI::pdat::FaceFloatConstantRefine< DIM >, SAMRAI::pdat::FaceIntegerConstantRefine< DIM >, SAMRAI::pdat::OuterfaceComplexConstantRefine< DIM >, SAMRAI::pdat::OuterfaceDoubleConstantRefine< DIM >, SAMRAI::pdat::OuterfaceFloatConstantRefine< DIM >, SAMRAI::pdat::OuterfaceIntegerConstantRefine< DIM >, SAMRAI::pdat::SideComplexConstantRefine< DIM >, SAMRAI::pdat::SideDoubleConstantRefine< DIM >, SAMRAI::pdat::SideFloatConstantRefine< DIM >, SAMRAI::pdat::SideIntegerConstantRefine< DIM >, SAMRAI::pdat::CellDoubleConstantRefine< NDIM >, and SAMRAI::geom::SkeletonRefine< DIM >.

◆ operator=()

template<int DIM>
void SAMRAI::xfer::RefineOperator< DIM >::operator= ( const RefineOperator< DIM > &  )
private

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