Chombo + EB
3.2
|
#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 More... | |
const VolIndex & | faceIndex (const VolIndex &a_vof, int face) const |
used by multi-fluid code More... | |
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 More... | |
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 More... | |
EBISBox & | operator= (const EBISBox &ebiin) |
pointer copy More... | |
EBISBox (const EBISBox &ebiin) | |
pointer copy More... | |
bool | operator== (const EBISBox &ebiin) |
pointer comparison More... | |
IndMomSpaceDim | getVolumeMoments (const VolIndex &a_vof) const |
get the moment at the VoF associated with the monomial with the input exponents More... | |
IndMomSpaceDim | getEBMoments (const VolIndex &a_vof) const |
get the normal the irregular face associated with the monomial with the input exponents More... | |
IndMomSDMinOne | getFaceMoments (const FaceIndex &a_face) const |
get the moment at the face associated with the monomial with the input exponents More... | |
IndMomSDMinOne | getAreaMoments (const FaceIndex &a_face) const |
I am sick of guessing this name wrong. More... | |
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 More... | |
EBData | m_data |
this is already a ref-counted objecto More... | |
DataIndex | m_dit |
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.
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< Real >::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
|
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.
|
inline |
Return true if every cell in the EBISBox is a regular cell.
References EBGraph::isAllRegular(), and m_graph.
Referenced by BaseEBFaceFAB< Real >::setCoveredFaceVal().
|
inline |
Return true if every cell in the EBISBox is a covered cell.
References EBGraph::isAllCovered(), and m_graph.
Referenced by BaseEBFaceFAB< Real >::setCoveredFaceVal().
|
inline |
Return true if a_iv is a regular cell.
References EBGraph::isRegular(), and m_graph.
|
inline |
Return true if a_iv is an irregular cell.
References EBGraph::isIrregular(), and m_graph.
|
inline |
Return true if a_iv is a covered cell.
References EBGraph::isCovered(), and m_graph.
Referenced by BaseEBCellFAB< Real >::assign(), BaseEBCellFAB< Real >::fill(), and BaseEBCellFAB< Real >::operator()().
|
inline |
Return true if this cell is multi-valued.
References EBGraph::isMultiValued(), and m_graph.
Referenced by BaseEBCellFAB< Real >::assign(), BaseEBCellFAB< Real >::dataType(), BaseEBCellFAB< Real >::fill(), BaseEBCellFAB< Real >::offset(), and BaseEBCellFAB< Real >::operator()().
|
inline |
Return true if every cell in a_box is a covered cell.
References EBGraph::isCovered(), and m_graph.
|
inline |
Return true if every cell in a_box is a regular cell.
References EBGraph::isRegular(), and m_graph.
|
inline |
Return the faces on the side and direction of the input VoF.
References EBGraph::getFaces(), and m_graph.
|
inline |
References EBGraph::getAllFaces(), and m_graph.
Referenced by BaseEBFaceFAB< Real >::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< Real >::copy(), BaseEBCellFAB< Real >::define(), and BaseEBFaceFAB< Real >::define().
const ProblemDomain& EBISBox::getDomain | ( | ) | const |
Referenced by BaseEBCellFAB< Real >::copy(), BaseEBFaceFAB< Real >::copy(), and BaseEBFaceFAB< Real >::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 BaseEBCellFAB< Real >::define(), BaseEBFaceFAB< Real >::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
|
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.
|
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.
|
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().
|
inline |
I am sick of guessing this name wrong.
References getFaceMoments().
|
inline |
gets the partial derivs of the normal component.
References EBData::getEBNormalPartialDerivs(), and m_data.
|
private |
this is already a ref-counted object
Referenced by getAllFaces(), getFaces(), getVoFs(), isAllCovered(), isAllRegular(), isCovered(), isIrregular(), isMultiValued(), isRegular(), and numVoFs().
|
private |
this is already a ref-counted objecto
Referenced by getEBMoments(), getEBNormalPartialDerivs(), getFaceMoments(), and getVolumeMoments().
|
private |
Referenced by dataIndex().