Class which can take cell-centered data and interpolate it to cell centroids.
More...
#include <CD_CentroidInterpolationStencil.H>
|
| CentroidInterpolationStencil ()=delete |
| Disallowed weak constructor.
|
|
| CentroidInterpolationStencil (const DisjointBoxLayout &a_dbl, const EBISLayout &a_ebisl, const ProblemDomain &a_domain, const Real &a_dx, const int a_order, const int a_radius, const IrregStencil::StencilType a_type) |
| Full constructor. Subsequently calls define. More...
|
|
virtual | ~CentroidInterpolationStencil () |
| Destructor.
|
|
| IrregStencil () |
| Weak constructor (does nothing)
|
|
| IrregStencil (const DisjointBoxLayout &a_dbl, const EBISLayout &a_ebisl, const ProblemDomain &a_domain, const Real &a_dx, const int a_order, const int a_radius, const IrregStencil::StencilType a_type) |
| Full constructor. More...
|
|
virtual | ~IrregStencil () |
| Destructor.
|
|
const BaseIVFAB< VoFStencil > & | operator[] (const DataIndex &a_dit) const |
| Get the stencils over a single box.
|
|
BaseIVFAB< VoFStencil > & | operator[] (const DataIndex &a_dit) |
| Get the stencils over a single box.
|
|
virtual void | apply (EBCellFAB &a_dst, const EBCellFAB &a_src, const DataIndex &a_dit) const |
| Apply the stencil.
|
|
virtual void | apply (BaseIVFAB< Real > &a_dst, const EBCellFAB &a_src, const DataIndex &a_dit) const |
| Apply the stencil.
|
|
|
virtual void | buildStencil (VoFStencil &a_sten, const VolIndex &a_vof, const DisjointBoxLayout &a_dbl, const ProblemDomain &a_domain, const EBISBox &a_ebisbox, const Box &a_box, const Real &a_dx, const IntVectSet &a_cfivs) override |
| Build the interpolation stencils. More...
|
|
virtual bool | getTaylorExtrapolationStencil (VoFStencil &a_sten, const VolIndex &a_vof, const DisjointBoxLayout &a_dbl, const ProblemDomain &a_domain, const EBISBox &a_ebisbox, const Box &a_box, const Real &a_dx, const IntVectSet &a_cfivs) |
| Build the interpolation stencils using Taylor series. More...
|
|
virtual bool | getLeastSquaresStencil (VoFStencil &a_sten, const VolIndex &a_vof, const DisjointBoxLayout &a_dbl, const ProblemDomain &a_domain, const EBISBox &a_ebisbox, const Box &a_box, const Real &a_dx, const IntVectSet &a_cfivs) |
| Build the interpolation stencils using least squares interpolation. More...
|
|
virtual bool | getPiecewiseLinearStencil (VoFStencil &a_sten, const VolIndex &a_vof, const DisjointBoxLayout &a_dbl, const ProblemDomain &a_domain, const EBISBox &a_ebisbox, const Box &a_box, const Real &a_dx, const IntVectSet &a_cfivs) |
| Build the interpolation stencils using piecewise linear reconstruction. More...
|
|
virtual void | define (const DisjointBoxLayout &a_dbl, const EBISLayout &a_ebisl, const ProblemDomain &a_domain, const Real &a_dx, const int a_order, const int a_radius, const IrregStencil::StencilType a_type) |
| Define function.
|
|
Class which can take cell-centered data and interpolate it to cell centroids.
◆ CentroidInterpolationStencil()
CentroidInterpolationStencil::CentroidInterpolationStencil |
( |
const DisjointBoxLayout & |
a_dbl, |
|
|
const EBISLayout & |
a_ebisl, |
|
|
const ProblemDomain & |
a_domain, |
|
|
const Real & |
a_dx, |
|
|
const int |
a_order, |
|
|
const int |
a_radius, |
|
|
const IrregStencil::StencilType |
a_type |
|
) |
| |
Full constructor. Subsequently calls define.
- Parameters
-
[in] | a_dbl | Grids |
[in] | a_ebisl | EBIS layout |
[in] | a_domain | Problem domain |
[in] | a_dx | Resolutions |
[in] | a_order | Interpolation order |
[in] | a_radius | Maximum stencil radius |
[in] | a_type | Stencil type |
◆ buildStencil()
void CentroidInterpolationStencil::buildStencil |
( |
VoFStencil & |
a_sten, |
|
|
const VolIndex & |
a_vof, |
|
|
const DisjointBoxLayout & |
a_dbl, |
|
|
const ProblemDomain & |
a_domain, |
|
|
const EBISBox & |
a_ebisbox, |
|
|
const Box & |
a_box, |
|
|
const Real & |
a_dx, |
|
|
const IntVectSet & |
a_cfivs |
|
) |
| |
|
overrideprotectedvirtual |
Build the interpolation stencils.
- Parameters
-
[out] | a_sten | Returned stencil |
[in] | a_vof | VolIndex where stencil is defined |
[in] | a_grids | Grids |
[in] | a_domain | Problem domain |
[in] | a_ebisbox | EBISBox |
[in] | a_box | Box currently being evaluated |
[in] | a_dx | Grid resolution |
[in] | a_cfivs | Coarse-fine interface |
This calls one of the other function for computing the stencil.
Implements IrregStencil.
◆ getLeastSquaresStencil()
bool CentroidInterpolationStencil::getLeastSquaresStencil |
( |
VoFStencil & |
a_sten, |
|
|
const VolIndex & |
a_vof, |
|
|
const DisjointBoxLayout & |
a_dbl, |
|
|
const ProblemDomain & |
a_domain, |
|
|
const EBISBox & |
a_ebisbox, |
|
|
const Box & |
a_box, |
|
|
const Real & |
a_dx, |
|
|
const IntVectSet & |
a_cfivs |
|
) |
| |
|
protectedvirtual |
Build the interpolation stencils using least squares interpolation.
- Parameters
-
[out] | a_sten | Returned stencil |
[in] | a_vof | VolIndex where stencil is defined |
[in] | a_grids | Grids |
[in] | a_domain | Problem domain |
[in] | a_ebisbox | EBISBox |
[in] | a_box | Box currently being evaluated |
[in] | a_dx | Grid resolution |
[in] | a_cfivs | Coarse-fine interface |
This defines an overdetermined system of equations, using a large neighborhood of cells, which is solved with weighted least squarse.
◆ getPiecewiseLinearStencil()
bool CentroidInterpolationStencil::getPiecewiseLinearStencil |
( |
VoFStencil & |
a_sten, |
|
|
const VolIndex & |
a_vof, |
|
|
const DisjointBoxLayout & |
a_dbl, |
|
|
const ProblemDomain & |
a_domain, |
|
|
const EBISBox & |
a_ebisbox, |
|
|
const Box & |
a_box, |
|
|
const Real & |
a_dx, |
|
|
const IntVectSet & |
a_cfivs |
|
) |
| |
|
protectedvirtual |
Build the interpolation stencils using piecewise linear reconstruction.
- Parameters
-
[out] | a_sten | Returned stencil |
[in] | a_vof | VolIndex where stencil is defined |
[in] | a_grids | Grids |
[in] | a_domain | Problem domain |
[in] | a_ebisbox | EBISBox |
[in] | a_box | Box currently being evaluated |
[in] | a_dx | Grid resolution |
[in] | a_cfivs | Coarse-fine interface |
◆ getTaylorExtrapolationStencil()
bool CentroidInterpolationStencil::getTaylorExtrapolationStencil |
( |
VoFStencil & |
a_sten, |
|
|
const VolIndex & |
a_vof, |
|
|
const DisjointBoxLayout & |
a_dbl, |
|
|
const ProblemDomain & |
a_domain, |
|
|
const EBISBox & |
a_ebisbox, |
|
|
const Box & |
a_box, |
|
|
const Real & |
a_dx, |
|
|
const IntVectSet & |
a_cfivs |
|
) |
| |
|
protectedvirtual |
Build the interpolation stencils using Taylor series.
- Parameters
-
[out] | a_sten | Returned stencil |
[in] | a_vof | VolIndex where stencil is defined |
[in] | a_grids | Grids |
[in] | a_domain | Problem domain |
[in] | a_ebisbox | EBISBox |
[in] | a_box | Box currently being evaluated |
[in] | a_dx | Grid resolution |
[in] | a_cfivs | Coarse-fine interface |
This tries to compute up to second order derivatives for use in a Taylor series.
The documentation for this class was generated from the following files: