Chombo + EB  3.2
Public Member Functions | Public Attributes | Static Public Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
EBISLevel Class Reference

#include <EBISLevel.H>

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 More...
 
 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 More...
 
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 More...
 
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
 

Detailed Description

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

Constructor & Destructor Documentation

◆ EBISLevel() [1/6]

EBISLevel::EBISLevel ( )

◆ EBISLevel() [2/6]

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() [3/6]

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() [4/6]

EBISLevel::EBISLevel ( HDF5Handle &  handle)

read from file from top level only file

◆ EBISLevel() [5/6]

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

◆ ~EBISLevel()

EBISLevel::~EBISLevel ( )

◆ EBISLevel() [6/6]

EBISLevel::EBISLevel ( const EBISLevel &  ebiin)
inlineprivate

References MayDay::Error().

Member Function Documentation

◆ dumpDebug()

void EBISLevel::dumpDebug ( const string &  a_string)

◆ coarsenVoFs()

void EBISLevel::coarsenVoFs ( EBISLevel &  a_fineEBIS)

◆ fixFineToCoarse()

void EBISLevel::fixFineToCoarse ( EBISLevel &  a_fineEBIS)

◆ coarsenFaces()

void EBISLevel::coarsenFaces ( EBISLevel &  a_fineEBIS)

◆ numVoFsOnProc()

long long EBISLevel::numVoFsOnProc ( ) const

◆ totalVolFracOnProc()

Real EBISLevel::totalVolFracOnProc ( ) const

◆ levelStitch()

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

◆ reconcileIrreg()

void EBISLevel::reconcileIrreg ( EBISLevel &  a_otherPhase)

◆ cellStitch()

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 
)

◆ checkGraph()

void EBISLevel::checkGraph ( ) const

◆ write() [1/2]

void EBISLevel::write ( HDF5Handle &  a_handle) const

◆ write() [2/2]

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

writes the given level for writeAllLevels

◆ sanityCheck()

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.

◆ fillEBISLayout()

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

◆ getDomain()

const ProblemDomain& EBISLevel::getDomain ( ) const

◆ getGrids()

const DisjointBoxLayout& EBISLevel::getGrids ( ) const

◆ getIrregGrids()

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

◆ getFlowGrids()

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

◆ getCoveredGrids()

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

◆ irregCells()

IntVectSet EBISLevel::irregCells ( ) const

◆ getDX()

const Real& EBISLevel::getDX ( ) const

◆ getOrigin()

const RealVect& EBISLevel::getOrigin ( ) const

◆ fixRegularNextToMultiValued()

void EBISLevel::fixRegularNextToMultiValued ( )

◆ clearMultiBoundaries()

void EBISLevel::clearMultiBoundaries ( )

◆ setBoundaryPhase()

void EBISLevel::setBoundaryPhase ( int  phase)

◆ getGraphSummary()

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

◆ printGraphSummary()

void EBISLevel::printGraphSummary ( char const *  a_prefix)

◆ dumpCache()

void EBISLevel::dumpCache ( ) const
private

◆ defineGraphFromGeo()

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 
)
staticprivate

◆ makeBoxes() [1/2]

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 
)
staticprivate

◆ makeLoads()

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 
)
staticprivate

◆ makeBoxes() [2/2]

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 
)
staticprivate

◆ operator=()

void EBISLevel::operator= ( const EBISLevel &  ebiin)
inlineprivate

References MayDay::Error().

◆ match() [1/2]

bool EBISLevel::match ( const Real &  a_a,
const Real &  a_b 
) const
inlineprivate

◆ match() [2/2]

bool EBISLevel::match ( const RealVect &  a_a,
const RealVect &  a_b 
) const
inlineprivate

References D_TERM6.

◆ refreshCache()

void EBISLevel::refreshCache ( ) const
private

Friends And Related Function Documentation

◆ EBIndexSpace

friend class EBIndexSpace
friend

Member Data Documentation

◆ s_ebislGhost

int EBISLevel::s_ebislGhost
static

◆ m_phase

int EBISLevel::m_phase

◆ s_recursive

bool EBISLevel::s_recursive
static

◆ m_level

int EBISLevel::m_level
private

◆ m_grids

DisjointBoxLayout EBISLevel::m_grids
private

◆ m_domain

ProblemDomain EBISLevel::m_domain
private

◆ m_origin

RealVect EBISLevel::m_origin
private

◆ m_dx

Real EBISLevel::m_dx
private

◆ m_graph

LevelData<EBGraph> EBISLevel::m_graph
private

◆ m_data

LevelData<EBData> EBISLevel::m_data
private

◆ m_hasMoments

bool EBISLevel::m_hasMoments
private

whether this has higher order moment info

◆ m_tolerance

Real EBISLevel::m_tolerance
private

◆ m_cache

dmap EBISLevel::m_cache
mutableprivate

◆ m_cacheMisses

int EBISLevel::m_cacheMisses
mutableprivate

◆ m_cacheHits

int EBISLevel::m_cacheHits
mutableprivate

◆ m_cacheStale

int EBISLevel::m_cacheStale
mutableprivate

◆ s_tolerance

Real EBISLevel::s_tolerance
staticprivate

◆ s_verbose

bool EBISLevel::s_verbose
staticprivate

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