23#include <CD_NamespaceHeader.H>
723#include <CD_NamespaceFooter.H>
Declaration of a class for handling particle-mesh operations with AMR.
Declaration of LevelTiles.
Declaration of a wrapper for wrapping multifluid EBLevelGrids.
File containing declaration of PetscGrid.
Declaration of the PhaseRealm class.
Vector< RefCountedPtr< LevelData< BaseFab< bool > > > > AMRMask
Alias for cutting down on the typic of booleans defined over AMR grids.
Definition CD_Realm.H:28
Type
Supported interpolation types.
Definition CD_CellCentroidInterpolation.H:44
Class for handling particle-mesh operations with AMR.
Definition CD_EBAMRParticleMesh.H:53
class for handling surface deposition of particles with EB and AMR.
Definition CD_EBAMRSurfaceDeposition.H:30
Type
Supported interpolation types.
Definition CD_EBCentroidInterpolation.H:44
Class that holds important things for doing AMR over a specific phase and processor distribution.
Definition CD_PhaseRealm.H:74
Class for holding multifluid Realms, which are the Realms that we actually use.
Definition CD_Realm.H:34
void registerMask(const std::string &a_mask, const int a_buffer)
Register a mask.
Definition CD_Realm.cpp:1125
Vector< RefCountedPtr< EBReflux > > & getFluxRegister(const phase::which_phase a_phase)
Get flux register utility.
Definition CD_Realm.cpp:1324
void defineMFLevelGrid(const int a_lmin)
Define MFLevelGrid.
Definition CD_Realm.cpp:212
bool queryOperator(const std::string &a_operator, const phase::which_phase a_phase) const
Query if an AMR operator has been registered.
Definition CD_Realm.cpp:1114
Vector< RefCountedPtr< EBCoarseToFineInterp > > & getFineInterp(const phase::which_phase a_phase)
Get piecewise linear ghost cell interpolation utility.
Definition CD_Realm.cpp:1318
AMRMask m_validCells
Mask which is true for all valid cells.
Definition CD_Realm.H:579
static const std::string primal
Identifier for perimal realm.
Definition CD_Realm.H:44
void define(const Vector< DisjointBoxLayout > &a_grids, const Vector< ProblemDomain > &a_domains, const Vector< int > &a_refRat, const Vector< Real > &a_dx, const RealVect &a_probLo, const int a_finestLevel, const int a_blockingFactor, const int a_ebGhost, const int a_numGhost, const int a_lsfGhost, const int a_redistRad, const int a_mgInterpOrder, const int a_mgInterpRadius, const int a_mgInterpWeight, const CellCentroidInterpolation::Type a_centroidInterpType, const EBCentroidInterpolation::Type a_ebInterpType, const std::map< phase::which_phase, RefCountedPtr< BaseIF > > &a_baseif, const RefCountedPtr< MultiFluidIndexSpace > &a_mfis)
Full define function.
Definition CD_Realm.cpp:42
Realm(const Realm &a_other)=delete
Disallowed copy ctor.
bool m_isDefined
Realm defined or not.
Definition CD_Realm.H:504
void defineOuterHaloMask(const int a_lmin)
Define outer particle halo mask.
Definition CD_Realm.cpp:284
std::map< phase::which_phase, RefCountedPtr< BaseIF > > m_baseif
Implicit/signed distance functions on each phase.
Definition CD_Realm.H:597
Vector< ProblemDomain > m_domains
Domains.
Definition CD_Realm.H:549
Vector< int > m_refinementRatios
Refinement ratios.
Definition CD_Realm.H:539
Vector< RefCountedPtr< EBFluxRedistribution > > & getRedistributionOp(const phase::which_phase a_phase)
Get the redistribution operators.
Definition CD_Realm.cpp:1330
Realm(const Realm &&a_other)=delete
Disallowed move ctor.
const Vector< ProblemDomain > & getDomains() const
Get problem domains.
Definition CD_Realm.cpp:1180
bool queryMask(const std::string &a_mask, const int a_buffer) const
Query if a mask has been registered.
Definition CD_Realm.cpp:1136
const Vector< RefCountedPtr< EBNonConservativeDivergence > > & getNonConservativeDivergence(const phase::which_phase a_phase) const
Get objects for computing "non-conservative divergences".
Definition CD_Realm.cpp:1264
Vector< RefCountedPtr< MFLevelGrid > > m_mflgCoFi
Coarsened grids. Entry lvl contains the coarsened version of grids on level lvl+1.
Definition CD_Realm.H:559
const EBAMRCellData & getNotCoveredCells(const phase::which_phase a_phase) const
Get the non-covered-cell mask (1 in regular/irregular cells, 0 in covered cells) for a phase.
Definition CD_Realm.cpp:1354
void defineValidCells()
Define the valid cell region mask.
Definition CD_Realm.cpp:970
Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & getMultiCutFaceIterator(const phase::which_phase a_phase) const
Get face iterators restricted to multiply-cut faces in each valid grid box.
Definition CD_Realm.cpp:1258
Vector< RefCountedPtr< MFLevelGrid > > & getMFLevelGridFiCo()
Get the refined grids.
Definition CD_Realm.cpp:1198
const Vector< EBISLayout > & getEBISLayout(const phase::which_phase a_phase) const
Get EBISLayout for particular phase.
Definition CD_Realm.cpp:1210
Vector< RefCountedPtr< LayoutData< VoFIterator > > > & getMultiCutVofIterator(const phase::which_phase a_phase) const
Get VoFIterators restricted to multiply-cut cells for a particular phase.
Definition CD_Realm.cpp:1234
Vector< RefCountedPtr< MFLevelGrid > > & getMFLevelGridCoFi()
Get the coarsened grids.
Definition CD_Realm.cpp:1192
Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & getFaceIteratorWithTangentialGhosts(const phase::which_phase a_phase) const
Get per-direction face iterators covering cut-cell faces that reach into the tangential ghost layer.
Definition CD_Realm.cpp:1252
Vector< RefCountedPtr< LayoutData< VoFIterator > > > & getVofIterator(const phase::which_phase a_phase) const
Get VoFIterators covering all cut-cells (singly- and multiply-cut) for a particular phase.
Definition CD_Realm.cpp:1228
Vector< RefCountedPtr< EBMultigridInterpolator > > & getMultigridInterpolator(const phase::which_phase a_phase)
Get the multigrid interpolator.
Definition CD_Realm.cpp:1300
const Vector< RefCountedPtr< EBGradient > > & getGradientOp(const phase::which_phase a_phase) const
Get gradient operator.
Definition CD_Realm.cpp:1306
const Vector< DisjointBoxLayout > & getGrids() const
Get AMR grids.
Definition CD_Realm.cpp:1174
int m_verbosity
Realm verbosity. Used for debugging.
Definition CD_Realm.H:509
void registerOperator(const std::string &a_operator, const phase::which_phase a_phase)
Register an AMR operator.
Definition CD_Realm.cpp:1103
void defineInnerCFMask(const int a_lmin)
Define a mask which is true on the inside (i.e., fine side) of the refinement boundary.
Definition CD_Realm.cpp:824
Vector< RefCountedPtr< MFLevelGrid > > m_mflg
MFLevelGrids.
Definition CD_Realm.H:554
Vector< RefCountedPtr< EBCoarAve > > & getCoarseAverage(const phase::which_phase a_phase)
Get data coarsening utility.
Definition CD_Realm.cpp:1282
Vector< Real > m_dx
Grid resolutions.
Definition CD_Realm.H:534
const Vector< RefCountedPtr< EBLevelGrid > > & getEBLevelGrid(const phase::which_phase a_phase) const
Get EBLevelGrid for particular phase.
Definition CD_Realm.cpp:1216
const EBAMRCellData & getCoveredCells(const phase::which_phase a_phase) const
Get the covered-cell mask (value 1 in covered cells, 0 elsewhere) for a phase.
Definition CD_Realm.cpp:1348
std::map< phase::which_phase, RefCountedPtr< PhaseRealm > > m_realms
Phase realms.
Definition CD_Realm.H:592
Vector< RefCountedPtr< EBGhostCellInterpolator > > & getGhostCellInterpolator(const phase::which_phase a_phase)
Get ghost cell interpolator.
Definition CD_Realm.cpp:1312
Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & getFaceIteratorNoBoundary(const phase::which_phase a_phase) const
Get face iterators with FaceStop::SurroundingNoBoundary over cut-cell faces in each valid grid box fo...
Definition CD_Realm.cpp:1246
const AMRMask & getValidCells() const
Get all valid cells.
Definition CD_Realm.cpp:1377
Realm & operator=(const Realm &&a_other)=delete
Disallowed move assignment operator.
Realm & operator=(const Realm &a_other)=delete
Disallowed copy assignment operator.
const Vector< int > & getRefinementRatios() const
Get refinement ratios.
Definition CD_Realm.cpp:1162
Vector< RefCountedPtr< MFLevelGrid > > & getMFLevelGrid()
Get MFLevelGrids.
Definition CD_Realm.cpp:1186
void defineLevelTiles() noexcept
Define the tiled space.
Definition CD_Realm.cpp:1059
int m_finestLevel
Finest AMR level.
Definition CD_Realm.H:514
const EBAMRCellData & getIrregularCells(const phase::which_phase a_phase) const
Get the irregular-cell mask (value 1 in irregular cells, 0 elsewhere) for a phase.
Definition CD_Realm.cpp:1360
Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & getFaceIterator(const phase::which_phase a_phase) const
Get face iterators with FaceStop::SurroundingWithBoundary over cut-cell faces in each valid grid box ...
Definition CD_Realm.cpp:1240
void regridOperators(const int a_lmin)
Regrid method for EBAMR operators.
Definition CD_Realm.cpp:172
void defineMasks(const int a_lmin)
Define masks.
Definition CD_Realm.cpp:188
Vector< RefCountedPtr< LevelTiles > > m_levelTiles
Level "tiles" – i.e. the grids viewed as constant-size boxes.
Definition CD_Realm.H:569
std::map< std::pair< std::string, int >, AMRMask > m_masks
Masks.
Definition CD_Realm.H:602
int m_blockingFactor
Blocking factor.
Definition CD_Realm.H:519
Vector< RefCountedPtr< MFLevelGrid > > m_mflgFiCo
Refined grids. Entry lvl+1 contains the refined version of grids on level lvl.
Definition CD_Realm.H:564
const Vector< RefCountedPtr< EBLevelGrid > > & getEBLevelGridCoFi(const phase::which_phase a_phase) const
Get coarsened fine EBLevelGrid for particular phase.
Definition CD_Realm.cpp:1222
void definePetscGrid() noexcept
Define the PETSc composite grid.
Definition CD_Realm.cpp:1074
EBAMRParticleMesh & getParticleMesh(const phase::which_phase a_phase)
Get the particle mesh operator.
Definition CD_Realm.cpp:1288
const Vector< RefCountedPtr< LevelTiles > > & getLevelTiles() const noexcept
Get the tiled space.
Definition CD_Realm.cpp:1383
const Vector< Real > & getDx() const
Get grid resolutions.
Definition CD_Realm.cpp:1168
PhaseRealm & getRealm(const phase::which_phase a_phase)
Get a particular realm.
Definition CD_Realm.cpp:1156
void setGrids(const Vector< DisjointBoxLayout > &a_grids, const int a_finestLevel)
Set grid method.
Definition CD_Realm.cpp:120
RefCountedPtr< MultiFluidIndexSpace > m_multifluidIndexSpace
Index spaces.
Definition CD_Realm.H:574
const EBAMRCellData & getRegularCells(const phase::which_phase a_phase) const
Get the regular-cell mask (value 1 in regular cells, 0 elsewhere) for a phase.
Definition CD_Realm.cpp:1342
const RefCountedPtr< EBIndexSpace > & getEBIndexSpace(const phase::which_phase a_phase) const
Get EBIndexSpace for particular phase.
Definition CD_Realm.cpp:1204
const AMRMask & getMask(const std::string &a_mask, const int a_buffer) const
Get AMR mask.
Definition CD_Realm.cpp:1366
void defineCFIVS(const int a_lmin)
Define the coarse-fine interface.
Definition CD_Realm.cpp:905
Realm()
Default constructor. Must subsequently call define.
Definition CD_Realm.cpp:27
EBAMRSurfaceDeposition & getSurfaceDeposition(const phase::which_phase a_phase)
Get the particle mesh operator.
Definition CD_Realm.cpp:1294
void defineInnerHaloMask(const int a_lmin)
Define inner particle halo mask.
Definition CD_Realm.cpp:473
Vector< DisjointBoxLayout > m_grids
AMR grids.
Definition CD_Realm.H:544
static const std::string Primal
Identifier for perimal realm.
Definition CD_Realm.H:39
void preRegrid()
Perform pre-regrid operations.
Definition CD_Realm.cpp:133
RealVect m_probLo
Physical coordinates of lower-left corner in simulation domain.
Definition CD_Realm.H:529
const EBAMRFAB & getLevelset(const phase::which_phase a_phase) const
Get level-set function.
Definition CD_Realm.cpp:1336
int m_numGhost
Number of ghost cells.
Definition CD_Realm.H:524
void regridBase(const int a_lmin)
Regrid method for EBAMR base.
Definition CD_Realm.cpp:155
const Vector< RefCountedPtr< EBCentroidInterpolation > > & getEBCentroidInterpolation(const phase::which_phase a_phase) const
Get objects for computing interpolation of cell-centered data to EB centroids.
Definition CD_Realm.cpp:1276
void defineOuterCFMask(const int a_lmin)
Define a mask which is true on the outside (i.e., coarse side) of the refinement boundary.
Definition CD_Realm.cpp:635
const Vector< RefCountedPtr< CellCentroidInterpolation > > & getCellCentroidInterpolation(const phase::which_phase a_phase) const
Get objects for computing interpolation of cell-centered data to cell centroids.
Definition CD_Realm.cpp:1270
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:26
Phase names namespace.
Definition CD_MultiFluidIndexSpace.H:28
which_phase
Enumeration of supported phases.
Definition CD_MultiFluidIndexSpace.H:38