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

#include <OuteredgeGeometry.h>

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

Public Types

typedef EdgeOverlap< DIM > Overlap
 

Public Member Functions

 EdgeGeometry (const hier::Box< DIM > &box, const hier::IntVector< DIM > &ghosts)
 Construct the edge geometry object given an AMR index space box and ghost cell width. More...
 
virtual ~EdgeGeometry ()
 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 edge-centered index space between the source box geometry and the destination box geometry. More...
 
const hier::Box< DIM > & getBox () const
 Return the box for this edge centered box geometry object. More...
 
const hier::IntVector< DIM > & getGhosts () const
 Return the ghost cell width for this edge centered 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
 

Static Public Member Functions

static hier::Box< DIM > toEdgeBox (const hier::Box< DIM > &box, int axis)
 Convert an AMR index box space box into an edge geometry box. An edge geometry box extends the given AMR index box space box by one in upper dimension for each coordinate direction not equal to the axis direction. More...
 

Private Member Functions

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

Static Private Member Functions

static tbox::Pointer< hier::BoxOverlap< DIM > > doOverlap (const EdgeGeometry< DIM > &dst_geometry, const EdgeGeometry< DIM > &src_geometry, const hier::Box< DIM > &src_mask, const bool overwrite_interior, const hier::IntVector< DIM > &src_offset)
 

Private Attributes

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

Detailed Description

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

Class EdgeGeometry<DIM> manages the mapping between the AMR index space and the edge-centered geometry index space. It is a subclass of hier::BoxGeometry<DIM> and it computes intersections between edge- centered box geometries for communication operations.

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

See also
hier::BoxGeometry
pdat::EdgeOverlap

Member Typedef Documentation

◆ Overlap

template<int DIM>
typedef EdgeOverlap<DIM> SAMRAI::pdat::EdgeGeometry< DIM >::Overlap

The BoxOverlap implemenation for this geometry.

Constructor & Destructor Documentation

◆ EdgeGeometry() [1/2]

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

◆ ~EdgeGeometry()

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

◆ EdgeGeometry() [2/2]

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

Member Function Documentation

◆ toEdgeBox()

template<int DIM>
static hier::Box<DIM> SAMRAI::pdat::EdgeGeometry< DIM >::toEdgeBox ( const hier::Box< DIM > &  box,
int  axis 
)
static

◆ calculateOverlap() [1/3]

template<int DIM>
virtual tbox::Pointer< hier::BoxOverlap<DIM> > SAMRAI::pdat::EdgeGeometry< 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::EdgeGeometry< DIM >::getBox ( ) const

◆ getGhosts()

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

◆ doOverlap()

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

Function doOverlap() is the function that computes the overlap between the source and destination objects, where both box geometry objects are guaranteed to have edge centered geometry.

◆ operator=()

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

◆ 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::EdgeGeometry< DIM >::d_box
private

◆ d_ghosts

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

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