Chombo + EB  3.0
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
FourthOrderFillPatch Class Reference

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...
 
TimeInterpolatorRK4getTimeInterpolator ()
 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< FArrayBoxm_coarsenedFineData
 data on ghosted coarsened fine grids at intermediate time in fillInterp More...
 
LayoutData< IntVectSetm_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 &)
 

Detailed Description

Fourth-order interpolation in time and space to ghost cells.

Constructor & Destructor Documentation

◆ FourthOrderFillPatch() [1/3]

FourthOrderFillPatch::FourthOrderFillPatch ( )

Default constructor.

Object requires define() to be called before all other functions.

◆ FourthOrderFillPatch() [2/3]

FourthOrderFillPatch::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 
)
inline

Full constructor.

Parameters
a_thisDisjointBoxLayoutlayout at this level
a_coarserDisjointBoxLayoutlayout at coarser level
a_numStatesnumber of variables
a_coarseDomainproblem domain on the coarser level
a_refineCoarserefinement ratio between this level and the coarser level
a_interpRadiusnumber of layers of ghost cells to fill by interpolation
a_fixedTimewhether this object is for a fixed time

References define(), fillInterp(), fillRK4Intermediate(), getTimeInterpolator(), and ~FourthOrderFillPatch().

◆ ~FourthOrderFillPatch()

FourthOrderFillPatch::~FourthOrderFillPatch ( )

Destructor.

Destroys all objects created by define(). Passed in data references of define() are left alone.

Referenced by FourthOrderFillPatch().

◆ FourthOrderFillPatch() [3/3]

FourthOrderFillPatch::FourthOrderFillPatch ( const FourthOrderFillPatch )
private

Member Function Documentation

◆ define()

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.

Parameters
a_thisDisjointBoxLayoutlayout at this level
a_coarserDisjointBoxLayoutlayout at coarser level
a_numStatesnumber of variables
a_coarseDomainproblem domain on the coarser level
a_refineCoarserefinement ratio between this level and the coarser level
a_interpRadiusnumber of layers of ghost cells to fill by interpolation
a_fixedTimewhether this object is for a fixed time

Referenced by FourthOrderFillPatch().

◆ fillInterp() [1/2]

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.

Parameters
a_fineDatainterpolated solution on this level
a_timeInterpCoefftime interpolation coefficient, in [0:1]
a_srcCompstarting coarse data component
a_dstCompstarting fine data component
a_numCompnumber of data components to interpolate

Referenced by FourthOrderFillPatch().

◆ fillRK4Intermediate()

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.

Parameters
a_fineDatainterpolated solution on this level
a_timeInterpCoefftime interpolation coefficient, in [0:1]
a_stageRK4 stage, in 0:3
a_srcCompstarting coarse data component
a_dstCompstarting fine data component
a_numCompnumber of data components to interpolate

Referenced by FourthOrderFillPatch().

◆ fillInterp() [2/2]

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.

Parameters
a_fineDatainterpolated solution on this level
a_coarseDatasolution on coarser level
a_srcCompstarting coarse data component
a_dstCompstarting fine data component
a_numCompnumber of data components to interpolate

◆ getTimeInterpolator()

TimeInterpolatorRK4& FourthOrderFillPatch::getTimeInterpolator ( )

Return time interpolator object.

Return m_timeInterpolator.

Referenced by FourthOrderFillPatch().

◆ fillInterpSpaceFromCoarsened()

void FourthOrderFillPatch::fillInterpSpaceFromCoarsened ( LevelData< FArrayBox > &  a_fineData,
int  a_srcComp,
int  a_dstComp,
int  a_numComp 
)
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.

Parameters
a_fineDatainterpolated solution on this level
a_srcCompstarting coarse data component
a_dstCompstarting fine data component
a_numCompnumber of data components to interpolate

◆ operator=()

void FourthOrderFillPatch::operator= ( const FourthOrderFillPatch )
private

Member Data Documentation

◆ m_defined

bool FourthOrderFillPatch::m_defined
protected

whether define() has been called

◆ m_timeInterpDefined

bool FourthOrderFillPatch::m_timeInterpDefined
protected

whether m_timeInterpolator is defined

◆ m_layout

DisjointBoxLayout FourthOrderFillPatch::m_layout
protected

box layout for this level

◆ m_layoutCoarsened

DisjointBoxLayout FourthOrderFillPatch::m_layoutCoarsened
protected

this level's layout coarsened

◆ m_coarseLayout

DisjointBoxLayout FourthOrderFillPatch::m_coarseLayout
protected

box layout for the coarse level

◆ m_interpRadius

int FourthOrderFillPatch::m_interpRadius
protected

number of layers of fine ghost cells to fill by interpolation

◆ m_coarseDomain

ProblemDomain FourthOrderFillPatch::m_coarseDomain
protected

problem domain at the coarser level

◆ m_refineCoarse

int FourthOrderFillPatch::m_refineCoarse
protected

refinement ratio between this level and the next coarser

◆ m_numStates

int FourthOrderFillPatch::m_numStates
protected

number of variables

◆ m_coarsenedFineData

LevelData<FArrayBox> FourthOrderFillPatch::m_coarsenedFineData
protected

data on ghosted coarsened fine grids at intermediate time in fillInterp

◆ m_coarsenedGhosts

LayoutData<IntVectSet> FourthOrderFillPatch::m_coarsenedGhosts
protected

coarsened ghost cells of fine patches

◆ m_timeInterpolator

TimeInterpolatorRK4 FourthOrderFillPatch::m_timeInterpolator
protected

interpolator in time

◆ m_spaceInterpolator

FourthOrderFineInterp FourthOrderFillPatch::m_spaceInterpolator
protected

interpolator in space


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