Chombo + EB  3.0
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | List of all members
EBLevelGodunov Class Reference

Level Godunov. More...

#include <EBLevelGodunov.H>

Public Member Functions

 EBLevelGodunov ()
 Default constructor. More...
 
 ~EBLevelGodunov ()
 Destructor. More...
 
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)
 Actual constructor. More...
 
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. More...
 
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. More...
 
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< IntVectSetm_irregSetsSmall
 
LayoutData< IntVectSetm_irregSetsGrown [SpaceDim]
 
LevelData< BaseIFFAB< Real > > m_fluxInterpolants [SpaceDim]
 
LevelData< BaseIVFAB< Real > > m_nonConsDivergence
 
LevelData< BaseIVFAB< Real > > m_ebIrregFaceFlux
 
LayoutData< IntVectSetm_cfIVS
 
bool m_hasCoarser
 
bool m_hasFiner
 
DisjointBoxLayout m_thisGrids
 
DisjointBoxLayout m_coarGrids
 
EBISLayout m_thisEBISL
 
EBISLayout m_coarEBISL
 
bool m_isDefined
 
EBPatchGodunovm_ebPatchGodunov
 
RealVect m_dx
 
ProblemDomain m_domain
 
int m_refRatCrse
 
int m_nCons
 
int m_nFlux
 
int m_nGhost
 
EBPWLFillPatch m_patcher
 
bool m_useMassRedist
 
EBLevelRedist m_ebLevelRedist
 
bool m_doSmushing
 
bool m_doRZCoords
 
bool m_hasSourceTerm
 
LevelData< EBCellFABm_flattening
 

Static Protected Attributes

static int s_timestep
 

Private Member Functions

void operator= (const EBLevelGodunov &a_input)
 
 EBLevelGodunov (const EBLevelGodunov &a_input)
 

Detailed Description

Level Godunov.

Constructor & Destructor Documentation

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)
inlineprivate

References MayDay::Error().

Member Function Documentation

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 
)

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.

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 
)
Real EBLevelGodunov::getMaxWaveSpeed ( const LevelData< EBCellFAB > &  a_state)

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)
inlineprivate

References MayDay::Error().

Member Data Documentation

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
EBPatchGodunov* EBLevelGodunov::m_ebPatchGodunov
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
EBPWLFillPatch EBLevelGodunov::m_patcher
protected
bool EBLevelGodunov::m_useMassRedist
protected
EBLevelRedist EBLevelGodunov::m_ebLevelRedist
protected
int EBLevelGodunov::s_timestep
staticprotected
bool EBLevelGodunov::m_doSmushing
protected
bool EBLevelGodunov::m_doRZCoords
protected
bool EBLevelGodunov::m_hasSourceTerm
protected
LevelData<EBCellFAB> EBLevelGodunov::m_flattening
protected

The documentation for this class was generated from the following file: