vtf-logo

GridUnit Class Reference

Class GridUnit implements a block with uniform workload of the computational Grid. More...

#include <GridUnit.h>

List of all members.

Public Member Functions

 GridUnit (void)
 Constructors, Destructor.
 GridUnit (const int nrank, const int clev, const int *bcoords, const int ext, const int mlev, const int lstep, const int reflev)
 Constructor with baseindex specified as coordinates/ph-index.
int guOwner (void) const
 Simple Query funtions.
int operator== (GridUnit const &other) const
 GridUnit domain calculus.
void guRefine (const int levs=1)
 Refines the GridUnit by "levs" levels.
void guCoarsen (const int levs=1)
 corsens the GridUnit by "levs" levels.
void guDecompose (GridUnit **&gu, int &cnt, const int levs=1) const
 Decomposes the GridUnit into an array of (Base)^rank*lev GridUnits with extent = extent-lev; i.e.
void guDecomposeReplicate (GridUnit **&gu, int &cnt, const int minext, const int levs=1) const
 If the new extent at any level is less than the "minext", that level is replicated across the grid units with the first GridUnit as the owner.
void guGetLevels (GridUnit **&gu) const
 Returns the GridUnits's at different levels of the composite GridUnit as an array.
void guSetDecompose (GridUnit &gu, const int lev, const int cnt)
 Static function to update a copy of this GridUnit.

Protected Attributes

short int owner
 My Owner.
short int index
 My Index.
short int rank
 Grid dimension.
short int baselev
 Max level within which this grid unit is completely contained.
short int crslev
 Level of the coarsest grid.
short int finelev
 Level of the finest grid.
short int maxlev
 Max possible level of refinement.
short int minlev
 Min possible level of refinement.
short int levstep
 Refinement Factor - power of two - default is 1.
short int extent
 Extent of the finest level i.e.
int work
 The workload.
dMapIndex baseindex
 Index corresponding to the smallest sfcIndex in the GridUnit.
BBox fbb
 BBox at finest level.

Friends

class GridUnitList


Detailed Description

Class GridUnit implements a block with uniform workload of the computational Grid.

The unit is identified by is position (baseindex) and it's size (extent) at a particular level. A GridUnit can be refined or coarsened or can be decomposed into GridUnits of smaller extent. Note, that each levels corresponds to one power of the base and not to a refinement level. For a given base, and extent at a level, the size of the GridUnit at the level is (base)^(rank*extent). Thus the size of the GridUnit is limited to powers of the base. Note that, a uniform block of a single level of the Grid can also be represented (as a special case) by GridUnit. GridUnit class provides a member function to query the baseindices of neighboring GridUnits at different levels.

Author:
Manish Parashar, Ralf Deiterding (workload stored explicitely)


Constructor & Destructor Documentation

GridUnit::GridUnit ( const int  nrank,
const int  clev,
const int *  bcoords,
const int  ext,
const int  mlev,
const int  lstep,
const int  reflev 
)

Constructor with baseindex specified as coordinates/ph-index.

Uses the Map/Invert of baseindex to generate the associted sfc mapping. The extent of GridUnit is specified in terms of levels such that number of elements = base^(rank*extent). Note that the extent referers to the topmost level; num is the sum of the elements at all numlev levels; and baselev is the base level grid. An initial refinement of reflev leval can be specified - in which case numlev is set to reflev and num and extent are accordingly updated.


Member Function Documentation

void GridUnit::guCoarsen ( const int  levs = 1  ) 

corsens the GridUnit by "levs" levels.

The grid extent level is decremented by "levs"; i.e. the GridUnit contains (Base)^rank*(extlev-levs) points.

void GridUnit::guDecompose ( GridUnit **&  gu,
int &  cnt,
const int  levs = 1 
) const

Decomposes the GridUnit into an array of (Base)^rank*lev GridUnits with extent = extent-lev; i.e.

(Base)^rank*(extlev-lev) points.

void GridUnit::guGetLevels ( GridUnit **&  gu  )  const

Returns the GridUnits's at different levels of the composite GridUnit as an array.

The returned array is of dimension maxlev-crslev. The undefined levels are (GridUnit *) 0.

void GridUnit::guRefine ( const int  levs = 1  ) 

Refines the GridUnit by "levs" levels.

The grid extent level is incremented by "levs"; i.e. the GridUnit contains (Base)^rank*(extlev+levs) points.


Member Data Documentation

short int GridUnit::extent [protected]

Extent of the finest level i.e.

level crslev+numlev-1

int GridUnit::work [protected]

The workload.

Assumed to be uniform.


The documentation for this class was generated from the following files:
Generated on Fri Aug 24 13:00:29 2007 for AMROC's Hierachical Data Structures - by  doxygen 1.4.7