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

#include <ibtk/SideSynchCopyFillPattern.h>

Inheritance diagram for SAMRAI::hier::BoxOverlap< DIM >:
Inheritance graph
[legend]

Public Member Functions

 BoxOverlap ()
 
virtual ~BoxOverlap ()
 
virtual bool isOverlapEmpty () const =0
 
virtual const IntVector< DIM > & getSourceOffset () const =0
 
virtual void print (std::ostream &os) const
 

Private Member Functions

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

Detailed Description

template<int DIM>
class SAMRAI::hier::BoxOverlap< DIM >

Class BoxOverlap<DIM> is an abstract base class used to represent the intersections between two AMR boxes. The exact form of the overlap is determined by the particular geometry implemented by the subclass. For example, the rules for intersecting face centered boxes is very different from that for cell centered boxes.

The BoxOverlap<DIM> class provides two functions. First, it serves as a base class that can answer the question whether an intersection is empty, and is therefore useful for determining communication dependencies. Second, it is a storage location for the exact form of the intersection of the data residing on two boxes, which can be quite complicated (for example, for face centered boxes). In the second case, access to the intersection data is via narrowing the interface via type-safe type casting and using the subclass member functions.

See also
hier::BoxGeometry

Constructor & Destructor Documentation

◆ BoxOverlap() [1/2]

template<int DIM>
SAMRAI::hier::BoxOverlap< DIM >::BoxOverlap ( )

The default constructor for BoxOverlap<DIM> does nothing interesting.

◆ ~BoxOverlap()

template<int DIM>
virtual SAMRAI::hier::BoxOverlap< DIM >::~BoxOverlap ( )
virtual

The virtual destructor does nothing interesting.

◆ BoxOverlap() [2/2]

template<int DIM>
SAMRAI::hier::BoxOverlap< DIM >::BoxOverlap ( const BoxOverlap< DIM > &  )
private

Member Function Documentation

◆ isOverlapEmpty()

template<int DIM>
virtual bool SAMRAI::hier::BoxOverlap< DIM >::isOverlapEmpty ( ) const
pure virtual

Return true if intersecting boxes have no communication dependencies. Note that two boxes may communicate even if they do not intersect in the underlying AMR index space (e.g., if data values exist at the outside portions of the cells).

Implemented in SAMRAI::pdat::CellOverlap< DIM >, SAMRAI::pdat::EdgeOverlap< DIM >, SAMRAI::pdat::FaceOverlap< DIM >, SAMRAI::pdat::NodeOverlap< DIM >, and SAMRAI::pdat::SideOverlap< DIM >.

◆ getSourceOffset()

template<int DIM>
virtual const IntVector<DIM>& SAMRAI::hier::BoxOverlap< DIM >::getSourceOffset ( ) const
pure virtual

Return the offset between the destination and source index spaces. The destination index space is the source index space shifted by this amount.

Implemented in SAMRAI::pdat::CellOverlap< DIM >, SAMRAI::pdat::EdgeOverlap< DIM >, SAMRAI::pdat::FaceOverlap< DIM >, SAMRAI::pdat::SideOverlap< DIM >, and SAMRAI::pdat::NodeOverlap< DIM >.

◆ print()

template<int DIM>
virtual void SAMRAI::hier::BoxOverlap< DIM >::print ( std::ostream &  os) const
virtual

Output the box overlap.

Reimplemented in SAMRAI::pdat::CellOverlap< DIM >.

◆ operator=()

template<int DIM>
void SAMRAI::hier::BoxOverlap< DIM >::operator= ( const BoxOverlap< DIM > &  )
private

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