Chombo + EB
3.2
|
#include <EBIndexSpace.H>
Public Member Functions | |
EBIndexSpace () | |
void | define (const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx, const GeometryService &a_geoserver, int a_nCellMax=-1, int a_maxCoarsenings=-1) |
void | define (HDF5Handle &a_handle, ProblemDomain a_finestLevel) |
reads in all levels from finest level down More... | |
void | define (HDF5Handle &a_handle, int a_maxCoarsenings=-1) |
defines from one level and then does coarsening More... | |
void | define (EBISLevel *a_level0, int a_nCellMax=-1, int a_maxCoarsenings=-1) |
void | define (const ProblemDomain &a_entireDomain, const RealVect &a_origin, const Real &a_dx, const Vector< RefCountedPtr< EBIndexSpace > > &a_patches, const Vector< IntVect > &a_offsets, int a_maxCoarsenings=-1) |
EBISLevel * | buildFirstLevel (const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx, const GeometryService &a_geoserver, int a_nCellMax, int a_maxCoarsenings, bool a_fixRegularNextToMultiValued=true) |
EBISLevel * | buildNextLevel (const GeometryService &a_geoserver, int a_nCellMax, bool a_fixRegularNextToMultiValued=true) |
~EBIndexSpace () | |
bool | setDistributedData () |
int | numLevels () const |
long long | numVoFs (const ProblemDomain &a_domain) const |
Real | totalVolFrac (const ProblemDomain &a_domain) const |
int | getLevel (const ProblemDomain &a_domain) const |
RealVect | getOrigin () const |
const ProblemDomain & | getBox (int level) const |
void | fillEBISLayout (EBISLayout &a_ebis, const DisjointBoxLayout &a_grids, const ProblemDomain &a_domain, const int &a_nghost) const |
bool | isDefined () const |
void | clear () |
int | getNCellMax () const |
void | write (HDF5Handle &a_handle, ProblemDomain a_outputLevel=ProblemDomain()) const |
void | writeInfo (HDF5Handle &handle) const |
void | writeAllLevels (HDF5Handle &a_handle) const |
void | readInAllLevels (HDF5Handle &a_handle, ProblemDomain a_finestLevel) |
DisjointBoxLayout | getIrregGrids (int level) const |
DisjointBoxLayout | getIrregGrids (const ProblemDomain &a_domain) const |
DisjointBoxLayout | getFlowGrids (int level) const |
DisjointBoxLayout | getGrids (const ProblemDomain &a_domain) const |
DisjointBoxLayout | getFlowGrids (const ProblemDomain &a_domain) const |
DisjointBoxLayout | getCoveredGrids (int level) const |
DisjointBoxLayout | getCoveredGrids (const ProblemDomain &a_domain) const |
DisjointBoxLayout | levelGrids (int level) const |
Real | dx (int level) const |
IntVectSet | irregCells (int depth=0) const |
void | setCellMax (int max) |
void | resetLevels (int nLevel) |
Vector< RefCountedPtr< EBIndexSpace > > | connectedComponents () |
Vector< RefCountedPtr< EBIndexSpace > > | connectedComponentsNew () |
RefCountedPtr< EBIndexSpace > | biggestConnectedComponent (int &a_numComponents) |
RefCountedPtr< EBIndexSpace > | biggestConnectedComponentNew (int &a_numComponents) |
Static Public Attributes | |
static bool | s_MFSingleBox |
static bool | s_useMemoryLoadBalance |
Private Member Functions | |
Vector< RefCountedPtr< EBIndexSpace > > | findConnectedComponents (int &a_numComponents, const bool &a_onlyBiggest) |
Vector< RefCountedPtr< EBIndexSpace > > | findConnectedComponentsNew (int &a_numComponents, const bool &a_onlyBiggest) |
bool | setAllConnectedVoFs (Real &a_totalVolFrac, EBCellFAB &a_curEBCellFAB, const EBGraph &a_curEBGraph, const EBISBox &a_curEBISBox, const VolIndex &a_curVoF, const VolIndex &a_lastVoF, const unsigned int &a_curNum) |
bool | setAllConnectedVoFsNew (Real &a_totalVolFrac, EBCellFAB &a_curEBCellFAB, const Box &a_curBox, const EBGraph &a_curEBGraph, const EBISBox &a_curEBISBox, const VolIndex &a_curVoF, const VolIndex &a_lastVoF, const unsigned int &a_curNum) |
void | resetAllConnectedVoFs (EBCellFAB &a_curEBCellFAB, const EBGraph &a_curEBGraph, const EBISBox &a_curEBISBox, const VolIndex &a_curVoF, const VolIndex &a_lastVoF) |
void | resetAllConnectedVoFsNew (EBCellFAB &a_curEBCellFAB, const Box &a_curBox, const EBGraph &a_curEBGraph, const EBISBox &a_curEBISBox, const VolIndex &a_curVoF, const VolIndex &a_lastVoF) |
void | operator= (const EBIndexSpace &ebiin) |
EBIndexSpace (const EBIndexSpace &ebiin) | |
Private Attributes | |
int | m_nCellMax |
bool | m_isDefined |
bool | m_distributedData |
Vector< EBISLevel * > | m_ebisLevel |
Vector< ProblemDomain > | m_domainLevel |
int | m_nlevels |
Static Private Attributes | |
static Real | s_tolerance |
static bool | s_verbose |
Friends | |
class | Chombo_EBIS |
EBIndexSpace represents the geometric information of the domain. It should be generated through the Chombo_EBIS class. This follows the singleton pattern.
Construction of the EBIndexSpace can follow one of methods
EBIndexSpace::EBIndexSpace | ( | ) |
EBIndexSpace::~EBIndexSpace | ( | ) |
|
inlineprivate |
References MayDay::Error().
void EBIndexSpace::define | ( | const ProblemDomain & | a_domain, |
const RealVect & | a_origin, | ||
const Real & | a_dx, | ||
const GeometryService & | a_geoserver, | ||
int | a_nCellMax = -1 , |
||
int | a_maxCoarsenings = -1 |
||
) |
If a_ncellMax is set, that is the max width of an internal grid. Otherwise use defaults of (16 in 3D, 64 in 2d)
This
void EBIndexSpace::define | ( | HDF5Handle & | a_handle, |
ProblemDomain | a_finestLevel | ||
) |
reads in all levels from finest level down
void EBIndexSpace::define | ( | HDF5Handle & | a_handle, |
int | a_maxCoarsenings = -1 |
||
) |
defines from one level and then does coarsening
void EBIndexSpace::define | ( | EBISLevel * | a_level0, |
int | a_nCellMax = -1 , |
||
int | a_maxCoarsenings = -1 |
||
) |
void EBIndexSpace::define | ( | const ProblemDomain & | a_entireDomain, |
const RealVect & | a_origin, | ||
const Real & | a_dx, | ||
const Vector< RefCountedPtr< EBIndexSpace > > & | a_patches, | ||
const Vector< IntVect > & | a_offsets, | ||
int | a_maxCoarsenings = -1 |
||
) |
EBISLevel* EBIndexSpace::buildFirstLevel | ( | const ProblemDomain & | a_domain, |
const RealVect & | a_origin, | ||
const Real & | a_dx, | ||
const GeometryService & | a_geoserver, | ||
int | a_nCellMax, | ||
int | a_maxCoarsenings, | ||
bool | a_fixRegularNextToMultiValued = true |
||
) |
EBISLevel* EBIndexSpace::buildNextLevel | ( | const GeometryService & | a_geoserver, |
int | a_nCellMax, | ||
bool | a_fixRegularNextToMultiValued = true |
||
) |
|
inline |
Set a flag that indicates the data defining the EB is distributed. This will signal EBISLevel to hand grid generation off to the GeometryService. Function returns previous value of m_distributedData. Call this before define() if this functionality is desired.
References getLevel(), m_distributedData, numLevels(), numVoFs(), and totalVolFrac().
int EBIndexSpace::numLevels | ( | ) | const |
Referenced by setDistributedData().
long long EBIndexSpace::numVoFs | ( | const ProblemDomain & | a_domain | ) | const |
Get the number of vofs over the entire domain. This is blocking as a broadcast and gather are required.
Referenced by setDistributedData().
Real EBIndexSpace::totalVolFrac | ( | const ProblemDomain & | a_domain | ) | const |
Get the total of the volume fractions over the entire domain. This is blocking as a broadcast and gather are required.
Referenced by setDistributedData().
int EBIndexSpace::getLevel | ( | const ProblemDomain & | a_domain | ) | const |
return level index of domain. return -1 if a_domain does not correspond to any refinement of EBIS.
Referenced by getCoveredGrids(), getFlowGrids(), getGrids(), getIrregGrids(), and setDistributedData().
|
inline |
References m_ebisLevel.
|
inline |
returns the problem domain box at a level of refinement
References clear(), fillEBISLayout(), getNCellMax(), isDefined(), and m_domainLevel.
void EBIndexSpace::fillEBISLayout | ( | EBISLayout & | a_ebis, |
const DisjointBoxLayout & | a_grids, | ||
const ProblemDomain & | a_domain, | ||
const int & | a_nghost | ||
) | const |
Referenced by getBox().
bool EBIndexSpace::isDefined | ( | ) | const |
Return true if the define function has been called.
Referenced by getBox().
void EBIndexSpace::clear | ( | ) |
Referenced by getBox().
int EBIndexSpace::getNCellMax | ( | ) | const |
Referenced by getBox().
void EBIndexSpace::write | ( | HDF5Handle & | a_handle, |
ProblemDomain | a_outputLevel = ProblemDomain() |
||
) | const |
Writes out finest level as a default. Writes at the level you are domain you want if a_outputLevel is defined.
void EBIndexSpace::writeInfo | ( | HDF5Handle & | handle | ) | const |
void EBIndexSpace::writeAllLevels | ( | HDF5Handle & | a_handle | ) | const |
Outputs ALL levels of the EBIS. this is the one to use if you want to do all definition through the file (no coarsening).
void EBIndexSpace::readInAllLevels | ( | HDF5Handle & | a_handle, |
ProblemDomain | a_finestLevel | ||
) |
Define entirely from the input file. a_finestLevel can be a coarsening of the finest level in the file. No coarsening algorithm is done.
|
inline |
References m_domainLevel, and m_ebisLevel.
|
inline |
References getLevel(), and m_ebisLevel.
|
inline |
References m_domainLevel, and m_ebisLevel.
|
inline |
References getLevel(), and m_ebisLevel.
|
inline |
References getLevel(), and m_ebisLevel.
|
inline |
References m_domainLevel, and m_ebisLevel.
|
inline |
References getLevel(), and m_ebisLevel.
|
inline |
References m_ebisLevel.
|
inline |
References m_ebisLevel.
|
inline |
References m_ebisLevel.
|
inline |
void EBIndexSpace::resetLevels | ( | int | nLevel | ) |
Referenced by setCellMax().
Vector<RefCountedPtr<EBIndexSpace> > EBIndexSpace::connectedComponents | ( | ) |
Referenced by setCellMax().
Vector<RefCountedPtr<EBIndexSpace> > EBIndexSpace::connectedComponentsNew | ( | ) |
Referenced by setCellMax().
RefCountedPtr<EBIndexSpace> EBIndexSpace::biggestConnectedComponent | ( | int & | a_numComponents | ) |
Referenced by setCellMax().
RefCountedPtr<EBIndexSpace> EBIndexSpace::biggestConnectedComponentNew | ( | int & | a_numComponents | ) |
Referenced by setCellMax().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inlineprivate |
References MayDay::Error().
|
friend |
This makes Chombo_EBIS be the only function that can call the private constructor.
|
static |
|
static |
|
private |
Referenced by setCellMax().
|
private |
|
private |
Referenced by setDistributedData().
Referenced by dx(), getCoveredGrids(), getFlowGrids(), getGrids(), getIrregGrids(), getOrigin(), irregCells(), and levelGrids().
|
private |
Referenced by getBox(), getCoveredGrids(), getFlowGrids(), and getIrregGrids().
|
private |
|
staticprivate |
|
staticprivate |