#include <EBQuadCFInterp.H>

Public Member Functions | |
| EBQuadCFInterp () | |
| virtual | ~EBQuadCFInterp () |
| EBQuadCFInterp (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 LayoutData< IntVectSet > &a_cfivs, const EBIndexSpace *const a_ebisPtr=Chombo_EBIS::instance(), bool a_doEBCFCrossing=true) | |
| 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 LayoutData< IntVectSet > &a_cfivs, const EBIndexSpace *const a_ebisPtr=Chombo_EBIS::instance(), bool a_doEBCFCrossing=true) |
| void | interpolate (LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_coarData, const Interval &a_variables, bool a_doOnlyRegularInterp=false) |
| bool | isDefined () const |
| void | interpEBCFCrossing (LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_coarData, const Interval &a_variables) |
| void | interpEBCFCorners (LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_coarData, const Interval &a_variables) |
| RefCountedPtr< EBCFData > | getEBCFData () const |
Protected Member Functions | |
| bool | getEBCFIVS (const LayoutData< IntVectSet > &a_cfivs) |
| void | buildEBCFStencils () |
| void | buildEBCFCornerStencils (const LayoutData< IntVectSet > &a_cfivs) |
| int | getPhiStarStencil (VoFStencil &a_stencil, const VolIndex &a_ghostVoFFine, const VolIndex &a_ghostVoFCoar, const EBISBox &a_ebisBoxCoar, int a_idir, Side::LoHiSide a_sd, int a_refRat) |
| int | getStencils (VoFStencil &a_fineStencil, VoFStencil &a_coarStencil, const VolIndex &a_ghostVoFFine, const VolIndex &a_ghostVoFCoar, const EBISBox &a_ebisBoxFine, const EBISBox &a_ebisBoxCoar, int a_idir, Side::LoHiSide a_sd, int a_refRat) |
Protected Attributes | |
| RefCountedPtr< EBCFData > | m_ebcfdata |
| LevelData< EBCellFAB > | m_ebBufferCoarsenedFine |
| LayoutData< BaseIVFAB < VoFStencil > > | m_coarStencilLo [SpaceDim] |
| LayoutData< BaseIVFAB < VoFStencil > > | m_coarStencilHi [SpaceDim] |
| LayoutData< BaseIVFAB < VoFStencil > > | m_fineStencilLo [SpaceDim] |
| LayoutData< BaseIVFAB < VoFStencil > > | m_fineStencilHi [SpaceDim] |
| LayoutData< BaseIVFAB < VoFStencil > > | m_stencilCorners |
| LayoutData< BaseIVFAB < VoFStencil > > | m_stencilEdges |
| LayoutData< IntVectSet > | m_ebcfivsLo [SpaceDim] |
| LayoutData< IntVectSet > | m_ebcfivsHi [SpaceDim] |
| CornerCopier | m_cornerCopier |
| IntVectSet | m_excludeIVSCoar |
| bool | m_doEBCFCrossing |
| int | m_refRat |
| ProblemDomain | m_domainFine |
| ProblemDomain | m_domainCoar |
Static Protected Attributes | |
| static IntVect | s_ivDebFine |
| static IntVect | s_ivDebCoar |
Private Member Functions | |
| EBQuadCFInterp (const EBQuadCFInterp &ebcin) | |
| void | operator= (const EBQuadCFInterp &fabin) |
| EBQuadCFInterp::EBQuadCFInterp | ( | ) |
Default constructor. User must subsequently call define().
| virtual EBQuadCFInterp::~EBQuadCFInterp | ( | ) | [virtual] |
| EBQuadCFInterp::EBQuadCFInterp | ( | 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 LayoutData< IntVectSet > & | a_cfivs, | |||
| const EBIndexSpace *const | a_ebisPtr = Chombo_EBIS::instance(), |
|||
| bool | a_doEBCFCrossing = true | |||
| ) |
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. \ Set doEBCFCrossing=false if you are sure that tall irregular cells are on the finest grid.
| EBQuadCFInterp::EBQuadCFInterp | ( | const EBQuadCFInterp & | ebcin | ) | [inline, private] |
References MayDay::Error().
| void EBQuadCFInterp::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 LayoutData< IntVectSet > & | a_cfivs, | |||
| const EBIndexSpace *const | a_ebisPtr = Chombo_EBIS::instance(), |
|||
| bool | a_doEBCFCrossing = true | |||
| ) |
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. \ Set doEBCFCrossing=false if you are sure that tall irregular cells are on the finest grid.
| void EBQuadCFInterp::interpolate | ( | LevelData< EBCellFAB > & | a_fineData, | |
| const LevelData< EBCellFAB > & | a_coarData, | |||
| const Interval & | a_variables, | |||
| bool | a_doOnlyRegularInterp = false | |||
| ) |
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.\ fineData: The data over the fine layout. \ 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. { This routine assumes that coarse data that lives under finer grids has been coarsened from the finer data to O(h^3). If embedded boundaries cross coarse fine boundaries and this is not the case, O(1) errors will happen}
| bool EBQuadCFInterp::isDefined | ( | ) | const |
has full define function been called? return true if so
Reimplemented from QuadCFInterp.
| void EBQuadCFInterp::interpEBCFCrossing | ( | LevelData< EBCellFAB > & | a_fineData, | |
| const LevelData< EBCellFAB > & | a_coarData, | |||
| const Interval & | a_variables | |||
| ) |
Use the stencils to actually do EB aware interpolation
| void EBQuadCFInterp::interpEBCFCorners | ( | LevelData< EBCellFAB > & | a_fineData, | |
| const LevelData< EBCellFAB > & | a_coarData, | |||
| const Interval & | a_variables | |||
| ) |
Use the corner-stencils to actually do EB aware interpolation Use coarse value when stencil is empty.
| RefCountedPtr<EBCFData> EBQuadCFInterp::getEBCFData | ( | ) | const [inline] |
References m_ebcfdata.
| bool EBQuadCFInterp::getEBCFIVS | ( | const LayoutData< IntVectSet > & | a_cfivs | ) | [protected] |
Builds the IntVectSets for where we need to do EB aware CF interpolation. Returns a bool that indicates if we need to do EB aware CF interp
| void EBQuadCFInterp::buildEBCFStencils | ( | ) | [protected] |
Builds a stencil for each vof that needs an EB aware CF interpolation
| void EBQuadCFInterp::buildEBCFCornerStencils | ( | const LayoutData< IntVectSet > & | a_cfivs | ) | [protected] |
Builds a stencil for each corner-vof that needs an EB aware CF interpolation
| int EBQuadCFInterp::getPhiStarStencil | ( | VoFStencil & | a_stencil, | |
| const VolIndex & | a_ghostVoFFine, | |||
| const VolIndex & | a_ghostVoFCoar, | |||
| const EBISBox & | a_ebisBoxCoar, | |||
| int | a_idir, | |||
| Side::LoHiSide | a_sd, | |||
| int | a_refRat | |||
| ) | [protected] |
| int EBQuadCFInterp::getStencils | ( | VoFStencil & | a_fineStencil, | |
| VoFStencil & | a_coarStencil, | |||
| const VolIndex & | a_ghostVoFFine, | |||
| const VolIndex & | a_ghostVoFCoar, | |||
| const EBISBox & | a_ebisBoxFine, | |||
| const EBISBox & | a_ebisBoxCoar, | |||
| int | a_idir, | |||
| Side::LoHiSide | a_sd, | |||
| int | a_refRat | |||
| ) | [protected] |
| void EBQuadCFInterp::operator= | ( | const EBQuadCFInterp & | fabin | ) | [inline, private] |
References MayDay::Error().
RefCountedPtr<EBCFData> EBQuadCFInterp::m_ebcfdata [protected] |
Referenced by getEBCFData().
LevelData<EBCellFAB> EBQuadCFInterp::m_ebBufferCoarsenedFine [protected] |
LayoutData<BaseIVFAB<VoFStencil> > EBQuadCFInterp::m_coarStencilLo[SpaceDim] [protected] |
LayoutData<BaseIVFAB<VoFStencil> > EBQuadCFInterp::m_coarStencilHi[SpaceDim] [protected] |
LayoutData<BaseIVFAB<VoFStencil> > EBQuadCFInterp::m_fineStencilLo[SpaceDim] [protected] |
LayoutData<BaseIVFAB<VoFStencil> > EBQuadCFInterp::m_fineStencilHi[SpaceDim] [protected] |
LayoutData<BaseIVFAB<VoFStencil> > EBQuadCFInterp::m_stencilCorners [protected] |
LayoutData<BaseIVFAB<VoFStencil> > EBQuadCFInterp::m_stencilEdges [protected] |
LayoutData<IntVectSet> EBQuadCFInterp::m_ebcfivsLo[SpaceDim] [protected] |
LayoutData<IntVectSet> EBQuadCFInterp::m_ebcfivsHi[SpaceDim] [protected] |
CornerCopier EBQuadCFInterp::m_cornerCopier [protected] |
IntVectSet EBQuadCFInterp::m_excludeIVSCoar [protected] |
bool EBQuadCFInterp::m_doEBCFCrossing [protected] |
int EBQuadCFInterp::m_refRat [protected] |
IntVect EBQuadCFInterp::s_ivDebFine [static, protected] |
IntVect EBQuadCFInterp::s_ivDebCoar [static, protected] |
ProblemDomain EBQuadCFInterp::m_domainFine [protected] |
Reimplemented from QuadCFInterp.
ProblemDomain EBQuadCFInterp::m_domainCoar [protected] |
1.5.5