#include <EBMGInterp.H>
Finedata += coarse data.
Public Member Functions | |
EBMGInterp () | |
~EBMGInterp () | |
EBMGInterp (const DisjointBoxLayout &dblFine, const DisjointBoxLayout &dblCoar, const EBISLayout &ebislFine, const EBISLayout &ebislCoar, const ProblemDomain &domainCoar, const int &nref, const int &nvar, const EBIndexSpace *ebisPtr, const IntVect &ghostCellsPhi, const bool &layoutChanged=true, const bool &doLinear=false) | |
void | define (const DisjointBoxLayout &dblFine, const DisjointBoxLayout &dblCoar, const EBISLayout &ebislFine, const EBISLayout &ebislCoar, const ProblemDomain &domainCoar, const int &nref, const int &nvar, const EBIndexSpace *ebisPtr, const IntVect &ghostCellsPhi, const bool &layoutChanged=true, const bool &doLinear=false) |
bool | isDefined () const |
void | pwcInterp (LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_coarseData, const Interval &a_variables) |
void | pwlInterp (LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_coarseData, const Interval &a_variables) |
void | pwlInterpMG (LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_coarseData, const Interval &a_variables) |
void | pwcInterpMG (LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_coarseData, const Interval &a_variables) |
Protected Member Functions | |
void | defineLinearStencil (const DataIndex &a_dit, const Vector< VolIndex > &a_allFineVoFs, const EBISLayout &a_ebislStenFine, const EBISLayout &a_ebislStenCoar, const Box &a_boxFine, const Box &a_boxCoar) |
void | defineConstantStencil (const DataIndex &a_dit, const Vector< VolIndex > &a_allFineVoFs, const EBISLayout &a_ebislStenFine, const EBISLayout &a_ebislStenCoar, const Box &a_boxFine, const Box &a_boxCoar) |
void | fillGhostCellsPWC (LevelData< EBCellFAB > &a_data, const EBISLayout &a_ebisl, const ProblemDomain &a_dom) |
void | pwcInterpFAB (EBCellFAB &a_refCoar, const Box &a_coarBox, const EBCellFAB &a_fine, const DataIndex &a_datInd, const Interval &a_variables) const |
void | pwlInterpFAB (EBCellFAB &a_refCoar, const Box &a_coarBox, const EBCellFAB &a_fine, const DataIndex &a_datInd, const Interval &a_variables) const |
void | setDefaultValues () |
void | defineStencils () |
Protected Attributes | |
bool | m_isDefined |
IntVect | m_ghost |
DisjointBoxLayout | m_coarGrids |
DisjointBoxLayout | m_fineGrids |
ProblemDomain | m_coarDomain |
ProblemDomain | m_fineDomain |
EBISLayout | m_coarEBISL |
EBISLayout | m_fineEBISL |
LevelData< EBCellFAB > | m_buffer |
int | m_refRat |
int | m_nComp |
bool | m_doLinear |
bool | m_layoutChanged |
bool | m_coarsenable |
DisjointBoxLayout | m_buffGrids |
EBISLayout | m_buffEBISL |
Copier | m_copierFtoRC |
Copier | m_copierRCtoF |
LayoutData< RefCountedPtr < EBStencil > > | m_interpEBStencil |
LayoutData< RefCountedPtr < EBStencil > > | m_linearEBStencil |
Private Member Functions | |
EBMGInterp (const EBMGInterp &ebcin) | |
void | operator= (const EBMGInterp &fabin) |
EBMGInterp::EBMGInterp | ( | ) |
Default constructor. User must subsequently call define().
EBMGInterp::~EBMGInterp | ( | ) |
EBMGInterp::EBMGInterp | ( | const DisjointBoxLayout & | dblFine, | |
const DisjointBoxLayout & | dblCoar, | |||
const EBISLayout & | ebislFine, | |||
const EBISLayout & | ebislCoar, | |||
const ProblemDomain & | domainCoar, | |||
const int & | nref, | |||
const int & | nvar, | |||
const EBIndexSpace * | ebisPtr, | |||
const IntVect & | ghostCellsPhi, | |||
const bool & | layoutChanged = true , |
|||
const bool & | doLinear = false | |||
) |
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.
EBMGInterp::EBMGInterp | ( | const EBMGInterp & | ebcin | ) | [inline, private] |
References MayDay::Error().
void EBMGInterp::define | ( | const DisjointBoxLayout & | dblFine, | |
const DisjointBoxLayout & | dblCoar, | |||
const EBISLayout & | ebislFine, | |||
const EBISLayout & | ebislCoar, | |||
const ProblemDomain & | domainCoar, | |||
const int & | nref, | |||
const int & | nvar, | |||
const EBIndexSpace * | ebisPtr, | |||
const IntVect & | ghostCellsPhi, | |||
const bool & | layoutChanged = true , |
|||
const bool & | doLinear = false | |||
) |
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.
bool EBMGInterp::isDefined | ( | ) | const |
Returns true if this object was created with the defining constructor or if define() has been called.
void EBMGInterp::pwcInterp | ( | LevelData< EBCellFAB > & | a_fineData, | |
const LevelData< EBCellFAB > & | a_coarseData, | |||
const Interval & | a_variables | |||
) |
Piecewise constant interpolation function FineData += coarseData
void EBMGInterp::pwlInterp | ( | LevelData< EBCellFAB > & | a_fineData, | |
const LevelData< EBCellFAB > & | a_coarseData, | |||
const Interval & | a_variables | |||
) |
Piecewise linear interpolation function FineData += coarseData + slope*dist only works if you turned on useLinear in define function. Ghost cells for the coarse data must be filled coming into the function.
void EBMGInterp::pwlInterpMG | ( | LevelData< EBCellFAB > & | a_fineData, | |
const LevelData< EBCellFAB > & | a_coarseData, | |||
const Interval & | a_variables | |||
) |
Piecewise linear interpolation function FineData += coarseData + slope*dist only works if you turned on useLinear in define function. no copies here Ghost cells for the coarse data must be filled coming into the function.
void EBMGInterp::pwcInterpMG | ( | LevelData< EBCellFAB > & | a_fineData, | |
const LevelData< EBCellFAB > & | a_coarseData, | |||
const Interval & | a_variables | |||
) |
Piecewise constant interpolation function for unchanged layouts (no agglomeration) there are no copies here FineData += coarseData
void EBMGInterp::defineLinearStencil | ( | const DataIndex & | a_dit, | |
const Vector< VolIndex > & | a_allFineVoFs, | |||
const EBISLayout & | a_ebislStenFine, | |||
const EBISLayout & | a_ebislStenCoar, | |||
const Box & | a_boxFine, | |||
const Box & | a_boxCoar | |||
) | [protected] |
void EBMGInterp::defineConstantStencil | ( | const DataIndex & | a_dit, | |
const Vector< VolIndex > & | a_allFineVoFs, | |||
const EBISLayout & | a_ebislStenFine, | |||
const EBISLayout & | a_ebislStenCoar, | |||
const Box & | a_boxFine, | |||
const Box & | a_boxCoar | |||
) | [protected] |
void EBMGInterp::fillGhostCellsPWC | ( | LevelData< EBCellFAB > & | a_data, | |
const EBISLayout & | a_ebisl, | |||
const ProblemDomain & | a_dom | |||
) | [protected] |
void EBMGInterp::pwcInterpFAB | ( | EBCellFAB & | a_refCoar, | |
const Box & | a_coarBox, | |||
const EBCellFAB & | a_fine, | |||
const DataIndex & | a_datInd, | |||
const Interval & | a_variables | |||
) | const [protected] |
void EBMGInterp::pwlInterpFAB | ( | EBCellFAB & | a_refCoar, | |
const Box & | a_coarBox, | |||
const EBCellFAB & | a_fine, | |||
const DataIndex & | a_datInd, | |||
const Interval & | a_variables | |||
) | const [protected] |
void EBMGInterp::setDefaultValues | ( | ) | [protected] |
void EBMGInterp::defineStencils | ( | ) | [protected] |
void EBMGInterp::operator= | ( | const EBMGInterp & | fabin | ) | [inline, private] |
References MayDay::Error().
bool EBMGInterp::m_isDefined [protected] |
IntVect EBMGInterp::m_ghost [protected] |
DisjointBoxLayout EBMGInterp::m_coarGrids [protected] |
DisjointBoxLayout EBMGInterp::m_fineGrids [protected] |
ProblemDomain EBMGInterp::m_coarDomain [protected] |
ProblemDomain EBMGInterp::m_fineDomain [protected] |
EBISLayout EBMGInterp::m_coarEBISL [protected] |
EBISLayout EBMGInterp::m_fineEBISL [protected] |
LevelData<EBCellFAB> EBMGInterp::m_buffer [protected] |
int EBMGInterp::m_refRat [protected] |
int EBMGInterp::m_nComp [protected] |
bool EBMGInterp::m_doLinear [protected] |
bool EBMGInterp::m_layoutChanged [protected] |
bool EBMGInterp::m_coarsenable [protected] |
DisjointBoxLayout EBMGInterp::m_buffGrids [protected] |
EBISLayout EBMGInterp::m_buffEBISL [protected] |
Copier EBMGInterp::m_copierFtoRC [protected] |
Copier EBMGInterp::m_copierRCtoF [protected] |
LayoutData<RefCountedPtr<EBStencil> > EBMGInterp::m_interpEBStencil [protected] |
LayoutData<RefCountedPtr<EBStencil> > EBMGInterp::m_linearEBStencil [protected] |