Chombo + EB
3.0
|
Geometric description within a box. More...
#include <EBGraph.H>
Public Types | |
enum | TAG { AllRegular = 0, AllCovered, HasIrregular } |
Public Member Functions | |
EBGraph () | |
~EBGraph () | |
const BaseFab< int > & | getMask (int &a_regIrregCovered) const |
Vector< VolIndex > | getVoFs (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< 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 |
void | fillIntMask (BaseFab< int > &a_mask) const |
EBGraph (const Box &box) | |
bool | operator== (const EBGraph &a_ebiin) |
pointer comparison More... | |
bool | operator< (const EBGraph &a_ebiin) const |
pointer comparison More... | |
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 |
int | numVoFs (const Box &a_box) const |
int | 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 |
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.
enum EBGraph::TAG |
The EBGraph can be all regular or all covered or contain irregular cells.
Enumerator | |
---|---|
AllRegular | |
AllCovered | |
HasIrregular |
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 | ) |
|
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.
Return the VoFs in the cell.
Referenced by EBISBox::getVoFs().
|
inline |
Referenced by EBISBox::numVoFs().
|
inline |
Return true if every cell in the EBGraph is a regular cell.
Referenced by EBISBox::isAllRegular().
bool EBGraph::hasIrregular | ( | ) | const |
Return true neither all regular nor all covered
|
inline |
Return true if every cell in the EBGraph is a covered cell.
Referenced by EBISBox::isAllCovered().
|
inline |
Return true if a_iv is an irregular cell.
Referenced by EBISBox::isIrregular().
|
inline |
Return true if every cell in a_box is a covered cell.
Referenced by EBISBox::isCovered().
|
inline |
Return true if every cell in a_box is a regular cell.
Referenced by EBISBox::isRegular().
|
inline |
|
inline |
|
inline |
Return the faces on the side and direction of the input VoF.
Referenced by EBISBox::getFaces().
Returns the corresponding face from the next coarser EBGraph (factor of two refinement). This only makes sense if there is a coarser level.
Returns the corresponding VoF from the next coarser EBGraph (same solution location, different index space, factor of two refinement ratio).
|
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
|
inline |
Set the graph to all regular cells (sparse);
|
inline |
Set the graph to all covered cells (sparse);
References coarsenVoFs().
void EBGraph::define | ( | const Box & | box | ) |
Define an all-regular EBGraph with the input box as its region.
|
inline |
|
inline |
Referenced by BaseIFFAB< FaceStencil >::define().
|
inline |
bool EBGraph::isDomainSet | ( | ) | const |
References coarsenFaces(), and m_implem.
Referenced by setToAllCovered().
References fixFineToCoarse(), and m_implem.
Referenced by coarsenVoFs().
|
inline |
References m_implem.
Referenced by coarsenFaces().
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 | ||
) |
|
inline |
|
inline |
|
inline |
|
inline |
Referenced by EBISBox::getAllFaces().
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
void EBGraph::fillIntMask | ( | BaseFab< int > & | a_mask | ) | const |
1 = regular 0 = irregular -1 = covered
|
inline |
pointer comparison
References m_implem.
This stuff required by LevelData in parallel:
|
inlinestatic |
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 |
int EBGraph::numVoFs | ( | const Box & | a_box | ) | const |
int EBGraph::numFaces | ( | const Box & | a_box, |
int | a_dir | ||
) | const |
|
inline |
|
inline |
|
inline |
|
friend |
|
private |
Referenced by coarsenFaces(), coarsenVoFs(), copy(), fixFineToCoarse(), operator<(), operator=(), operator==(), and refine().