Derived version of GeometryShop that load balances based on the cut cells themselves.
More...
|
| ScanShop ()=delete |
| Disallowed default constructor.
|
|
| ScanShop (const BaseIF &a_geometry, const int a_verbosity, const Real a_finestDx, const RealVect a_probLo, const ProblemDomain a_finestDomain, const ProblemDomain a_scanLevel, const int a_ebGhost=4, const Real a_thrshdVoF=1.0e-16) |
| Constructor. More...
|
|
| ~ScanShop () |
| Destructor (does nothing)
|
|
void | setProfileFileName (const std::string a_fileName) |
| If doing profiling, set the output name.
|
|
void | makeGrids (const ProblemDomain &a_domain, DisjointBoxLayout &a_grids, const int &a_maxGridSize, const int &a_maxIrregGridSize) override |
| This grid generation method is called by EBISLevel when using distributed data. More...
|
|
GeometryService::InOut | InsideOutside (const Box &a_region, const ProblemDomain &a_domain, const RealVect &a_probLo, const Real &a_dx, const DataIndex &a_dit) const override |
| This method is called by EBSILevel when using distributed data. More...
|
|
virtual void | fillGraph (BaseFab< int > &a_regIrregCovered, Vector< IrregNode > &a_nodes, const Box &a_validRegion, const Box &a_ghostRegion, const ProblemDomain &a_domain, const RealVect &a_probLo, const Real &a_dx, const DataIndex &a_di) const override |
| Override of GeometryShop's fillGraph. More...
|
|
|
void | makeDomains (const Real a_dx, const RealVect a_probLo, const ProblemDomain a_finestDomain, const ProblemDomain a_scanLevel) |
| Create the problem domain and resolutions. More...
|
|
void | buildFinerLevels (const int a_coarserLevel, const int a_maxGridSize) |
| Refine levels recursively down to the finest level. More...
|
|
void | buildCoarseLevel (const int a_finerLevel, const int a_maxGridSize) |
| Build the "coarse level" where we initiate the recursion process. More...
|
|
bool | isRegular (const Box a_box, const RealVect a_probLo, const Real a_dx) const |
| Check if every point in input box is regular. More...
|
|
bool | isCovered (const Box a_box, const RealVect a_probLo, const Real a_dx) const |
| Check if every point in box is covered. More...
|
|
std::vector< std::pair< Box, int > > | getSortedBoxesAndTypes (const Vector< Box > &a_boxes, const Vector< int > &a_types) const |
| Sort boxes lexicographically. More...
|
|
void | defineLevel (Vector< Box > &coveredBoxes, Vector< Box > ®ularBoxes, Vector< Box > &cutCellBoxes, const int a_level) |
| Define the "box map" on a specified level.
|
|
|
std::string | m_fileName |
| Set output file name (if doing profiling)
|
|
BoxSorting | m_boxSorting |
| For arranging boxes in space when we load balance.
|
|
Timer | m_timer |
| Timer for when we use run-time profiling.
|
|
bool | m_profile |
| Bool for run-time profiling of ScanShop.
|
|
int | m_scanLevel |
| Scan level where we first begin to break up boxes. This is relative the EBIS level.
|
|
int | m_ebGhost |
| Maximum number of ghost cells near the EB.
|
|
RealVect | m_probLo |
| Lower-left corner of simulation domain.
|
|
const BaseIF * | m_baseIF |
| Implicit function used to generate geometrys.
|
|
bool | m_hasScanLevel |
| Check if scan level has been built.
|
|
Vector< Real > | m_dx |
| Level resolutions. Note that index 0 is the finest level.
|
|
Vector< ProblemDomain > | m_domains |
| Level domains. Note that index 0 is the finest level.
|
|
Vector< DisjointBoxLayout > | m_grids |
| Grids on each level, used for generating the EBIS information.
|
|
Vector< RefCountedPtr< LayoutData< GeometryService::InOut > > > | m_boxMap |
| Box maps. More...
|
|
std::vector< bool > | m_hasThisLevel |
| Check if level has been scanned. 0 = false, != 0 implies true.
|
|
Derived version of GeometryShop that load balances based on the cut cells themselves.
The internals of this class are basically the same as GeometryShop, with the exception that this class will generate an internal map of the computational domain on each level. This map is used to load balance the EB generation, most often leading to orders of magnitude speedup compared to Chombo's approach.