EBGraph Class Reference

#include <EBGraph.H>

List of all members.


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.

Public Types

enum  TAG { AllRegular = 0, AllCovered, HasIrregular }

Public Member Functions

 EBGraph ()
 ~EBGraph ()
const BaseFab< char > & getMask (int &a_regIrregCovered) const
Vector< VolIndexgetVoFs (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< 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 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 BoxgetRegion () const
const ProblemDomaingetDomain () 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
EBGraphoperator= (const EBGraph &ebiin)
 EBGraph (const EBGraph &a_ebiin)
Vector< FaceIndexgetAllFaces (const IntVect &a_iv, const int &a_idir, const Side::LoHiSide &a_sd) const
Vector< FaceIndexgetIrregFaces (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< FaceIndexgetMultiValuedFaces (const int &a_idir, const Box &a_box) const
long long numFaces (const Box &a_box, int a_dir) const
const FaceIteratorFaceIteratorCache (const IntVectSet &ivs, int a_direction, FaceStop::WhichFaces a_loc) const
const FaceIteratorFaceIteratorCache (const Box &a_region, int a_direction, FaceStop::WhichFaces a_loc) const
const VoFIteratorVoFIteratorCache (const IntVectSet &ivs) const

Static Public Member Functions

static int preAllocatable ()

Private Attributes

RefCountedPtr< EBGraphImplemm_implem

Friends

class EBIndexSpace
class EBISLevel


Member Enumeration Documentation

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

Enumerator:
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  ) 

1 = regular 0 = irregular -1 = covered


Member Function Documentation

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.

Vector< VolIndex > EBGraph::getVoFs ( const IntVect a_iv  )  const [inline]

Return the VoFs in the cell.

References m_implem.

Referenced by EBISBox::getVoFs().

long long EBGraph::numVoFs ( const IntVect a_iv  )  const [inline]

long long EBGraph::numVoFs ( const Box a_box  )  const [inline]

References m_implem.

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::isRegular ( const IntVect a_iv  )  const [inline]

References m_implem.

bool EBGraph::isCovered ( const IntVect a_iv  )  const [inline]

References m_implem.

bool EBGraph::isMultiValued ( const IntVect a_iv  )  const [inline]

References m_implem.

Referenced by EBISBox::isMultiValued().

bool EBGraph::isConnected ( const VolIndex a_vof1,
const VolIndex a_vof2 
) 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().

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

Vector< VolIndex > EBGraph::refine ( const VolIndex a_coarVoF  )  const [inline]

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

References m_implem.

Vector< FaceIndex > EBGraph::refine ( const FaceIndex a_coarFace,
const EBGraph a_fineGraph 
) const [inline]

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

References m_implem.

FaceIndex EBGraph::coarsen ( const FaceIndex a_coarFace  )  const [inline]

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

References m_implem.

VolIndex EBGraph::coarsen ( const VolIndex a_fineVoF  )  const [inline]

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

References m_implem.

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  ) 

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

void EBGraph::copy ( const Box a_regionFrom,
const Interval Cd,
const Box a_regionto,
const EBGraph a_source,
const Interval Cs 
) [inline]

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.

References m_implem.

const Box & EBGraph::getRegion (  )  const [inline]

References m_implem.

Referenced by MiniIFFAB< T >::size(), and BaseIFFAB< T >::size().

const ProblemDomain & EBGraph::getDomain (  )  const [inline]

bool EBGraph::isDefined (  )  const [inline]

References m_implem.

bool EBGraph::isDomainSet (  )  const

void EBGraph::coarsenVoFs ( const EBGraph a_fineGraph,
const Box a_coarRegion 
) [inline]

References m_implem.

void EBGraph::coarsenFaces ( const EBGraph a_coarGhostGraph,
const EBGraph a_fineEBIS 
) [inline]

References m_implem.

void EBGraph::fixFineToCoarse ( EBGraph a_fineEBIS  )  const [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.

EBGraph & EBGraph::operator= ( const EBGraph ebiin  )  [inline]

References m_implem.

Vector< FaceIndex > EBGraph::getAllFaces ( const IntVect a_iv,
const int &  a_idir,
const Side::LoHiSide a_sd 
) const [inline]

References m_implem.

Referenced by EBISBox::getAllFaces().

Vector<FaceIndex> EBGraph::getIrregFaces ( const Box a_box,
int  a_dir 
) const

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]

pointer comparison

References m_implem.

bool EBGraph::operator< ( const EBGraph a_ebiin  )  const [inline]

pointer comparison

References m_implem.

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

This stuff required by LevelData in parallel:

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

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

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

Vector<FaceIndex> EBGraph::getMultiValuedFaces ( const int &  a_idir,
const Box a_box 
) 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.


Friends And Related Function Documentation

friend class EBIndexSpace [friend]

friend class EBISLevel [friend]


Member Data Documentation


The documentation for this class was generated from the following file:

Generated on Fri Apr 5 04:25:02 2019 for Chombo + EB by  doxygen 1.5.5