| 
    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 | 
 1.8.13