#include <EBQuadCFInterp.H>
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.
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
void EBQuadCFInterp::interpEBCFCrossing | ( | LevelData< EBCellFAB > & | a_fineData, | |
const LevelData< EBCellFAB > & | a_coarData, | |||
const Interval & | a_variables | |||
) | [protected] |
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 | |||
) | [protected] |
Use the corner-stencils to actually do EB aware interpolation Use coarse value when stencil is empty.
void EBQuadCFInterp::operator= | ( | const EBQuadCFInterp & | fabin | ) | [inline, private] |
References MayDay::Error().
EBISLayout EBQuadCFInterp::m_ebislCoar [protected] |
EBISLayout EBQuadCFInterp::m_ebislCoarsenedFine [protected] |
EBISLayout EBQuadCFInterp::m_ebislFine [protected] |
DisjointBoxLayout EBQuadCFInterp::m_gridsCoar [protected] |
DisjointBoxLayout EBQuadCFInterp::m_gridsFine [protected] |
ProblemDomain EBQuadCFInterp::m_domainFine [protected] |
Reimplemented from QuadCFInterp.
ProblemDomain EBQuadCFInterp::m_domainCoar [protected] |
bool EBQuadCFInterp::m_isDefined [protected] |
int EBQuadCFInterp::m_nComp [protected] |
Reimplemented from QuadCFInterp.
int EBQuadCFInterp::m_refRat [protected] |
LevelData<EBCellFAB> EBQuadCFInterp::m_ebBufferCoarsenedFine [protected] |
LayoutData<VoFIterator> EBQuadCFInterp::m_vofItEBCFLo[SpaceDim] [protected] |
LayoutData<VoFIterator> EBQuadCFInterp::m_vofItEBCFHi[SpaceDim] [protected] |
LayoutData<VoFIterator> EBQuadCFInterp::m_vofItCorners [protected] |
LayoutData<VoFIterator> EBQuadCFInterp::m_vofItEdges [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<IntVectSet> EBQuadCFInterp::m_ebcfivsLo[SpaceDim] [protected] |
LayoutData<IntVectSet> EBQuadCFInterp::m_ebcfivsHi[SpaceDim] [protected] |
LayoutData<BaseIVFAB<VoFStencil> > EBQuadCFInterp::m_stencilCorners [protected] |
LayoutData<BaseIVFAB<VoFStencil> > EBQuadCFInterp::m_stencilEdges [protected] |
CornerCopier EBQuadCFInterp::m_cornerCopier [protected] |
bool EBQuadCFInterp::m_doEBCFCrossing [protected] |