#include <EBLevelGodunov.H>
Public Member Functions | |
EBLevelGodunov () | |
Default constructor. | |
~EBLevelGodunov () | |
Destructor. | |
void | define (const DisjointBoxLayout &a_thisDBL, const DisjointBoxLayout &a_coarDBL, const EBISLayout &a_thisEBISL, const EBISLayout &a_coarEBISL, const ProblemDomain &a_DProblem, const int &a_nRefine, const RealVect &a_dx, const bool &a_useMassRedist, const bool &a_doSmushing, const bool &a_doRZCoords, const bool &a_hasSourceTerm, const EBPatchGodunovFactory *const a_patchGodunov, const bool &a_hasCoarser, const bool &a_hasFiner, const IntVect &a_ivGhost, const bool &a_forceNoEBCF=false) |
Actual constructor. | |
void | floorConserved (LevelData< EBCellFAB > &a_consState, Real a_time, Real a_dt) |
Real | step (LevelData< EBCellFAB > &a_consState, LevelData< BaseIVFAB< Real > > &a_massDiff, EBFluxRegister &a_fineFluxRegister, EBFluxRegister &a_coarFluxRegister, const LevelData< EBCellFAB > &a_consStateCoarseOld, const LevelData< EBCellFAB > &a_consStateCoarseNew, const Real &a_time, const Real &a_TCold, const Real &a_TCNew, const Real &a_dt) |
Take one timestep for this grid level. | |
void | getDrhoDtOverRho (LevelData< EBCellFAB > &a_drhoDt, const LevelData< EBCellFAB > &a_rhoNew, const LevelData< EBCellFAB > &a_rhoOld, const Real &a_dt) |
Real | getMaxWaveSpeed (const LevelData< EBCellFAB > &a_state) |
Get maximum wave speed. | |
bool | isDefined () const |
Protected Member Functions | |
void | fillConsState (LevelData< EBCellFAB > &a_consState, const LevelData< EBCellFAB > &a_consStateCoarseOld, const LevelData< EBCellFAB > &a_consStateCoarseNew, const Real &a_time, const Real &a_coarTimeOld, const Real &a_coarTimeNew) |
void | computeFlattening (Real a_time, Real a_dt, LevelData< EBCellFAB > &a_consState) |
void | doRegularUpdate (EBFluxRegister &a_fineFluxRegister, EBFluxRegister &a_coarFluxRegister, Real a_time, Real a_dt, LevelData< EBCellFAB > &a_consState) |
Real | doIrregularUpdate (EBFluxRegister &a_fineFluxRegister, EBFluxRegister &a_coarFluxRegister, LevelData< BaseIVFAB< Real > > &a_massDiff, Real a_time, Real a_dt, LevelData< EBCellFAB > &a_consState) |
Protected Attributes | |
LayoutData< IntVectSet > | m_irregSetsSmall |
LayoutData< IntVectSet > | m_irregSetsGrown [SpaceDim] |
LevelData< BaseIFFAB< Real > > | m_fluxInterpolants [SpaceDim] |
LevelData< BaseIVFAB< Real > > | m_nonConsDivergence |
LevelData< BaseIVFAB< Real > > | m_ebIrregFaceFlux |
LayoutData< IntVectSet > | m_cfIVS |
bool | m_hasCoarser |
bool | m_hasFiner |
DisjointBoxLayout | m_thisGrids |
DisjointBoxLayout | m_coarGrids |
EBISLayout | m_thisEBISL |
EBISLayout | m_coarEBISL |
bool | m_isDefined |
LayoutData< EBPatchGodunov * > | m_ebPatchGodunov |
EBPatchGodunov * | m_ebPatchGodunovSP |
RealVect | m_dx |
ProblemDomain | m_domain |
int | m_refRatCrse |
int | m_nCons |
int | m_nFlux |
int | m_nGhost |
AggEBPWLFillPatch | m_patcher |
bool | m_useMassRedist |
EBLevelRedist | m_ebLevelRedist |
bool | m_doSmushing |
bool | m_doRZCoords |
bool | m_hasSourceTerm |
LevelData< EBCellFAB > | m_flattening |
bool | m_forceNoEBCF |
IntVect | m_ivGhost |
Static Protected Attributes | |
static int | s_timestep |
Private Member Functions | |
void | operator= (const EBLevelGodunov &a_input) |
EBLevelGodunov (const EBLevelGodunov &a_input) |
EBLevelGodunov::EBLevelGodunov | ( | ) |
Default constructor.
Object requires define(..) to be called before all other functions.
EBLevelGodunov::~EBLevelGodunov | ( | ) |
Destructor.
destroys all objects created by define(..). Passed in data references of define(..) are left alone.
EBLevelGodunov::EBLevelGodunov | ( | const EBLevelGodunov & | a_input | ) | [inline, private] |
References MayDay::Error().
void EBLevelGodunov::define | ( | const DisjointBoxLayout & | a_thisDBL, | |
const DisjointBoxLayout & | a_coarDBL, | |||
const EBISLayout & | a_thisEBISL, | |||
const EBISLayout & | a_coarEBISL, | |||
const ProblemDomain & | a_DProblem, | |||
const int & | a_nRefine, | |||
const RealVect & | a_dx, | |||
const bool & | a_useMassRedist, | |||
const bool & | a_doSmushing, | |||
const bool & | a_doRZCoords, | |||
const bool & | a_hasSourceTerm, | |||
const EBPatchGodunovFactory *const | a_patchGodunov, | |||
const bool & | a_hasCoarser, | |||
const bool & | a_hasFiner, | |||
const IntVect & | a_ivGhost, | |||
const bool & | a_forceNoEBCF = false | |||
) |
Actual constructor.
For the coarsest level, an empty DisjointBoxLayout is passed in for coaserDisjointBoxLayout. Inside the routine, we cast away const-ness on the data members for the assignment. The arguments passed in are maintained const. (coding standards). a_nRefine is the refinement ratio between this level and the next coarser level. a_numGhosts is the number of ghost cells in each direction. forceNoEBCF = true promises that the embedded boundary will not cross the coarse-fine interface. This will save you a lot of compute time if you are certain you are tagging all irregulkar cells. ivghost is the number of ghost cells being sent in on the data
void EBLevelGodunov::floorConserved | ( | LevelData< EBCellFAB > & | a_consState, | |
Real | a_time, | |||
Real | a_dt | |||
) |
Real EBLevelGodunov::step | ( | LevelData< EBCellFAB > & | a_consState, | |
LevelData< BaseIVFAB< Real > > & | a_massDiff, | |||
EBFluxRegister & | a_fineFluxRegister, | |||
EBFluxRegister & | a_coarFluxRegister, | |||
const LevelData< EBCellFAB > & | a_consStateCoarseOld, | |||
const LevelData< EBCellFAB > & | a_consStateCoarseNew, | |||
const Real & | a_time, | |||
const Real & | a_TCold, | |||
const Real & | a_TCNew, | |||
const Real & | a_dt | |||
) |
Take one timestep for this grid level.
For the coarsest level, UcoarseOld and UCoarseNew are empty LevelData<EBCellFAB> objects. Also, either UCoarseOld or UCoarseNew might be empty to indicate that t(nf) = t(nc) the one grid is at the current time and interpolation is not required for boundary condition generation. U must be defined on the same DisjointBoxLayouts as were used in define(...) Coarse flux register is flux register with the coarse level. Fine flux register is the flux register with the fine level. To the finer level FR, this level is the coarse level. To the coarser level FR, this level is the fine level.
void EBLevelGodunov::getDrhoDtOverRho | ( | LevelData< EBCellFAB > & | a_drhoDt, | |
const LevelData< EBCellFAB > & | a_rhoNew, | |||
const LevelData< EBCellFAB > & | a_rhoOld, | |||
const Real & | a_dt | |||
) |
Get maximum wave speed.
bool EBLevelGodunov::isDefined | ( | ) | const |
void EBLevelGodunov::fillConsState | ( | LevelData< EBCellFAB > & | a_consState, | |
const LevelData< EBCellFAB > & | a_consStateCoarseOld, | |||
const LevelData< EBCellFAB > & | a_consStateCoarseNew, | |||
const Real & | a_time, | |||
const Real & | a_coarTimeOld, | |||
const Real & | a_coarTimeNew | |||
) | [protected] |
void EBLevelGodunov::computeFlattening | ( | Real | a_time, | |
Real | a_dt, | |||
LevelData< EBCellFAB > & | a_consState | |||
) | [protected] |
void EBLevelGodunov::doRegularUpdate | ( | EBFluxRegister & | a_fineFluxRegister, | |
EBFluxRegister & | a_coarFluxRegister, | |||
Real | a_time, | |||
Real | a_dt, | |||
LevelData< EBCellFAB > & | a_consState | |||
) | [protected] |
Real EBLevelGodunov::doIrregularUpdate | ( | EBFluxRegister & | a_fineFluxRegister, | |
EBFluxRegister & | a_coarFluxRegister, | |||
LevelData< BaseIVFAB< Real > > & | a_massDiff, | |||
Real | a_time, | |||
Real | a_dt, | |||
LevelData< EBCellFAB > & | a_consState | |||
) | [protected] |
void EBLevelGodunov::operator= | ( | const EBLevelGodunov & | a_input | ) | [inline, private] |
References MayDay::Error().
LayoutData<IntVectSet> EBLevelGodunov::m_irregSetsSmall [protected] |
LayoutData<IntVectSet> EBLevelGodunov::m_irregSetsGrown[SpaceDim] [protected] |
LevelData<BaseIFFAB<Real> > EBLevelGodunov::m_fluxInterpolants[SpaceDim] [protected] |
LevelData<BaseIVFAB<Real> > EBLevelGodunov::m_nonConsDivergence [protected] |
LevelData<BaseIVFAB<Real> > EBLevelGodunov::m_ebIrregFaceFlux [protected] |
LayoutData<IntVectSet> EBLevelGodunov::m_cfIVS [protected] |
bool EBLevelGodunov::m_hasCoarser [protected] |
bool EBLevelGodunov::m_hasFiner [protected] |
DisjointBoxLayout EBLevelGodunov::m_thisGrids [protected] |
DisjointBoxLayout EBLevelGodunov::m_coarGrids [protected] |
EBISLayout EBLevelGodunov::m_thisEBISL [protected] |
EBISLayout EBLevelGodunov::m_coarEBISL [protected] |
bool EBLevelGodunov::m_isDefined [protected] |
LayoutData<EBPatchGodunov*> EBLevelGodunov::m_ebPatchGodunov [protected] |
EBPatchGodunov* EBLevelGodunov::m_ebPatchGodunovSP [protected] |
RealVect EBLevelGodunov::m_dx [protected] |
ProblemDomain EBLevelGodunov::m_domain [protected] |
int EBLevelGodunov::m_refRatCrse [protected] |
int EBLevelGodunov::m_nCons [protected] |
int EBLevelGodunov::m_nFlux [protected] |
int EBLevelGodunov::m_nGhost [protected] |
AggEBPWLFillPatch EBLevelGodunov::m_patcher [protected] |
bool EBLevelGodunov::m_useMassRedist [protected] |
EBLevelRedist EBLevelGodunov::m_ebLevelRedist [protected] |
int EBLevelGodunov::s_timestep [static, protected] |
bool EBLevelGodunov::m_doSmushing [protected] |
bool EBLevelGodunov::m_doRZCoords [protected] |
bool EBLevelGodunov::m_hasSourceTerm [protected] |
LevelData<EBCellFAB> EBLevelGodunov::m_flattening [protected] |
bool EBLevelGodunov::m_forceNoEBCF [protected] |
IntVect EBLevelGodunov::m_ivGhost [protected] |