#include <EBPWLFillPatch.H>
Public Member Functions | |
EBPWLFillPatch () | |
virtual | ~EBPWLFillPatch () |
EBPWLFillPatch (const DisjointBoxLayout &a_dblFine, const DisjointBoxLayout &a_dblCoar, const EBISLayout &a_ebislFine, const EBISLayout &a_ebislCoar, const ProblemDomain &a_domainCoar, const int &a_nref, const int &a_nvar, const int &a_radius, const bool &a_forceNoEBCF=false, const EBIndexSpace *const a_eb=Chombo_EBIS::instance()) | |
virtual void | define (const DisjointBoxLayout &a_dblFine, const DisjointBoxLayout &a_dblCoar, const EBISLayout &a_ebislFine, const EBISLayout &a_ebislCoar, const ProblemDomain &a_domainCoar, const int &a_nref, const int &a_nvar, const int &a_radius, const bool &a_forceNoEBCF=false, const EBIndexSpace *const a_eb=Chombo_EBIS::instance()) |
bool | isDefined () const |
virtual void | interpolate (LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_coarDataOld, const LevelData< EBCellFAB > &a_coarDataNew, const Real &a_coarTimeOld, const Real &a_coarTimeNew, const Real &a_fineTime, const Interval &a_variables) |
virtual void | pwConstInterp (Real &a_fineValOld, Real &a_fineValNew, const VolIndex &a_fineVof, const int &a_ivar, const Real &a_coarDataOld, const Real &a_coarDataNew, const VolIndex &a_coarseVof) const |
virtual void | incrementLinearInterp (Real &a_fineValOld, Real &a_fineValNew, const VolIndex &a_fineVof, const int &a_ivar, const Real &a_deltaOldOld, const Real &a_deltaNew, const Real &a_differenceFineLocCoarseLoc, const VolIndex &a_coarseVof) const |
virtual void | definePieceWiseLinearFillPatch (const DisjointBoxLayout &a_dblfine, const DisjointBoxLayout &a_dblCoar) |
Protected Member Functions | |
void | interpolateFAB (EBCellFAB &a_fine, const EBCellFAB &a_coarOld, const EBCellFAB &a_coarNew, const Real &a_coarTimeOld, const Real &a_coarTimeNew, const Real &a_fineTime, const DataIndex &a_datInd, const Interval &a_variables) const |
void | makeStencils () |
void | getIVS () |
void | getLoHiCenIVS () |
void | getSten () |
void | setDefaultValues () |
bool | extractFromSten (Real &a_value, const VoFStencil &a_vofsten, const EBCellFAB &a_coarData, const int &ivar) const |
virtual Real | computeDMinMod (const BaseIVFAB< VoFStencil > &a_lostenBF, const BaseIVFAB< VoFStencil > &a_histenBF, const VolIndex &a_coarVoF, const EBCellFAB &a_coarData, const int &ivar, const IntVectSet &loInterpSet, const IntVectSet &hiInterpSet, const IntVectSet &ceInterpSet) const |
Protected Attributes | |
bool | m_isDefined |
bool | m_forceNoEBCF |
PiecewiseLinearFillPatch * | m_patcher |
ProblemDomain | m_coarDomain |
DisjointBoxLayout | m_coarsenedFineGrids |
DisjointBoxLayout | m_fineGrids |
DisjointBoxLayout | m_coarGrids |
EBISLayout | m_coarsenedFineEBISL |
EBISLayout | m_fineEBISL |
LevelData< EBCellFAB > | m_coarOnFDataOld |
LevelData< EBCellFAB > | m_coarOnFDataNew |
int | m_refRat |
int | m_nComp |
int | m_radius |
int | m_coarGhostRad |
LayoutData< IntVectSet > | m_irregRegionsFine |
LayoutData< BaseIVFAB < VoFStencil > > | m_hiStencils [SpaceDim] |
LayoutData< BaseIVFAB < VoFStencil > > | m_loStencils [SpaceDim] |
LayoutData< IntVectSet > | m_coarCeInterp [SpaceDim] |
LayoutData< IntVectSet > | m_coarLoInterp [SpaceDim] |
LayoutData< IntVectSet > | m_coarHiInterp [SpaceDim] |
Private Member Functions | |
EBPWLFillPatch (const EBPWLFillPatch &ebcin) | |
void | operator= (const EBPWLFillPatch &fabin) |
EBPWLFillPatch::EBPWLFillPatch | ( | ) |
Default constructor. User must subsequently call define().
virtual EBPWLFillPatch::~EBPWLFillPatch | ( | ) | [virtual] |
EBPWLFillPatch::EBPWLFillPatch | ( | const DisjointBoxLayout & | a_dblFine, | |
const DisjointBoxLayout & | a_dblCoar, | |||
const EBISLayout & | a_ebislFine, | |||
const EBISLayout & | a_ebislCoar, | |||
const ProblemDomain & | a_domainCoar, | |||
const int & | a_nref, | |||
const int & | a_nvar, | |||
const int & | a_radius, | |||
const bool & | a_forceNoEBCF = false , |
|||
const EBIndexSpace *const | a_eb = Chombo_EBIS::instance() | |||
) |
Defining constructor. Constructs a valid object. Equivalent to default construction followed by define().
{ Arguments:}\ dblFine, dblCoar: The fine and coarse layouts of the data.\ ebislFine, ebislCoar: The fine and coarse layouts of the geometric description.\ nref: The refinement ratio between the two levels. \ nvar: The number of variables contained in the data at each VoF.\ radius: the total number of ghost cells filled. forceNoEBCF = true promises that the embedded boundary will not cross the coarse-fine interface. This will save you a lot of compute time if you are certain you are tagging all irregulkar cells.
EBPWLFillPatch::EBPWLFillPatch | ( | const EBPWLFillPatch & | ebcin | ) | [inline, private] |
References MayDay::Error().
virtual void EBPWLFillPatch::define | ( | const DisjointBoxLayout & | a_dblFine, | |
const DisjointBoxLayout & | a_dblCoar, | |||
const EBISLayout & | a_ebislFine, | |||
const EBISLayout & | a_ebislCoar, | |||
const ProblemDomain & | a_domainCoar, | |||
const int & | a_nref, | |||
const int & | a_nvar, | |||
const int & | a_radius, | |||
const bool & | a_forceNoEBCF = false , |
|||
const EBIndexSpace *const | a_eb = Chombo_EBIS::instance() | |||
) | [virtual] |
Defines this object. Existing information is overriden.
{ Arguments:}\ dblFine, dblCoar: The fine and coarse layouts of the data.\ ebislFine, ebislCoar: The fine and coarse layouts of the geometric description.\ nref: The refinement ratio between the two levels. \ nvar: The number of variables contained in the data at each VoF. radius: the total number of ghost cells filled. forceNoEBCF = true promises that the embedded boundary will not cross the coarse-fine interface. This will save you a lot of compute time if you are certain you are tagging all irregulkar cells.
bool EBPWLFillPatch::isDefined | ( | ) | const |
Returns true if this object was created with the defining constructor or if define() has been called.
virtual void EBPWLFillPatch::interpolate | ( | LevelData< EBCellFAB > & | a_fineData, | |
const LevelData< EBCellFAB > & | a_coarDataOld, | |||
const LevelData< EBCellFAB > & | a_coarDataNew, | |||
const Real & | a_coarTimeOld, | |||
const Real & | a_coarTimeNew, | |||
const Real & | a_fineTime, | |||
const Interval & | a_variables | |||
) | [virtual] |
Interpolate the fine data from the coarse data over the intersection of the fine layout with the refined coarse layout. \ { Arguments:}\ coarDataOld: The data over the coarse layout at coarse time old.\ coarDatanew: The data over the coarse layout at coarse time new.\ fineData: The data over the fine layout. \ Error occurs unless coarTimeOld <= fineTime <= coarTimeNew \ Fine and coarse data must have the same number of variables.\ variables: The variables to interpolate. Those not in this range will be left alone. This range of variables must be in both the coarse and fine data.
virtual void EBPWLFillPatch::pwConstInterp | ( | Real & | a_fineValOld, | |
Real & | a_fineValNew, | |||
const VolIndex & | a_fineVof, | |||
const int & | a_ivar, | |||
const Real & | a_coarDataOld, | |||
const Real & | a_coarDataNew, | |||
const VolIndex & | a_coarseVof | |||
) | const [virtual] |
virtual void EBPWLFillPatch::incrementLinearInterp | ( | Real & | a_fineValOld, | |
Real & | a_fineValNew, | |||
const VolIndex & | a_fineVof, | |||
const int & | a_ivar, | |||
const Real & | a_deltaOldOld, | |||
const Real & | a_deltaNew, | |||
const Real & | a_differenceFineLocCoarseLoc, | |||
const VolIndex & | a_coarseVof | |||
) | const [virtual] |
virtual void EBPWLFillPatch::definePieceWiseLinearFillPatch | ( | const DisjointBoxLayout & | a_dblfine, | |
const DisjointBoxLayout & | a_dblCoar | |||
) | [virtual] |
void EBPWLFillPatch::interpolateFAB | ( | EBCellFAB & | a_fine, | |
const EBCellFAB & | a_coarOld, | |||
const EBCellFAB & | a_coarNew, | |||
const Real & | a_coarTimeOld, | |||
const Real & | a_coarTimeNew, | |||
const Real & | a_fineTime, | |||
const DataIndex & | a_datInd, | |||
const Interval & | a_variables | |||
) | const [protected] |
void EBPWLFillPatch::makeStencils | ( | ) | [protected] |
void EBPWLFillPatch::getIVS | ( | ) | [protected] |
void EBPWLFillPatch::getLoHiCenIVS | ( | ) | [protected] |
void EBPWLFillPatch::getSten | ( | ) | [protected] |
void EBPWLFillPatch::setDefaultValues | ( | ) | [protected] |
bool EBPWLFillPatch::extractFromSten | ( | Real & | a_value, | |
const VoFStencil & | a_vofsten, | |||
const EBCellFAB & | a_coarData, | |||
const int & | ivar | |||
) | const [protected] |
virtual Real EBPWLFillPatch::computeDMinMod | ( | const BaseIVFAB< VoFStencil > & | a_lostenBF, | |
const BaseIVFAB< VoFStencil > & | a_histenBF, | |||
const VolIndex & | a_coarVoF, | |||
const EBCellFAB & | a_coarData, | |||
const int & | ivar, | |||
const IntVectSet & | loInterpSet, | |||
const IntVectSet & | hiInterpSet, | |||
const IntVectSet & | ceInterpSet | |||
) | const [protected, virtual] |
void EBPWLFillPatch::operator= | ( | const EBPWLFillPatch & | fabin | ) | [inline, private] |
References MayDay::Error().
bool EBPWLFillPatch::m_isDefined [protected] |
bool EBPWLFillPatch::m_forceNoEBCF [protected] |
PiecewiseLinearFillPatch* EBPWLFillPatch::m_patcher [protected] |
ProblemDomain EBPWLFillPatch::m_coarDomain [protected] |
DisjointBoxLayout EBPWLFillPatch::m_fineGrids [protected] |
DisjointBoxLayout EBPWLFillPatch::m_coarGrids [protected] |
EBISLayout EBPWLFillPatch::m_coarsenedFineEBISL [protected] |
EBISLayout EBPWLFillPatch::m_fineEBISL [protected] |
LevelData<EBCellFAB> EBPWLFillPatch::m_coarOnFDataOld [protected] |
LevelData<EBCellFAB> EBPWLFillPatch::m_coarOnFDataNew [protected] |
int EBPWLFillPatch::m_refRat [protected] |
int EBPWLFillPatch::m_nComp [protected] |
int EBPWLFillPatch::m_radius [protected] |
int EBPWLFillPatch::m_coarGhostRad [protected] |
LayoutData<IntVectSet> EBPWLFillPatch::m_irregRegionsFine [protected] |
LayoutData<BaseIVFAB<VoFStencil> > EBPWLFillPatch::m_hiStencils[SpaceDim] [protected] |
LayoutData<BaseIVFAB<VoFStencil> > EBPWLFillPatch::m_loStencils[SpaceDim] [protected] |
LayoutData<IntVectSet> EBPWLFillPatch::m_coarCeInterp[SpaceDim] [protected] |
LayoutData<IntVectSet> EBPWLFillPatch::m_coarLoInterp[SpaceDim] [protected] |
LayoutData<IntVectSet> EBPWLFillPatch::m_coarHiInterp[SpaceDim] [protected] |