|
chombo-discharge
|
Class that holds important things for doing AMR over a specific phase and processor distribution. More...
#include <CD_PhaseRealm.H>

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. | |
| PhaseRealm & | operator= (const PhaseRealm &a_other)=delete |
| Disallowed copy assignment operator. | |
| PhaseRealm & | operator= (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 refinment 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 iterator for iterating over irregular cells in each grid patch. | |
| 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. | |
| EBAMRParticleMesh & | getParticleMesh () const |
| Get particle-mesh operator. | |
| EBAMRSurfaceDeposition & | getSurfaceDeposition () 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 EBAMRFAB & | getLevelset () const |
| Get level-set function. | |
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. | |
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< Real > | m_dx |
| Grid resolutions. | |
| Vector< int > | m_refinementRatios |
| Refinement ratios between levels. | |
| RefCountedPtr< EBIndexSpace > | m_ebis |
| EB index space. | |
| RefCountedPtr< BaseIF > | m_baseif |
| Implicit/SD function. | |
| std::map< std::string, bool > | m_operatorMap |
| Operator map for checking which ones are registered. | |
| Vector< DisjointBoxLayout > | m_grids |
| AMR grids. | |
| Vector< ProblemDomain > | m_domains |
| Problem domains. | |
| Vector< EBISLayout > | m_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. | |
| Vector< RefCountedPtr< LayoutData< VoFIterator > > > | m_vofIter |
| Cut-cell iterator. | |
| 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. | |
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.
|
delete |
Disallowed copy ctor.
| [in] | a_other | Other realm |
|
delete |
Disallowed move ctor.
| [in] | a_other | Other realm |
| 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.
| [in] | a_grids | Grids on each level, i.e. boxes and processor distributions |
| [in] | a_domains | Problem domains |
| [in] | a_refRat | Refinement ratios |
| [in] | a_dx | Grid resolutions |
| [in] | a_probLo | Lower-left corner of physical domain |
| [in] | a_finestLevel | Finest grid level |
| [in] | a_ebGhost | Number of ghost cells used for geometric information when making operators |
| [in] | a_numGhost | Number of ghost cells in data holders |
| [in] | a_lsfGhost | Number of ghost cells used when computing the level set on the mesh |
| [in] | a_redistRad | Redistribution radius |
| [in] | a_mgInterpOrder | Multigrid ghost cell interpolation order |
| [in] | a_mgInterpRadius | Multigrid ghost cell interpolation radius |
| [in] | a_mgInterpWeight | Multigrid ghost cell interpolation weight (for least squares) |
| [in] | a_centroidStencil | Stencil type for interpolation from cell centers to cell centroids |
| [in] | a_ebStencil | Stencil type for interpolation from cell centers to eb centroids |
| [in] | a_baseif | Implicit/signed distance function |
| [in] | a_ebis | EBIndexSpace discrete information |
Define operator redistribution utility.
| [in] | a_lmin | Coarsest grid level that changes |
Define operator redistribution utility.
| [in] | a_lmin | Coarsest grid level that changes |
Define coarsening utility.
| [in] | a_lmin | Coarsest grid level that changes |
Define ghost cell interpolation utility.
| [in] | a_lmin | Coarsest grid level that changes |
Define EBLevelGrids.
| [in] | a_lmin | Coarsest grid level that changes |
Define multigrid interpolation utility.
| [in] | a_lmin | Coarsest grid level that changes |
Define regrid utility.
| [in] | a_lmin | Coarsest grid level that changes |
Define operator redistribution utility.
| [in] | a_lmin | Coarsest grid level that changes |
Define flux register utility.
| [in] | a_lmin | Coarsest grid level that changes |
Define gradient stencils.
| [in] | a_lmin | Coarsest grid level that changes |
|
protected |
Define data recentering stencils.
| [in] | a_lmin | Coarsest grid level that changes |
Put the level-set on the mesh.
| [in] | a_lmin | Coarsest grid level that changes |
Define multigrid injection utility.
| [in] | a_lmin | Coarsest grid level that changes |
Define non-conservative divergence stencils.
| [in] | a_lmin | Coarsest grid level that changes |
Define operator redistribution utility.
| [in] | a_lmin | Coarsest grid level that changes |
Define vof iterators.
| [in] | a_lmin | Coarsest grid level that changes |
| const Vector< ProblemDomain > & PhaseRealm::getDomains | ( | ) | const |
Get problem domains.
| const Vector< EBISLayout > & PhaseRealm::getEBISLayout | ( | ) | const |
Get EBIS layout.
| const Vector< DisjointBoxLayout > & PhaseRealm::getGrids | ( | ) | const |
Get AMR grids.
| Vector< RefCountedPtr< EBFluxRedistribution > > & PhaseRealm::getRedistributionOp | ( | ) | const |
Get the redistribution operators.
| [in] | a_phase | Phase (gas or solid) |
Get refinment ratios.
| Vector< RefCountedPtr< LayoutData< VoFIterator > > > & PhaseRealm::getVofIterator | ( | ) | const |
Return vof iterator for iterating over irregular cells in each grid patch.
|
delete |
Disallowed move assignment operator.
| [in] | a_other | Other realm |
|
delete |
Disallowed copy assignment operator.
| [in] | a_other | Other realm |
| bool PhaseRealm::queryOperator | ( | const std::string | a_operator | ) | const |
Query if an AMR operator has been registered.
| [in] | a_operator | operator name |
| void PhaseRealm::registerOperator | ( | const std::string | a_operator | ) |
Register an AMR operator.
| [in] | a_operator | Operator name |
Issues run-time error if a_operator can't be recognized
Regrid method for EBAMR base.
| [in] | a_lmin | Coarsest grid level that changed. |
This regrids EBLevelGrid and iterators
Regrid method for EBAMR operators.
| [in] | a_lmin | Coarsest grid level that changed. |
This regrids all operators.
Set grid method.
| [in] | a_grids | New grids |
| [in] | a_finestLevel | New finest grid level |
This sets m_grids to be a_grids, but does not perform a regrid of remaining members.
|
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
|
protected |
Coarsened fine-level EB grids.
m_eblgFiCo[lvl] holds the refinement of the grids on level lvl-1