IBAMR  IBAMR version 0.19.
Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
SAMRAI::pdat::OuternodeGeometry< DIM > Class Template Referenceabstract

#include <OuternodeGeometry.h>

Inheritance diagram for SAMRAI::pdat::OuternodeGeometry< DIM >:
Inheritance graph
[legend]

Public Types

typedef NodeOverlap< DIM > Overlap
 

Public Member Functions

 OuternodeGeometry (const hier::Box< DIM > &box, const hier::IntVector< DIM > &ghosts)
 Construct an outernode geometry object given an AMR index space box and ghost cell width. More...
 
virtual ~OuternodeGeometry ()
 The virtual destructor does nothing interesting. More...
 
virtual tbox::Pointer< hier::BoxOverlap< DIM > > calculateOverlap (const hier::BoxGeometry< DIM > &dst_geometry, const hier::BoxGeometry< DIM > &src_geometry, const hier::Box< DIM > &src_mask, const bool overwrite_interior, const hier::IntVector< DIM > &src_offset, const bool retry) const
 Compute the overlap in node-centered index space on the boundaries of the source box geometry and the destination box geometry. More...
 
const hier::Box< DIM > & getBox () const
 Return the box for this outernode box geometry object. More...
 
const hier::IntVector< DIM > & getGhosts () const
 Return the ghost cell width for this outernode box geometry object. More...
 
tbox::Pointer< BoxOverlap< DIM > > calculateOverlap (const BoxGeometry< DIM > &src_geometry, const Box< DIM > &src_mask, const bool overwrite_interior, const IntVector< DIM > &src_offset) const
 
virtual tbox::Pointer< BoxOverlap< DIM > > calculateOverlap (const BoxGeometry< DIM > &dst_geometry, const BoxGeometry< DIM > &src_geometry, const Box< DIM > &src_mask, const bool overwrite_interior, const IntVector< DIM > &src_offset, const bool retry) const =0
 

Private Member Functions

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

Static Private Member Functions

static tbox::Pointer< hier::BoxOverlap< DIM > > doOverlap (const NodeGeometry< DIM > &dst_geometry, const OuternodeGeometry< DIM > &src_geometry, const hier::Box< DIM > &src_mask, const bool overwrite_interior, const hier::IntVector< DIM > &src_offset)
 Compute the overlap between the source and destination objects, where the source has outernode geometry and the destination node geometry. More...
 
static tbox::Pointer< hier::BoxOverlap< DIM > > doOverlap (const OuternodeGeometry< DIM > &dst_geometry, const NodeGeometry< DIM > &src_geometry, const hier::Box< DIM > &src_mask, const bool overwrite_interior, const hier::IntVector< DIM > &src_offset)
 Compute the overlap between the source and destination objects, where the source has node geometry and the destination outernode geometry. More...
 
static tbox::Pointer< hier::BoxOverlap< DIM > > doOverlap (const OuternodeGeometry< DIM > &dst_geometry, const OuternodeGeometry< DIM > &src_geometry, const hier::Box< DIM > &src_mask, const bool overwrite_interior, const hier::IntVector< DIM > &src_offset)
 Compute the overlap between the source and destination objects, where the source has outernode geometry and the destination outernode geometry. More...
 

Private Attributes

hier::Box< DIM > d_box
 
hier::IntVector< DIM > d_ghosts
 

Detailed Description

template<int DIM>
class SAMRAI::pdat::OuternodeGeometry< DIM >

Class OuternodeGeometry<DIM> manages the mapping between the AMR index and the outernode geometry index space. It is a subclass of hier::BoxGeometry<DIM> and it computes intersections between outernode box geometries and node or outernode box geometries for communication operations.

See header file for OuternodeData<DIM> class for a more detailed description of the data layout.

See also
hier::BoxGeometry
pdat::NodeGeometry
pdat::NodeOverlap

Member Typedef Documentation

◆ Overlap

template<int DIM>
typedef NodeOverlap<DIM> SAMRAI::pdat::OuternodeGeometry< DIM >::Overlap

The BoxOverlap implemenation for this geometry.

Constructor & Destructor Documentation

◆ OuternodeGeometry() [1/2]

template<int DIM>
SAMRAI::pdat::OuternodeGeometry< DIM >::OuternodeGeometry ( const hier::Box< DIM > &  box,
const hier::IntVector< DIM > &  ghosts 
)

◆ ~OuternodeGeometry()

template<int DIM>
virtual SAMRAI::pdat::OuternodeGeometry< DIM >::~OuternodeGeometry ( )
virtual

◆ OuternodeGeometry() [2/2]

template<int DIM>
SAMRAI::pdat::OuternodeGeometry< DIM >::OuternodeGeometry ( const OuternodeGeometry< DIM > &  )
private

Not implemented

Member Function Documentation

◆ calculateOverlap() [1/3]

template<int DIM>
virtual tbox::Pointer<hier::BoxOverlap<DIM> > SAMRAI::pdat::OuternodeGeometry< DIM >::calculateOverlap ( const hier::BoxGeometry< DIM > &  dst_geometry,
const hier::BoxGeometry< DIM > &  src_geometry,
const hier::Box< DIM > &  src_mask,
const bool  overwrite_interior,
const hier::IntVector< DIM > &  src_offset,
const bool  retry 
) const
virtual

◆ getBox()

template<int DIM>
const hier::Box<DIM>& SAMRAI::pdat::OuternodeGeometry< DIM >::getBox ( ) const

◆ getGhosts()

template<int DIM>
const hier::IntVector<DIM>& SAMRAI::pdat::OuternodeGeometry< DIM >::getGhosts ( ) const

◆ doOverlap() [1/3]

template<int DIM>
static tbox::Pointer< hier::BoxOverlap<DIM> > SAMRAI::pdat::OuternodeGeometry< DIM >::doOverlap ( const NodeGeometry< DIM > &  dst_geometry,
const OuternodeGeometry< DIM > &  src_geometry,
const hier::Box< DIM > &  src_mask,
const bool  overwrite_interior,
const hier::IntVector< DIM > &  src_offset 
)
staticprivate

◆ doOverlap() [2/3]

template<int DIM>
static tbox::Pointer< hier::BoxOverlap<DIM> > SAMRAI::pdat::OuternodeGeometry< DIM >::doOverlap ( const OuternodeGeometry< DIM > &  dst_geometry,
const NodeGeometry< DIM > &  src_geometry,
const hier::Box< DIM > &  src_mask,
const bool  overwrite_interior,
const hier::IntVector< DIM > &  src_offset 
)
staticprivate

◆ doOverlap() [3/3]

template<int DIM>
static tbox::Pointer< hier::BoxOverlap<DIM> > SAMRAI::pdat::OuternodeGeometry< DIM >::doOverlap ( const OuternodeGeometry< DIM > &  dst_geometry,
const OuternodeGeometry< DIM > &  src_geometry,
const hier::Box< DIM > &  src_mask,
const bool  overwrite_interior,
const hier::IntVector< DIM > &  src_offset 
)
staticprivate

◆ operator=()

template<int DIM>
void SAMRAI::pdat::OuternodeGeometry< DIM >::operator= ( const OuternodeGeometry< DIM > &  )
private

Not implemented

◆ calculateOverlap() [2/3]

template<int DIM>
tbox::Pointer< BoxOverlap<DIM> > SAMRAI::hier::BoxGeometry< DIM >::calculateOverlap ( const BoxGeometry< DIM > &  src_geometry,
const Box< DIM > &  src_mask,
const bool  overwrite_interior,
const IntVector< DIM > &  src_offset 
) const
inherited

Calculate the overlap between two box geometry objects given the source and destination (given by this) geometries, a source mask, the priority overwrite flag, and an offset between source and destination index spaces. The box overlap description returned by this function will be used in later copy and pack/unpack calls on the patch data object. The offset is from the source space into the destination index space. That is, if p is in the source index space, then p + sourceOffset is the corresponding point in the destination index space. The overwrite flag is used to represent priority between patches. If it is set, then the copy is allowed to modify the interior of the destination region. Note that the source and destination box geometries encode the geometry of the box that they represent; thus, it is possible to calculate intersections between different geometries. This will be necessary when copying data from flux sum counters into a face centered array in the AMR flux synchronization algorithm.

◆ calculateOverlap() [3/3]

template<int DIM>
virtual tbox::Pointer< BoxOverlap<DIM> > SAMRAI::hier::BoxGeometry< DIM >::calculateOverlap ( const BoxGeometry< DIM > &  dst_geometry,
const BoxGeometry< DIM > &  src_geometry,
const Box< DIM > &  src_mask,
const bool  overwrite_interior,
const IntVector< DIM > &  src_offset,
const bool  retry 
) const
pure virtualinherited

Calculate the overlap between two box geometry objects given the source and destination geometries. This form calculateOverlap() is redefined by the subclasses of BoxGeometry<DIM> for the appropriate intersection algorithms. If calculateOverlap() cannot compute the intersection between the two given geometries and retry is true, then calculateOverlap() is called on the destination geometry object with retry set to false (to avoid infinite recursion). This protocol makes it possible to add new box geometry types and still calculate intersections with existing box geometry types.

Member Data Documentation

◆ d_box

template<int DIM>
hier::Box<DIM> SAMRAI::pdat::OuternodeGeometry< DIM >::d_box
private

◆ d_ghosts

template<int DIM>
hier::IntVector<DIM> SAMRAI::pdat::OuternodeGeometry< DIM >::d_ghosts
private

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