EBPatchGodunov Class Reference

#include <EBPatchGodunov.H>

Inheritance diagram for EBPatchGodunov:

Inheritance graph
[legend]
Collaboration diagram for EBPatchGodunov:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 EBPatchGodunov ()
void incrementWithSource (EBCellFAB &a_primState, const EBCellFAB &a_source, const Real &a_scale, const Box &a_box)
 non-virtual stuff
virtual void extrapToCoveredFaces (BaseIVFAB< Real > &a_extendedPrim, const EBCellFAB &a_primMinu, const EBCellFAB &a_primPlus, const EBCellFAB &a_primState, const Vector< VolIndex > &a_coveredFaces, const int &a_faceDir, const Side::LoHiSide &a_sd, const Box &a_box)
virtual void pointExtrapToCovered2D (Vector< Real > &a_extrapVal, const EBCellFAB &a_primMinu, const EBCellFAB &a_primPlus, const EBCellFAB &a_primState, const int &a_faceDir, const VolIndex &a_vof, const RealVect &a_normal, const Side::LoHiSide &a_sd, const int &a_numPrim)
virtual void pointExtrapToCovered3D (Vector< Real > &a_extrapVal, const EBCellFAB &a_primMinu, const EBCellFAB &a_primPlus, const EBCellFAB &a_primState, const int &a_faceDir, const VolIndex &a_vof, const RealVect &a_normal, const Side::LoHiSide &a_sd, const int &a_numPrim)
void computeCoveredFaces (Vector< VolIndex > &a_coveredFace, IntVectSet &a_coveredIVS, IntVectSet &a_irregIVS, const int &a_idir, const Side::LoHiSide &a_sd, const Box &a_region)
const EBPhysIBCgetEBPhysIBC () const
Real pointLimiter (const Real &a_deltaW1, const Real &a_deltaW2)
void setEBPhysIBC (const EBPhysIBCFactory &a_bc)
void setSlopeParameters (bool a_fourthOrderSlopes, bool a_flattening, bool a_useLimiting)
 Set parameters for slope computations.
void applyLimiter (EBCellFAB &a_slopePrim, const EBCellFAB &a_slopePrimLeft, const EBCellFAB &a_slopePrimRigh, const int &a_dir, const Box &a_box)
virtual void doSecondOrderSlopes (EBCellFAB &a_delta2W, EBCellFAB &a_deltaWL, EBCellFAB &a_deltaWR, EBCellFAB &a_deltaWC, const EBCellFAB &a_primState, const int &a_dir, const Box &a_box)
void doFourthOrderSlopes (EBCellFAB &a_delta4W, EBCellFAB &a_deltaWC, const EBCellFAB &a_delta2W, const EBCellFAB &a_deltaWL, const EBCellFAB &a_deltaWR, const EBCellFAB &a_primState, const int &a_dir, const Box &a_box)
void pointGetSlopes (Real &a_dql, Real &a_dqr, Real &a_dqc, bool &a_hasFacesLeft, bool &a_hasFacesRigh, const VolIndex &a_vof, const EBCellFAB &a_primState, const int &a_dir, const int &a_ivar, const bool &a_verbose)
void coveredExtrapSlopes (Real &a_dqc, const VolIndex &a_vof, const EBCellFAB &a_primState, const int &a_dir, const int &a_ivar)
void computeFluxes (EBFluxFAB &a_flux, BaseIVFAB< Real > a_coveredFluxLo[SpaceDim], BaseIVFAB< Real > a_coveredFluxHi[SpaceDim], Vector< VolIndex > a_coveredFaceLo[SpaceDim], Vector< VolIndex > a_coveredFaceHi[SpaceDim], EBCellFAB &a_primState, EBCellFAB a_slopesPrim[SpaceDim], EBCellFAB a_slopesSeco[SpaceDim], const EBCellFAB &a_flattening, const EBCellFAB &a_consState, const EBCellFAB &a_source, const Box &a_box, const DataIndex &a_dit, bool a_verbose)
virtual void extrapolatePrim2D (EBCellFAB a_primMinu[SpaceDim], EBCellFAB a_primPlus[SpaceDim], EBCellFAB &a_primState, EBCellFAB a_slopesPrim[SpaceDim], EBCellFAB a_slopesSeco[SpaceDim], const EBCellFAB &a_flattening, const EBCellFAB &a_consState, const EBCellFAB &a_source, const Box &a_box, const DataIndex &a_dit, bool a_verbose)
void extrapolatePrim3D (EBCellFAB a_primMinu[SpaceDim], EBCellFAB a_primPlus[SpaceDim], EBCellFAB &a_primState, EBCellFAB a_slopesPrim[SpaceDim], EBCellFAB a_slopesSeco[SpaceDim], const EBCellFAB &a_flattening, const EBCellFAB &a_consState, const EBCellFAB &a_source, const Box &a_box, const DataIndex &a_dit, bool a_verbose)
virtual void regularUpdate (EBCellFAB &a_consState, EBFluxFAB &a_flux, BaseIVFAB< Real > &a_ebIrregFlux, BaseIVFAB< Real > &a_nonConservativeDivergence, const EBCellFAB &a_flattening, const EBCellFAB &a_source, const Box &a_box, const IntVectSet &a_ivs, const DataIndex &a_dit, bool a_verbose)
virtual void regularDivergences (EBCellFAB &a_nonconsdiv, EBCellFAB &a_consState, EBFluxFAB &a_flux, BaseIVFAB< Real > &a_ebIrregFlux, BaseIVFAB< Real > &a_nonConservativeDivergence, const EBCellFAB &a_flattening, const EBCellFAB &a_source, const Box &a_box, const IntVectSet &a_ivs, const DataIndex &a_dit, bool a_verbose)
virtual void hybridDivergence (EBCellFAB &a_hybridDiv, EBCellFAB &a_consState, BaseIVFAB< Real > &a_massDiff, const BaseIFFAB< Real > a_centroidFlux[SpaceDim], const BaseIVFAB< Real > &a_ebIrregFlux, const BaseIVFAB< Real > &a_nonConservativeDivergence, const Box &a_box, const IntVectSet &a_ivs)
virtual void irregularUpdate (EBCellFAB &a_consState, Real &a_maxWaveSpeed, BaseIVFAB< Real > &a_massDiff, const BaseIFFAB< Real > a_centroidFlux[SpaceDim], const BaseIVFAB< Real > &a_ebIrregFlux, const BaseIVFAB< Real > &a_nonConservativeDivergence, const Box &a_box, const IntVectSet &a_ivs)
virtual void doNormalDerivativeExtr2D (EBCellFAB a_primMinu[SpaceDim], EBCellFAB a_primPlus[SpaceDim], EBFaceFAB a_fluxOne[SpaceDim], BaseIVFAB< Real > a_coveredFluxNormMinu[SpaceDim], BaseIVFAB< Real > a_coveredFluxNormPlus[SpaceDim], Vector< VolIndex > a_coveredFaceNormMinu[SpaceDim], Vector< VolIndex > a_coveredFaceNormPlus[SpaceDim], EBCellFAB a_slopesPrim[SpaceDim], EBCellFAB a_slopesSeco[SpaceDim], const EBCellFAB &a_flattening, const EBCellFAB &a_primState, const EBCellFAB &a_source, const DataIndex &a_dit, const Box &a_box)
void doNormalDerivativeExtr3D (EBCellFAB a_primMinu[SpaceDim], EBCellFAB a_primPlus[SpaceDim], EBFaceFAB a_fluxOne[SpaceDim], BaseIVFAB< Real > a_coveredFluxNormMinu[SpaceDim], BaseIVFAB< Real > a_coveredFluxNormPlus[SpaceDim], Vector< VolIndex > a_coveredFaceNormMinu[SpaceDim], Vector< VolIndex > a_coveredFaceNormPlus[SpaceDim], EBCellFAB a_slopesPrim[SpaceDim], EBCellFAB a_slopesSeco[SpaceDim], const EBCellFAB &a_flattening, const EBCellFAB &a_primState, const EBCellFAB &a_source, const DataIndex &a_dit, const Box &a_box)
virtual void finalExtrap2D (EBCellFAB a_primMinu[SpaceDim], EBCellFAB a_primPlus[SpaceDim], const BaseIVFAB< Real > a_coveredFluxNormMinu[SpaceDim], const BaseIVFAB< Real > a_coveredFluxNormPlus[SpaceDim], const Vector< VolIndex > a_coveredFaceNormMinu[SpaceDim], const Vector< VolIndex > a_coveredFaceNormPlus[SpaceDim], const EBFaceFAB a_fluxOne[SpaceDim], const EBCellFAB &a_primState, const EBCellFAB a_slopesPrim[SpaceDim], const EBCellFAB a_slopesSeco[SpaceDim], const Box &a_box)
void finalExtrap3D (EBCellFAB a_primMinu[SpaceDim], EBCellFAB a_primPlus[SpaceDim], const BaseIVFAB< Real > a_coveredFlux3DMinu[SpaceDim][SpaceDim], const BaseIVFAB< Real > a_coveredFlux3DPlus[SpaceDim][SpaceDim], const EBFaceFAB a_fluxTwoVec[SpaceDim][SpaceDim], const EBCellFAB &a_primState, const EBCellFAB a_slopesPrim[SpaceDim], const EBCellFAB a_slopesSeco[SpaceDim], const Box &a_box)
void do111coupling (EBFaceFAB a_fluxTwoVec[SpaceDim][SpaceDim], BaseIVFAB< Real > a_coveredFlux3DMinu[SpaceDim][SpaceDim], BaseIVFAB< Real > a_coveredFlux3DPlus[SpaceDim][SpaceDim], const EBCellFAB a_primMinu[SpaceDim], const EBCellFAB a_primPlus[SpaceDim], const BaseIVFAB< Real > a_coveredFluxNormMinu[SpaceDim], const BaseIVFAB< Real > a_coveredFluxNormPlus[SpaceDim], const Vector< VolIndex > a_coveredFaceNormMinu[SpaceDim], const Vector< VolIndex > a_coveredFaceNormPlus[SpaceDim], const EBFaceFAB a_fluxOne[SpaceDim], const EBCellFAB &a_primState, const EBCellFAB a_slopesPrim[SpaceDim], const EBCellFAB a_slopesSeco[SpaceDim], const DataIndex &a_dit, const Box &a_box)
void interpolateFluxToCentroids (BaseIFFAB< Real > a_centroidFlux[SpaceDim], const BaseIFFAB< Real > *const a_fluxInterpolant[SpaceDim], const IntVectSet &a_irregIVS)
virtual void finalUpdate (EBCellFAB &a_consState, BaseIVFAB< Real > &a_massDiff, const BaseIVFAB< Real > &a_nonConsDivF, const BaseIVFAB< Real > &a_conservDivF, const IntVectSet &a_ivs)
void getFaceDivergence (EBFluxFAB &a_openDivU, const EBCellFAB &a_primState, const EBCellFAB a_slopePrim[SpaceDim], const Box &a_box, const IntVectSet &a_ivsIrreg)
void artificialViscosity (bool a_useArtificialVisc)
void applyArtificialViscosity (EBFluxFAB &a_openFlux, BaseIVFAB< Real > a_coveredFluxMinu[SpaceDim], BaseIVFAB< Real > a_coveredFluxPlus[SpaceDim], const Vector< VolIndex > a_coveredFaceMinu[SpaceDim], const Vector< VolIndex > a_coveredFacePlus[SpaceDim], const EBCellFAB &a_consState, const EBFluxFAB &a_divVel, const Box &a_box, const IntVectSet &a_ivsIrreg)
Real bilinearFunc (const Real a_WVal[2][2], const Real &a_xd1, const Real &a_xd2)
Real maxFunction (const Real a_WVal[2][2], const Real &a_xd1, const Real &a_xd2)
void define (const ProblemDomain &a_domain, const RealVect &a_dx)
void define (const ProblemDomain &a_domain, const Real &a_dx)
 deprecated interface
virtual void setValidBox (const Box &a_validBox, const EBISBox &a_ebisBox, const IntVectSet &a_coarseFineIVS, const Real &a_time, const Real &a_dt)
void computeFlattening (EBCellFAB &a_flattening, const EBCellFAB &a_primState, const Box &a_box)
virtual void slope (EBCellFAB &a_slopePrim, EBCellFAB &a_slopeNLim, const EBCellFAB &a_primState, const EBCellFAB &a_flattening, const int &a_dir, const Box &a_box)
virtual void nonconservativeDivergence (EBCellFAB &a_divF, const EBFluxFAB &a_flux, const BaseIVFAB< Real > a_coveredFluxMinu[SpaceDim], const BaseIVFAB< Real > a_coveredFluxPlus[SpaceDim], const Vector< VolIndex > a_coveredFaceMinu[SpaceDim], const Vector< VolIndex > a_coveredFacePlus[SpaceDim], const Box &a_box)
 needs to be virtual because of RZ
virtual void updatePrim (EBCellFAB &a_primMinu, EBCellFAB &a_primPlus, const EBFaceFAB &a_flux, const BaseIVFAB< Real > &a_coveredFluxMinu, const BaseIVFAB< Real > &a_coveredFluxPlus, const Vector< VolIndex > &a_coveredFaceMinu, const Vector< VolIndex > &a_coveredFacePlus, const int &a_dir, const Box &a_box, const Real &a_scale)
 virtual in case you want to do something faster than go through constoprim
virtual void updateCons (EBCellFAB &a_consState, const EBFaceFAB &a_flux, const BaseIVFAB< Real > &a_coveredFluxMinu, const BaseIVFAB< Real > &a_coveredFluxPlus, const Vector< VolIndex > &a_coveredFaceMinu, const Vector< VolIndex > &a_coveredFacePlus, const int &a_dir, const Box &a_box, const Real &a_scale)
 virtual because RZ changes this function
virtual Interval velocityInterval () const =0
virtual void consUndividedDivergence (BaseIVFAB< Real > &a_divF, const BaseIFFAB< Real > a_centroidFlux[SpaceDim], const BaseIVFAB< Real > &a_ebIrregFlux, const IntVectSet &a_ivs)
 needs to be virtual because of RZ
virtual void computeEBIrregFlux (BaseIVFAB< Real > &a_ebIrregFlux, const EBCellFAB &a_primState, const EBCellFAB a_slopePrim[SpaceDim], const IntVectSet &a_irregIVS, const EBCellFAB &a_source)=0
virtual int pressureIndex () const =0
virtual int bulkModulusIndex () const =0
virtual ~EBPatchGodunov ()
virtual void setCoveredConsVals (EBCellFAB &a_consState)=0
virtual Real getMaxWaveSpeed (const EBCellFAB &a_consState, const Box &a_box)=0
virtual void floorConserved (EBCellFAB &a_consState, const Box &a_box)=0
virtual void floorPrimitives (EBCellFAB &a_primState, const Box &a_box)=0
virtual void floorConserved (BaseIVFAB< Real > &a_consState, const IntVectSet &a_ivs)=0
virtual void floorPrimitives (BaseIVFAB< Real > &a_primState, const IntVectSet &a_ivs)=0
virtual void getCoveredValuesPrim (Vector< Real > &a_covValues)=0
virtual void getCoveredValuesCons (Vector< Real > &a_covValues)=0
virtual int densityIndex () const =0
virtual int numPrimitives () const =0
virtual int numFluxes () const =0
virtual int numSlopes () const =0
virtual int numConserved () const =0
virtual Vector< string > stateNames ()=0
virtual Vector< string > primNames ()=0
virtual void normalPred (EBCellFAB &a_primLo, EBCellFAB &a_primHi, const EBCellFAB &a_primState, const EBCellFAB &a_slopePrim, const Real &a_scale, const int &a_dir, const Box &a_box)=0
virtual void riemann (EBFaceFAB &a_flux, const EBCellFAB &a_primLeft, const EBCellFAB &a_primRight, const int &a_dir, const Box &a_box)=0
virtual void riemann (BaseIVFAB< Real > &a_coveredFlux, const BaseIVFAB< Real > &a_extendedState, const EBCellFAB &a_primState, const Vector< VolIndex > &a_region, const int &a_dir, const Side::LoHiSide &a_sd, const Box &a_box)=0
virtual void setSource (EBCellFAB &a_source, const EBCellFAB &a_consState, const Box &a_box)
 rz func.
virtual void assembleFluxReg (EBFaceFAB &a_fluxRegFlux, const EBFaceFAB &a_godunovFlux, const int &a_idir, const Box &a_cellBox)
 rz func.
virtual void assembleFluxIrr (BaseIFFAB< Real > &a_fluxRegFlux, const BaseIFFAB< Real > &a_godunovFlux, const int &a_idir, const Box &a_cellBox, const IntVectSet &a_set)
 rz func.
virtual void consToPrim (EBCellFAB &a_primState, const EBCellFAB &a_conState, const Box &a_box, int a_logflag, bool a_verbose=false)=0
virtual void consToPrim (BaseIVFAB< Real > &a_primState, const BaseIVFAB< Real > &a_conState, const IntVectSet &a_ivs)=0
virtual void primToCons (EBCellFAB &a_primState, const EBCellFAB &a_conState, const Box &a_box)=0
virtual void primToCons (BaseIVFAB< Real > &a_primState, const BaseIVFAB< Real > &a_conState, const IntVectSet &a_ivs)=0
virtual bool usesFlattening () const =0
virtual bool usesArtificialViscosity () const =0
virtual bool usesFourthOrderSlopes () const =0
virtual Real artificialViscosityCoefficient () const =0
virtual bool isDefined () const
EBCellFABgetPrimState ()
BaseIVFAB< Real > * getCoveredFluxPlus ()
BaseIVFAB< Real > * getCoveredFluxMinu ()
Vector< VolIndex > * getCoveredFaceMinu ()
Vector< VolIndex > * getCoveredFacePlus ()
void fillUpdateStencil (EBPatchGodunov::updateStencil_t &a_sten, const VolIndex &a_vof)
void cacheEBCF (Vector< Vector< Real > > &a_cache, const EBCellFAB &a_input)
void uncacheEBCF (EBCellFAB &a_output, const Vector< Vector< Real > > &a_cache)

Static Public Member Functions

static void setVerbose (bool a_verbose)
static void setCurLevel (int a_curLevel)
static void setCurComp (int a_curComp)
static void setDoingVel (int a_yesorno)
static void setDoingAdvVel (int a_yesorno)
static int getDoingAdvVel ()
static int getDoingVel ()
static int getCurLevel ()
static int getCurComp ()
static bool getVerbose ()
static Real getMaxWaveSpeed ()
static void setMaxWaveSpeed (Real a_maxWaveSpeedIV)
static IntVect getMaxWaveSpeedIV ()
static void setMaxWaveSpeedIV (const IntVect &a_maxWaveSpeedIV)
static void useConservativeSource (bool a_conservativeSource)

Static Public Attributes

static IntVect s_debugIV
static int s_whichLev

Protected Attributes

ProblemDomain m_domain
RealVect m_dx
Real m_dxScale
BaseIFFAB< FaceStencilm_interpStencils [SpaceDim]
Box m_validBox
EBISBox m_ebisBox
Real m_time
Real m_dt
bool m_isDefined
bool m_isBCSet
bool m_isBoxSet
bool m_isSlopeSet
bool m_isArtViscSet
bool m_useFourthOrderSlopes
bool m_useFlattening
bool m_useLimiting
bool m_useArtificialVisc
Vector< VolIndexm_irregVoFs
Vector< updateStencil_tm_updateStencil
EBPhysIBCm_bc
Box m_validBoxG4
IntVectSet m_coveredSetsPlusG4 [SpaceDim]
IntVectSet m_coveredSetsMinuG4 [SpaceDim]
Vector< VolIndexm_coveredFacePlusG4 [SpaceDim]
Vector< VolIndexm_coveredFaceMinuG4 [SpaceDim]
BaseIVFAB< Realm_extendStatePlusG4 [SpaceDim]
BaseIVFAB< Realm_extendStateMinuG4 [SpaceDim]
BaseIVFAB< Realm_coveredFluxPlusG4 [SpaceDim]
BaseIVFAB< Realm_coveredFluxMinuG4 [SpaceDim]
BaseIVFAB< Realm_extendStatePlus3D [SpaceDim][SpaceDim]
BaseIVFAB< Realm_extendStateMinu3D [SpaceDim][SpaceDim]
BaseIVFAB< Realm_coveredFluxPlus3D [SpaceDim][SpaceDim]
BaseIVFAB< Realm_coveredFluxMinu3D [SpaceDim][SpaceDim]
EBCellFAB m_primPlus [SpaceDim]
EBCellFAB m_primMinu [SpaceDim]
EBCellFAB m_primState
EBCellFAB m_primMinuTemp
EBCellFAB m_primPlusTemp
EBFluxFAB m_primGdnv
EBFaceFAB m_fluxOne [SpaceDim]
EBFaceFAB m_fluxTwo [SpaceDim][SpaceDim]
BaseIVFAB< Realm_coveredFluxNormMinu [SpaceDim]
BaseIVFAB< Realm_coveredFluxNormPlus [SpaceDim]
BaseIVFAB< Realm_extendStateNormMinu [SpaceDim]
BaseIVFAB< Realm_extendStateNormPlus [SpaceDim]

Static Protected Attributes

static bool s_conservativeSource
static int s_curLevel
static int s_curComp
static int s_doingVel
static int s_doingAdvVel
static bool s_verbose
static Real s_maxWaveSpeed
static IntVect s_maxWaveSpeedIV

Classes

struct  pointerOffset_t
struct  updateStencil_t


Constructor & Destructor Documentation

EBPatchGodunov::EBPatchGodunov (  ) 

virtual EBPatchGodunov::~EBPatchGodunov (  )  [virtual]


Member Function Documentation

void EBPatchGodunov::incrementWithSource ( EBCellFAB a_primState,
const EBCellFAB a_source,
const Real a_scale,
const Box a_box 
)

non-virtual stuff

virtual void EBPatchGodunov::extrapToCoveredFaces ( BaseIVFAB< Real > &  a_extendedPrim,
const EBCellFAB a_primMinu,
const EBCellFAB a_primPlus,
const EBCellFAB a_primState,
const Vector< VolIndex > &  a_coveredFaces,
const int &  a_faceDir,
const Side::LoHiSide a_sd,
const Box a_box 
) [virtual]

virtual void EBPatchGodunov::pointExtrapToCovered2D ( Vector< Real > &  a_extrapVal,
const EBCellFAB a_primMinu,
const EBCellFAB a_primPlus,
const EBCellFAB a_primState,
const int &  a_faceDir,
const VolIndex a_vof,
const RealVect a_normal,
const Side::LoHiSide a_sd,
const int &  a_numPrim 
) [virtual]

virtual void EBPatchGodunov::pointExtrapToCovered3D ( Vector< Real > &  a_extrapVal,
const EBCellFAB a_primMinu,
const EBCellFAB a_primPlus,
const EBCellFAB a_primState,
const int &  a_faceDir,
const VolIndex a_vof,
const RealVect a_normal,
const Side::LoHiSide a_sd,
const int &  a_numPrim 
) [virtual]

void EBPatchGodunov::computeCoveredFaces ( Vector< VolIndex > &  a_coveredFace,
IntVectSet a_coveredIVS,
IntVectSet a_irregIVS,
const int &  a_idir,
const Side::LoHiSide a_sd,
const Box a_region 
)

const EBPhysIBC* EBPatchGodunov::getEBPhysIBC (  )  const

Real EBPatchGodunov::pointLimiter ( const Real a_deltaW1,
const Real a_deltaW2 
)

void EBPatchGodunov::setEBPhysIBC ( const EBPhysIBCFactory a_bc  ) 

void EBPatchGodunov::setSlopeParameters ( bool  a_fourthOrderSlopes,
bool  a_flattening,
bool  a_useLimiting 
)

Set parameters for slope computations.

void EBPatchGodunov::applyLimiter ( EBCellFAB a_slopePrim,
const EBCellFAB a_slopePrimLeft,
const EBCellFAB a_slopePrimRigh,
const int &  a_dir,
const Box a_box 
)

Given left and right one-sided undivided differences /a_dql,a_dqr/, apply van Leer limiter $vL$ defined in section to a_dq. Called by the default implementation of PatchPolytropic::slope.

virtual void EBPatchGodunov::doSecondOrderSlopes ( EBCellFAB a_delta2W,
EBCellFAB a_deltaWL,
EBCellFAB a_deltaWR,
EBCellFAB a_deltaWC,
const EBCellFAB a_primState,
const int &  a_dir,
const Box a_box 
) [virtual]

Reimplemented in EBPatchAdvect.

void EBPatchGodunov::doFourthOrderSlopes ( EBCellFAB a_delta4W,
EBCellFAB a_deltaWC,
const EBCellFAB a_delta2W,
const EBCellFAB a_deltaWL,
const EBCellFAB a_deltaWR,
const EBCellFAB a_primState,
const int &  a_dir,
const Box a_box 
)

void EBPatchGodunov::pointGetSlopes ( Real a_dql,
Real a_dqr,
Real a_dqc,
bool &  a_hasFacesLeft,
bool &  a_hasFacesRigh,
const VolIndex a_vof,
const EBCellFAB a_primState,
const int &  a_dir,
const int &  a_ivar,
const bool &  a_verbose 
)

void EBPatchGodunov::coveredExtrapSlopes ( Real a_dqc,
const VolIndex a_vof,
const EBCellFAB a_primState,
const int &  a_dir,
const int &  a_ivar 
)

void EBPatchGodunov::computeFluxes ( EBFluxFAB a_flux,
BaseIVFAB< Real a_coveredFluxLo[SpaceDim],
BaseIVFAB< Real a_coveredFluxHi[SpaceDim],
Vector< VolIndex a_coveredFaceLo[SpaceDim],
Vector< VolIndex a_coveredFaceHi[SpaceDim],
EBCellFAB a_primState,
EBCellFAB  a_slopesPrim[SpaceDim],
EBCellFAB  a_slopesSeco[SpaceDim],
const EBCellFAB a_flattening,
const EBCellFAB a_consState,
const EBCellFAB a_source,
const Box a_box,
const DataIndex a_dit,
bool  a_verbose 
)

virtual void EBPatchGodunov::extrapolatePrim2D ( EBCellFAB  a_primMinu[SpaceDim],
EBCellFAB  a_primPlus[SpaceDim],
EBCellFAB a_primState,
EBCellFAB  a_slopesPrim[SpaceDim],
EBCellFAB  a_slopesSeco[SpaceDim],
const EBCellFAB a_flattening,
const EBCellFAB a_consState,
const EBCellFAB a_source,
const Box a_box,
const DataIndex a_dit,
bool  a_verbose 
) [virtual]

void EBPatchGodunov::extrapolatePrim3D ( EBCellFAB  a_primMinu[SpaceDim],
EBCellFAB  a_primPlus[SpaceDim],
EBCellFAB a_primState,
EBCellFAB  a_slopesPrim[SpaceDim],
EBCellFAB  a_slopesSeco[SpaceDim],
const EBCellFAB a_flattening,
const EBCellFAB a_consState,
const EBCellFAB a_source,
const Box a_box,
const DataIndex a_dit,
bool  a_verbose 
)

virtual void EBPatchGodunov::regularUpdate ( EBCellFAB a_consState,
EBFluxFAB a_flux,
BaseIVFAB< Real > &  a_ebIrregFlux,
BaseIVFAB< Real > &  a_nonConservativeDivergence,
const EBCellFAB a_flattening,
const EBCellFAB a_source,
const Box a_box,
const IntVectSet a_ivs,
const DataIndex a_dit,
bool  a_verbose 
) [virtual]

Update the state using flux difference that ignores EB. Store fluxes used in this update. Store non-conservative divergence. Flux coming out of htis this should exist at cell face centers.

virtual void EBPatchGodunov::regularDivergences ( EBCellFAB a_nonconsdiv,
EBCellFAB a_consState,
EBFluxFAB a_flux,
BaseIVFAB< Real > &  a_ebIrregFlux,
BaseIVFAB< Real > &  a_nonConservativeDivergence,
const EBCellFAB a_flattening,
const EBCellFAB a_source,
const Box a_box,
const IntVectSet a_ivs,
const DataIndex a_dit,
bool  a_verbose 
) [virtual]

virtual void EBPatchGodunov::hybridDivergence ( EBCellFAB a_hybridDiv,
EBCellFAB a_consState,
BaseIVFAB< Real > &  a_massDiff,
const BaseIFFAB< Real a_centroidFlux[SpaceDim],
const BaseIVFAB< Real > &  a_ebIrregFlux,
const BaseIVFAB< Real > &  a_nonConservativeDivergence,
const Box a_box,
const IntVectSet a_ivs 
) [virtual]

virtual void EBPatchGodunov::irregularUpdate ( EBCellFAB a_consState,
Real a_maxWaveSpeed,
BaseIVFAB< Real > &  a_massDiff,
const BaseIFFAB< Real a_centroidFlux[SpaceDim],
const BaseIVFAB< Real > &  a_ebIrregFlux,
const BaseIVFAB< Real > &  a_nonConservativeDivergence,
const Box a_box,
const IntVectSet a_ivs 
) [virtual]

Update the state at irregular VoFs and compute mass difference and the maximum wave speed over the entire box. Flux going into this should exist at VoF centroids.

virtual void EBPatchGodunov::doNormalDerivativeExtr2D ( EBCellFAB  a_primMinu[SpaceDim],
EBCellFAB  a_primPlus[SpaceDim],
EBFaceFAB  a_fluxOne[SpaceDim],
BaseIVFAB< Real a_coveredFluxNormMinu[SpaceDim],
BaseIVFAB< Real a_coveredFluxNormPlus[SpaceDim],
Vector< VolIndex a_coveredFaceNormMinu[SpaceDim],
Vector< VolIndex a_coveredFaceNormPlus[SpaceDim],
EBCellFAB  a_slopesPrim[SpaceDim],
EBCellFAB  a_slopesSeco[SpaceDim],
const EBCellFAB a_flattening,
const EBCellFAB a_primState,
const EBCellFAB a_source,
const DataIndex a_dit,
const Box a_box 
) [virtual]

void EBPatchGodunov::doNormalDerivativeExtr3D ( EBCellFAB  a_primMinu[SpaceDim],
EBCellFAB  a_primPlus[SpaceDim],
EBFaceFAB  a_fluxOne[SpaceDim],
BaseIVFAB< Real a_coveredFluxNormMinu[SpaceDim],
BaseIVFAB< Real a_coveredFluxNormPlus[SpaceDim],
Vector< VolIndex a_coveredFaceNormMinu[SpaceDim],
Vector< VolIndex a_coveredFaceNormPlus[SpaceDim],
EBCellFAB  a_slopesPrim[SpaceDim],
EBCellFAB  a_slopesSeco[SpaceDim],
const EBCellFAB a_flattening,
const EBCellFAB a_primState,
const EBCellFAB a_source,
const DataIndex a_dit,
const Box a_box 
)

virtual void EBPatchGodunov::finalExtrap2D ( EBCellFAB  a_primMinu[SpaceDim],
EBCellFAB  a_primPlus[SpaceDim],
const BaseIVFAB< Real a_coveredFluxNormMinu[SpaceDim],
const BaseIVFAB< Real a_coveredFluxNormPlus[SpaceDim],
const Vector< VolIndex a_coveredFaceNormMinu[SpaceDim],
const Vector< VolIndex a_coveredFaceNormPlus[SpaceDim],
const EBFaceFAB  a_fluxOne[SpaceDim],
const EBCellFAB a_primState,
const EBCellFAB  a_slopesPrim[SpaceDim],
const EBCellFAB  a_slopesSeco[SpaceDim],
const Box a_box 
) [virtual]

void EBPatchGodunov::finalExtrap3D ( EBCellFAB  a_primMinu[SpaceDim],
EBCellFAB  a_primPlus[SpaceDim],
const BaseIVFAB< Real a_coveredFlux3DMinu[SpaceDim][SpaceDim],
const BaseIVFAB< Real a_coveredFlux3DPlus[SpaceDim][SpaceDim],
const EBFaceFAB  a_fluxTwoVec[SpaceDim][SpaceDim],
const EBCellFAB a_primState,
const EBCellFAB  a_slopesPrim[SpaceDim],
const EBCellFAB  a_slopesSeco[SpaceDim],
const Box a_box 
)

void EBPatchGodunov::do111coupling ( EBFaceFAB  a_fluxTwoVec[SpaceDim][SpaceDim],
BaseIVFAB< Real a_coveredFlux3DMinu[SpaceDim][SpaceDim],
BaseIVFAB< Real a_coveredFlux3DPlus[SpaceDim][SpaceDim],
const EBCellFAB  a_primMinu[SpaceDim],
const EBCellFAB  a_primPlus[SpaceDim],
const BaseIVFAB< Real a_coveredFluxNormMinu[SpaceDim],
const BaseIVFAB< Real a_coveredFluxNormPlus[SpaceDim],
const Vector< VolIndex a_coveredFaceNormMinu[SpaceDim],
const Vector< VolIndex a_coveredFaceNormPlus[SpaceDim],
const EBFaceFAB  a_fluxOne[SpaceDim],
const EBCellFAB a_primState,
const EBCellFAB  a_slopesPrim[SpaceDim],
const EBCellFAB  a_slopesSeco[SpaceDim],
const DataIndex a_dit,
const Box a_box 
)

void EBPatchGodunov::interpolateFluxToCentroids ( BaseIFFAB< Real a_centroidFlux[SpaceDim],
const BaseIFFAB< Real > *const   a_fluxInterpolant[SpaceDim],
const IntVectSet a_irregIVS 
)

virtual void EBPatchGodunov::finalUpdate ( EBCellFAB a_consState,
BaseIVFAB< Real > &  a_massDiff,
const BaseIVFAB< Real > &  a_nonConsDivF,
const BaseIVFAB< Real > &  a_conservDivF,
const IntVectSet a_ivs 
) [virtual]

void EBPatchGodunov::getFaceDivergence ( EBFluxFAB a_openDivU,
const EBCellFAB a_primState,
const EBCellFAB  a_slopePrim[SpaceDim],
const Box a_box,
const IntVectSet a_ivsIrreg 
)

void EBPatchGodunov::artificialViscosity ( bool  a_useArtificialVisc  ) 

void EBPatchGodunov::applyArtificialViscosity ( EBFluxFAB a_openFlux,
BaseIVFAB< Real a_coveredFluxMinu[SpaceDim],
BaseIVFAB< Real a_coveredFluxPlus[SpaceDim],
const Vector< VolIndex a_coveredFaceMinu[SpaceDim],
const Vector< VolIndex a_coveredFacePlus[SpaceDim],
const EBCellFAB a_consState,
const EBFluxFAB a_divVel,
const Box a_box,
const IntVectSet a_ivsIrreg 
)

Real EBPatchGodunov::bilinearFunc ( const Real  a_WVal[2][2],
const Real a_xd1,
const Real a_xd2 
)

Real EBPatchGodunov::maxFunction ( const Real  a_WVal[2][2],
const Real a_xd1,
const Real a_xd2 
)

void EBPatchGodunov::define ( const ProblemDomain a_domain,
const RealVect a_dx 
)

Referenced by define().

void EBPatchGodunov::define ( const ProblemDomain a_domain,
const Real a_dx 
) [inline]

deprecated interface

References define(), and RealVect::Unit.

virtual void EBPatchGodunov::setValidBox ( const Box a_validBox,
const EBISBox a_ebisBox,
const IntVectSet a_coarseFineIVS,
const Real a_time,
const Real a_dt 
) [virtual]

needs coarse-fine IVS to know where to drop order for interpolation virtual in case you need to add anything to definition

Reimplemented in EBPatchAdvect.

void EBPatchGodunov::computeFlattening ( EBCellFAB a_flattening,
const EBCellFAB a_primState,
const Box a_box 
)

virtual void EBPatchGodunov::slope ( EBCellFAB a_slopePrim,
EBCellFAB a_slopeNLim,
const EBCellFAB a_primState,
const EBCellFAB a_flattening,
const int &  a_dir,
const Box a_box 
) [virtual]

Compute the limited slope /a_dq/ of the primitive variables /a_q/ for the components in the interval /a_interval/, Calls user-supplied EBPatchGodunov::applyLimiter.

Reimplemented in EBPatchAdvect.

virtual void EBPatchGodunov::nonconservativeDivergence ( EBCellFAB a_divF,
const EBFluxFAB a_flux,
const BaseIVFAB< Real a_coveredFluxMinu[SpaceDim],
const BaseIVFAB< Real a_coveredFluxPlus[SpaceDim],
const Vector< VolIndex a_coveredFaceMinu[SpaceDim],
const Vector< VolIndex a_coveredFacePlus[SpaceDim],
const Box a_box 
) [virtual]

needs to be virtual because of RZ

virtual void EBPatchGodunov::updatePrim ( EBCellFAB a_primMinu,
EBCellFAB a_primPlus,
const EBFaceFAB a_flux,
const BaseIVFAB< Real > &  a_coveredFluxMinu,
const BaseIVFAB< Real > &  a_coveredFluxPlus,
const Vector< VolIndex > &  a_coveredFaceMinu,
const Vector< VolIndex > &  a_coveredFacePlus,
const int &  a_dir,
const Box a_box,
const Real a_scale 
) [virtual]

virtual in case you want to do something faster than go through constoprim

Reimplemented in EBPatchAdvect.

virtual void EBPatchGodunov::updateCons ( EBCellFAB a_consState,
const EBFaceFAB a_flux,
const BaseIVFAB< Real > &  a_coveredFluxMinu,
const BaseIVFAB< Real > &  a_coveredFluxPlus,
const Vector< VolIndex > &  a_coveredFaceMinu,
const Vector< VolIndex > &  a_coveredFacePlus,
const int &  a_dir,
const Box a_box,
const Real a_scale 
) [virtual]

virtual because RZ changes this function

virtual Interval EBPatchGodunov::velocityInterval (  )  const [pure virtual]

Returns the interval of component indices in the primitive variable EBCellFAB for the velocities. Only used for artificial visc and flattening

Implemented in EBPatchAdvect.

virtual void EBPatchGodunov::consUndividedDivergence ( BaseIVFAB< Real > &  a_divF,
const BaseIFFAB< Real a_centroidFlux[SpaceDim],
const BaseIVFAB< Real > &  a_ebIrregFlux,
const IntVectSet a_ivs 
) [virtual]

needs to be virtual because of RZ

virtual void EBPatchGodunov::computeEBIrregFlux ( BaseIVFAB< Real > &  a_ebIrregFlux,
const EBCellFAB a_primState,
const EBCellFAB  a_slopePrim[SpaceDim],
const IntVectSet a_irregIVS,
const EBCellFAB a_source 
) [pure virtual]

Implemented in EBPatchAdvect.

virtual int EBPatchGodunov::pressureIndex (  )  const [pure virtual]

Returns the component index for the pressure. Called only if flattening is used.

Implemented in EBPatchAdvect.

virtual int EBPatchGodunov::bulkModulusIndex (  )  const [pure virtual]

Returns the component index for the bulk modulus, used as a normalization to measure shock strength in flattening. Called only if flattening is used.

Implemented in EBPatchAdvect.

virtual void EBPatchGodunov::setCoveredConsVals ( EBCellFAB a_consState  )  [pure virtual]

Implemented in EBPatchAdvect.

virtual Real EBPatchGodunov::getMaxWaveSpeed ( const EBCellFAB a_consState,
const Box a_box 
) [pure virtual]

Implemented in EBPatchAdvect.

virtual void EBPatchGodunov::floorConserved ( EBCellFAB a_consState,
const Box a_box 
) [pure virtual]

Implemented in EBPatchAdvect.

virtual void EBPatchGodunov::floorPrimitives ( EBCellFAB a_primState,
const Box a_box 
) [pure virtual]

Implemented in EBPatchAdvect.

virtual void EBPatchGodunov::floorConserved ( BaseIVFAB< Real > &  a_consState,
const IntVectSet a_ivs 
) [pure virtual]

Implemented in EBPatchAdvect.

virtual void EBPatchGodunov::floorPrimitives ( BaseIVFAB< Real > &  a_primState,
const IntVectSet a_ivs 
) [pure virtual]

Implemented in EBPatchAdvect.

virtual void EBPatchGodunov::getCoveredValuesPrim ( Vector< Real > &  a_covValues  )  [pure virtual]

Implemented in EBPatchAdvect.

virtual void EBPatchGodunov::getCoveredValuesCons ( Vector< Real > &  a_covValues  )  [pure virtual]

Implemented in EBPatchAdvect.

virtual int EBPatchGodunov::densityIndex (  )  const [pure virtual]

Implemented in EBPatchAdvect.

virtual int EBPatchGodunov::numPrimitives (  )  const [pure virtual]

Return number of components for primitive variables.

Implemented in EBPatchAdvect.

virtual int EBPatchGodunov::numFluxes (  )  const [pure virtual]

Returns number of components for flux variables.

Implemented in EBPatchAdvect.

virtual int EBPatchGodunov::numSlopes (  )  const [pure virtual]

Returns number of components for flux variables.

Implemented in EBPatchAdvect.

virtual int EBPatchGodunov::numConserved (  )  const [pure virtual]

Returns number of components for conserved variables.

Implemented in EBPatchAdvect.

virtual Vector<string> EBPatchGodunov::stateNames (  )  [pure virtual]

Return the names of the variables. A default implementation is provided that puts in generic names.

Implemented in EBPatchAdvect.

virtual Vector<string> EBPatchGodunov::primNames (  )  [pure virtual]

Return the names of the variables. A default implementation is provided that puts in generic names.

Implemented in EBPatchAdvect.

virtual void EBPatchGodunov::normalPred ( EBCellFAB a_primLo,
EBCellFAB a_primHi,
const EBCellFAB a_primState,
const EBCellFAB a_slopePrim,
const Real a_scale,
const int &  a_dir,
const Box a_box 
) [pure virtual]

Implemented in EBPatchAdvect.

virtual void EBPatchGodunov::riemann ( EBFaceFAB a_flux,
const EBCellFAB a_primLeft,
const EBCellFAB a_primRight,
const int &  a_dir,
const Box a_box 
) [pure virtual]

Given input left and right states, compute a suitably-upwinded flux (e.g. by solving a Riemann problem), as in

Implemented in EBPatchAdvect.

virtual void EBPatchGodunov::riemann ( BaseIVFAB< Real > &  a_coveredFlux,
const BaseIVFAB< Real > &  a_extendedState,
const EBCellFAB a_primState,
const Vector< VolIndex > &  a_region,
const int &  a_dir,
const Side::LoHiSide a_sd,
const Box a_box 
) [pure virtual]

Given input left and right states, compute a suitably-upwinded flux (e.g. by solving a Riemann problem).

Implemented in EBPatchAdvect.

virtual void EBPatchGodunov::setSource ( EBCellFAB a_source,
const EBCellFAB a_consState,
const Box a_box 
) [inline, virtual]

rz func.

virtual void EBPatchGodunov::assembleFluxReg ( EBFaceFAB a_fluxRegFlux,
const EBFaceFAB a_godunovFlux,
const int &  a_idir,
const Box a_cellBox 
) [inline, virtual]

rz func.

virtual void EBPatchGodunov::assembleFluxIrr ( BaseIFFAB< Real > &  a_fluxRegFlux,
const BaseIFFAB< Real > &  a_godunovFlux,
const int &  a_idir,
const Box a_cellBox,
const IntVectSet a_set 
) [inline, virtual]

rz func.

virtual void EBPatchGodunov::consToPrim ( EBCellFAB a_primState,
const EBCellFAB a_conState,
const Box a_box,
int  a_logflag,
bool  a_verbose = false 
) [pure virtual]

Implemented in EBPatchAdvect.

virtual void EBPatchGodunov::consToPrim ( BaseIVFAB< Real > &  a_primState,
const BaseIVFAB< Real > &  a_conState,
const IntVectSet a_ivs 
) [pure virtual]

Implemented in EBPatchAdvect.

virtual void EBPatchGodunov::primToCons ( EBCellFAB a_primState,
const EBCellFAB a_conState,
const Box a_box 
) [pure virtual]

Implemented in EBPatchAdvect.

virtual void EBPatchGodunov::primToCons ( BaseIVFAB< Real > &  a_primState,
const BaseIVFAB< Real > &  a_conState,
const IntVectSet a_ivs 
) [pure virtual]

Implemented in EBPatchAdvect.

virtual bool EBPatchGodunov::usesFlattening (  )  const [pure virtual]

Return true if the application is using flattening.

Implemented in EBPatchAdvect.

virtual bool EBPatchGodunov::usesArtificialViscosity (  )  const [pure virtual]

Return true if the application is using artificial viscosity.

Implemented in EBPatchAdvect.

virtual bool EBPatchGodunov::usesFourthOrderSlopes (  )  const [pure virtual]

Return true if you are using fourth-order slopes. Return false if you are using second-order slopes.

Implemented in EBPatchAdvect.

virtual Real EBPatchGodunov::artificialViscosityCoefficient (  )  const [pure virtual]

Returns value of artificial viscosity. Called only if artificial viscosity is being used.

Implemented in EBPatchAdvect.

virtual bool EBPatchGodunov::isDefined (  )  const [virtual]

static void EBPatchGodunov::setVerbose ( bool  a_verbose  )  [static]

static void EBPatchGodunov::setCurLevel ( int  a_curLevel  )  [static]

static void EBPatchGodunov::setCurComp ( int  a_curComp  )  [static]

static void EBPatchGodunov::setDoingVel ( int  a_yesorno  )  [static]

static void EBPatchGodunov::setDoingAdvVel ( int  a_yesorno  )  [static]

static int EBPatchGodunov::getDoingAdvVel (  )  [static]

static int EBPatchGodunov::getDoingVel (  )  [static]

static int EBPatchGodunov::getCurLevel (  )  [static]

static int EBPatchGodunov::getCurComp (  )  [static]

static bool EBPatchGodunov::getVerbose (  )  [static]

static Real EBPatchGodunov::getMaxWaveSpeed (  )  [static]

static void EBPatchGodunov::setMaxWaveSpeed ( Real  a_maxWaveSpeedIV  )  [static]

static IntVect EBPatchGodunov::getMaxWaveSpeedIV (  )  [static]

static void EBPatchGodunov::setMaxWaveSpeedIV ( const IntVect a_maxWaveSpeedIV  )  [static]

EBCellFAB& EBPatchGodunov::getPrimState (  )  [inline]

Reimplemented in EBPatchAdvect.

References m_primState.

BaseIVFAB<Real>* EBPatchGodunov::getCoveredFluxPlus (  )  [inline]

References m_coveredFluxPlusG4.

BaseIVFAB<Real>* EBPatchGodunov::getCoveredFluxMinu (  )  [inline]

References m_coveredFluxMinuG4.

Vector<VolIndex>* EBPatchGodunov::getCoveredFaceMinu (  )  [inline]

References m_coveredFaceMinuG4.

Vector<VolIndex>* EBPatchGodunov::getCoveredFacePlus (  )  [inline]

References m_coveredFacePlusG4.

static void EBPatchGodunov::useConservativeSource ( bool  a_conservativeSource  )  [inline, static]

set to true if the source you will provide is in conservative variables. Default is false

References s_conservativeSource.

void EBPatchGodunov::fillUpdateStencil ( EBPatchGodunov::updateStencil_t a_sten,
const VolIndex a_vof 
)

void EBPatchGodunov::cacheEBCF ( Vector< Vector< Real > > &  a_cache,
const EBCellFAB a_input 
)

void EBPatchGodunov::uncacheEBCF ( EBCellFAB a_output,
const Vector< Vector< Real > > &  a_cache 
)


Member Data Documentation

bool EBPatchGodunov::s_conservativeSource [static, protected]

Referenced by useConservativeSource().

int EBPatchGodunov::s_curLevel [static, protected]

int EBPatchGodunov::s_curComp [static, protected]

int EBPatchGodunov::s_doingVel [static, protected]

int EBPatchGodunov::s_doingAdvVel [static, protected]

bool EBPatchGodunov::s_verbose [static, protected]

Real EBPatchGodunov::s_maxWaveSpeed [static, protected]

bool EBPatchGodunov::m_isDefined [protected]

bool EBPatchGodunov::m_isBCSet [protected]

bool EBPatchGodunov::m_isBoxSet [protected]

bool EBPatchGodunov::m_isSlopeSet [protected]

Referenced by getCoveredFacePlus().

Referenced by getCoveredFaceMinu().

Referenced by getCoveredFluxPlus().

Referenced by getCoveredFluxMinu().


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

Generated on Tue Apr 14 14:23:26 2009 for Chombo + EB by  doxygen 1.5.5