chombo-discharge
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PhaseRealm Class Reference

Class that holds important things for doing AMR over a specific phase and processor distribution. More...

#include <CD_PhaseRealm.H>

Collaboration diagram for PhaseRealm:
Collaboration graph
[legend]

Public Member Functions

 PhaseRealm ()
 Default constructor. Must subsequently call define.
 
 PhaseRealm (const PhaseRealm &a_other)=delete
 Disallowed copy ctor.
 
 PhaseRealm (const PhaseRealm &&a_other)=delete
 Disallowed move ctor.
 
PhaseRealmoperator= (const PhaseRealm &a_other)=delete
 Disallowed copy assignment operator.
 
PhaseRealmoperator= (const PhaseRealm &&a_other)=delete
 Disallowed move assignment operator.
 
virtual ~PhaseRealm ()
 Destructor.
 
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_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_centroidStencil, const EBCentroidInterpolation::Type a_ebStencil, const RefCountedPtr< BaseIF > &a_baseif, const RefCountedPtr< EBIndexSpace > &a_ebis)
 Full define function.
 
void setGrids (const Vector< DisjointBoxLayout > &a_grids, const int a_finestLevel)
 Set grid method.
 
void preRegrid ()
 Perform pre-regrid operations.
 
void regridBase (const int a_lmin)
 Regrid method for EBAMR base.
 
void regridOperators (const int a_lmin)
 Regrid method for EBAMR operators.
 
void registerOperator (const std::string &a_operator)
 Register an AMR operator.
 
bool queryOperator (const std::string &a_operator) const
 Query if an AMR operator has been registered.
 
const RefCountedPtr< EBIndexSpace > & getEBIndexSpace () const
 Return the EB index space.
 
const Vector< int > & getRefinementRatios () const
 Get refinement ratios.
 
const Vector< Real > & getDx () const
 Returns resolutions.
 
const Vector< DisjointBoxLayout > & getGrids () const
 Get AMR grids.
 
const Vector< ProblemDomain > & getDomains () const
 Get problem domains.
 
const Vector< EBISLayout > & getEBISLayout () const
 Get EBIS layout.
 
const Vector< RefCountedPtr< EBLevelGrid > > & getEBLevelGrid () const
 Get EBLevelGrids.
 
const Vector< RefCountedPtr< EBLevelGrid > > & getEBLevelGridCoFi () const
 Get coarsened fine grids.
 
const Vector< RefCountedPtr< EBLevelGrid > > & getEBLevelGridFiCo () const
 Get refined grids.
 
Vector< RefCountedPtr< LayoutData< VoFIterator > > > & getVofIterator () const
 Return VoF iterators covering all cut-cells (singly- and multiply-cut) in each grid patch.
 
Vector< RefCountedPtr< LayoutData< VoFIterator > > > & getMultiCutVofIterator () const
 Return vof iterator for iterating over multiply-cut cells only (cells with more than one VoF)
 
Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & getFaceIterator () const
 Return face iterators over cut-cell faces in each valid grid box (FaceStop::SurroundingWithBoundary).
 
Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & getFaceIteratorNoBoundary () const
 Return face iterators over cut-cell faces in each valid grid box (FaceStop::SurroundingNoBoundary).
 
Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & getFaceIteratorWithTangentialGhosts () const
 Return per-direction face iterators covering cut-cell faces that reach into the tangential ghost layer.
 
Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & getMultiCutFaceIterator () const
 Return face iterators restricted to multiply-cut faces in each valid grid box.
 
const Vector< RefCountedPtr< CellCentroidInterpolation > > & getCellCentroidInterpolation () const
 Get objects for interpolation from cell centers to centroids.
 
const Vector< RefCountedPtr< EBCentroidInterpolation > > & getEBCentroidInterpolation () const
 Get objects for interpolation from cell centers to EB centroids.
 
const Vector< RefCountedPtr< EBNonConservativeDivergence > > & getNonConservativeDivergence () const
 Get objects for computing non-conservative divergences.
 
const Vector< RefCountedPtr< EBGradient > > & getGradientOp () const
 Get gradient object.
 
EBAMRParticleMeshgetParticleMesh () const
 Get particle-mesh operator.
 
EBAMRSurfaceDepositiongetSurfaceDeposition () const
 Get the surface deposition operator.
 
Vector< RefCountedPtr< EBCoarAve > > & getCoarseAverage () const
 Get coarsening operators.
 
Vector< RefCountedPtr< EBCoarseFineParticleMesh > > & getEBCoarseFineParticleMesh () const
 Get deposition operator.
 
Vector< RefCountedPtr< EBMultigridInterpolator > > & getMultigridInterpolator () const
 Get multigrid interpolator.
 
Vector< RefCountedPtr< EBGhostCellInterpolator > > & getGhostCellInterpolator () const
 Get ghost cell interpolation utility.
 
Vector< RefCountedPtr< EBCoarseToFineInterp > > & getFineInterp () const
 Get piecewise linear ghost cell interpolation utility.
 
Vector< RefCountedPtr< EBReflux > > & getFluxRegister () const
 Get flux register utility.
 
Vector< RefCountedPtr< EBFluxRedistribution > > & getRedistributionOp () const
 Get the redistribution operators.
 
const EBAMRFABgetLevelset () const
 Get level-set function.
 
const EBAMRCellDatagetRegularCells () const
 Get the regular-cell mask (value 1 in regular cells, 0 elsewhere).
 
const EBAMRCellDatagetCoveredCells () const
 Get the covered-cell mask (value 1 in covered cells, 0 elsewhere).
 
const EBAMRCellDatagetNotCoveredCells () const
 Get the non-covered-cell mask (value 1 in regular/irregular cells, 0 in covered cells).
 
const EBAMRCellDatagetIrregularCells () const
 Get the irregular-cell mask (value 1 in irregular/cut cells, 0 elsewhere).
 

Protected Member Functions

void defineEBLevelGrid (const int a_lmin)
 Define EBLevelGrids.
 
void defineVofIterator (const int a_lmin)
 Define vof iterators.
 
void defineEBCoarAve (const int a_lmin)
 Define coarsening utility.
 
void defineEBMultigrid (const int a_lmin)
 Define multigrid interpolation utility.
 
void defineFillPatch (const int a_lmin)
 Define regrid utility.
 
void defineEBCoarseToFineInterp (const int a_lmin)
 Define ghost cell interpolation utility.
 
void defineMultigridInjection (const int a_lmin)
 Define multigrid injection utility.
 
void defineFluxReg (const int a_lmin, const int a_regsize)
 Define flux register utility.
 
void defineRedistOper (const int a_lmin, const int a_regsize)
 Define operator redistribution utility.
 
void defineFineToCoarRedistOper (const int a_lmin, const int a_regsize)
 Define operator redistribution utility.
 
void defineCoarToFineRedistOper (const int a_lmin, const int a_regsize)
 Define operator redistribution utility.
 
void defineCoarToCoarRedistOper (const int a_lmin, const int a_regsize)
 Define operator redistribution utility.
 
void defineParticleMesh ()
 Define particle mesh operator.
 
void defineGradSten (const int a_lmin)
 Define gradient stencils.
 
void defineIrregSten ()
 Define data recentering stencils.
 
void defineNonConservativeDivergence (const int a_lmin)
 Define non-conservative divergence stencils.
 
void defineLevelSet (const int a_lmin, const int a_numGhost)
 Put the level-set on the mesh.
 
void defineMasks (const int a_lmin, const int a_numGhost)
 Define the regular/covered/irregular cell masks.
 

Protected Attributes

bool m_isDefined
 True if things on this phase can be defined. False otherwise. Only used internally.
 
bool m_hasEbCf
 Relic of an ancient past. Always true.
 
bool m_profile
 Profile or not.
 
bool m_verbose
 Verbose or not.
 
int m_finestLevel
 Finest grid level.
 
int m_numGhostCells
 Number of ghost cells in data holders.
 
int m_numEbGhostsCells
 Number of ghost cells in EBLevelGrid/EBISLayout/EBISBox.
 
int m_numLsfGhostCells
 Number of ghost cells in level-set function (on the mesh)
 
int m_redistributionRadius
 Redistribution radius.
 
int m_multigridInterpolationOrder
 Multigrid interpolator order.
 
int m_multigridInterpolationRadius
 Multigrid interpolator radius.
 
int m_multigridInterpolationWeight
 Multigrid interpolator weight (for least squares)
 
RealVect m_probLo
 Lower-left corner of computational domain.
 
CellCentroidInterpolation::Type m_cellCentroidInterpolationType
 Cell-center to cell-centroid interpolation method.
 
EBCentroidInterpolation::Type m_ebCentroidInterpolationType
 Cell-center to cell-centroid interpolation method.
 
Vector< Realm_dx
 Grid resolutions.
 
Vector< intm_refinementRatios
 Refinement ratios between levels.
 
RefCountedPtr< EBIndexSpacem_ebis
 EB index space.
 
RefCountedPtr< BaseIF > m_baseif
 Implicit/SD function.
 
std::map< std::string, boolm_operatorMap
 Operator map for checking which ones are registered.
 
Vector< DisjointBoxLayoutm_grids
 AMR grids.
 
Vector< ProblemDomainm_domains
 Problem domains.
 
Vector< EBISLayoutm_ebisl
 EBIS layouts.
 
Vector< RefCountedPtr< EBLevelGrid > > m_eblg
 EB level grids.
 
Vector< RefCountedPtr< EBLevelGrid > > m_eblgCoFi
 Coarsened fine-level EB grids.
 
Vector< RefCountedPtr< EBLevelGrid > > m_eblgFiCo
 Coarsened fine-level EB grids.
 
EBAMRFAB m_levelset
 Level-set function.
 
EBAMRCellData m_regularCells
 Cell mask with value 1 in regular cells and 0 elsewhere.
 
EBAMRCellData m_coveredCells
 Cell mask with value 1 in covered cells and 0 elsewhere.
 
EBAMRCellData m_notCoveredCells
 Cell mask with value 1 in non-covered (regular and irregular) cells and 0 in covered cells.
 
EBAMRCellData m_irregularCells
 Cell mask with value 1 in irregular (cut) cells and 0 elsewhere.
 
Vector< RefCountedPtr< LayoutData< VoFIterator > > > m_vofIter
 Cut-cell iterator (all irregular cells)
 
Vector< RefCountedPtr< LayoutData< VoFIterator > > > m_multiCutVofIter
 Cut-cell iterator restricted to multiply-cut cells (cells with more than one VoF)
 
Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > m_faceIter
 Face iterators over cut-cell faces in the valid box (FaceStop::SurroundingWithBoundary).
 
Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > m_faceIterNoBoundary
 Face iterators over cut-cell faces in the valid box (FaceStop::SurroundingNoBoundary).
 
Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > m_faceIterTanGhost
 Per-direction face iterators covering cut-cell faces that reach into the tangential ghost layer.
 
Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > m_multiCutFaceIter
 Face iterators over multiply-cut faces in each valid grid box (SurroundingNoBoundary stop criterion)
 
Vector< RefCountedPtr< EBCoarAve > > m_coarAve
 Coarsening operator.
 
Vector< RefCountedPtr< EBMultigridInterpolator > > m_multigridInterpolator
 Multigrid interpolation utility.
 
Vector< RefCountedPtr< EBGhostCellInterpolator > > m_ghostCellInterpolator
 Ghost cell interpolation utility.
 
Vector< RefCountedPtr< EBCoarseToFineInterp > > m_ebFineInterp
 Regridding utility (for filling new grid patches)
 
Vector< RefCountedPtr< EBReflux > > m_ebReflux
 Flux register utility.
 
Vector< RefCountedPtr< EBFluxRedistribution > > m_redistributionOp
 Redistribution utilities.
 
Vector< RefCountedPtr< EBGradient > > m_gradientOp
 Gradient operator.
 
EBAMRParticleMesh m_particleMesh
 For doing particle-mesh operations.
 
EBAMRSurfaceDeposition m_surfaceDeposition
 For doing particle deposition onto surfaces.
 
Vector< RefCountedPtr< CellCentroidInterpolation > > m_cellCentroidInterpolation
 For interpolating data from cell centers to cell centroids.
 
Vector< RefCountedPtr< EBCentroidInterpolation > > m_ebCentroidInterpolation
 For interpolating data from cell centers to EB centroids.
 
Vector< RefCountedPtr< EBNonConservativeDivergence > > m_nonConservativeDivergence
 For computing non-conservative divergences.
 

Detailed Description

Class that holds important things for doing AMR over a specific phase and processor distribution.

This class is essentially an EBAMR core-grid class, containing the usually EBAMR stuff within a single EBIndexSpace. In thus contains a set of grids (DisjointBoxLayout) and the usual EB stuff (EBLevelGrid, EBISLayout). In addition, it contains a bunch of operators that can be registered by the user (through the user interface AmrMesh). These operators live in this class, and they can be fetched e.g. by AmrMesh.

Note
This class is a book-keeping class used by AmrMesh – it is not meant for direct interaction.
To use run-time profiling/debugging, use PhaseRealm.profile=true or PhaseRealm.verbose=true

Constructor & Destructor Documentation

◆ PhaseRealm() [1/2]

PhaseRealm::PhaseRealm ( const PhaseRealm a_other)
delete

Disallowed copy ctor.

Parameters
[in]a_otherOther realm

◆ PhaseRealm() [2/2]

PhaseRealm::PhaseRealm ( const PhaseRealm &&  a_other)
delete

Disallowed move ctor.

Parameters
[in]a_otherOther realm

Member Function Documentation

◆ define()

void PhaseRealm::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_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_centroidStencil,
const EBCentroidInterpolation::Type  a_ebStencil,
const RefCountedPtr< BaseIF > &  a_baseif,
const RefCountedPtr< EBIndexSpace > &  a_ebis 
)

Full define function.

Parameters
[in]a_gridsGrids on each level, i.e. boxes and processor distributions
[in]a_domainsProblem domains
[in]a_refRatRefinement ratios
[in]a_dxGrid resolutions
[in]a_probLoLower-left corner of physical domain
[in]a_finestLevelFinest grid level
[in]a_ebGhostNumber of ghost cells used for geometric information when making operators
[in]a_numGhostNumber of ghost cells in data holders
[in]a_lsfGhostNumber of ghost cells used when computing the level set on the mesh
[in]a_redistRadRedistribution radius
[in]a_mgInterpOrderMultigrid ghost cell interpolation order
[in]a_mgInterpRadiusMultigrid ghost cell interpolation radius
[in]a_mgInterpWeightMultigrid ghost cell interpolation weight (for least squares)
[in]a_centroidStencilStencil type for interpolation from cell centers to cell centroids
[in]a_ebStencilStencil type for interpolation from cell centers to eb centroids
[in]a_baseifImplicit/signed distance function
[in]a_ebisEBIndexSpace discrete information

◆ defineCoarToCoarRedistOper()

void PhaseRealm::defineCoarToCoarRedistOper ( const int  a_lmin,
const int  a_regsize 
)
protected

Define operator redistribution utility.

Parameters
[in]a_lminCoarsest grid level that changes
[in]a_regsizeDescription

◆ defineCoarToFineRedistOper()

void PhaseRealm::defineCoarToFineRedistOper ( const int  a_lmin,
const int  a_regsize 
)
protected

Define operator redistribution utility.

Parameters
[in]a_lminCoarsest grid level that changes
[in]a_regsizeDescription

◆ defineEBCoarAve()

void PhaseRealm::defineEBCoarAve ( const int  a_lmin)
protected

Define coarsening utility.

Parameters
[in]a_lminCoarsest grid level that changes

◆ defineEBCoarseToFineInterp()

void PhaseRealm::defineEBCoarseToFineInterp ( const int  a_lmin)
protected

Define ghost cell interpolation utility.

Parameters
[in]a_lminCoarsest grid level that changes

◆ defineEBLevelGrid()

void PhaseRealm::defineEBLevelGrid ( const int  a_lmin)
protected

Define EBLevelGrids.

Parameters
[in]a_lminCoarsest grid level that changes

◆ defineEBMultigrid()

void PhaseRealm::defineEBMultigrid ( const int  a_lmin)
protected

Define multigrid interpolation utility.

Parameters
[in]a_lminCoarsest grid level that changes

◆ defineFillPatch()

void PhaseRealm::defineFillPatch ( const int  a_lmin)
protected

Define regrid utility.

Parameters
[in]a_lminCoarsest grid level that changes

◆ defineFineToCoarRedistOper()

void PhaseRealm::defineFineToCoarRedistOper ( const int  a_lmin,
const int  a_regsize 
)
protected

Define operator redistribution utility.

Parameters
[in]a_lminCoarsest grid level that changes
[in]a_regsizeDescription

◆ defineFluxReg()

void PhaseRealm::defineFluxReg ( const int  a_lmin,
const int  a_regsize 
)
protected

Define flux register utility.

Parameters
[in]a_lminCoarsest grid level that changes
[in]a_regsizeDescription

◆ defineGradSten()

void PhaseRealm::defineGradSten ( const int  a_lmin)
protected

Define gradient stencils.

Parameters
[in]a_lminDescription

◆ defineLevelSet()

void PhaseRealm::defineLevelSet ( const int  a_lmin,
const int  a_numGhost 
)
protected

Put the level-set on the mesh.

Parameters
[in]a_lminCoarsest grid level that changes
[in]a_numGhostDescription

◆ defineMasks()

void PhaseRealm::defineMasks ( const int  a_lmin,
const int  a_numGhost 
)
protected

Define the regular/covered/irregular cell masks.

Each mask is a cell-centered field that is 1 in cells of the corresponding type and 0 elsewhere. The masks are built geometrically from the EBISBox and let kernels replace per-cell EBISBox::isRegular/isCovered queries (which are not inlinable) with a vectorizable mask load.

Parameters
[in]a_lminCoarsest grid level that changes
[in]a_numGhostNumber of ghost cells

◆ defineMultigridInjection()

void PhaseRealm::defineMultigridInjection ( const int  a_lmin)
protected

Define multigrid injection utility.

Parameters
[in]a_lminCoarsest grid level that changes

◆ defineNonConservativeDivergence()

void PhaseRealm::defineNonConservativeDivergence ( const int  a_lmin)
protected

Define non-conservative divergence stencils.

Parameters
[in]a_lminCoarsest grid level that changes

◆ defineRedistOper()

void PhaseRealm::defineRedistOper ( const int  a_lmin,
const int  a_regsize 
)
protected

Define operator redistribution utility.

Parameters
[in]a_lminCoarsest grid level that changes
[in]a_regsizeDescription

◆ defineVofIterator()

void PhaseRealm::defineVofIterator ( const int  a_lmin)
protected

Define vof iterators.

Parameters
[in]a_lminCoarsest grid level that changes

◆ getCellCentroidInterpolation()

const Vector< RefCountedPtr< CellCentroidInterpolation > > & PhaseRealm::getCellCentroidInterpolation ( ) const

Get objects for interpolation from cell centers to centroids.

Returns
Cell centroid interpolation

◆ getCoarseAverage()

Vector< RefCountedPtr< EBCoarAve > > & PhaseRealm::getCoarseAverage ( ) const

Get coarsening operators.

Returns
Coarse average

◆ getCoveredCells()

const EBAMRCellData & PhaseRealm::getCoveredCells ( ) const

Get the covered-cell mask (value 1 in covered cells, 0 elsewhere).

Returns
m_coveredCells

◆ getDomains()

const Vector< ProblemDomain > & PhaseRealm::getDomains ( ) const

Get problem domains.

Returns
Returns m_domains

◆ getDx()

const Vector< Real > & PhaseRealm::getDx ( ) const

Returns resolutions.

Returns
Returns m_dx

◆ getEBCentroidInterpolation()

const Vector< RefCountedPtr< EBCentroidInterpolation > > & PhaseRealm::getEBCentroidInterpolation ( ) const

Get objects for interpolation from cell centers to EB centroids.

Returns
E b centroid interpolation

◆ getEBCoarseFineParticleMesh()

Vector< RefCountedPtr< EBCoarseFineParticleMesh > > & PhaseRealm::getEBCoarseFineParticleMesh ( ) const

Get deposition operator.

Returns
E b coarse fine particle mesh

◆ getEBIndexSpace()

const RefCountedPtr< EBIndexSpace > & PhaseRealm::getEBIndexSpace ( ) const

Return the EB index space.

Returns
E b index space

◆ getEBISLayout()

const Vector< EBISLayout > & PhaseRealm::getEBISLayout ( ) const

Get EBIS layout.

Returns
Immutable m_ebislayout

◆ getEBLevelGrid()

const Vector< RefCountedPtr< EBLevelGrid > > & PhaseRealm::getEBLevelGrid ( ) const

Get EBLevelGrids.

Returns
E b level grid

◆ getEBLevelGridCoFi()

const Vector< RefCountedPtr< EBLevelGrid > > & PhaseRealm::getEBLevelGridCoFi ( ) const

Get coarsened fine grids.

Returns
E b level grid co fi

◆ getEBLevelGridFiCo()

const Vector< RefCountedPtr< EBLevelGrid > > & PhaseRealm::getEBLevelGridFiCo ( ) const

Get refined grids.

Returns
E b level grid fi co

◆ getFaceIterator()

Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & PhaseRealm::getFaceIterator ( ) const

Return face iterators over cut-cell faces in each valid grid box (FaceStop::SurroundingWithBoundary).

Each entry is an array of SpaceDim FaceIterators, one per coordinate direction. Domain boundary faces are included. For cell-to-face averaging that excludes domain boundary faces, use getFaceIteratorNoBoundary instead.

Returns
m_faceIter (which is, in fact, mutable)

◆ getFaceIteratorNoBoundary()

Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & PhaseRealm::getFaceIteratorNoBoundary ( ) const

Return face iterators over cut-cell faces in each valid grid box (FaceStop::SurroundingNoBoundary).

Each entry is an array of SpaceDim FaceIterators, one per coordinate direction. Domain boundary faces are excluded. Intended for cell-to-face averaging where domain boundary faces are fixed up separately.

Returns
m_faceIterNoBoundary (which is, in fact, mutable)

◆ getFaceIteratorWithTangentialGhosts()

Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & PhaseRealm::getFaceIteratorWithTangentialGhosts ( ) const

Return per-direction face iterators covering cut-cell faces that reach into the tangential ghost layer.

Each entry is an array of SpaceDim FaceIterators, one per coordinate direction. For the iterator in direction dir, the underlying IVS covers irregular cells in a box grown by 1 in the two directions tangential to dir; the dir extent stays at the valid box. Domain boundary faces are excluded (FaceStop::SurroundingNoBoundary). Callers require at least 1 ghost layer in cell data. For faces strictly inside the valid box, use getFaceIterator instead.

Returns
m_faceIterTanGhost (which is, in fact, mutable)

◆ getFineInterp()

Vector< RefCountedPtr< EBCoarseToFineInterp > > & PhaseRealm::getFineInterp ( ) const

Get piecewise linear ghost cell interpolation utility.

Returns
Fine interp

◆ getFluxRegister()

Vector< RefCountedPtr< EBReflux > > & PhaseRealm::getFluxRegister ( ) const

Get flux register utility.

Returns
Flux register

◆ getGhostCellInterpolator()

Vector< RefCountedPtr< EBGhostCellInterpolator > > & PhaseRealm::getGhostCellInterpolator ( ) const

Get ghost cell interpolation utility.

Returns
Ghost cell interpolator

◆ getGradientOp()

const Vector< RefCountedPtr< EBGradient > > & PhaseRealm::getGradientOp ( ) const

Get gradient object.

Returns
Gradient op

◆ getGrids()

const Vector< DisjointBoxLayout > & PhaseRealm::getGrids ( ) const

Get AMR grids.

Returns
Immutable m_grids

◆ getIrregularCells()

const EBAMRCellData & PhaseRealm::getIrregularCells ( ) const

Get the irregular-cell mask (value 1 in irregular/cut cells, 0 elsewhere).

Returns
m_irregularCells

◆ getLevelset()

const EBAMRFAB & PhaseRealm::getLevelset ( ) const

Get level-set function.

Returns
Levelset

◆ getMultiCutFaceIterator()

Vector< RefCountedPtr< LayoutData< std::array< FaceIterator, SpaceDim > > > > & PhaseRealm::getMultiCutFaceIterator ( ) const

Return face iterators restricted to multiply-cut faces in each valid grid box.

Each entry is an array of SpaceDim FaceIterators, one per coordinate direction. Only faces that abut at least one multiply-cut cell (cells with more than one VoF) are iterated. Faces are enumerated with FaceStop::SurroundingNoBoundary. Used as a second pass after a box loop over getSingleValuedFAB to avoid double-processing singly-cut faces.

Returns
m_multiCutFaceIter (which is, in fact, mutable)

◆ getMultiCutVofIterator()

Vector< RefCountedPtr< LayoutData< VoFIterator > > > & PhaseRealm::getMultiCutVofIterator ( ) const

Return vof iterator for iterating over multiply-cut cells only (cells with more than one VoF)

Returns
m_multiCutVofIter (which is, in fact, mutable)

◆ getMultigridInterpolator()

Vector< RefCountedPtr< EBMultigridInterpolator > > & PhaseRealm::getMultigridInterpolator ( ) const

Get multigrid interpolator.

Returns
Multigrid interpolator

◆ getNonConservativeDivergence()

const Vector< RefCountedPtr< EBNonConservativeDivergence > > & PhaseRealm::getNonConservativeDivergence ( ) const

Get objects for computing non-conservative divergences.

Returns
Non conservative divergence

◆ getNotCoveredCells()

const EBAMRCellData & PhaseRealm::getNotCoveredCells ( ) const

Get the non-covered-cell mask (value 1 in regular/irregular cells, 0 in covered cells).

Returns
m_notCoveredCells

◆ getParticleMesh()

EBAMRParticleMesh & PhaseRealm::getParticleMesh ( ) const

Get particle-mesh operator.

Returns
Particle mesh

◆ getRedistributionOp()

Vector< RefCountedPtr< EBFluxRedistribution > > & PhaseRealm::getRedistributionOp ( ) const

Get the redistribution operators.

Returns
Redistribution operators on all levels

◆ getRefinementRatios()

const Vector< int > & PhaseRealm::getRefinementRatios ( ) const

Get refinement ratios.

Returns
Returns m_refinementRatios

◆ getRegularCells()

const EBAMRCellData & PhaseRealm::getRegularCells ( ) const

Get the regular-cell mask (value 1 in regular cells, 0 elsewhere).

Returns
m_regularCells

◆ getSurfaceDeposition()

EBAMRSurfaceDeposition & PhaseRealm::getSurfaceDeposition ( ) const

Get the surface deposition operator.

Returns
Surface deposition

◆ getVofIterator()

Vector< RefCountedPtr< LayoutData< VoFIterator > > > & PhaseRealm::getVofIterator ( ) const

Return VoF iterators covering all cut-cells (singly- and multiply-cut) in each grid patch.

For a pass that covers only multiply-cut cells, use getMultiCutVofIterator instead.

Returns
m_vofIter (which is, in fact, mutable)

◆ operator=() [1/2]

PhaseRealm & PhaseRealm::operator= ( const PhaseRealm &&  a_other)
delete

Disallowed move assignment operator.

Parameters
[in]a_otherOther realm

◆ operator=() [2/2]

PhaseRealm & PhaseRealm::operator= ( const PhaseRealm a_other)
delete

Disallowed copy assignment operator.

Parameters
[in]a_otherOther realm

◆ queryOperator()

bool PhaseRealm::queryOperator ( const std::string a_operator) const

Query if an AMR operator has been registered.

Parameters
[in]a_operatoroperator name
Returns
True if operator has been registered and false otherwise

◆ registerOperator()

void PhaseRealm::registerOperator ( const std::string a_operator)

Register an AMR operator.

Parameters
[in]a_operatorOperator name

Issues run-time error if a_operator can't be recognized

◆ regridBase()

void PhaseRealm::regridBase ( const int  a_lmin)

Regrid method for EBAMR base.

Parameters
[in]a_lminCoarsest grid level that changed.

This regrids EBLevelGrid and iterators

◆ regridOperators()

void PhaseRealm::regridOperators ( const int  a_lmin)

Regrid method for EBAMR operators.

Parameters
[in]a_lminCoarsest grid level that changed.

This regrids all operators.

◆ setGrids()

void PhaseRealm::setGrids ( const Vector< DisjointBoxLayout > &  a_grids,
const int  a_finestLevel 
)

Set grid method.

Parameters
[in]a_gridsNew grids
[in]a_finestLevelNew finest grid level

This sets m_grids to be a_grids, but does not perform a regrid of remaining members.

Member Data Documentation

◆ m_eblgCoFi

Vector<RefCountedPtr<EBLevelGrid> > PhaseRealm::m_eblgCoFi
protected

Coarsened fine-level EB grids.

m_eblgCoFi[lvl] holds the grids on level lvl that are a coarsening of the grids on lvl+1

◆ m_eblgFiCo

Vector<RefCountedPtr<EBLevelGrid> > PhaseRealm::m_eblgFiCo
protected

Coarsened fine-level EB grids.

m_eblgFiCo[lvl] holds the refinement of the grids on level lvl-1

◆ m_faceIterNoBoundary

Vector<RefCountedPtr<LayoutData<std::array<FaceIterator, SpaceDim> > > > PhaseRealm::m_faceIterNoBoundary
mutableprotected

Face iterators over cut-cell faces in the valid box (FaceStop::SurroundingNoBoundary).

Domain boundary faces are excluded. Use this for cell-to-face averaging where boundary faces are fixed up separately. See getFaceIteratorNoBoundary.

◆ m_faceIterTanGhost

Vector<RefCountedPtr<LayoutData<std::array<FaceIterator, SpaceDim> > > > PhaseRealm::m_faceIterTanGhost
mutableprotected

Per-direction face iterators covering cut-cell faces that reach into the tangential ghost layer.

For the iterator in direction dir, the IVS covers irregular cells in a box grown by 1 in the two directions tangential to dir; the dir extent stays at the valid-box boundary. Domain boundary faces are excluded (FaceStop::SurroundingNoBoundary).


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