Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

EBGraphImplem Class Reference

Geometric description within a box. More...

#include <EBGraph.H>

Collaboration diagram for EBGraphImplem:

Collaboration graph
[legend]
List of all members.

Public Types

enum  TAG { AllRegular = 0, AllCovered, HasIrregular }

Public Methods

 EBGraphImplem ()
 ~EBGraphImplem ()
Vector< VolIndexgetVoFs (const IntVect &a_iv) const
int numVoFs (const IntVect &a_iv) const
bool isAllRegular () const
bool hasIrregular () const
bool isAllCovered () const
bool isIrregular (const IntVect &a_iv) const
bool isCovered (const Box &a_box) const
bool isRegular (const Box &a_box) const
bool isRegular (const IntVect &a_iv) const
bool isCovered (const IntVect &a_iv) const
bool isConnected (const VolIndex &a_vof1, const VolIndex &a_vof2) const
Vector< FaceIndexgetFaces (const VolIndex &a_vof, const int &a_idir, const Side::LoHiSide &a_sd) const
Vector< Vector< VolIndex > > getVoFSets (const Box &a_region) const
Vector< VolIndexrefine (const VolIndex &a_coarVoF) const
Vector< FaceIndexrefine (const FaceIndex &a_coarFace, const EBGraphImplem &a_fineGraph) const
FaceIndex coarsen (const FaceIndex &a_coarFace) const
VolIndex coarsen (const VolIndex &a_fineVoF) const
void buildGraph (const BaseFab< int > &a_regIrregCovered, const Vector< IrregNode > &a_irregGraph, const Box &a_validRegion, const Box &a_domain)
void checkGraph (const BaseFab< int > &a_regIrregCovered, const Vector< IrregNode > &a_irregGraph, const Box &a_validRegion, const Box &a_domain)
void setToAllRegular ()
void setToAllCovered ()
void define (const Box &box)
 EBGraphImplem (const Box &box)
void copy (const Box &a_regionFrom, const Interval &Cd, const Box &a_regionto, const EBGraphImplem &a_source, const Interval &Cs)
const BoxgetRegion () const
const BoxgetDomain () const
int size (const Box &R, const Interval &comps) const
void linearOut (void *buf, const Box &R, const Interval &comps) const
void linearIn (void *buf, const Box &R, const Interval &comps)
bool isDefined () const
bool isDomainSet () const
void coarsenVoFs (const EBGraphImplem &a_fineGraph, const Box &a_coarRegion)
void coarsenFaces (const EBGraphImplem &a_coarGhostGraph, const EBGraphImplem &a_fineEBIS)
void fixFineToCoarse (EBGraphImplem &a_fineEBIS) const
Vector< int > coarsenFaces (const VolIndex &a_coarVoF, const EBGraphImplem &a_coarGhostGraph, const EBGraphImplem &a_fineGraph, const int &a_idir, const Side::LoHiSide &a_sd)
void setDomain (const Box &box)
IntVectSet getIrregCells (const Box &a_subbox) const
IntVectSet getMultiCells (const Box &a_subbox) const
Vector< FaceIndexgetAllFaces (const IntVect &a_iv, const int &a_idir, const Side::LoHiSide &a_sd) const

Static Public Methods

int preAllocatable ()

Private Methods

void operator= (const EBGraphImplem &ebiin)
 EBGraphImplem (const EBGraphImplem &ebiin)

Private Attributes

Box m_region
 box over which this graph is defined

Box m_domain
 computational domain at this level of refinement

TAG m_tag
BaseFab< GraphNodem_graph
bool m_isDefined
bool m_isDomainSet
IntVectSet m_irregIVS
IntVectSet m_multiIVS

Detailed Description

Geometric description within a box.

EBGraphImplem represents the geometric information of the domain at a given refinement within the boundaries of a particular box.


Member Enumeration Documentation

enum EBGraphImplem::TAG
 

The EBGraphImplem can be all regular or all covered or contain irregular cells.

Enumeration values:
AllRegular 
AllCovered 
HasIrregular 


Constructor & Destructor Documentation

EBGraphImplem::EBGraphImplem  
 

Makes an EBGraphImplem whose contents are undefined.

EBGraphImplem::~EBGraphImplem  
 

EBGraphImplem::EBGraphImplem const Box   box
 

EBGraphImplem::EBGraphImplem const EBGraphImplem &    ebiin [inline, private]
 


Member Function Documentation

void EBGraphImplem::buildGraph const BaseFab< int > &    a_regIrregCovered,
const Vector< IrregNode > &    a_irregGraph,
const Box   a_validRegion,
const Box   a_domain
 

Completely construct the graph from IrregNodes. This makes a DENSE representation of the graph. To make sparse representations of all regular or all covered graphs, use setToAllRegular or setToAllCovered.\ irregGraph contains a complete list of irregular vofs. \ validRegion is the the region of the graph \ domain is the domain of compuation \ regIrregCovered = 1 for regular, 0 for irregular, -1 for covered. regIrregCovered must contain the valid region grown by 1. \ In chombospeak, \ regIrregCovered.box().contains(grow(validRegion, 1) & domain); \ otherwise an error will result

void EBGraphImplem::checkGraph const BaseFab< int > &    a_regIrregCovered,
const Vector< IrregNode > &    a_irregGraph,
const Box   a_validRegion,
const Box   a_domain
 

VolIndex EBGraphImplem::coarsen const VolIndex   a_fineVoF const
 

Returns the corresponding VoF from the next coarser EBGraphImplem (same solution location, different index space, factor of two refinement ratio).

FaceIndex EBGraphImplem::coarsen const FaceIndex   a_coarFace const
 

Returns the corresponding face from the next coarser EBGraphImplem (factor of two refinement). This only makes sense if there is a coarser level.

Vector<int> EBGraphImplem::coarsenFaces const VolIndex   a_coarVoF,
const EBGraphImplem &    a_coarGhostGraph,
const EBGraphImplem &    a_fineGraph,
const int &    a_idir,
const Side::LoHiSide   a_sd
 

void EBGraphImplem::coarsenFaces const EBGraphImplem &    a_coarGhostGraph,
const EBGraphImplem &    a_fineEBIS
 

void EBGraphImplem::coarsenVoFs const EBGraphImplem &    a_fineGraph,
const Box   a_coarRegion
 

void EBGraphImplem::copy const Box   a_regionFrom,
const Interval   Cd,
const Box   a_regionto,
const EBGraphImplem &    a_source,
const Interval   Cs
 

Copy the information from a_source to the over the intersection of the box a_region, the box of the current EBGraphImplem and the box of a_source. The Interval arguments are ignored. This function is required by LevelData.

void EBGraphImplem::define const Box   box
 

Define an all-regular EBGraphImplem with the input box as its region.

void EBGraphImplem::fixFineToCoarse EBGraphImplem &    a_fineEBIS const
 

Vector<FaceIndex> EBGraphImplem::getAllFaces const IntVect   a_iv,
const int &    a_idir,
const Side::LoHiSide   a_sd
const
 

const Box& EBGraphImplem::getDomain   const
 

Vector<FaceIndex> EBGraphImplem::getFaces const VolIndex   a_vof,
const int &    a_idir,
const Side::LoHiSide   a_sd
const
 

Return the faces on the side and direction of the input VoF.

IntVectSet EBGraphImplem::getIrregCells const Box   a_subbox const
 

IntVectSet EBGraphImplem::getMultiCells const Box   a_subbox const
 

const Box& EBGraphImplem::getRegion   const
 

Vector<VolIndex> EBGraphImplem::getVoFs const IntVect   a_iv const
 

Return the VoFs in the cell.

Vector<Vector<VolIndex> > EBGraphImplem::getVoFSets const Box   a_region const
 

bool EBGraphImplem::hasIrregular   const
 

Return true neither all regular nor all covered

bool EBGraphImplem::isAllCovered   const
 

Return true if every cell in the EBGraphImplem is a covered cell.

bool EBGraphImplem::isAllRegular   const
 

Return true if every cell in the EBGraphImplem is a regular cell.

bool EBGraphImplem::isConnected const VolIndex   a_vof1,
const VolIndex   a_vof2
const
 

bool EBGraphImplem::isCovered const IntVect   a_iv const
 

bool EBGraphImplem::isCovered const Box   a_box const
 

Return true if every cell in a_box is a covered cell.

bool EBGraphImplem::isDefined   const
 

bool EBGraphImplem::isDomainSet   const
 

bool EBGraphImplem::isIrregular const IntVect   a_iv const
 

Return true if a_iv is an irregular cell.

bool EBGraphImplem::isRegular const IntVect   a_iv const
 

bool EBGraphImplem::isRegular const Box   a_box const
 

Return true if every cell in a_box is a regular cell.

void EBGraphImplem::linearIn void *    buf,
const Box   R,
const Interval   comps
 

void EBGraphImplem::linearOut void *    buf,
const Box   R,
const Interval   comps
const
 

int EBGraphImplem::numVoFs const IntVect   a_iv const
 

void EBGraphImplem::operator= const EBGraphImplem &    ebiin [inline, private]
 

int EBGraphImplem::preAllocatable   [inline, static]
 

Vector<FaceIndex> EBGraphImplem::refine const FaceIndex   a_coarFace,
const EBGraphImplem &    a_fineGraph
const
 

Returns the corresponding set of faces from the next finer EBGraphImplem (factor of two refinement). The result is only defined if this {\tt EBGraphImplem} was defined by coarsening.

Vector<VolIndex> EBGraphImplem::refine const VolIndex   a_coarVoF const
 

Returns the corresponding set of VoFs from the next finer EBGraphImplem (factor of two refinement). The result is only defined if this {\tt EBGraphImplem} was defined by coarsening.

void EBGraphImplem::setDomain const Box   box
 

void EBGraphImplem::setToAllCovered  
 

Set the graph to all covered cells (sparse);

void EBGraphImplem::setToAllRegular  
 

Set the graph to all regular cells (sparse);

int EBGraphImplem::size const Box   R,
const Interval   comps
const
 

This stuff required by LevelData in parallel:


Member Data Documentation

Box EBGraphImplem::m_domain [private]
 

computational domain at this level of refinement

BaseFab<GraphNode> EBGraphImplem::m_graph [private]
 

the graph description of the box. If the pointer GraphNode.m_thisNode == 0, the cell is covered. If the pointer GraphNode.m_thisNode == 1, the cell is regular. Otherwise, the pointer goes to the node of the graph.

IntVectSet EBGraphImplem::m_irregIVS [private]
 

bool EBGraphImplem::m_isDefined [private]
 

bool EBGraphImplem::m_isDomainSet [private]
 

IntVectSet EBGraphImplem::m_multiIVS [private]
 

Box EBGraphImplem::m_region [private]
 

box over which this graph is defined

TAG EBGraphImplem::m_tag [private]
 

If this is allregular or allcovered, the BaseFab below is undefined.


The documentation for this class was generated from the following file:
Generated on Wed Apr 16 14:35:13 2003 for EBChombo by doxygen1.2.16