Chombo + EB + MF
3.2
|
Class to manage coarse-to-fine spatial interpolation to all fine cells within a single particular coarse cell. More...
#include <FourthOrderInterpStencil.H>
Public Member Functions | |
FourthOrderInterpStencil () | |
Default constructor. More... | |
FourthOrderInterpStencil (const IntVect &a_bdryOffset, const int &a_refineCoarse, const int &a_degree=3, Interval a_fixedDims=Interval()) | |
Full constructor. More... | |
~FourthOrderInterpStencil () | |
Destructor. More... | |
void | define (const IntVect &a_bdryOffset, const int &a_refineCoarse, const int &a_degree=3, Interval a_fixedDims=Interval()) |
Actual constructor. More... | |
void | fillFine (FArrayBox &a_fineFab, const FArrayBox &a_coarseFab, const IntVect &a_coarseDataCell, const IntVect &a_coarseToFineOffset=IntVect::Zero) const |
Interpolate to all the fine cells within one coarse cell. More... | |
Public Attributes | |
int | m_stencilSize |
number of coarse cells in the stencil More... | |
Vector< IntVect > | m_coarseBaseIndices |
length m_stencilSize, lists indices of coarse cell corresponding to each component of m_coarseToFineFab More... | |
FArrayBox | m_coarseToFineFab |
m_stencilSize coefficients of coarse cells for each cell in m_baseFineBox More... | |
Protected Member Functions | |
Real | power1d0avg (Real a_lower, Real a_upper, int a_ipwr) const |
Real | power1dcoarseind0avg (int a_offset, int a_ipwr) const |
Real | power1dfineind0avg (int a_offset, int a_ipwr) const |
Protected Attributes | |
int | m_refineCoarse |
refinement ratio More... | |
int | m_degree |
max degree of polynomials More... | |
Interval | m_fixedDims |
dimensions that are fixed, not interpolated More... | |
IntVect | m_refineVect |
1 in m_fixedDims, m_refineCoarse in other dimensions More... | |
IntVect | m_bdryOffset |
displacement from domain boundary in each dimension, in range -(a_degree-1):(a_degree-1) More... | |
Box | m_baseFineBox |
0:(m_refineCoarse-1) in every dimension More... | |
bool | m_defined |
whether define() has been called More... | |
Private Member Functions | |
void | operator= (const FourthOrderInterpStencil &a_input) |
FourthOrderInterpStencil (const FourthOrderInterpStencil &a_input) | |
Class to manage coarse-to-fine spatial interpolation to all fine cells within a single particular coarse cell.
FourthOrderInterpStencil::FourthOrderInterpStencil | ( | ) |
Default constructor.
Object requires define() to be called before all other functions.
|
inline |
Full constructor.
a_bdryOffset | in range -(a_degree-1):(a_degree-1), specifies displacement to boundary in each dimension |
a_refineCoarse | refinement ratio |
a_degree | max degree of polynomials |
a_fixedDims | dimensions that are fixed, not interpolated |
References define(), fillFine(), IntVect::Zero, and ~FourthOrderInterpStencil().
FourthOrderInterpStencil::~FourthOrderInterpStencil | ( | ) |
Destructor.
Destroys all objects created by define(). Passed in data references of define() are left alone.
Referenced by FourthOrderInterpStencil().
|
inlineprivate |
References MayDay::Error().
void FourthOrderInterpStencil::define | ( | const IntVect & | a_bdryOffset, |
const int & | a_refineCoarse, | ||
const int & | a_degree = 3 , |
||
Interval | a_fixedDims = Interval() |
||
) |
Actual constructor.
Set up object.
a_bdryOffset | in range -(a_degree-1):(a_degree-1), specifies displacement to boundary in each dimension |
a_refineCoarse | refinement ratio |
a_degree | max degree of polynomials |
a_fixedDims | dimensions that are fixed, not interpolated |
Referenced by FourthOrderInterpStencil().
void FourthOrderInterpStencil::fillFine | ( | FArrayBox & | a_fineFab, |
const FArrayBox & | a_coarseFab, | ||
const IntVect & | a_coarseDataCell, | ||
const IntVect & | a_coarseToFineOffset = IntVect::Zero |
||
) | const |
Interpolate to all the fine cells within one coarse cell.
Fill the fine cells inside a_coarseDataCell with interpolated data from a_coarseFab.
The fine cells to be filled in are at m_baseFineBox + m_refineVect * a_coarseDataCell + a_coarseToFineOffset. The coarse cells from which we draw data are (a_coarseDataCell + m_coarseBaseIndices[i*D+[0:D-1]]: 0 <= i < m_stencilSize).
a_fineFab | to fill at m_baseFineBox + m_refineVect*a_coarseDataCell + a_coarseToFineOffset |
a_coarseFab | coarse data |
a_coarseDataCell | coarse cell with fine subcells to fill in |
a_coarseToFineOffset | offset from base coarse cell to coarsened fine cells |
Referenced by FourthOrderInterpStencil().
|
protected |
|
protected |
|
protected |
|
inlineprivate |
References MayDay::Error().
|
protected |
refinement ratio
|
protected |
max degree of polynomials
|
protected |
dimensions that are fixed, not interpolated
|
protected |
1 in m_fixedDims, m_refineCoarse in other dimensions
|
protected |
displacement from domain boundary in each dimension, in range -(a_degree-1):(a_degree-1)
|
protected |
0:(m_refineCoarse-1) in every dimension
int FourthOrderInterpStencil::m_stencilSize |
number of coarse cells in the stencil
length m_stencilSize, lists indices of coarse cell corresponding to each component of m_coarseToFineFab
FArrayBox FourthOrderInterpStencil::m_coarseToFineFab |
m_stencilSize coefficients of coarse cells for each cell in m_baseFineBox
|
protected |
whether define() has been called