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

EBGraph Class Reference

Geometric description within a box. More...

#include <EBGraph.H>

Collaboration diagram for EBGraph:

Collaboration graph
[legend]
List of all members.

Public Types

enum  TAG { AllRegular = 0, AllCovered, HasIrregular }

Public Methods

 EBGraph ()
 ~EBGraph ()
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 EBGraph &a_fineGraph) const
FaceIndex coarsen (const FaceIndex &a_coarFace) const
VolIndex coarsen (const VolIndex &a_fineVoF) const
 EBGraph (const Box &a_box, int a_comps)
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)
void copy (const Box &a_regionFrom, const Interval &Cd, const Box &a_regionto, const EBGraph &a_source, const Interval &Cs)
const BoxgetRegion () const
const BoxgetDomain () const
bool isDefined () const
bool isDomainSet () const
void coarsenVoFs (const EBGraph &a_fineGraph, const Box &a_coarRegion)
void coarsenFaces (const EBGraph &a_coarGhostGraph, const EBGraph &a_fineEBIS)
void fixFineToCoarse (EBGraph &a_fineEBIS) const
Vector< int > coarsenFaces (const VolIndex &a_coarVoF, const EBGraph &a_coarGhostGraph, const EBGraph &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
EBGraph & operator= (const EBGraph &ebiin)
 EBGraph (const EBGraph &a_ebiin)
Vector< FaceIndexgetAllFaces (const IntVect &a_iv, const int &a_idir, const Side::LoHiSide &a_sd) const
 EBGraph (const Box &box)
bool operator== (const EBGraph &a_ebiin)
 pointer comparison

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)

Static Public Methods

int preAllocatable ()

Private Attributes

RefCountedPtr< EBGraphImplemm_implem

Detailed Description

Geometric description within a box.

EBGraph represents the geometric information of the domain at a given refinement within the boundaries of a particular box. This is a refcounted object with all that implies.


Member Enumeration Documentation

enum EBGraph::TAG
 

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

Enumeration values:
AllRegular 
AllCovered 
HasIrregular 


Constructor & Destructor Documentation

EBGraph::EBGraph  
 

Makes an EBGraph whose contents are undefined.

EBGraph::~EBGraph  
 

EBGraph::EBGraph const Box   a_box,
int    a_comps
 

Define an all-regular EBGraph with the input box as its region. The component argument is ignored. This function is required by LevelData.

EBGraph::EBGraph const EBGraph &    a_ebiin
 

EBGraph::EBGraph const Box   box
 


Member Function Documentation

void EBGraph::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 EBGraph::checkGraph const BaseFab< int > &    a_regIrregCovered,
const Vector< IrregNode > &    a_irregGraph,
const Box   a_validRegion,
const Box   a_domain
 

VolIndex EBGraph::coarsen const VolIndex   a_fineVoF const
 

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

FaceIndex EBGraph::coarsen const FaceIndex   a_coarFace const
 

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

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

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

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

void EBGraph::copy const Box   a_regionFrom,
const Interval   Cd,
const Box   a_regionto,
const EBGraph &    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 EBGraph and the box of a_source. The Interval arguments are ignored. This function is required by LevelData.

void EBGraph::define const Box   box
 

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

void EBGraph::fixFineToCoarse EBGraph &    a_fineEBIS const
 

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

const Box& EBGraph::getDomain   const
 

Vector<FaceIndex> EBGraph::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 EBGraph::getIrregCells const Box   a_subbox const
 

IntVectSet EBGraph::getMultiCells const Box   a_subbox const
 

const Box& EBGraph::getRegion   const
 

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

Return the VoFs in the cell.

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

bool EBGraph::hasIrregular   const
 

Return true neither all regular nor all covered

bool EBGraph::isAllCovered   const
 

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

bool EBGraph::isAllRegular   const
 

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

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

bool EBGraph::isCovered const IntVect   a_iv const
 

bool EBGraph::isCovered const Box   a_box const
 

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

bool EBGraph::isDefined   const
 

bool EBGraph::isDomainSet   const
 

bool EBGraph::isIrregular const IntVect   a_iv const
 

Return true if a_iv is an irregular cell.

bool EBGraph::isRegular const IntVect   a_iv const
 

bool EBGraph::isRegular const Box   a_box const
 

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

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

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

int EBGraph::numVoFs const IntVect   a_iv const
 

EBGraph& EBGraph::operator= const EBGraph &    ebiin
 

bool EBGraph::operator== const EBGraph &    a_ebiin
 

pointer comparison

int EBGraph::preAllocatable   [inline, static]
 

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

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

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

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

void EBGraph::setDomain const Box   box
 

void EBGraph::setToAllCovered  
 

Set the graph to all covered cells (sparse);

void EBGraph::setToAllRegular  
 

Set the graph to all regular cells (sparse);

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

This stuff required by LevelData in parallel:


Member Data Documentation

RefCountedPtr<EBGraphImplem> EBGraph::m_implem [private]
 


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