#include <EBFastFR.H>
A EBFastFR handles all the data choreography necessary to create a levels worth of flux registers. This only does the elliptic flux register stuff for now (no interacting with redistribution, no RZ, no regular and regular separate).
Public Member Functions | |
EBFastFR () | |
EBFastFR (const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoar, const int &a_nref, const int &a_nvar) | |
~EBFastFR () | |
void | define (const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoar, const int &a_nref, const int &a_nvar) |
void | setToZero () |
void | incrementCoarseBoth (const EBFaceFAB &a_coarseFlux, const Real &a_scale, const DataIndex &a_coarseDataIndex, const Interval &a_variables, const int &a_dir, const Side::LoHiSide &a_sd) |
void | incrementFineBoth (const EBFaceFAB &a_fineFlux, const Real &a_scale, const DataIndex &a_fineDataIndex, const Interval &a_variables, const int &a_dir, const Side::LoHiSide &a_sd) |
void | reflux (LevelData< EBCellFAB > &a_uCoarse, const Interval &a_variables, const Real &a_scale) |
void | incrementDensityArray (LevelData< EBCellFAB > &a_coarMass, const Interval &a_variables, const Real &a_scale) |
bool | isDefined () const |
Protected Member Functions | |
void | incrementFineIrreg (const EBFaceFAB &a_fineFlux, const Real &a_newScale, const DataIndex &a_fineDatInd, const Interval &a_variables, const int &a_dir, const Side::LoHiSide &a_sd) |
void | incrementCoarIrreg (const EBFaceFAB &a_coarFlux, const Real &a_scale, const DataIndex &a_coarDatInd, const Interval &a_variables, const int &a_dir, const Side::LoHiSide &a_sd) |
void | irregSetToZero () |
void | cacheOldSolution (const LevelData< EBCellFAB > &a_uCoar, const Interval &a_variables) |
void | restoreOldSolution (LevelData< EBCellFAB > &a_uCoar, const Interval &a_variables) |
void | irregReflux (LevelData< EBCellFAB > &a_uCoar, const Interval &a_variables, const Real &a_scale) |
Static Protected Member Functions | |
static int | index (int a_dir, Side::LoHiSide a_side) |
Protected Attributes | |
LevelFluxRegister | m_levelFluxReg |
bool | m_isDefined |
EBLevelGrid | m_eblgFine |
EBLevelGrid | m_eblgCoar |
int | m_refRat |
int | m_nComp |
EBISLayout | m_ebislBufCoar [2 *SpaceDim] |
EBISLayout | m_ebislBufFine [2 *SpaceDim] |
LayoutData< Vector< DataIndex > > | m_coarIndexMap [SpaceDim *2] |
LayoutData< bool > | m_noEBCFine [SpaceDim *2] |
LayoutData< bool > | m_noEBCCoar [SpaceDim *2] |
DisjointBoxLayout | m_bufGridsFine [SpaceDim *2] |
DisjointBoxLayout | m_bufGridsCoar [SpaceDim *2] |
LevelData< BaseIVFAB< Real > > | m_regsCoar [SpaceDim *2] |
LevelData< BaseIVFAB< Real > > | m_regsFine [SpaceDim *2] |
LayoutData< IntVectSet > | m_cfivsFine [SpaceDim *2] |
LayoutData< IntVectSet > | m_cfivsCoar [SpaceDim *2] |
LayoutData< VoFIterator > | m_vofitBufCoar [SpaceDim *2] |
LayoutData< VoFIterator > | m_vofitBufFine [SpaceDim *2] |
LayoutData< VoFIterator > | m_vofitCoar |
LevelData< BaseIVFAB< Real > > | m_scratchc [SpaceDim *2] |
LayoutData< BaseIVFAB< Real > > | m_saveoldc |
Real | m_nrefdmo |
bool | m_hasEBCF |
Private Member Functions | |
void | operator= (const EBFastFR &out) |
EBFastFR (const EBFastFR &out) |
EBFastFR::EBFastFR | ( | ) |
Default constructor. Leaves object undefined.
EBFastFR::EBFastFR | ( | const EBLevelGrid & | a_eblgFine, | |
const EBLevelGrid & | a_eblgCoar, | |||
const int & | a_nref, | |||
const int & | a_nvar | |||
) |
Full constructor. Calls the define function which creates a levels worth of flux registers.
EBFastFR::~EBFastFR | ( | ) |
EBFastFR::EBFastFR | ( | const EBFastFR & | out | ) | [inline, private] |
References MayDay::Error().
void EBFastFR::define | ( | const EBLevelGrid & | a_eblgFine, | |
const EBLevelGrid & | a_eblgCoar, | |||
const int & | a_nref, | |||
const int & | a_nvar | |||
) |
Full define function. Creates a levels worth of flux registers.
void EBFastFR::setToZero | ( | ) |
Initialize values of registers to zero.
void EBFastFR::incrementCoarseBoth | ( | const EBFaceFAB & | a_coarseFlux, | |
const Real & | a_scale, | |||
const DataIndex & | a_coarseDataIndex, | |||
const Interval & | a_variables, | |||
const int & | a_dir, | |||
const Side::LoHiSide & | a_sd | |||
) |
void EBFastFR::incrementFineBoth | ( | const EBFaceFAB & | a_fineFlux, | |
const Real & | a_scale, | |||
const DataIndex & | a_fineDataIndex, | |||
const Interval & | a_variables, | |||
const int & | a_dir, | |||
const Side::LoHiSide & | a_sd | |||
) |
void EBFastFR::reflux | ( | LevelData< EBCellFAB > & | a_uCoarse, | |
const Interval & | a_variables, | |||
const Real & | a_scale | |||
) |
void EBFastFR::incrementDensityArray | ( | LevelData< EBCellFAB > & | a_coarMass, | |
const Interval & | a_variables, | |||
const Real & | a_scale | |||
) |
Increments mass array with left-over mass from reflux divergence. this is to test this pig. Ordinarily this mass would go into redistribution. this is used in the test suite to check whether a constant flux refluxed and then unrefluxed (this function) ends up with a constant solution. Correction at each cell = (1-kappa)refluxCorrection.
bool EBFastFR::isDefined | ( | ) | const |
static int EBFastFR::index | ( | int | a_dir, | |
Side::LoHiSide | a_side | |||
) | [static, protected] |
void EBFastFR::incrementFineIrreg | ( | const EBFaceFAB & | a_fineFlux, | |
const Real & | a_newScale, | |||
const DataIndex & | a_fineDatInd, | |||
const Interval & | a_variables, | |||
const int & | a_dir, | |||
const Side::LoHiSide & | a_sd | |||
) | [protected] |
void EBFastFR::incrementCoarIrreg | ( | const EBFaceFAB & | a_coarFlux, | |
const Real & | a_scale, | |||
const DataIndex & | a_coarDatInd, | |||
const Interval & | a_variables, | |||
const int & | a_dir, | |||
const Side::LoHiSide & | a_sd | |||
) | [protected] |
void EBFastFR::irregSetToZero | ( | ) | [protected] |
void EBFastFR::cacheOldSolution | ( | const LevelData< EBCellFAB > & | a_uCoar, | |
const Interval & | a_variables | |||
) | [protected] |
void EBFastFR::restoreOldSolution | ( | LevelData< EBCellFAB > & | a_uCoar, | |
const Interval & | a_variables | |||
) | [protected] |
void EBFastFR::irregReflux | ( | LevelData< EBCellFAB > & | a_uCoar, | |
const Interval & | a_variables, | |||
const Real & | a_scale | |||
) | [protected] |
void EBFastFR::operator= | ( | const EBFastFR & | out | ) | [inline, private] |
References MayDay::Error().
LevelFluxRegister EBFastFR::m_levelFluxReg [protected] |
bool EBFastFR::m_isDefined [protected] |
EBLevelGrid EBFastFR::m_eblgFine [protected] |
EBLevelGrid EBFastFR::m_eblgCoar [protected] |
int EBFastFR::m_refRat [protected] |
int EBFastFR::m_nComp [protected] |
EBISLayout EBFastFR::m_ebislBufCoar[2 *SpaceDim] [protected] |
EBISLayout EBFastFR::m_ebislBufFine[2 *SpaceDim] [protected] |
LayoutData<Vector<DataIndex> > EBFastFR::m_coarIndexMap[SpaceDim *2] [protected] |
LayoutData<bool> EBFastFR::m_noEBCFine[SpaceDim *2] [protected] |
LayoutData<bool> EBFastFR::m_noEBCCoar[SpaceDim *2] [protected] |
DisjointBoxLayout EBFastFR::m_bufGridsFine[SpaceDim *2] [protected] |
DisjointBoxLayout EBFastFR::m_bufGridsCoar[SpaceDim *2] [protected] |
LevelData<BaseIVFAB<Real> > EBFastFR::m_regsCoar[SpaceDim *2] [protected] |
LevelData<BaseIVFAB<Real> > EBFastFR::m_regsFine[SpaceDim *2] [protected] |
LayoutData<IntVectSet> EBFastFR::m_cfivsFine[SpaceDim *2] [protected] |
LayoutData<IntVectSet> EBFastFR::m_cfivsCoar[SpaceDim *2] [protected] |
LayoutData<VoFIterator> EBFastFR::m_vofitBufCoar[SpaceDim *2] [protected] |
LayoutData<VoFIterator> EBFastFR::m_vofitBufFine[SpaceDim *2] [protected] |
LayoutData<VoFIterator> EBFastFR::m_vofitCoar [protected] |
LevelData<BaseIVFAB<Real> > EBFastFR::m_scratchc[SpaceDim *2] [protected] |
LayoutData<BaseIVFAB<Real> > EBFastFR::m_saveoldc [protected] |
Real EBFastFR::m_nrefdmo [protected] |
bool EBFastFR::m_hasEBCF [protected] |