Chombo + EB
3.0
|
EBFluxRegister-A class to encapsulate a levels worth of flux registers. More...
#include <EBFluxRegister.H>
Public Member Functions | |
EBFluxRegister () | |
EBFluxRegister (const DisjointBoxLayout &a_dblFine, const DisjointBoxLayout &a_dblCoar, const EBISLayout &a_ebislFine, const EBISLayout &a_ebislCoar, const Box &a_domainCoar, const int &a_nref, const int &a_nvar, const EBIndexSpace *ebisPtr) | |
virtual | ~EBFluxRegister () |
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 EBIndexSpace *ebisPtr) |
void | incrementCoarseRegular (const EBFaceFAB &a_coarseFlux, const Real &a_scale, const DataIndex &a_coarseDataIndex, const Interval &a_variables, const int &a_dir) |
void | incrementCoarse (const EBFaceFAB &a_coarseFlux, const Real &a_scale, const DataIndex &a_coarseDataIndex, const Interval &a_varSrc, const Interval &a_varDst, const int &a_dir) |
void | incrementCoarseIrregular (const BaseIFFAB< Real > &a_coarseFlux, const Real &a_scale, const DataIndex &a_coarseDataIndex, const Interval &a_variables, const int &a_dir) |
void | incrementCoarseIrregular (const EBFaceFAB &a_coarFlux, const Real &a_scale, const DataIndex &a_coarDatInd, const Interval &a_variables, const int &a_dir) |
void | incrementFineRegular (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 | incrementFine (const EBFaceFAB &a_fineFlux, const Real &a_scale, const DataIndex &a_fineDataIndex, const Interval &a_varSrc, const Interval &a_varDst, const int &a_dir) |
void | incrementFineIrregular (const BaseIFFAB< Real > &a_fineFlux, const Real &a_scale, const DataIndex &a_fineDataIndex, const Interval &a_variables, const int &a_dir, const Side::LoHiSide &a_sd) |
void | incrementFineIrregular (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 | incrementRedistRegister (EBCoarToFineRedist &a_register, const Interval &a_variables, const Real &a_scale) |
void | incrementRedistRegister (EBCoarToCoarRedist &a_register, const Interval &a_variables, const Real &a_scale) |
bool | isDefined () const |
Public Member Functions inherited from EBFastFR | |
EBFastFR () | |
EBFastFR (const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoar, const int &a_nref, const int &a_nvar) | |
virtual | ~EBFastFR () |
virtual void | define (const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoar, const int &a_nref, const int &a_nvar) |
virtual void | setToZero () |
virtual 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) |
virtual 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 | compareFineSparse (const EBFaceFAB &a_fluxOld, const EBFaceFAB &a_fluxNew, const DataIndex &a_fineDatInd, const int &a_dir, const Side::LoHiSide &a_sd) |
virtual void | incrementFineSparse (const EBFaceFAB &a_fineFlux, const Real &a_scale, const DataIndex &a_fineDatInd, const Interval &a_variables, const int &a_dir, const Side::LoHiSide &a_sd, bool a_doingFineRegular) |
to support baseiffab approach More... | |
virtual void | reflux (LevelData< EBCellFAB > &a_uCoarse, const Interval &a_variables, const Real &a_scale, bool a_multByKappaOneMinusKappa=false) |
virtual void | reflux (LevelData< EBCellFAB > &a_uCoarse, const Interval &a_solutionvariables, const Interval &a_fluxvariables, const Real &a_scale, bool a_multByKappaOneMinusKappa=false) |
void | incrementDensityArray (LevelData< EBCellFAB > &a_coarMass, const Interval &a_variables, const Real &a_scale) |
bool | isDefined () const |
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 | incrementFineRegul (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 | incrementCoarRegul (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) |
bool | hasEBCF () const |
void | clear () |
undefines object More... | |
Vector< VoFIterator > & | getVoFItCoar (const DataIndex &a_dit, const int &a_idir, const Side::LoHiSide &a_sd) |
VoFIterator & | getVoFItCoFi (const DataIndex &a_dit, const int &a_idir, const Side::LoHiSide &a_sd) |
const EBLevelGrid & | getEBLGCoFi () const |
Private Member Functions | |
bool | copyBIFFToEBFF (EBFaceFAB &a_dst, const BaseIFFAB< Real > &a_src, const Box &a_box, const EBISBox &a_ebisBox) |
void | operator= (const EBFluxRegister &) |
EBFluxRegister (const EBFluxRegister &) | |
EBFluxRegister-A class to encapsulate a levels worth of flux registers.
A EBFluxRegister handles all the data choreography necessary to create a levels worth of flux registers.
|
inline |
Default constructor. Leaves object undefined.
References define(), and ~EBFluxRegister().
EBFluxRegister::EBFluxRegister | ( | const DisjointBoxLayout & | a_dblFine, |
const DisjointBoxLayout & | a_dblCoar, | ||
const EBISLayout & | a_ebislFine, | ||
const EBISLayout & | a_ebislCoar, | ||
const Box & | a_domainCoar, | ||
const int & | a_nref, | ||
const int & | a_nvar, | ||
const EBIndexSpace * | ebisPtr | ||
) |
Full constructor. Calls the define function which creates a levels worth of flux registers.
|
virtual |
Referenced by EBFluxRegister().
|
inlineprivate |
References MayDay::Error().
void EBFluxRegister::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 EBIndexSpace * | ebisPtr | ||
) |
Full define function. Creates a levels worth of flux registers.
Referenced by EBFluxRegister().
|
inline |
increments the register with data from coarseFlux, multiplied by scale. Increment coarse buffer with the area-weighted sum of the fluxes on the faces. buf += -scale*sum(areaFrac*flux) CoarseFlux must contain the coarse fluxes in the dir direction for the grid m_coarseLayout[coarseDataIndex].
References EBFastFR::incrementCoarRegul(), and SideIterator::ok().
|
inline |
References CH_assert, EBFastFR::incrementCoarseBoth(), incrementCoarseIrregular(), and SideIterator::ok().
void EBFluxRegister::incrementCoarseIrregular | ( | const BaseIFFAB< Real > & | a_coarseFlux, |
const Real & | a_scale, | ||
const DataIndex & | a_coarseDataIndex, | ||
const Interval & | a_variables, | ||
const int & | a_dir | ||
) |
increments the register with data from coarseFlux, multiplied by scale. Increment coarse buffer with the area-weighted sum of the fluxes on the faces. buf += -scale*sum(areaFrac*flux) CoarseFlux must contain the coarse fluxes in the dir direction for the grid m_coarseLayout[coarseDataIndex].
Referenced by incrementCoarse().
|
inline |
For when you have an EBFaceFAB lying around instead of a BaseIFFAB
References EBFastFR::incrementCoarIrreg(), and SideIterator::ok().
|
inline |
increments the register with data from fineFlux, multiplied by scale. fineFlux must contain the coarse fluxes in the dir direction for the grid m_fineLayout[fineDataIndex]. This operation is local.
References EBFastFR::incrementFineRegul().
|
inline |
References CH_assert, EBFastFR::incrementFineBoth(), incrementFineIrregular(), and SideIterator::ok().
void EBFluxRegister::incrementFineIrregular | ( | const BaseIFFAB< Real > & | a_fineFlux, |
const Real & | a_scale, | ||
const DataIndex & | a_fineDataIndex, | ||
const Interval & | a_variables, | ||
const int & | a_dir, | ||
const Side::LoHiSide & | a_sd | ||
) |
increments the register with data from fineFlux, multiplied by scale. fineFlux must contain the coarse fluxes in the dir direction for the grid m_fineLayout[fineDataIndex]. This operation is local.
Referenced by incrementFine().
|
inline |
For when you have a EBFaceFAB lying around instead of a BaseIFFAB
References copyBIFFToEBFF(), EBFastFR::incrementFineIrreg(), incrementRedistRegister(), and isDefined().
void EBFluxRegister::incrementRedistRegister | ( | EBCoarToFineRedist & | a_register, |
const Interval & | a_variables, | ||
const Real & | a_scale | ||
) |
Increments redistribution register with left-over mass from reflux divergence.
Referenced by incrementFineIrregular().
void EBFluxRegister::incrementRedistRegister | ( | EBCoarToCoarRedist & | a_register, |
const Interval & | a_variables, | ||
const Real & | a_scale | ||
) |
Increments redistribution register with left-over mass from reflux divergence.
bool EBFluxRegister::isDefined | ( | ) | const |
Referenced by incrementFineIrregular().
|
private |
Referenced by incrementFineIrregular().
|
inlineprivate |
References MayDay::Error().