SAMRAI::hier::CoarseFineBoundary< DIM > Class Template Reference

Utility class to construct and maintain a description of the coarse-fine boundary between a patch level and some coarser level. More...

#include <source/hierarchy/patches/CoarseFineBoundary.h>

List of all members.

Public Member Functions

 CoarseFineBoundary ()
 Construct a CoarseFineBoundary<DIM> object with no boundary boxes.
 CoarseFineBoundary (const PatchHierarchy< DIM > &hierarchy, int ln, const IntVector< DIM > &max_ghost_width)
 Construct a CoarseFineBoundary<DIM> object for the specified level in the given patch hierarchy.
 CoarseFineBoundary (const tbox::Pointer< MultiblockPatchHierarchy< DIM > > &hierarchy, int ln, const IntVector< DIM > &max_ghost_width)
 Construct a CoarseFineBoundary<DIM> object for the specified level in the given multiblock patch hierarchy.
 ~CoarseFineBoundary ()
void computeFromHierarchy (const PatchHierarchy< DIM > &hierarchy, int ln, const IntVector< DIM > &max_ghost_width)
 Construct a CoarseFineBoundary<DIM> object for the specified level in the given patch hierarchy.
void computeFromHierarchy (const MultiblockPatchHierarchy< DIM > &hierarchy, int ln, const IntVector< DIM > &max_ghost_width)
 Construct a CoarseFineBoundary<DIM> object for the specified level in the given multiblock patch hierarchy.
void computeFromLevel (const PatchLevel< DIM > &level, const PatchLevel< DIM > &level0, const IntVector< DIM > &max_ghost_width)
 Construct a CoarseFineBoundary<DIM> object for the specified level based on a given level which is assumed to be the coarsest level (i.e., level zero) in some patch hierarchy.
void computeFromLevel (const MultiblockPatchLevel< DIM > &level, const MultiblockPatchLevel< DIM > &level0, const IntVector< DIM > &max_ghost_width)
 Construct a CoarseFineBoundary<DIM> object for the specified multibock level based on a given level which is assumed to be the coarsest level (i.e., level zero) in some patch hierarchy.
void clear (const int block_number=0)
 Clear all boundary data.
virtual void printClassData (std::ostream &os) const
 Print out class data (mostly for debugging).
Functions to get the computed coarse-fine boundaries.
const tbox::Array< BoundaryBox<
DIM > > & 
getBoundaries (int patch_num, int boundary_type, int block_num=0) const
 Get an array of boundary boxes of a given type for a specified patch.
const tbox::Array< BoundaryBox<
DIM > > & 
getNodeBoundaries (int patch_num, int block_num=0) const
 Get an array of node boundary boxes for a specified patch (see BoundaryBox class).
const tbox::Array< BoundaryBox<
DIM > > & 
getEdgeBoundaries (int patch_num, int block_num=0) const
 Get an array of edge boundary boxes for a specified patch (see BoundaryBox class).
const tbox::Array< BoundaryBox<
DIM > > & 
getFaceBoundaries (int patch_num, int block_num=0) const
 Get an array of face boundary boxes for a specified patch (see BoundaryBox class).


Detailed Description

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

Utility class to construct and maintain a description of the coarse-fine boundary between a patch level and some coarser level.

A coarse-fine boundary box is a BoundaryBox object, but it is generated differently than a typical boundary box maintained by a patch geometry object. The boundary type and location identifiers for regular boundary boxes apply to coarse-fine boundary boxes. However, a boundary box serving as a coarse-fine boundary box describes part of the boundary of a given patch with its next coarser AMR hierarchy level. It does not intersect any other patch on the same level nor does it lie on a physical domain boundary, except where the physical boundary is periodic and the appropriate continuation of that boundary is part of a coarser patch level.

The coarse-fine boundary is created from two adjacent hierarchy levels (typically), but the description lives on (refers to the index space of) the finer level. Since the coarse-fine boundary describes the boundary to the next coarser level, the coarsest level (i.e., level zero in an AMR hierarchy) has no coarse-fine boundary.

Each CoarseFineBoundary object corresponds to one level, so to represent a hierarchy, you would need an array or list of such objects.


Constructor & Destructor Documentation

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

Construct a CoarseFineBoundary<DIM> object with no boundary boxes.

template<int DIM>
SAMRAI::hier::CoarseFineBoundary< DIM >::CoarseFineBoundary ( const PatchHierarchy< DIM > &  hierarchy,
int  ln,
const IntVector< DIM > &  max_ghost_width 
)

Construct a CoarseFineBoundary<DIM> object for the specified level in the given patch hierarchy.

Parameters:
hierarchy Patch hierarchy in which the patch level resides.
ln Level number of level of computed coarse-fine boundary.
max_ghost_width Max ghost width for which to generate boundary boxes. The ghost width determines the extent of the boundary boxes along the level domain boundary, similar to regular domain boundary boxes. Note that as in the case of regular boundary boxes, each box will always be one cell wide in the direction perpendicular to the patch boundary.
Note that if level number is zero, the coarse-fine boundary will be empty.

template<int DIM>
SAMRAI::hier::CoarseFineBoundary< DIM >::CoarseFineBoundary ( const tbox::Pointer< MultiblockPatchHierarchy< DIM > > &  hierarchy,
int  ln,
const IntVector< DIM > &  max_ghost_width 
)

Construct a CoarseFineBoundary<DIM> object for the specified level in the given multiblock patch hierarchy.

Parameters:
hierarchy multiblock atch hierarchy in which the patch level resides.
ln Level number of level of computed coarse-fine boundary.
max_ghost_width Max ghost width for which to generate boundary boxes. The ghost width determines the extent of the boundary boxes along the level domain boundary, similar to regular domain boundary boxes. Note that as in the case of regular boundary boxes, each box will always be one cell wide in the direction perpendicular to the patch boundary.
Note that if level number is zero, the coarse-fine boundary will be empty.

template<int DIM>
SAMRAI::hier::CoarseFineBoundary< DIM >::~CoarseFineBoundary (  ) 


Member Function Documentation

template<int DIM>
void SAMRAI::hier::CoarseFineBoundary< DIM >::computeFromHierarchy ( const PatchHierarchy< DIM > &  hierarchy,
int  ln,
const IntVector< DIM > &  max_ghost_width 
)

Construct a CoarseFineBoundary<DIM> object for the specified level in the given patch hierarchy.

Parameters:
hierarchy Patch hierarchy in which the patch level resides.
ln Level number of level of computed coarse-fine boundary.
max_ghost_width Max ghost width for which to generate boundary boxes. The ghost width determines the extent of the boundary boxes along the level domain boundary, similar to regular domain boundary boxes. Note that as in the case of regular boundary boxes, each box will always be one cell wide in the direction perpendicular to the patch boundary.
Note that if level number is zero, the coarse-fine boundary will be empty.

template<int DIM>
void SAMRAI::hier::CoarseFineBoundary< DIM >::computeFromHierarchy ( const MultiblockPatchHierarchy< DIM > &  hierarchy,
int  ln,
const IntVector< DIM > &  max_ghost_width 
)

Construct a CoarseFineBoundary<DIM> object for the specified level in the given multiblock patch hierarchy.

Parameters:
hierarchy Patch hierarchy in which the patch level resides.
ln Level number of level of computed coarse-fine boundary.
max_ghost_width Max ghost width for which to generate boundary boxes. The ghost width determines the extent of the boundary boxes along the level domain boundary, similar to regular domain boundary boxes. Note that as in the case of regular boundary boxes, each box will always be one cell wide in the direction perpendicular to the patch boundary.
Note that if level number is zero, the coarse-fine boundary will be empty.

template<int DIM>
void SAMRAI::hier::CoarseFineBoundary< DIM >::computeFromLevel ( const PatchLevel< DIM > &  level,
const PatchLevel< DIM > &  level0,
const IntVector< DIM > &  max_ghost_width 
)

Construct a CoarseFineBoundary<DIM> object for the specified level based on a given level which is assumed to be the coarsest level (i.e., level zero) in some patch hierarchy.

Parameters:
level Patch level of computed coarse-fine boundary.
level0 Coarsest patch level in hierarchy used to compute coarse-fine boundary.
max_ghost_width Max ghost width for which to generate boundary boxes. The ghost width determines the extent of the boundary boxes along the level domain boundary, similar to regular domain boundary boxes. Note that as in the case of regular boundary boxes, each box will always be one cell wide in the direction perpendicular to the patch boundary.
Note that if level and level0 are the same, the coarse-fine boundary will be empty.

template<int DIM>
void SAMRAI::hier::CoarseFineBoundary< DIM >::computeFromLevel ( const MultiblockPatchLevel< DIM > &  level,
const MultiblockPatchLevel< DIM > &  level0,
const IntVector< DIM > &  max_ghost_width 
)

Construct a CoarseFineBoundary<DIM> object for the specified multibock level based on a given level which is assumed to be the coarsest level (i.e., level zero) in some patch hierarchy.

Parameters:
level Patch level of computed coarse-fine boundary.
level0 Coarsest patch level in hierarchy used to compute coarse-fine boundary.
max_ghost_width Max ghost width for which to generate boundary boxes. The ghost width determines the extent of the boundary boxes along the level domain boundary, similar to regular domain boundary boxes. Note that as in the case of regular boundary boxes, each box will always be one cell wide in the direction perpendicular to the patch boundary.
Note that if level and level0 are the same, the coarse-fine boundary will be empty.

template<int DIM>
void SAMRAI::hier::CoarseFineBoundary< DIM >::clear ( const int  block_number = 0  ) 

Clear all boundary data.

template<int DIM>
const tbox::Array< BoundaryBox< DIM > > & SAMRAI::hier::CoarseFineBoundary< DIM >::getBoundaries ( int  patch_num,
int  boundary_type,
int  block_num = 0 
) const

Get an array of boundary boxes of a given type for a specified patch.

The specified patch must exist in the level used to compute the internal state or it is an error.

Parameters:
patch_num Patch number
boundary_type Boundary box type (see BoundaryBox class).
block_num Block number (defaults to 0 for non-multiblock case)

template<int DIM>
const tbox::Array< BoundaryBox< DIM > > & SAMRAI::hier::CoarseFineBoundary< DIM >::getNodeBoundaries ( int  patch_num,
int  block_num = 0 
) const

Get an array of node boundary boxes for a specified patch (see BoundaryBox class).

The specified patch must exist in the level used to compute the internal state or it is an error.

Parameters:
patch_num Patch number
block_num Block number (defaults to 0 for non-multiblock case)

template<int DIM>
const tbox::Array< BoundaryBox< DIM > > & SAMRAI::hier::CoarseFineBoundary< DIM >::getEdgeBoundaries ( int  patch_num,
int  block_num = 0 
) const

Get an array of edge boundary boxes for a specified patch (see BoundaryBox class).

Note that edge boxes are only meaningful if problem dimension is > 1. The specified patch must exist in the level used to compute the internal state or it is an error.

Parameters:
patch_num Patch number
block_num Block number (defaults to 0 for non-multiblock case)

template<int DIM>
const tbox::Array< BoundaryBox< DIM > > & SAMRAI::hier::CoarseFineBoundary< DIM >::getFaceBoundaries ( int  patch_num,
int  block_num = 0 
) const

Get an array of face boundary boxes for a specified patch (see BoundaryBox class).

Note that face boxes are only meaningful if problem dimension is > 2. The specified patch must exist in the level used to compute the internal state or it is an error.

Parameters:
patch_num Patch number
block_num Block number (defaults to 0 for non-multiblock case)

template<int DIM>
void SAMRAI::hier::CoarseFineBoundary< DIM >::printClassData ( std::ostream &  os  )  const [virtual]

Print out class data (mostly for debugging).


The documentation for this class was generated from the following files:
Generated on Thu Jun 18 11:28:29 2009 for SAMRAI by  doxygen 1.5.1