Class for interpolating cell-centered data to the EB centroid.
More...
#include <CD_EBCentroidInterpolation.H>
|
| enum class | Type {
Constant
, Linear
, Taylor
, LeastSquares
,
PiecewiseLinear
, MinMod
, MonotonizedCentral
, Superbee
} |
| | Supported interpolation types.
|
| |
|
|
| EBCentroidInterpolation () noexcept |
| | Default constructor. Must call the define function afterwards.
|
| |
|
| EBCentroidInterpolation (const EBCentroidInterpolation &a_other)=delete |
| | Copy constructor. Not allowed.
|
| |
| | EBCentroidInterpolation (const EBLevelGrid &a_eblg, const Real &a_dx, const Type &a_interpolationType) noexcept |
| | Defining constructor. This calls the define function.
|
| |
|
virtual | ~EBCentroidInterpolation () noexcept |
| | Destructor. Does nothing.
|
| |
| virtual void | define (const EBLevelGrid &a_eblg, const Real &a_dx, const Type &a_interpolationType) noexcept |
| | Define function. Puts object in usable state.
|
| |
| virtual void | interpolate (LevelData< BaseIVFAB< Real > > &a_centroidData, const LevelData< EBCellFAB > &a_cellData) const noexcept |
| | Function for interpolating data.
|
| |
| void | interpolate (BaseIVFAB< Real > &a_centroidData, const EBCellFAB &a_cellData, const DataIndex &a_din) const noexcept |
| | Interpolation function.
|
| |
|
| virtual bool | getLinearStencil (VoFStencil &a_stencil, const VolIndex &a_vof, const EBISBox &a_ebisBox, const ProblemDomain &a_domain) const noexcept |
| | Utility function for fetching a bilinear/trilinear stencil.
|
| |
| virtual bool | getTaylorExtrapolationStencil (VoFStencil &a_stencil, const VolIndex &a_vof, const EBISBox &a_ebisBox, const ProblemDomain &a_domain) const noexcept |
| | Utility function for fetching a Taylor-extrapolation stencil.
|
| |
| virtual bool | getLeastSquaresStencil (VoFStencil &a_stencil, const VolIndex &a_vof, const EBISBox &a_ebisBox, const ProblemDomain &a_domain) const noexcept |
| | Utility function for fetching a least-squares based interpolation stencil.
|
| |
| virtual bool | getPiecewiseLinearStencil (VoFStencil &a_stencil, const VolIndex &a_vof, const EBISBox &a_ebisBox, const ProblemDomain &a_domain) const noexcept |
| | Utility function for fetching a piecewise linear stencil.
|
| |
|
| static Real | MinMod (const Real &a_dwl, const Real &a_dwr) noexcept |
| | Minmod slope function.
|
| |
| static Real | MonotonizedCentral (const Real &a_dwl, const Real &a_dwr) noexcept |
| | Monotonized central difference slope limiter.
|
| |
| static Real | Superbee (const Real &a_dwl, const Real &a_dwr) noexcept |
| | Superbee slope limiter.
|
| |
|
|
bool | m_isDefined |
| | Defined or not.
|
| |
|
EBLevelGrid | m_eblg |
| | Grids.
|
| |
|
Type | m_interpolationType |
| | Interpolation type.
|
| |
|
Real | m_dx |
| | Grid resolution.
|
| |
|
LayoutData< VoFIterator > | m_vofIterator |
| | VoF iterator for iterating through the cut-cells.
|
| |
|
LayoutData< BaseIVFAB< VoFStencil > > | m_interpStencils |
| | Stencils. This is only populated when the interpolation is expressible as a stencil.
|
| |
Class for interpolating cell-centered data to the EB centroid.
Various interpolation methods are supported, where some are supported by explicitly expressible stencils and others through limiters.
This is a per-level class without AMR functionality. On coarse-fine interfaces near the EB the user must fill the ghost cells prior to the interpolation.
◆ EBCentroidInterpolation()
| EBCentroidInterpolation::EBCentroidInterpolation |
( |
const EBLevelGrid & |
a_eblg, |
|
|
const Real & |
a_dx, |
|
|
const Type & |
a_interpolationType |
|
) |
| |
|
noexcept |
Defining constructor. This calls the define function.
- Parameters
-
| [in] | a_eblg | Grids |
| [in] | a_dx | Grid resolution |
| [in] | a_interpolationType | Interpolation type |
◆ define()
| void EBCentroidInterpolation::define |
( |
const EBLevelGrid & |
a_eblg, |
|
|
const Real & |
a_dx, |
|
|
const Type & |
a_interpolationType |
|
) |
| |
|
virtualnoexcept |
Define function. Puts object in usable state.
- Parameters
-
| [in] | a_eblg | Grids |
| [in] | a_dx | Grid resolution |
| [in] | a_interpolationType | Interpolation type |
◆ getLeastSquaresStencil()
| bool EBCentroidInterpolation::getLeastSquaresStencil |
( |
VoFStencil & |
a_stencil, |
|
|
const VolIndex & |
a_vof, |
|
|
const EBISBox & |
a_ebisBox, |
|
|
const ProblemDomain & |
a_domain |
|
) |
| const |
|
protectedvirtualnoexcept |
Utility function for fetching a least-squares based interpolation stencil.
- Parameters
-
| [out] | a_stencil | Stencil |
| [in] | a_vof | VolIndex for cut-cell |
| [in] | a_ebisBox | EB grid box |
| [in] | a_domain | Grid domain |
- Returns
- Least squares stencil
◆ getLinearStencil()
| bool EBCentroidInterpolation::getLinearStencil |
( |
VoFStencil & |
a_stencil, |
|
|
const VolIndex & |
a_vof, |
|
|
const EBISBox & |
a_ebisBox, |
|
|
const ProblemDomain & |
a_domain |
|
) |
| const |
|
protectedvirtualnoexcept |
Utility function for fetching a bilinear/trilinear stencil.
- Parameters
-
| [out] | a_stencil | Stencil |
| [in] | a_vof | VolIndex for cut-cell |
| [in] | a_ebisBox | EB grid box |
| [in] | a_domain | Grid domain |
- Returns
- Linear stencil
◆ getPiecewiseLinearStencil()
| bool EBCentroidInterpolation::getPiecewiseLinearStencil |
( |
VoFStencil & |
a_stencil, |
|
|
const VolIndex & |
a_vof, |
|
|
const EBISBox & |
a_ebisBox, |
|
|
const ProblemDomain & |
a_domain |
|
) |
| const |
|
protectedvirtualnoexcept |
Utility function for fetching a piecewise linear stencil.
- Parameters
-
| [out] | a_stencil | Stencil |
| [in] | a_vof | VolIndex for cut-cell |
| [in] | a_ebisBox | EB grid box |
| [in] | a_domain | Grid domain |
- Returns
- Piecewise linear stencil
◆ getTaylorExtrapolationStencil()
| bool EBCentroidInterpolation::getTaylorExtrapolationStencil |
( |
VoFStencil & |
a_stencil, |
|
|
const VolIndex & |
a_vof, |
|
|
const EBISBox & |
a_ebisBox, |
|
|
const ProblemDomain & |
a_domain |
|
) |
| const |
|
protectedvirtualnoexcept |
Utility function for fetching a Taylor-extrapolation stencil.
- Parameters
-
| [out] | a_stencil | Stencil |
| [in] | a_vof | VolIndex for cut-cell |
| [in] | a_ebisBox | EB grid box |
| [in] | a_domain | Grid domain |
- Returns
- Taylor extrapolation stencil
◆ interpolate() [1/2]
| void EBCentroidInterpolation::interpolate |
( |
BaseIVFAB< Real > & |
a_centroidData, |
|
|
const EBCellFAB & |
a_cellData, |
|
|
const DataIndex & |
a_din |
|
) |
| const |
|
noexcept |
Interpolation function.
- Parameters
-
| [out] | a_centroidData | Centroid-centered data. |
| [in] | a_cellData | Cell-centered data. |
| [in] | a_din | Description |
◆ interpolate() [2/2]
| void EBCentroidInterpolation::interpolate |
( |
LevelData< BaseIVFAB< Real > > & |
a_centroidData, |
|
|
const LevelData< EBCellFAB > & |
a_cellData |
|
) |
| const |
|
virtualnoexcept |
Function for interpolating data.
- Parameters
-
| [out] | a_centroidData | Centroid-centered data. |
| [in] | a_cellData | Cell-centered data. |
◆ MinMod()
| Real EBCentroidInterpolation::MinMod |
( |
const Real & |
a_dwl, |
|
|
const Real & |
a_dwr |
|
) |
| |
|
inlinestaticprotectednoexcept |
Minmod slope function.
- Parameters
-
| [in] | a_dwl | Left slope |
| [in] | a_dwr | Right slope |
- Returns
- Return value
◆ MonotonizedCentral()
| Real EBCentroidInterpolation::MonotonizedCentral |
( |
const Real & |
a_dwl, |
|
|
const Real & |
a_dwr |
|
) |
| |
|
inlinestaticprotectednoexcept |
Monotonized central difference slope limiter.
- Parameters
-
| [in] | a_dwl | Left slope |
| [in] | a_dwr | Right slope |
- Returns
- Return value
◆ Superbee()
| Real EBCentroidInterpolation::Superbee |
( |
const Real & |
a_dwl, |
|
|
const Real & |
a_dwr |
|
) |
| |
|
inlinestaticprotectednoexcept |
Superbee slope limiter.
- Parameters
-
| [in] | a_dwl | Left slope |
| [in] | a_dwr | Right slope |
- Returns
- Return value
The documentation for this class was generated from the following files: