|
chombo-discharge
|
Class which can interpolate ghost cells across the coarse-fine interface. To select an interpolation method, use the type argument. More...
#include <CD_EBGhostCellInterpolator.H>
Public Types | |
| enum | Type { PWC , MinMod , MonotonizedCentral , Superbee } |
| Type of interpolation slopes supported. | |
Public Member Functions | |
| EBGhostCellInterpolator () noexcept | |
| Weak constructor. Need to call define afterwards. | |
| EBGhostCellInterpolator (const EBGhostCellInterpolator &a_other)=delete | |
| Disallowed copy constructor. | |
| EBGhostCellInterpolator (const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoFi, const EBLevelGrid &a_eblgCoar, const IntVect &a_ghostVector, const int a_refRat, const int a_ghostCF) noexcept | |
| Full constructor. Calls the define function. | |
| virtual | ~EBGhostCellInterpolator () noexcept |
| Destructor (does nothing) | |
| virtual void | define (const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoFi, const EBLevelGrid &a_eblgCoar, const IntVect &a_ghostVector, const int a_refRat, const int a_ghostCF) noexcept |
| Define method. Puts object in usable state. | |
| virtual void | interpolate (LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phiCoar, const Interval a_variables, const Type a_interpType) const noexcept |
| Do inhomogeneous interpolation. | |
Protected Member Functions | |
| virtual void | defineGhostRegions () noexcept |
| Define ghost regions to be interpolated. | |
| virtual void | defineBuffers () noexcept |
| Define buffers. | |
| virtual void | interpolateRegular (FArrayBox &a_phiFine, const FArrayBox &a_phiCoar, const DataIndex &a_dit, const int a_fineVar, const int a_coarVar, const Type a_interpType) const noexcept |
| Regular interpolation, as if the EB was not there. | |
| virtual void | interpolateIrregular (EBCellFAB &a_phiFine, const EBCellFAB &a_phiCoar, const DataIndex &a_dit, const int a_fineVar, const int a_coarVar, const Type a_interpType) const noexcept |
| Ghost cell interpolation near the EB, correcting slopes that broke in interpolateRegular. | |
| Real | minmod (const Real &dwl, const Real &dwr) const noexcept |
| minmod slope function. | |
| Real | superbee (const Real &dwl, const Real &dwr) const noexcept |
| Superbee slope limiter. | |
| Real | monotonizedCentral (const Real &dwl, const Real &dwr) const noexcept |
| Monotonized central difference slope limiter. | |
Protected Attributes | |
| bool | m_isDefined |
| Is defined or not. | |
| EBLevelGrid | m_eblgFine |
| Fine grids. | |
| EBLevelGrid | m_eblgCoar |
| Coarse grids. | |
| EBLevelGrid | m_eblgCoFi |
| Coarsened fine grids. | |
| IntVect | m_ghostVector |
| Minimum number of ghost cells in input data. | |
| int | m_refRat |
| Refinement factor between fine and coarse level. | |
| int | m_ghostCF |
| Number of ghost cells to fill across coarse-fine interface. | |
| LayoutData< std::map< std::pair< int, Side::LoHiSide >, Box > > | m_regularGhostRegions |
| Regular ghost regions to be interpolated. | |
| Copier | m_copier |
| Copier for making copying from m_eblgCoar to m_grownCoarData go faster. | |
| LayoutData< BaseIVFAB< VolIndex > > | m_coarsenedFineGhosts |
| List of coarse-grid cells that appear through coarsening a fine-grid ghost cell. | |
| LayoutData< VoFIterator > | m_fineIrregCells |
| Fine-grid ghost cells on the coarse-fine interface that overlap an irregular coarse cell. | |
| LayoutData< VoFIterator > | m_coarIrregCells |
| Coarse-grid cells on the caorse-side of the interface that are irregular cells. | |
| LayoutData< BaseIVFAB< Real > > | m_coarIrregSlopes |
| Buffer data defined on the coarsened fine grids (over m_coarIrregCells). Used for holding slopes in the coarse-grid cut-cells. | |
Class which can interpolate ghost cells across the coarse-fine interface. To select an interpolation method, use the type argument.
This class works by computing slopes on the coarse grid. We then interpolate within the coarse-grid cell to the fine-grid ghost cell, using the computed slopes. Note that all fine-grid ghost cells are interpolated from the coarse grid. Thus, this interpolator is useless for multigrid.
|
noexcept |
Full constructor. Calls the define function.
| [in] | a_eblgFine | Fine grids |
| [in] | a_eblgCoFi | Coarsened fine grids |
| [in] | a_eblgCoar | Coarse grids |
| [in] | a_dataLocation | Interpration of data centering. Either on the cell center or the cell centroid. |
| [in] | a_ghostVector | (Minimum) number of ghost cells in input/output data. |
| [in] | a_refRat | Refinement ratio between coarse and fine grids. |
| [in] | a_ghostCF | Width of the ghost region to be filled. Only relevant near the EBCF. |
|
virtualnoexcept |
Define method. Puts object in usable state.
| [in] | a_eblgFine | Fine grids |
| [in] | a_eblgCoFi | Coarsened fine grids |
| [in] | a_eblgCoar | Coarse grids |
| [in] | a_dataLocation | Interpration of data centering. Either on the cell center or the cell centroid. |
| [in] | a_ghostVector | (Minimum) number of ghost cells in input/output data. |
| [in] | a_refRat | Refinement ratio between coarse and fine grids. |
| [in] | a_ghostCF | Width of the ghost region to be filled. Only relevant near the EBCF. |
|
virtualnoexcept |
Do inhomogeneous interpolation.
| [in,out] | a_phiFine | Fine phi |
| [in] | a_phiCoar | Coarse phi |
| [in] | a_variables | Variables to interpolate |
| [in] | a_type | Interpolation type |
|
protectedvirtualnoexcept |
Ghost cell interpolation near the EB, correcting slopes that broke in interpolateRegular.
| [in] | a_phiFine | Fine-grid data |
| [in] | a_phiCoar | Coarse-grid data |
| [in] | a_dit | Grid index on the fine grid |
| [in] | a_fineVar | Fine-grid variable |
| [in] | a_coarVar | Coarse-grid variable |
| [in] | a_interType | Slope type |
|
protectedvirtualnoexcept |
Regular interpolation, as if the EB was not there.
| [in] | a_phiFine | Fine-grid data |
| [in] | a_phiCoar | Coarse-grid data |
| [in] | a_dit | Grid index on the fine grid |
| [in] | a_fineVar | Fine-grid variable |
| [in] | a_coarVar | Coarse-grid variable |
| [in] | a_interType | Slope type |
|
inlineprotectednoexcept |
minmod slope function.
| [in] | dwl | Left slope |
| [in] | dwr | Right slope |
|
inlineprotectednoexcept |
Monotonized central difference slope limiter.
| [in] | dwl | Left slope |
| [in] | dwr | Right slope |
|
inlineprotectednoexcept |
Superbee slope limiter.
| [in] | dwl | Left slope |
| [in] | dwr | Right slope |
|
protected |
List of coarse-grid cells that appear through coarsening a fine-grid ghost cell.
This is used to accelerate interpolation fine-grid cut-cells that are also ghost cells. Doing this to avoid in-place coarsening of the fine grid ghost cell.
|
protected |
Number of ghost cells to fill across coarse-fine interface.