Chombo + EB
3.0
|
Fourth-order interpolation in time and space to ghost cells. More...
#include <FourthOrderFillPatch.H>
Public Member Functions | |
FourthOrderFillPatch () | |
Default constructor. More... | |
FourthOrderFillPatch (const DisjointBoxLayout &a_thisDisjointBoxLayout, const DisjointBoxLayout &a_coarserDisjointBoxLayout, const int &a_numStates, const ProblemDomain &a_coarseDomain, const int &a_refineCoarse, const int &a_interpRadius, bool a_fixedTime=false) | |
Full constructor. More... | |
~FourthOrderFillPatch () | |
Destructor. More... | |
void | define (const DisjointBoxLayout &a_thisDisjointBoxLayout, const DisjointBoxLayout &a_coarserDisjointBoxLayout, const int &a_numStates, const ProblemDomain &a_coarseDomain, const int &a_refineCoarse, const int &a_interpRadius, bool a_fixedTime=false) |
Actual constructor. More... | |
void | fillInterp (LevelData< FArrayBox > &a_fineData, Real a_timeInterpCoeff, int a_srcComp, int a_dstComp, int a_numComp) |
Interpolate in time and space. More... | |
void | fillRK4Intermediate (LevelData< FArrayBox > &a_fineData, Real a_timeInterpCoeff, int a_stage, int a_srcComp, int a_dstComp, int a_numComp) |
Fill RK4 intermediate in time and space. More... | |
void | fillInterp (LevelData< FArrayBox > &a_fineData, const LevelData< FArrayBox > &a_coarseData, int a_srcComp, int a_dstComp, int a_numComp) |
Interpolate in space only. More... | |
TimeInterpolatorRK4 & | getTimeInterpolator () |
Return time interpolator object. More... | |
Protected Member Functions | |
void | fillInterpSpaceFromCoarsened (LevelData< FArrayBox > &a_fineData, int a_srcComp, int a_dstComp, int a_numComp) |
Interpolate in space only, from coarsened fine grids. More... | |
Protected Attributes | |
bool | m_defined |
whether define() has been called More... | |
bool | m_timeInterpDefined |
whether m_timeInterpolator is defined More... | |
DisjointBoxLayout | m_layout |
box layout for this level More... | |
DisjointBoxLayout | m_layoutCoarsened |
this level's layout coarsened More... | |
DisjointBoxLayout | m_coarseLayout |
box layout for the coarse level More... | |
int | m_interpRadius |
number of layers of fine ghost cells to fill by interpolation More... | |
ProblemDomain | m_coarseDomain |
problem domain at the coarser level More... | |
int | m_refineCoarse |
refinement ratio between this level and the next coarser More... | |
int | m_numStates |
number of variables More... | |
LevelData< FArrayBox > | m_coarsenedFineData |
data on ghosted coarsened fine grids at intermediate time in fillInterp More... | |
LayoutData< IntVectSet > | m_coarsenedGhosts |
coarsened ghost cells of fine patches More... | |
TimeInterpolatorRK4 | m_timeInterpolator |
interpolator in time More... | |
FourthOrderFineInterp | m_spaceInterpolator |
interpolator in space More... | |
Private Member Functions | |
void | operator= (const FourthOrderFillPatch &) |
FourthOrderFillPatch (const FourthOrderFillPatch &) | |
Fourth-order interpolation in time and space to ghost cells.
FourthOrderFillPatch::FourthOrderFillPatch | ( | ) |
Default constructor.
Object requires define() to be called before all other functions.
|
inline |
Full constructor.
a_thisDisjointBoxLayout | layout at this level |
a_coarserDisjointBoxLayout | layout at coarser level |
a_numStates | number of variables |
a_coarseDomain | problem domain on the coarser level |
a_refineCoarse | refinement ratio between this level and the coarser level |
a_interpRadius | number of layers of ghost cells to fill by interpolation |
a_fixedTime | whether this object is for a fixed time |
References define(), fillInterp(), fillRK4Intermediate(), getTimeInterpolator(), and ~FourthOrderFillPatch().
FourthOrderFillPatch::~FourthOrderFillPatch | ( | ) |
Destructor.
Destroys all objects created by define(). Passed in data references of define() are left alone.
Referenced by FourthOrderFillPatch().
|
private |
void FourthOrderFillPatch::define | ( | const DisjointBoxLayout & | a_thisDisjointBoxLayout, |
const DisjointBoxLayout & | a_coarserDisjointBoxLayout, | ||
const int & | a_numStates, | ||
const ProblemDomain & | a_coarseDomain, | ||
const int & | a_refineCoarse, | ||
const int & | a_interpRadius, | ||
bool | a_fixedTime = false |
||
) |
Actual constructor.
Set up object.
a_thisDisjointBoxLayout | layout at this level |
a_coarserDisjointBoxLayout | layout at coarser level |
a_numStates | number of variables |
a_coarseDomain | problem domain on the coarser level |
a_refineCoarse | refinement ratio between this level and the coarser level |
a_interpRadius | number of layers of ghost cells to fill by interpolation |
a_fixedTime | whether this object is for a fixed time |
Referenced by FourthOrderFillPatch().
void FourthOrderFillPatch::fillInterp | ( | LevelData< FArrayBox > & | a_fineData, |
Real | a_timeInterpCoeff, | ||
int | a_srcComp, | ||
int | a_dstComp, | ||
int | a_numComp | ||
) |
Interpolate in time and space.
Interpolate in time and space to ghost cells of a_fine from coarse data. The time interpolator must already contain the full Taylor polynomial calculated from data at the coarser level.
a_fineData | interpolated solution on this level |
a_timeInterpCoeff | time interpolation coefficient, in [0:1] |
a_srcComp | starting coarse data component |
a_dstComp | starting fine data component |
a_numComp | number of data components to interpolate |
Referenced by FourthOrderFillPatch().
void FourthOrderFillPatch::fillRK4Intermediate | ( | LevelData< FArrayBox > & | a_fineData, |
Real | a_timeInterpCoeff, | ||
int | a_stage, | ||
int | a_srcComp, | ||
int | a_dstComp, | ||
int | a_numComp | ||
) |
Fill RK4 intermediate in time and space.
Set RK4 intermediate interpolating in time and space to ghost cells of a_fine from coarse data. The time interpolator must already contain the full Taylor polynomial calculated from data at the coarser level.
a_fineData | interpolated solution on this level |
a_timeInterpCoeff | time interpolation coefficient, in [0:1] |
a_stage | RK4 stage, in 0:3 |
a_srcComp | starting coarse data component |
a_dstComp | starting fine data component |
a_numComp | number of data components to interpolate |
Referenced by FourthOrderFillPatch().
void FourthOrderFillPatch::fillInterp | ( | LevelData< FArrayBox > & | a_fineData, |
const LevelData< FArrayBox > & | a_coarseData, | ||
int | a_srcComp, | ||
int | a_dstComp, | ||
int | a_numComp | ||
) |
Interpolate in space only.
At a fixed time, interpolate in space to ghost cells of a_fine from a_coarse.
a_fineData | interpolated solution on this level |
a_coarseData | solution on coarser level |
a_srcComp | starting coarse data component |
a_dstComp | starting fine data component |
a_numComp | number of data components to interpolate |
TimeInterpolatorRK4& FourthOrderFillPatch::getTimeInterpolator | ( | ) |
|
protected |
Interpolate in space only, from coarsened fine grids.
At a fixed time, interpolate in space to ghost cells of a_fine from m_coarseFineData.
a_fineData | interpolated solution on this level |
a_srcComp | starting coarse data component |
a_dstComp | starting fine data component |
a_numComp | number of data components to interpolate |
|
private |
|
protected |
whether define() has been called
|
protected |
whether m_timeInterpolator is defined
|
protected |
box layout for this level
|
protected |
this level's layout coarsened
|
protected |
box layout for the coarse level
|
protected |
number of layers of fine ghost cells to fill by interpolation
|
protected |
problem domain at the coarser level
|
protected |
refinement ratio between this level and the next coarser
|
protected |
number of variables
data on ghosted coarsened fine grids at intermediate time in fillInterp
|
protected |
coarsened ghost cells of fine patches
|
protected |
interpolator in time
|
protected |
interpolator in space