EBLevelGodunov Class Reference

#include <EBLevelGodunov.H>

List of all members.


Detailed Description

Level Godunov.

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< 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
LayoutData< EBPatchGodunov * > m_ebPatchGodunov
EBPatchGodunovm_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< EBCellFABm_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)

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  )  [inline, private]

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

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  )  [inline, private]

References MayDay::Error().


Member Data Documentation

bool EBLevelGodunov::m_hasCoarser [protected]

bool EBLevelGodunov::m_hasFiner [protected]

bool EBLevelGodunov::m_isDefined [protected]

int EBLevelGodunov::m_nCons [protected]

int EBLevelGodunov::m_nFlux [protected]

int EBLevelGodunov::m_nGhost [protected]

int EBLevelGodunov::s_timestep [static, protected]

bool EBLevelGodunov::m_doSmushing [protected]

bool EBLevelGodunov::m_doRZCoords [protected]


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

Generated on Fri Apr 5 04:25:02 2019 for Chombo + EB by  doxygen 1.5.5