#include <EBISBox.H>
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< VolIndex > | getVoFs (const IntVect &a_iv) const |
Vector< VolIndex > | getVoFs (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 | isMultiValued (const IntVect &a_iv) const |
bool | isCovered (const Box &a_box) const |
bool | isRegular (const Box &a_box) const |
Vector< FaceIndex > | getFaces (const VolIndex &a_vof, const int &a_idir, const Side::LoHiSide &a_sd) const |
Vector< FaceIndex > | getAllFaces (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< VolIndex > | refine (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 VolIndex & | faceIndex (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 Box & | getRegion () const |
const ProblemDomain & | getDomain () const |
void | setDomain (const ProblemDomain &a_domain) |
Vector< FaceIndex > | refine (const FaceIndex &a_coarFace, const EBISBox &a_fineEBISBox) const |
FaceIndex | coarsen (const FaceIndex &a_fineFace) const |
void | setToAllRegular () |
void | setToAllCovered () |
const EBGraph & | getEBGraph () const |
define from scratch using irregular graph | |
const EBData & | getEBData () const |
void | define (const EBGraph &a_graph, const EBData &a_data, const DataIndex &a_dit) |
define from scratch using a graph and an ebdata | |
EBISBox & | operator= (const EBISBox &ebiin) |
pointer copy | |
EBISBox (const EBISBox &ebiin) | |
pointer copy | |
bool | operator== (const EBISBox &ebiin) |
pointer comparison | |
IndMomSpaceDim | getVolumeMoments (const VolIndex &a_vof) const |
get the moment at the VoF associated with the monomial with the input exponents | |
IndMomSpaceDim | getEBMoments (const VolIndex &a_vof) const |
get the normal the irregular face associated with the monomial with the input exponents | |
IndMomSDMinOne | getFaceMoments (const FaceIndex &a_face) const |
get the moment at the face associated with the monomial with the input exponents | |
IndMomSDMinOne | getAreaMoments (const FaceIndex &a_face) const |
I am sick of guessing this name wrong. | |
IndMomSpaceDim | getEBNormalPartialDerivs (const VolIndex &a_vof, int a_normalComponent) const |
DataIndex | dataIndex () const |
Private Attributes | |
EBGraph | m_graph |
this is already a ref-counted object | |
EBData | m_data |
this is already a ref-counted objecto | |
DataIndex | m_dit |
EBISBox::EBISBox | ( | ) |
Makes an EBISBox whose contents are undefined.
EBISBox::~EBISBox | ( | ) |
EBISBox::EBISBox | ( | const EBISBox & | ebiin | ) |
pointer copy
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().
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] |
Return true if a_iv is a covered cell.
References EBGraph::isCovered(), and m_graph.
Referenced by BaseEBCellFAB< T >::assign(), BaseEBCellFAB< T >::fill(), BaseEBCellFAB< T >::operator()(), and BaseEBCellFAB< T >::setCoveredCellVal().
bool EBISBox::isMultiValued | ( | const IntVect & | a_iv | ) | const [inline] |
Return true if this cell is multi-valued.
References EBGraph::isMultiValued(), and m_graph.
Referenced by BaseEBCellFAB< T >::assign(), BaseEBCellFAB< double >::dataType(), BaseEBCellFAB< T >::fill(), BaseEBCellFAB< double >::offset(), and BaseEBCellFAB< T >::operator()().
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] |
References EBGraph::getAllFaces(), and m_graph.
Referenced by BaseEBFaceFAB< T >::setCoveredFaceVal().
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.
Return the area fraction scaling of the input VoF. Currently, this is 1/Max_faces(areaFrac).
Return true if the two VoFs are connected.
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.
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).
Returns the corresponding VoF from the next coarser EBISBox (same solution location, different index space, factor of two refinement ratio).
Referenced by ViscousBaseEBBC::getBoundaryGrad().
Referenced by ViscousBaseEBBC::getChangeInSolution().
int EBISBox::numFacePhase | ( | const VolIndex & | a_vof | ) | const |
int EBISBox::facePhase | ( | const VolIndex & | a_vof, | |
int | face | |||
) | const |
used by multi-fluid code
used by multi-fluid code
Return the normal to the boundary at the input VoF. If said normal is undefined, returns the zero vector.
Referenced by ViscousBaseEBBC::getChangeInSolution().
const Box& EBISBox::getRegion | ( | ) | const |
Referenced by BaseEBCellFAB< T >::copy(), BaseEBFaceFAB< T >::define(), and BaseEBCellFAB< T >::define().
const ProblemDomain& EBISBox::getDomain | ( | ) | const |
Referenced by BaseEBFaceFAB< T >::copy(), BaseEBCellFAB< T >::copy(), and BaseEBFaceFAB< T >::define().
void EBISBox::setDomain | ( | const ProblemDomain & | a_domain | ) |
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);
const EBGraph& EBISBox::getEBGraph | ( | ) | const |
define from scratch using irregular graph
Referenced by BaseEBFaceFAB< T >::define(), BaseEBCellFAB< T >::define(), and EBPatchAdvect::floorPrimitives().
const EBData& EBISBox::getEBData | ( | ) | const |
define from scratch using a graph and an ebdata
bool EBISBox::operator== | ( | const EBISBox & | ebiin | ) |
pointer comparison
IndMomSpaceDim EBISBox::getVolumeMoments | ( | const VolIndex & | a_vof | ) | const [inline] |
get the moment at the VoF associated with the monomial with the input exponents
Given VoF variables x, y, z, p = mono(0), q = mono(1), r = mono(2), returns integral_over_VoF(x^p y^q z^r dV) for all p q
References EBData::getVolumeMoments(), and m_data.
IndMomSpaceDim EBISBox::getEBMoments | ( | const VolIndex & | a_vof | ) | const [inline] |
get the normal the irregular face associated with the monomial with the input exponents
Given VoF variables x, y, z, p = mono(0), q = mono(1), r = mono(2), returns integral_over_VoF((x^p y^q z^r) dV) for p q r
References EBData::getEBMoments(), and m_data.
IndMomSDMinOne EBISBox::getFaceMoments | ( | const FaceIndex & | a_face | ) | const [inline] |
get the moment at the face associated with the monomial with the input exponents
Given face variables x, y, p = mono(0), q = mono(1)), returns integral_over_face(x^p y^q dA) for all p q
References EBData::getFaceMoments(), and m_data.
Referenced by getAreaMoments().
IndMomSDMinOne EBISBox::getAreaMoments | ( | const FaceIndex & | a_face | ) | const [inline] |
IndMomSpaceDim EBISBox::getEBNormalPartialDerivs | ( | const VolIndex & | a_vof, | |
int | a_normalComponent | |||
) | const [inline] |
gets the partial derivs of the normal component.
References EBData::getEBNormalPartialDerivs(), and m_data.
EBGraph EBISBox::m_graph [private] |
this is already a ref-counted object
Referenced by getAllFaces(), getFaces(), getVoFs(), isAllCovered(), isAllRegular(), isCovered(), isIrregular(), isMultiValued(), isRegular(), and numVoFs().
EBData EBISBox::m_data [private] |
this is already a ref-counted objecto
Referenced by getEBMoments(), getEBNormalPartialDerivs(), getFaceMoments(), and getVolumeMoments().
DataIndex EBISBox::m_dit [private] |
Referenced by dataIndex().