#include <EBGraph.H>
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.
Public Types | |
enum | TAG { AllRegular = 0, AllCovered, HasIrregular } |
Public Member Functions | |
EBGraph () | |
~EBGraph () | |
const BaseFab< char > & | getMask (int &a_regIrregCovered) const |
Vector< VolIndex > | getVoFs (const IntVect &a_iv) const |
long long | numVoFs (const IntVect &a_iv) const |
long long | numVoFs (const Box &a_box) 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 | isMultiValued (const IntVect &a_iv) const |
bool | isConnected (const VolIndex &a_vof1, const VolIndex &a_vof2) const |
Vector< FaceIndex > | getFaces (const VolIndex &a_vof, const int &a_idir, const Side::LoHiSide &a_sd) const |
Vector< Vector< VolIndex > > | getVoFSets (const Box &a_region) const |
Vector< VolIndex > | refine (const VolIndex &a_coarVoF) const |
Vector< FaceIndex > | refine (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 ProblemDomain &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 Box & | getRegion () const |
const ProblemDomain & | getDomain () 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 ProblemDomain &a_domain) |
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< FaceIndex > | getAllFaces (const IntVect &a_iv, const int &a_idir, const Side::LoHiSide &a_sd) const |
Vector< FaceIndex > | getIrregFaces (const Box &a_box, int a_dir) const |
void | fillMask (BaseFab< char > &a_mask) const |
void | fillCellTypeMask (BaseFab< char > &a_mask) const |
EBGraph (const Box &box) | |
bool | operator== (const EBGraph &a_ebiin) |
pointer comparison | |
bool | operator< (const EBGraph &a_ebiin) const |
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) |
void | addFullIrregularVoFs (const IntVectSet &a_vofsToChange, const EBGraph &a_ghostGraph) |
void | addEmptyIrregularVoFs (const IntVectSet &a_vofsToChange) |
void | getRegNextToMultiValued (IntVectSet &a_vofsToChange, const EBGraph &a_ghostGraph) const |
Vector< FaceIndex > | getMultiValuedFaces (const int &a_idir, const Box &a_box) const |
long long | numFaces (const Box &a_box, int a_dir) const |
const FaceIterator & | FaceIteratorCache (const IntVectSet &ivs, int a_direction, FaceStop::WhichFaces a_loc) const |
const FaceIterator & | FaceIteratorCache (const Box &a_region, int a_direction, FaceStop::WhichFaces a_loc) const |
const VoFIterator & | VoFIteratorCache (const IntVectSet &ivs) const |
Static Public Member Functions | |
static int | preAllocatable () |
Private Attributes | |
RefCountedPtr< EBGraphImplem > | m_implem |
Friends | |
class | EBIndexSpace |
class | EBISLevel |
enum EBGraph::TAG |
The EBGraph can be all regular or all covered or contain irregular cells.
EBGraph::EBGraph | ( | ) |
Makes an EBGraph whose contents are undefined.
EBGraph::~EBGraph | ( | ) |
EBGraph::EBGraph | ( | const Box & | a_box, | |
int | a_comps | |||
) |
EBGraph::EBGraph | ( | const EBGraph & | a_ebiin | ) |
EBGraph::EBGraph | ( | const Box & | box | ) |
1 = regular 0 = irregular -1 = covered
const BaseFab< char > & EBGraph::getMask | ( | int & | a_regIrregCovered | ) | const [inline] |
If the graph has irregular cells get a mask over the size of the graph. -1 for covered cells or multivalued cells, 0 for singlevalued irregular, and 1 for regular. If the graph is all regular, regIrregCovered returns 1 and the mask is undefined. If the graph is all regular, regIrregCovered returns -1 and the mask is undefined.
References m_implem.
long long EBGraph::numVoFs | ( | const IntVect & | a_iv | ) | const [inline] |
References m_implem.
Referenced by MiniIVFAB< T >::define(), BaseIVFAB< T >::define(), BaseIFFAB< T >::define(), BaseIFFAB< T >::getLocalVecIndex(), and EBISBox::numVoFs().
bool EBGraph::isAllRegular | ( | ) | const [inline] |
Return true if every cell in the EBGraph is a regular cell.
References m_implem.
Referenced by EBISBox::isAllRegular().
bool EBGraph::hasIrregular | ( | ) | const |
Return true neither all regular nor all covered
bool EBGraph::isAllCovered | ( | ) | const [inline] |
Return true if every cell in the EBGraph is a covered cell.
References m_implem.
Referenced by EBISBox::isAllCovered().
bool EBGraph::isIrregular | ( | const IntVect & | a_iv | ) | const [inline] |
Return true if a_iv is an irregular cell.
References m_implem.
Referenced by EBISBox::isIrregular(), and BaseIVFAB< T >::size().
bool EBGraph::isCovered | ( | const Box & | a_box | ) | const [inline] |
Return true if every cell in a_box is a covered cell.
References m_implem.
Referenced by EBISBox::isCovered().
bool EBGraph::isRegular | ( | const Box & | a_box | ) | const [inline] |
Return true if every cell in a_box is a regular cell.
References m_implem.
Referenced by EBISBox::isRegular().
bool EBGraph::isMultiValued | ( | const IntVect & | a_iv | ) | const [inline] |
References m_implem.
Vector< FaceIndex > EBGraph::getFaces | ( | const VolIndex & | a_vof, | |
const int & | a_idir, | |||
const Side::LoHiSide & | a_sd | |||
) | const [inline] |
Return the faces on the side and direction of the input VoF.
References m_implem.
Referenced by EBISBox::getFaces().
void EBGraph::buildGraph | ( | const BaseFab< int > & | a_regIrregCovered, | |
const Vector< IrregNode > & | a_irregGraph, | |||
const Box & | a_validRegion, | |||
const ProblemDomain & | a_domain | |||
) | [inline] |
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
References m_implem.
void EBGraph::setToAllRegular | ( | ) | [inline] |
Set the graph to all regular cells (sparse);
References m_implem.
void EBGraph::setToAllCovered | ( | ) | [inline] |
Set the graph to all covered cells (sparse);
References m_implem.
void EBGraph::define | ( | const Box & | box | ) |
const Box & EBGraph::getRegion | ( | ) | const [inline] |
const ProblemDomain & EBGraph::getDomain | ( | ) | const [inline] |
References m_implem.
Referenced by BaseIVFAB< T >::copy(), BaseIFFAB< T >::copy(), and BaseIFFAB< T >::define().
bool EBGraph::isDefined | ( | ) | const [inline] |
References m_implem.
bool EBGraph::isDomainSet | ( | ) | const |
References m_implem.
void EBGraph::coarsenFaces | ( | const EBGraph & | a_coarGhostGraph, | |
const EBGraph & | a_fineEBIS | |||
) | [inline] |
References m_implem.
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::setDomain | ( | const ProblemDomain & | a_domain | ) | [inline] |
References m_implem.
IntVectSet EBGraph::getIrregCells | ( | const Box & | a_subbox | ) | const [inline] |
References m_implem.
IntVectSet EBGraph::getMultiCells | ( | const Box & | a_subbox | ) | const [inline] |
References m_implem.
Vector< FaceIndex > EBGraph::getAllFaces | ( | const IntVect & | a_iv, | |
const int & | a_idir, | |||
const Side::LoHiSide & | a_sd | |||
) | const [inline] |
void EBGraph::fillMask | ( | BaseFab< char > & | a_mask | ) | const |
void EBGraph::fillCellTypeMask | ( | BaseFab< char > & | a_mask | ) | const |
0 outside priblem domain 1 covered 2 regular 3 irregular
bool EBGraph::operator== | ( | const EBGraph & | a_ebiin | ) | [inline] |
bool EBGraph::operator< | ( | const EBGraph & | a_ebiin | ) | const [inline] |
This stuff required by LevelData in parallel:
static int EBGraph::preAllocatable | ( | ) | [inline, static] |
void EBGraph::addFullIrregularVoFs | ( | const IntVectSet & | a_vofsToChange, | |
const EBGraph & | a_ghostGraph | |||
) |
void EBGraph::addEmptyIrregularVoFs | ( | const IntVectSet & | a_vofsToChange | ) |
void EBGraph::getRegNextToMultiValued | ( | IntVectSet & | a_vofsToChange, | |
const EBGraph & | a_ghostGraph | |||
) | const |
Referenced by MiniIFFAB< T >::define().
long long EBGraph::numFaces | ( | const Box & | a_box, | |
int | a_dir | |||
) | const |
const FaceIterator & EBGraph::FaceIteratorCache | ( | const IntVectSet & | ivs, | |
int | a_direction, | |||
FaceStop::WhichFaces | a_loc | |||
) | const [inline] |
References m_implem.
const FaceIterator & EBGraph::FaceIteratorCache | ( | const Box & | a_region, | |
int | a_direction, | |||
FaceStop::WhichFaces | a_loc | |||
) | const [inline] |
References m_implem.
const VoFIterator & EBGraph::VoFIteratorCache | ( | const IntVectSet & | ivs | ) | const [inline] |
References m_implem.
friend class EBIndexSpace [friend] |
friend class EBISLevel [friend] |
RefCountedPtr<EBGraphImplem> EBGraph::m_implem [private] |
Referenced by buildGraph(), coarsen(), coarsenFaces(), coarsenVoFs(), copy(), FaceIteratorCache(), fixFineToCoarse(), getAllFaces(), getDomain(), getFaces(), getIrregCells(), getMask(), getMultiCells(), getRegion(), getVoFs(), isAllCovered(), isAllRegular(), isConnected(), isCovered(), isDefined(), isIrregular(), isMultiValued(), isRegular(), numVoFs(), operator<(), operator=(), operator==(), refine(), setDomain(), setToAllCovered(), setToAllRegular(), and VoFIteratorCache().