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::CellGeometry< DIM > Class Template Referenceabstract

#include <ibtk/LSetDataIterator.h>

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

Public Types

typedef CellOverlap< DIM > Overlap
 

Public Member Functions

 CellGeometry (const hier::Box< DIM > &box, const hier::IntVector< DIM > &ghosts)
 Construct the cell geometry object given an AMR index space box and ghost cell width. More...
 
virtual ~CellGeometry ()
 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 cell-centered index space between the source box geometry and the destination box geometry. More...
 
void computeDestinationBoxes (hier::BoxList< DIM > &dst_boxes, const CellGeometry< DIM > &src_geometry, const hier::Box< DIM > &src_mask, const bool overwrite_interior, const hier::IntVector< DIM > &src_offset) const
 Compute the cell-centered destination boxes that represent the overlap between the source box geometry and the destination box geometry. More...
 
const hier::Box< DIM > & getBox () const
 Return the box for this cell centered box geometry object. More...
 
const hier::IntVector< DIM > & getGhosts () const
 Return the ghost cell width for this cell 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 > toCellBox (const hier::Box< DIM > &box)
 Convert an AMR index box space box into a cell geometry box.
A cell geometry box is the same as the given AMR index box space box. More...
 

Private Member Functions

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

Static Private Member Functions

static tbox::Pointer< hier::BoxOverlap< DIM > > doOverlap (const CellGeometry< DIM > &dst_geometry, const CellGeometry< 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::CellGeometry< DIM >

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

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

See also
hier::BoxGeometry
pdat::CellOverlap

Member Typedef Documentation

◆ Overlap

template<int DIM>
typedef CellOverlap<DIM> SAMRAI::pdat::CellGeometry< DIM >::Overlap

The BoxOverlap implemenation for this geometry.

Constructor & Destructor Documentation

◆ CellGeometry() [1/2]

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

◆ ~CellGeometry()

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

◆ CellGeometry() [2/2]

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

Member Function Documentation

◆ toCellBox()

template<int DIM>
static hier::Box<DIM> SAMRAI::pdat::CellGeometry< DIM >::toCellBox ( const hier::Box< DIM > &  box)
static

◆ calculateOverlap() [1/3]

template<int DIM>
virtual tbox::Pointer< hier::BoxOverlap<DIM> > SAMRAI::pdat::CellGeometry< 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

◆ computeDestinationBoxes()

template<int DIM>
void SAMRAI::pdat::CellGeometry< DIM >::computeDestinationBoxes ( hier::BoxList< DIM > &  dst_boxes,
const CellGeometry< DIM > &  src_geometry,
const hier::Box< DIM > &  src_mask,
const bool  overwrite_interior,
const hier::IntVector< DIM > &  src_offset 
) const

◆ getBox()

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

◆ getGhosts()

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

◆ doOverlap()

template<int DIM>
static tbox::Pointer< hier::BoxOverlap<DIM> > SAMRAI::pdat::CellGeometry< DIM >::doOverlap ( const CellGeometry< DIM > &  dst_geometry,
const CellGeometry< 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 cell centered geometry.

◆ operator=()

template<int DIM>
void SAMRAI::pdat::CellGeometry< DIM >::operator= ( const CellGeometry< 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::CellGeometry< DIM >::d_box
private

◆ d_ghosts

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

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