EBISBox Class Reference

#include <EBISBox.H>

List of all members.


Detailed Description

Geometric description within a box EBISBox represents the geometric information of the domain at a given refinement within the boundaries of a particular box. It is implemented as a reference-counted pointer to an EBISBox object. This means that assignment and copying are computationally inexpensive but it also means that these functions have the reference-counted pointer semantic. If one copies an EBISBox and changes the copy, the original one changes too.

Public Member Functions

 EBISBox ()
 ~EBISBox ()
IntVectSet getMultiCells (const Box &a_subbox) const
IntVectSet getIrregIVS (const Box &a_subbox) const
IntVectSet boundaryIVS (const Box &a_subbox) const
int numVoFs (const IntVect &a_iv) const
Vector< VolIndexgetVoFs (const IntVect &a_iv) const
Vector< VolIndexgetVoFs (const VolIndex &a_vof, const int &a_dir, const Side::LoHiSide &a_sd, const int &a_steps) const
bool isAllRegular () const
bool isAllCovered () const
bool isRegular (const IntVect &a_iv) const
bool isIrregular (const IntVect &a_iv) const
bool isCovered (const IntVect &a_iv) const
bool isCovered (const Box &a_box) const
bool isRegular (const Box &a_box) const
Vector< FaceIndexgetFaces (const VolIndex &a_vof, const int &a_idir, const Side::LoHiSide &a_sd) const
Vector< FaceIndexgetAllFaces (const IntVect &a_iv, const int &a_idir, const Side::LoHiSide &a_sd) const
RealVect centroid (const FaceIndex &facein) const
int numFaces (const VolIndex &a_vof, const int &a_idir, const Side::LoHiSide &a_sd) const
Real volFrac (const VolIndex &a_vof) const
Real areaFracScaling (const VolIndex &a_vof) const
bool isConnected (const VolIndex &a_vof1, const VolIndex &a_vof2) const
Real areaFrac (const FaceIndex &a_face1) const
Real sumArea (const VolIndex &a_vof, const int &a_idir, const Side::LoHiSide &a_sd) const
RealVect centroid (const VolIndex &a_vof) const
Vector< VolIndexrefine (const VolIndex &a_coarVoF) const
VolIndex coarsen (const VolIndex &a_fineVoF) const
RealVect bndryCentroid (const VolIndex &a_vof) const
RealVect bndryCentroid (const VolIndex &a_vof, int face) const
Real bndryArea (const VolIndex &a_vof) const
Real bndryArea (const VolIndex &a_vof, int face) const
int numFacePhase (const VolIndex &a_vof) const
int facePhase (const VolIndex &a_vof, int face) const
 used by multi-fluid code
const VolIndexfaceIndex (const VolIndex &a_vof, int face) const
 used by multi-fluid code
RealVect normal (const VolIndex &a_vof) const
RealVect normal (const VolIndex &a_vof, int face) const
const BoxgetRegion () const
const ProblemDomaingetDomain () const
void setDomain (const ProblemDomain &a_domain)
Vector< FaceIndexrefine (const FaceIndex &a_coarFace, const EBISBox &a_fineEBISBox) const
FaceIndex coarsen (const FaceIndex &a_fineFace) const
void setToAllRegular ()
void setToAllCovered ()
void define (const BaseFab< int > &a_regIrregCovered, const Vector< IrregNode > &a_irregGraph, const Box &a_validRegion, const ProblemDomain &a_domain)
 define from scratch using irregular graph
const EBGraphgetEBGraph () const
const EBDatagetEBData () const
void define (const EBGraph &a_graph, const EBData &a_data)
 define from scratch using a graph and an ebdata
EBISBoxoperator= (const EBISBox &ebiin)
 pointer copy
 EBISBox (const EBISBox &ebiin)
 pointer copy
bool operator== (const EBISBox &ebiin)
 pointer comparison

Private Attributes

EBGraph m_graph
 this is already a ref-counted object
EBData m_data
 this is already a ref-counted objecto

Constructor & Destructor Documentation

EBISBox::EBISBox (  ) 

Makes an EBISBox whose contents are undefined.

EBISBox::~EBISBox (  ) 

EBISBox::EBISBox ( const EBISBox ebiin  ) 

pointer copy


Member Function Documentation

IntVectSet EBISBox::getMultiCells ( const Box a_subbox  )  const

Returns all the multi-valued cells within the input Box a_subbox.

Referenced by BaseEBCellFAB< T >::define().

IntVectSet EBISBox::getIrregIVS ( const Box a_subbox  )  const

Returns the irregular cells of the EBISBox that are within the input subbox.

IntVectSet EBISBox::boundaryIVS ( const Box a_subbox  )  const

Returns the irregular cells that have non-zero boundary area

int EBISBox::numVoFs ( const IntVect a_iv  )  const [inline]

Returns the number of VoFs in the cell

References m_graph, and EBGraph::numVoFs().

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

Return the VoFs in the cell.

References EBGraph::getVoFs(), and m_graph.

Vector<VolIndex> EBISBox::getVoFs ( const VolIndex a_vof,
const int &  a_dir,
const Side::LoHiSide a_sd,
const int &  a_steps 
) const

Return the VoFs in the direction and distance given. Chases the connectivity the number of steps given. a_steps = 0 just returns the vof input. a_steps < 0 is an error. Stops at the domain boundary without error. Will be an error if the number of steps steps out of the EBISBox region without stepping out of the domain. If this happens, you probably need to define your EBISLayout with more ghost cells.

bool EBISBox::isAllRegular (  )  const [inline]

Return true if every cell in the EBISBox is a regular cell.

References EBGraph::isAllRegular(), and m_graph.

Referenced by BaseEBCellFAB< T >::setCoveredCellVal(), and BaseEBFaceFAB< T >::setCoveredFaceVal().

bool EBISBox::isAllCovered (  )  const [inline]

Return true if every cell in the EBISBox is a covered cell.

References EBGraph::isAllCovered(), and m_graph.

Referenced by BaseEBCellFAB< T >::setCoveredCellVal(), and BaseEBFaceFAB< T >::setCoveredFaceVal().

bool EBISBox::isRegular ( const IntVect a_iv  )  const [inline]

Return true if a_iv is a regular cell.

References EBGraph::isRegular(), and m_graph.

bool EBISBox::isIrregular ( const IntVect a_iv  )  const [inline]

Return true if a_iv is an irregular cell.

References EBGraph::isIrregular(), and m_graph.

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

bool EBISBox::isCovered ( const Box a_box  )  const [inline]

Return true if every cell in a_box is a covered cell.

References EBGraph::isCovered(), and m_graph.

bool EBISBox::isRegular ( const Box a_box  )  const [inline]

Return true if every cell in a_box is a regular cell.

References EBGraph::isRegular(), and m_graph.

Vector< FaceIndex > EBISBox::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 EBGraph::getFaces(), and m_graph.

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

RealVect EBISBox::centroid ( const FaceIndex facein  )  const

Returns a RealVect whose component in the uninteresting direction normal to the face is undefined. Returns the centroid of input face in the (one or two) interesting directions. Return the zero vector if the face is covered or regular. The answer is given as a normalized (by grid spacing) offset from the center of the cell face (all numbers range from -0.5 to 0.5).

int EBISBox::numFaces ( const VolIndex a_vof,
const int &  a_idir,
const Side::LoHiSide a_sd 
) const

Return the number of faces on the side and direction of the input VoF.

Real EBISBox::volFrac ( const VolIndex a_vof  )  const

Return the volume fraction of teh input VoF.

Real EBISBox::areaFracScaling ( const VolIndex a_vof  )  const

Return the area fraction scaling of the input VoF. Currently, this is 1/Max_faces(areaFrac).

bool EBISBox::isConnected ( const VolIndex a_vof1,
const VolIndex a_vof2 
) const

Return true if the two VoFs are connected.

Real EBISBox::areaFrac ( const FaceIndex a_face1  )  const

Return the area fraction of the face. Returns zero if the two vofs in the face are not actually connected.

Real EBISBox::sumArea ( const VolIndex a_vof,
const int &  a_idir,
const Side::LoHiSide a_sd 
) const

Return the sum of area fractions of the high side of the vof in the given direction.

RealVect EBISBox::centroid ( const VolIndex a_vof  )  const

Returns the centroid of the input VoF. Return the zero vector if the VoF is regular or covered. The answer is given as a normalized (by grid spacing) offset from the center of the cell (all numbers range from -0.5 to 0.5).

Vector<VolIndex> EBISBox::refine ( const VolIndex a_coarVoF  )  const

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

VolIndex EBISBox::coarsen ( const VolIndex a_fineVoF  )  const

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

RealVect EBISBox::bndryCentroid ( const VolIndex a_vof  )  const

RealVect EBISBox::bndryCentroid ( const VolIndex a_vof,
int  face 
) const

Real EBISBox::bndryArea ( const VolIndex a_vof  )  const

Real EBISBox::bndryArea ( const VolIndex a_vof,
int  face 
) const

int EBISBox::numFacePhase ( const VolIndex a_vof  )  const

int EBISBox::facePhase ( const VolIndex a_vof,
int  face 
) const

used by multi-fluid code

const VolIndex& EBISBox::faceIndex ( const VolIndex a_vof,
int  face 
) const

used by multi-fluid code

RealVect EBISBox::normal ( const VolIndex a_vof  )  const

Return the normal to the boundary at the input VoF. If said normal is undefined, returns the zero vector.

Referenced by ViscousBaseEBBC::getChangeInSolution().

RealVect EBISBox::normal ( const VolIndex a_vof,
int  face 
) const

const Box& EBISBox::getRegion (  )  const

const ProblemDomain& EBISBox::getDomain (  )  const

void EBISBox::setDomain ( const ProblemDomain a_domain  ) 

Vector<FaceIndex> EBISBox::refine ( const FaceIndex a_coarFace,
const EBISBox a_fineEBISBox 
) const

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

FaceIndex EBISBox::coarsen ( const FaceIndex a_fineFace  )  const

Returns the corresponding face from the next coarser { EBISLevel} (same solution location, different index space, factor of two refinement ratio).

void EBISBox::setToAllRegular (  ) 

Set the graph to all regular cells (sparse);

void EBISBox::setToAllCovered (  ) 

Set the graph to all covered cells (sparse);

void EBISBox::define ( const BaseFab< int > &  a_regIrregCovered,
const Vector< IrregNode > &  a_irregGraph,
const Box a_validRegion,
const ProblemDomain a_domain 
)

define from scratch using irregular graph

const EBGraph& EBISBox::getEBGraph (  )  const

const EBData& EBISBox::getEBData (  )  const

void EBISBox::define ( const EBGraph a_graph,
const EBData a_data 
)

define from scratch using a graph and an ebdata

EBISBox& EBISBox::operator= ( const EBISBox ebiin  ) 

pointer copy

bool EBISBox::operator== ( const EBISBox ebiin  ) 

pointer comparison


Member Data Documentation

this is already a ref-counted object

Referenced by getAllFaces(), getFaces(), getVoFs(), isAllCovered(), isAllRegular(), isCovered(), isIrregular(), isRegular(), and numVoFs().

this is already a ref-counted objecto


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

Generated on Sun Apr 23 03:43:07 2017 for Chombo + EB by  doxygen 1.5.5