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

Class for interpolating cell-centered data to the cell centroid. More...

#include <CD_CellCentroidInterpolation.H>

Public Types

enum class  Type {
  Constant , Linear , Taylor , LeastSquares ,
  PiecewiseLinear , MinMod , MonotonizedCentral , Superbee
}
 Supported interpolation types.
 

Public Member Functions

 CellCentroidInterpolation () noexcept
 Default constructor. Must call the define function afterwards.
 
 CellCentroidInterpolation (const CellCentroidInterpolation &a_other)=delete
 Copy constructor. Not allowed.
 
 CellCentroidInterpolation (const EBLevelGrid &a_eblg, const Real &a_dx, const Type &a_interpolationType) noexcept
 Defining constructor. This calls the define function.
 
virtual ~CellCentroidInterpolation () 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.
 
virtual void interpolate (LevelData< EBCellFAB > &a_centroidData, const LevelData< EBCellFAB > &a_cellData) const noexcept
 Function for interpolating data.
 
virtual void interpolate (LevelData< EBCellFAB > &a_data) const noexcept
 Function for interpolating data.
 
template<typename T >
void interpolate (T &a_centroidData, const EBCellFAB &a_cellData, const DataIndex &a_din) const noexcept
 Interpolation function.
 

Protected Member Functions

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.
 
Real MinMod (const Real &a_dwl, const Real &a_dwr) const noexcept
 Minmod slope function.
 
Real MonotonizedCentral (const Real &a_dwl, const Real &a_dwr) const noexcept
 Monotonized central difference slope limiter.
 
Real Superbee (const Real &a_dwl, const Real &a_dwr) const noexcept
 Superbee slope limiter.
 

Protected Attributes

bool m_isDefined
 Defined or not.
 
EBLevelGrid m_eblg
 Grids.
 
Type m_interpolationType
 Interpolation type.
 
Real m_dx
 Grid resolution.
 
LayoutData< VoFIteratorm_vofIterator
 VoF iterator for iterating through the cut-cells.
 
LayoutData< BaseIVFAB< VoFStencil > > m_interpStencils
 Stencils. This is only populated when the interpolation is expressable as a stencil.
 

Detailed Description

Class for interpolating cell-centered data to the cell centroid.

Various interpolation methods are supported, where some are supported by explicitly expressable 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.

Constructor & Destructor Documentation

◆ CellCentroidInterpolation()

CellCentroidInterpolation::CellCentroidInterpolation ( const EBLevelGrid a_eblg,
const Real a_dx,
const Type a_interpolationType 
)
noexcept

Defining constructor. This calls the define function.

Parameters
[in]a_eblgGrids
[in]a_dxGrid resolution
[in]a_interpolationTypeInterpolation type

Member Function Documentation

◆ define()

void CellCentroidInterpolation::define ( const EBLevelGrid a_eblg,
const Real a_dx,
const Type a_interpolationType 
)
virtualnoexcept

Define function. Puts object in usable state.

Parameters
[in]a_eblgGrids
[in]a_dxGrid resolution
[in]a_interpolationTypeInterpolation type

◆ getLeastSquaresStencil()

bool CellCentroidInterpolation::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_stencilStencil
[in]a_vofVolIndex for cut-cell
[in]a_ebisBoxEB grid box
[in]a_domainGrid domain

◆ getLinearStencil()

bool CellCentroidInterpolation::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_stencilStencil
[in]a_vofVolIndex for cut-cell
[in]a_ebisBoxEB grid box
[in]a_domainGrid domain

◆ getPiecewiseLinearStencil()

bool CellCentroidInterpolation::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_stencilStencil
[in]a_vofVolIndex for cut-cell
[in]a_ebisBoxEB grid box
[in]a_domainGrid domain

◆ getTaylorExtrapolationStencil()

bool CellCentroidInterpolation::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_stencilStencil
[in]a_vofVolIndex for cut-cell
[in]a_ebisBoxEB grid box
[in]a_domainGrid domain

◆ interpolate() [1/4]

void CellCentroidInterpolation::interpolate ( LevelData< BaseIVFAB< Real > > &  a_centroidData,
const LevelData< EBCellFAB > &  a_cellData 
) const
virtualnoexcept

Function for interpolating data.

Parameters
[out]a_centroidDataCentroid-centered data.
[in]a_cellDataCell-centered data.

◆ interpolate() [2/4]

void CellCentroidInterpolation::interpolate ( LevelData< EBCellFAB > &  a_centroidData,
const LevelData< EBCellFAB > &  a_cellData 
) const
virtualnoexcept

Function for interpolating data.

This version will copy the data from the regular cells and interpolate data in the cut-cells.

Parameters
[out]a_centroidDataCentroid-centered data.
[in]a_cellDataCell-centered data.

◆ interpolate() [3/4]

void CellCentroidInterpolation::interpolate ( LevelData< EBCellFAB > &  a_data) const
virtualnoexcept

Function for interpolating data.

Parameters
[in,out]a_centroidDataCell-centered on input and centroid centered on output.

◆ interpolate() [4/4]

template<typename T >
void CellCentroidInterpolation::interpolate ( T &  a_centroidData,
const EBCellFAB a_cellData,
const DataIndex a_din 
) const
noexcept

Interpolation function.

Parameters
[out]a_centroidDataCentroid-centered data.
[in]a_cellDataCell-centered data.
Note
T can be either a BaseIVFAB<Real> or an EBCellFAB.

◆ MinMod()

Real CellCentroidInterpolation::MinMod ( const Real a_dwl,
const Real a_dwr 
) const
inlineprotectednoexcept

Minmod slope function.

Parameters
[in]a_dwlLeft slope
[in]a_dwrRight slope

◆ MonotonizedCentral()

Real CellCentroidInterpolation::MonotonizedCentral ( const Real a_dwl,
const Real a_dwr 
) const
inlineprotectednoexcept

Monotonized central difference slope limiter.

Parameters
[in]a_dwlLeft slope
[in]a_dwrRight slope

◆ Superbee()

Real CellCentroidInterpolation::Superbee ( const Real a_dwl,
const Real a_dwr 
) const
inlineprotectednoexcept

Superbee slope limiter.

Parameters
[in]a_dwlLeft slope
[in]a_dwrRight slope

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