Chombo + EB
3.2
|
Fourth-order interpolation in space. More...
#include <FourthOrderFineInterp.H>
Public Member Functions | |
FourthOrderFineInterp () | |
Default constructor. More... | |
~FourthOrderFineInterp () | |
Destructor. More... | |
void | define (const DisjointBoxLayout &a_layout, const int &a_numStates, const int &a_refineCoarse, const ProblemDomain &a_domain, const int &a_coarseGhostsFill=0, Interval a_fixedDims=Interval()) |
Actual constructor. More... | |
const BaseFab< IntVect > & | getStencil (const DataIterator &a_dit) const |
return stencil indices More... | |
const BaseFab< IntVect > & | getStencil (const DataIndex &a_dind) const |
return stencil indices More... | |
LevelData< FArrayBox > & | coarsenedFineData () |
return reference to coarse data More... | |
FourthOrderPatchInterp & | patchInterp () |
return patch interpolator More... | |
void | interpToFine (LevelData< FArrayBox > &a_fine, const LevelData< FArrayBox > &a_coarse) |
Interpolate in space. More... | |
void | interpOnPatch (FArrayBox &a_fine, const FArrayBox &a_coarse, const DataIterator &a_dit) |
Interpolate in space on a single patch. More... | |
void | interpOnPatch (FArrayBox &a_fine, const FArrayBox &a_coarse, const DataIndex &a_dind) |
Interpolate in space on a single patch. More... | |
void | interpOnPatch (FArrayBox &a_fine, const FArrayBox &a_coarse, const DataIterator &a_dit, const IntVectSet &a_ivs) |
Interpolate in space on a single patch, to a set of cells. More... | |
void | interpOnPatch (FArrayBox &a_fine, const FArrayBox &a_coarse, const DataIndex &a_dind, const IntVectSet &a_ivs) |
Interpolate in space on a single patch. More... | |
Protected Attributes | |
DisjointBoxLayout | m_layout |
Box layout for this level. More... | |
DisjointBoxLayout | m_layoutCoarsened |
Box layout for the coarse level: m_layout coarsened by m_refineCoarse. More... | |
FourthOrderPatchInterp | m_patchInterp |
object for patch-based operations More... | |
LevelData< BaseFab< IntVect > > | m_stencilHere |
on m_layoutCoarsened; which stencil to use at each coarse point More... | |
IntVect | m_ghostVect |
ghost vector on m_coarseData More... | |
LevelData< FArrayBox > | m_coarseData |
copied coarse data in interpToFine, lives on m_layoutCoarsened More... | |
ProblemDomain | m_domain |
Problem domain - index space for this level. More... | |
int | m_refineCoarse |
Refinement ratio between this level and the next coarser. More... | |
Interval | m_fixedDims |
dimensions that are fixed, not interpolated More... | |
IntVect | m_refineVect |
1 in m_fixedDims, m_refineCoarse in other dimensions More... | |
int | m_numStates |
Number of variables. More... | |
int | m_maxStencilDist |
maximum distance of stencil from domain boundary More... | |
int | m_coarseGhostsFill |
number of layers of ghost cells at the coarser level whose fine cells are to be filled in More... | |
bool | m_defined |
define() has been called More... | |
Private Member Functions | |
void | operator= (const FourthOrderFineInterp &) |
FourthOrderFineInterp (const FourthOrderFineInterp &) | |
Fourth-order interpolation in space.
FourthOrderFineInterp::FourthOrderFineInterp | ( | ) |
Default constructor.
Object requires define() to be called before all other functions.
FourthOrderFineInterp::~FourthOrderFineInterp | ( | ) |
|
private |
void FourthOrderFineInterp::define | ( | const DisjointBoxLayout & | a_layout, |
const int & | a_numStates, | ||
const int & | a_refineCoarse, | ||
const ProblemDomain & | a_domain, | ||
const int & | a_coarseGhostsFill = 0 , |
||
Interval | a_fixedDims = Interval() |
||
) |
Actual constructor.
Set up object.
a_layout | layout at this level |
a_numStates | number of variables |
a_refineCoarse | refinement ratio between this level and next coarser level |
a_domain | problem domain on this level |
a_coarseGhostsFill | number of coarse ghost cells |
a_fixedDims | dimensions that are fixed, not interpolated |
const BaseFab<IntVect>& FourthOrderFineInterp::getStencil | ( | const DataIterator & | a_dit | ) | const |
return stencil indices
Get stencil indices for patch a_dit.
return stencil indices
Get stencil indices for patch a_dind.
return reference to coarse data
Return reference to m_coarseData.
FourthOrderPatchInterp& FourthOrderFineInterp::patchInterp | ( | ) |
return patch interpolator
Get object for interpolating on a single patch.
void FourthOrderFineInterp::interpToFine | ( | LevelData< FArrayBox > & | a_fine, |
const LevelData< FArrayBox > & | a_coarse | ||
) |
Interpolate in space.
Interpolate in space to a_fine from a_coarse.
a_fine | interpolated solution on this level |
a_coarse | coarse solution |
void FourthOrderFineInterp::interpOnPatch | ( | FArrayBox & | a_fine, |
const FArrayBox & | a_coarse, | ||
const DataIterator & | a_dit | ||
) |
Interpolate in space on a single patch.
Interpolate in space to a_fine from a_coarse, where both are related to index a_dit.
a_fine | interpolated solution on this level |
a_coarse | coarse solution |
a_dit | index |
void FourthOrderFineInterp::interpOnPatch | ( | FArrayBox & | a_fine, |
const FArrayBox & | a_coarse, | ||
const DataIndex & | a_dind | ||
) |
Interpolate in space on a single patch.
Interpolate in space to a_fine from a_coarse, where both are related to index a_dind.
a_fine | interpolated solution on this level |
a_coarse | coarse solution |
a_dind | index |
void FourthOrderFineInterp::interpOnPatch | ( | FArrayBox & | a_fine, |
const FArrayBox & | a_coarse, | ||
const DataIterator & | a_dit, | ||
const IntVectSet & | a_ivs | ||
) |
Interpolate in space on a single patch, to a set of cells.
Interpolate in space to a_fine from a_coarse, where both are related to index a_dit, to the fine cells within a_ivs.
a_fine | interpolated solution on this level |
a_coarse | coarse solution |
a_dit | index |
a_ivs | we fill in fine cells within these coarse cells |
void FourthOrderFineInterp::interpOnPatch | ( | FArrayBox & | a_fine, |
const FArrayBox & | a_coarse, | ||
const DataIndex & | a_dind, | ||
const IntVectSet & | a_ivs | ||
) |
Interpolate in space on a single patch.
Interpolate in space to a_fine from a_coarse, where both are related to index a_dind, to the fine cells within a_ivs.
a_fine | interpolated solution on this level |
a_coarse | coarse solution |
a_dind | index |
a_ivs | we fill in fine cells within these coarse cells |
|
private |
|
protected |
Box layout for this level.
|
protected |
Box layout for the coarse level: m_layout coarsened by m_refineCoarse.
|
protected |
object for patch-based operations
on m_layoutCoarsened; which stencil to use at each coarse point
|
protected |
ghost vector on m_coarseData
copied coarse data in interpToFine, lives on m_layoutCoarsened
|
protected |
Problem domain - index space for this level.
|
protected |
Refinement ratio between this level and the next coarser.
|
protected |
dimensions that are fixed, not interpolated
|
protected |
1 in m_fixedDims, m_refineCoarse in other dimensions
|
protected |
Number of variables.
|
protected |
maximum distance of stencil from domain boundary
|
protected |
number of layers of ghost cells at the coarser level whose fine cells are to be filled in
|
protected |
define() has been called