EBISLevel Class Reference

#include <EBISLevel.H>

List of all members.


Detailed Description

EBISLevel represents the geometric information of the domain at a particular level of refinement.

Public Member Functions

void dumpDebug (const string &a_string)
void coarsenVoFs (EBISLevel &a_fineEBIS)
void fixFineToCoarse (EBISLevel &a_fineEBIS)
void coarsenFaces (EBISLevel &a_fineEBIS)
long long numVoFsOnProc () const
Real totalVolFracOnProc () const
void levelStitch (EBISLevel &a_otherPhase, const EBISLevel *a_fineThisPtr, const EBISLevel *a_fineOtherPtr)
void reconcileIrreg (EBISLevel &a_otherPhase)
void cellStitch (EBData &a_ebdataCoarA, EBData &a_ebdataCoarB, const EBGraph &a_ebgrapCoarA, const EBGraph &a_ebgrapCoarB, const EBISBox &a_ebisbxFineA, const EBISBox &a_ebisbxFineB, const IntVect &a_iv, const int &a_aphase, const int &a_bphase)
 EBISLevel ()
 EBISLevel (const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx, const GeometryService &a_geoserver, int a_nCellMax, const bool &a_fixRegularNextToMultiValued=true)
 EBISLevel (EBISLevel &a_finerLevel, const GeometryService &a_geoserver, int a_nCellMax, const bool &a_fixRegularNextToMultiValued=true)
void checkGraph () const
 EBISLevel (HDF5Handle &handle)
 read from file from top level only file
 EBISLevel (HDF5Handle &a_handle, const int &a_levelNumber)
void write (HDF5Handle &a_handle) const
void write (HDF5Handle &a_handle, const int &a_levelNumber) const
 writes the given level for writeAllLevels
void sanityCheck (const EBIndexSpace *const a_ebisPtr=Chombo_EBIS::instance())
void fillEBISLayout (EBISLayout &a_ebis, const DisjointBoxLayout &a_grids, const int &a_nghost) const
 ~EBISLevel ()
const ProblemDomain & getDomain () const
const DisjointBoxLayout & getGrids () const
DisjointBoxLayout getIrregGrids (const ProblemDomain &a_domain) const
DisjointBoxLayout getFlowGrids (const ProblemDomain &a_domain) const
DisjointBoxLayout getCoveredGrids (const ProblemDomain &a_domain) const
IntVectSet irregCells () const
const Real & getDX () const
const RealVect & getOrigin () const
void fixRegularNextToMultiValued ()
void clearMultiBoundaries ()
void setBoundaryPhase (int phase)
void getGraphSummary (long long &a_irrVoFs, long long &a_arcs, long long &a_multiVoFs, long long &a_zeroVoFs, long long &a_zeroVoFsArcs)
void printGraphSummary (char const *a_prefix)

Public Attributes

int m_phase

Static Public Attributes

static int s_ebislGhost
static bool s_recursive

Private Member Functions

void dumpCache () const
void operator= (const EBISLevel &ebiin)
 EBISLevel (const EBISLevel &ebiin)
bool match (const Real &a_a, const Real &a_b) const
bool match (const RealVect &a_a, const RealVect &a_b) const
void refreshCache () const

Static Private Member Functions

static void defineGraphFromGeo (LevelData< EBGraph > &a_graph, LayoutData< Vector< IrregNode > > &a_allNodes, const GeometryService &a_geoserver, const DisjointBoxLayout &a_grids, const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx, bool a_hasMoments)
static void makeBoxes (Vector< Box > &a_boxes, Vector< unsigned long long > &a_loads, const Box &a_region, const ProblemDomain &a_domain, const GeometryService &a_geoserver, const RealVect &a_origin, const Real &a_dx, bool a_hasMoments, const int a_ncellmax)
static void makeLoads (Vector< unsigned long long > &a_loads, Vector< Box > &a_boxes, const Box &a_region, const ProblemDomain &a_domain, const GeometryService &a_geoserver, const RealVect &a_origin, const Real &a_dx, bool a_hasMoments, const int a_ncellmax)
static void makeBoxes (std::list< Box > &a_boxes, const Box &a_region, const ProblemDomain &a_domain, const GeometryService &a_geoserver, const RealVect &a_origin, const Real &a_dx, bool a_hasMoments, const int a_ncellmax)

Private Attributes

int m_level
DisjointBoxLayout m_grids
ProblemDomain m_domain
RealVect m_origin
Real m_dx
LevelData< EBGraph > m_graph
LevelData< EBData > m_data
bool m_hasMoments
 whether this has higher order moment info
Real m_tolerance
dmap m_cache
int m_cacheMisses
int m_cacheHits
int m_cacheStale

Static Private Attributes

static Real s_tolerance
static bool s_verbose

Friends

class EBIndexSpace

Constructor & Destructor Documentation

EBISLevel::EBISLevel (  ) 

EBISLevel::EBISLevel ( const ProblemDomain &  a_domain,
const RealVect &  a_origin,
const Real &  a_dx,
const GeometryService &  a_geoserver,
int  a_nCellMax,
const bool &  a_fixRegularNextToMultiValued = true 
)

Defines the level. Calls the geoserver to fill the layout with geometric information.

EBISLevel::EBISLevel ( EBISLevel &  a_finerLevel,
const GeometryService &  a_geoserver,
int  a_nCellMax,
const bool &  a_fixRegularNextToMultiValued = true 
)

Defines the level from a finer level (factor of two refinement ratio). Fills in all the coarse-fine information in both levels.

EBISLevel::EBISLevel ( HDF5Handle &  handle  ) 

read from file from top level only file

EBISLevel::EBISLevel ( HDF5Handle &  a_handle,
const int &  a_levelNumber 
)

EBISLevel::~EBISLevel (  ) 

EBISLevel::EBISLevel ( const EBISLevel &  ebiin  )  [inline, private]

References MayDay::Error().


Member Function Documentation

void EBISLevel::dumpDebug ( const string &  a_string  ) 

void EBISLevel::coarsenVoFs ( EBISLevel &  a_fineEBIS  ) 

void EBISLevel::fixFineToCoarse ( EBISLevel &  a_fineEBIS  ) 

void EBISLevel::coarsenFaces ( EBISLevel &  a_fineEBIS  ) 

long long EBISLevel::numVoFsOnProc (  )  const

Real EBISLevel::totalVolFracOnProc (  )  const

void EBISLevel::levelStitch ( EBISLevel &  a_otherPhase,
const EBISLevel *  a_fineThisPtr,
const EBISLevel *  a_fineOtherPtr 
)

void EBISLevel::reconcileIrreg ( EBISLevel &  a_otherPhase  ) 

void EBISLevel::cellStitch ( EBData &  a_ebdataCoarA,
EBData &  a_ebdataCoarB,
const EBGraph &  a_ebgrapCoarA,
const EBGraph &  a_ebgrapCoarB,
const EBISBox &  a_ebisbxFineA,
const EBISBox &  a_ebisbxFineB,
const IntVect &  a_iv,
const int &  a_aphase,
const int &  a_bphase 
)

void EBISLevel::checkGraph (  )  const

void EBISLevel::write ( HDF5Handle &  a_handle  )  const

void EBISLevel::write ( HDF5Handle &  a_handle,
const int &  a_levelNumber 
) const

writes the given level for writeAllLevels

void EBISLevel::sanityCheck ( const EBIndexSpace *const   a_ebisPtr = Chombo_EBIS::instance()  ) 

Checks to see the vofs are in the correct cells. Checks to see that the faces are over the correct cells. Checks that volume fractions, area fractions are positive. Bail out with MayDay::Error if anything fails.

void EBISLevel::fillEBISLayout ( EBISLayout &  a_ebis,
const DisjointBoxLayout &  a_grids,
const int &  a_nghost 
) const

const ProblemDomain& EBISLevel::getDomain (  )  const

const DisjointBoxLayout& EBISLevel::getGrids (  )  const

DisjointBoxLayout EBISLevel::getIrregGrids ( const ProblemDomain &  a_domain  )  const

DisjointBoxLayout EBISLevel::getFlowGrids ( const ProblemDomain &  a_domain  )  const

DisjointBoxLayout EBISLevel::getCoveredGrids ( const ProblemDomain &  a_domain  )  const

IntVectSet EBISLevel::irregCells (  )  const

const Real& EBISLevel::getDX (  )  const

const RealVect& EBISLevel::getOrigin (  )  const

void EBISLevel::fixRegularNextToMultiValued (  ) 

void EBISLevel::clearMultiBoundaries (  ) 

void EBISLevel::setBoundaryPhase ( int  phase  ) 

void EBISLevel::getGraphSummary ( long long &  a_irrVoFs,
long long &  a_arcs,
long long &  a_multiVoFs,
long long &  a_zeroVoFs,
long long &  a_zeroVoFsArcs 
)

void EBISLevel::printGraphSummary ( char const *  a_prefix  ) 

void EBISLevel::dumpCache (  )  const [private]

static void EBISLevel::defineGraphFromGeo ( LevelData< EBGraph > &  a_graph,
LayoutData< Vector< IrregNode > > &  a_allNodes,
const GeometryService &  a_geoserver,
const DisjointBoxLayout &  a_grids,
const ProblemDomain &  a_domain,
const RealVect &  a_origin,
const Real &  a_dx,
bool  a_hasMoments 
) [static, private]

static void EBISLevel::makeBoxes ( Vector< Box > &  a_boxes,
Vector< unsigned long long > &  a_loads,
const Box &  a_region,
const ProblemDomain &  a_domain,
const GeometryService &  a_geoserver,
const RealVect &  a_origin,
const Real &  a_dx,
bool  a_hasMoments,
const int  a_ncellmax 
) [static, private]

static void EBISLevel::makeLoads ( Vector< unsigned long long > &  a_loads,
Vector< Box > &  a_boxes,
const Box &  a_region,
const ProblemDomain &  a_domain,
const GeometryService &  a_geoserver,
const RealVect &  a_origin,
const Real &  a_dx,
bool  a_hasMoments,
const int  a_ncellmax 
) [static, private]

static void EBISLevel::makeBoxes ( std::list< Box > &  a_boxes,
const Box &  a_region,
const ProblemDomain &  a_domain,
const GeometryService &  a_geoserver,
const RealVect &  a_origin,
const Real &  a_dx,
bool  a_hasMoments,
const int  a_ncellmax 
) [static, private]

void EBISLevel::operator= ( const EBISLevel &  ebiin  )  [inline, private]

References MayDay::Error().

bool EBISLevel::match ( const Real &  a_a,
const Real &  a_b 
) const [inline, private]

References m_tolerance.

bool EBISLevel::match ( const RealVect &  a_a,
const RealVect &  a_b 
) const [inline, private]

References D_TERM6, and m_tolerance.

void EBISLevel::refreshCache (  )  const [private]


Friends And Related Function Documentation

friend class EBIndexSpace [friend]


Member Data Documentation

bool EBISLevel::s_recursive [static]

int EBISLevel::m_level [private]

Real EBISLevel::m_dx [private]

bool EBISLevel::m_hasMoments [private]

whether this has higher order moment info

Referenced by match().

dmap EBISLevel::m_cache [mutable, private]

int EBISLevel::m_cacheMisses [mutable, private]

int EBISLevel::m_cacheHits [mutable, private]

int EBISLevel::m_cacheStale [mutable, private]

Real EBISLevel::s_tolerance [static, private]

bool EBISLevel::s_verbose [static, private]


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