#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().
1.5.5