Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

SAMRAI::pdat::SideGeometry< DIM > Class Template Reference

#include <source/patchdata/boxgeometry/SideGeometry.h>

Inheritance diagram for SAMRAI::pdat::SideGeometry< DIM >:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 SideGeometry (const hier::Box< DIM > &box, const hier::IntVector< DIM > &ghosts, const hier::IntVector< DIM > &directions)
virtual ~SideGeometry ()
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
const hier::Box< DIM > & getBox () const
const hier::IntVector< DIM > & getGhosts () const
const hier::IntVector< DIM > & getDirectionVector () const

Static Public Member Functions

static hier::Box< DIM > toSideBox (const hier::Box< DIM > &box, const int axis)

Detailed Description

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

Class SideGeometry<DIM> manages the mapping between the AMR index space and the side-centered geometry index space. It is a subclass of hier::BoxGeometry<DIM> and it computes intersections between side- centered box geometries. That is, side geometry objects calculate the side-centered data residing in the intersection of two boxes defining regions of index space on an AMR patch hierarchy. For example, given a three-dimensional box [l0:u0,l1:u1,l2:u2], the indices for a three-dimensional side data object run as follows:

Recall that side data is defined so that the sides associated with a given coordinate direction are those whose normal vector lies in that direction. Also, side data and face data storage are similar. However, the ordering of the indices is what differentiates the side data classes from the face data classes.

Note that the intersection between two side-centered boxes can be complicated since side geometries contain indices on the sides of the boxes. Thus, there may be overlap between two boxes, even though the boxes do not intersect in the AMR index space.

Note that it is possible to manage side data objects where the data is allocated for sides associated with a single coordinate direction only. All side geometry operations involving more than one side geometry object are only defined for the case where all objects have the same data allocation. If this is not the case, an assertion will result.

See also:
hier::BoxGeometry

pdat::SideOverlap


Constructor & Destructor Documentation

template<int DIM>
SAMRAI::pdat::SideGeometry< DIM >::SideGeometry const hier::Box< DIM > &  box,
const hier::IntVector< DIM > &  ghosts,
const hier::IntVector< DIM > &  directions
 

Construct a side geometry object given the box, ghost cell width, and information about which coordinate directions are allocated.

template<int DIM>
SAMRAI::pdat::SideGeometry< DIM >::~SideGeometry  )  [virtual]
 

The virtual destructor does nothing interesting.


Member Function Documentation

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

Compute the overlap in index space between the source side box geometry object and the destination box geometry. Refer to the box geometry class for a detailed description of calculateOverlap().

template<int DIM>
const hier::Box< DIM > & SAMRAI::pdat::SideGeometry< DIM >::getBox  )  const [inline]
 

Return the box extents for this side centered box geometry object.

template<int DIM>
const hier::IntVector< DIM > & SAMRAI::pdat::SideGeometry< DIM >::getGhosts  )  const [inline]
 

Return the ghost cell width for this side centered box geometry object.

template<int DIM>
const hier::IntVector< DIM > & SAMRAI::pdat::SideGeometry< DIM >::getDirectionVector  )  const [inline]
 

Return constant reference to vector describing which coordinate directions managed by this side geometry object. A vector entry of zero indicates that this object will not perform operations involving the corresponding coordinate direction. A non-zero value indicates otherwise.

template<int DIM>
hier::Box< DIM > SAMRAI::pdat::SideGeometry< DIM >::toSideBox const hier::Box< DIM > &  box,
const int  axis
[static]
 

Convert an AMR abstract box into a side geometry box. The box indices are cyclically shifted such that the side direction is first. The side direction runs from the corresponding lower index to the upper index plus one. All other indices run as in the original box. The axes are given by X=0, Y=1, and Z=2.


The documentation for this class was generated from the following files:
Generated on Fri Dec 2 11:29:31 2005 for SAMRAI by  doxygen 1.4.2