#include <EBGraph.H>
Collaboration diagram for EBGraphImplem:
Public Types | |
enum | TAG { AllRegular = 0, AllCovered, HasIrregular } |
Public Methods | |
EBGraphImplem () | |
~EBGraphImplem () | |
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 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 Box & | getRegion () const |
const Box & | getDomain () 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< FaceIndex > | getAllFaces (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< GraphNode > | m_graph |
bool | m_isDefined |
bool | m_isDomainSet |
IntVectSet | m_irregIVS |
IntVectSet | m_multiIVS |
EBGraphImplem represents the geometric information of the domain at a given refinement within the boundaries of a particular box.
|
The EBGraphImplem can be all regular or all covered or contain irregular cells. |
|
Makes an EBGraphImplem whose contents are undefined. |
|
|
|
|
|
|
|
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 |
|
|
|
Returns the corresponding VoF from the next coarser EBGraphImplem (same solution location, different index space, factor of two refinement ratio). |
|
Returns the corresponding face from the next coarser EBGraphImplem (factor of two refinement). This only makes sense if there is a coarser level. |
|
|
|
|
|
|
|
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. |
|
Define an all-regular EBGraphImplem with the input box as its region. |
|
|
|
|
|
|
|
Return the faces on the side and direction of the input VoF. |
|
|
|
|
|
|
|
Return the VoFs in the cell. |
|
|
|
Return true neither all regular nor all covered |
|
Return true if every cell in the EBGraphImplem is a covered cell. |
|
Return true if every cell in the EBGraphImplem is a regular cell. |
|
|
|
|
|
Return true if every cell in a_box is a covered cell. |
|
|
|
|
|
Return true if a_iv is an irregular cell. |
|
|
|
Return true if every cell in a_box is a regular cell. |
|
|
|
|
|
|
|
|
|
|
|
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. |
|
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. |
|
|
|
Set the graph to all covered cells (sparse); |
|
Set the graph to all regular cells (sparse); |
|
This stuff required by LevelData in parallel: |
|
computational domain at this level of refinement
|
|
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. |
|
|
|
|
|
|
|
|
|
box over which this graph is defined
|
|
If this is allregular or allcovered, the BaseFab below is undefined. |