Chombo + EB + MF  3.2
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
EBAdvectPatchIntegrator Class Reference

#include <EBAdvectPatchIntegrator.H>

Public Member Functions

 EBAdvectPatchIntegrator (const Box &a_validBox, const EBISBox &a_ebisBox, const IntVectSet &a_coarseFineIVS, const ProblemDomain &a_domain, const RealVect &a_dx, bool a_useSlopeLimiting)
 boundary condions are set via setEBPhysIBC More...
 
virtual ~EBAdvectPatchIntegrator ()
 
void extrapolatePrim (EBFluxFAB &a_flux, Vector< BaseIVFAB< Real > * > &a_coveredFluxMinu, Vector< BaseIVFAB< Real > * > &a_coveredFluxPlus, const Vector< IntVectSet > &a_coveredSetsMinu, const Vector< IntVectSet > &a_coveredSetsPlus, const Vector< Vector< VolIndex > > &a_coveredFaceMinu, const Vector< Vector< VolIndex > > &a_coveredFacePlus, const EBCellFAB &a_consState, const EBCellFAB &a_source, const DataIndex &a_dit, const Real &a_time, const Real &a_dt)
 
void advectiveDerivative (EBCellFAB &a_uDotDelRho, const EBFluxFAB &a_faceRho, const EBFluxFAB &a_faceVel, const Vector< BaseIVFAB< Real > *> &a_coveredRhoLo, const Vector< BaseIVFAB< Real > *> &a_coveredRhoHi, const Vector< BaseIVFAB< Real > *> &a_coveredVelLo, const Vector< BaseIVFAB< Real > *> &a_coveredVelHi, const Vector< Vector< VolIndex > > &a_coveredFaceLo, const Vector< Vector< VolIndex > > &a_coveredFaceHi, const Box &a_box)
 
void advectiveDerivative (EBCellFAB &a_uDotDelRho, const EBFluxFAB &a_faceRho, const EBFluxFAB &a_faceVel, const Box &a_box)
 
void setEBPhysIBC (const EBPhysIBCFactory &a_bc)
 
void setVelocities (const EBCellFAB &a_normalVel, const EBFluxFAB &a_advectionVel)
 
void consUndividedDivergence (BaseIVFAB< Real > &a_divF, const BaseIFFAB< Real > a_centroidFlux[SpaceDim], const IntVectSet &a_ivs)
 
void consUndividedDivergence (BaseIVFAB< Real > &a_divF, const BaseIFFAB< Real > a_centroidFlux[SpaceDim], const BaseIVFAB< Real > &a_ebIrregFlux, const IntVectSet &a_ivs)
 
void interpolateFluxToCentroids (BaseIFFAB< Real > a_centroidFlux[SpaceDim], const BaseIFFAB< Real > *const a_fluxInterpolant[SpaceDim], const IntVectSet &a_irregIVS)
 
void averageVelToCC (EBCellFAB &a_normalVel, const EBFluxFAB &a_advectionVel, const Vector< BaseIVFAB< Real > * > &a_coveredVeloLo, const Vector< BaseIVFAB< Real > * > &a_coveredVeloHi, const Vector< Vector< VolIndex > > &a_coveredFaceLo, const Vector< Vector< VolIndex > > &a_coveredFaceHi, const Box &a_box) const
 
void extrapolateBCG (EBFluxFAB &a_flux, const EBCellFAB &a_consState, const EBCellFAB &a_source, const DataIndex &a_dit, const Real &a_time, const Real &a_dt)
 
void mvExtrapolateBCG (EBFluxFAB &a_flux, const EBCellFAB &a_consState, const EBFluxFAB &a_advectionVel, const EBCellFAB &a_normalVel, const EBCellFAB &a_source, const Vector< RefCountedPtr< EBPhysIBCFactory > > &a_allAdvectBC, const DataIndex &a_dit, const Real &a_time, const Real &a_dt, const int &a_doingVel)
 
void kappaDivergenceFlux (EBCellFAB &a_kappaDivF, const EBFluxFAB &a_centroidFlux, const Box &a_validBox)
 
void extrapToCoveredFaces (BaseIVFAB< Real > &a_extendedPrim, const EBFaceFAB &a_primFace, const EBCellFAB &a_primState, const Vector< VolIndex > &a_coveredFaces, const int &a_faceDir, const Side::LoHiSide &a_sd, const Box &a_box)
 
void setMaxMin (const Real &a_maxVal, const Real &a_minVal)
 

Static Public Member Functions

static void setCurComp (int a_curComp)
 here are a couple of awful hooks necessary to get the minutiae of the algorithm correct More...
 
static void setDoingVel (int a_yesorno)
 
static int getDoingVel ()
 
static int getCurComp ()
 

Private Member Functions

 EBAdvectPatchIntegrator ()
 weak construction is bad. More...
 
void extrapolatePrim3D (EBCellFAB a_primMinu[SpaceDim], EBCellFAB a_primPlus[SpaceDim], const EBCellFAB &a_consState, const EBCellFAB &a_source, const DataIndex &a_dit, const Real &a_time, const Real &a_dt)
 internal functions (all the madness below probably needs to get cleaned up) More...
 
void extrapolateBCG (EBCellFAB a_primMinu[SpaceDim], EBCellFAB a_primPlus[SpaceDim], const EBCellFAB &a_consState, const EBCellFAB &a_source, const DataIndex &a_dit, const Real &a_time, const Real &a_dt)
 
void extrapolatePrim2D (EBCellFAB a_primMinu[SpaceDim], EBCellFAB a_primPlus[SpaceDim], const EBCellFAB &a_consState, const EBCellFAB &a_source, const DataIndex &a_dit, const Real &a_time, const Real &a_dt)
 
void riemann (BaseIVFAB< Real > &a_coveredPrim, const BaseIVFAB< Real > &a_exteState, const EBCellFAB &a_primState, const Vector< VolIndex > &a_vofset, const int &a_faceDir, const Side::LoHiSide &a_sd, const Box &a_box)
 
void riemann (EBFaceFAB &a_primGdnv, const EBCellFAB &a_primLeft, const EBCellFAB &a_primRigh, const int &a_faceDir, const Box &a_box)
 
FaceStencil getInterpStencil (const FaceIndex &a_face) const
 
void pointExtrapToCovered2D (Vector< Real > &a_extrapVal, const EBFaceFAB &a_primFace, 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 pointExtrapToCovered3D (Vector< Real > &a_extrapVal, const EBFaceFAB &a_primFace, 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 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)
 
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)
 
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 floorPrimitives (EBCellFAB &a_primState, const Box &a_box)
 floors if m_isMaxMinSet More...
 
void floorPrimitives (BaseIVFAB< Real > &a_primState, const IntVectSet &a_set)
 floors if m_isMaxMinSet More...
 
void coveredExtrapSlopes (Real &a_dq, const VolIndex &a_vof, const EBCellFAB &a_primState, const int &a_dir, const int &a_ivar)
 
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)
 
Real bilinearFunc (const Real a_WVal[2][2], const Real &a_xd1, const Real &a_xd2)
 
void pointGetSlopesUpwind (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 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], const EBCellFAB &a_primState, const EBCellFAB &a_source, const DataIndex &a_dit, const Real &a_time, const Real &a_dt)
 and this is the simplified version More...
 
void slope (EBCellFAB &a_slopePrim, const EBCellFAB &a_primState, const int &a_dir, const Box &a_box)
 options for 4th ordeer slopes and flattening removed More...
 
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 Real &a_time, const Real &a_dt)
 
void finalExtrap3D (EBCellFAB a_primMinu[SpaceDim], EBCellFAB a_primPlus[SpaceDim], const BaseIVFAB< Real > a_coveredFluxMinu3D[SpaceDim][SpaceDim], const BaseIVFAB< Real > a_coveredFluxPlus3D[SpaceDim][SpaceDim], const EBFaceFAB a_fluxTwo[SpaceDim][SpaceDim], const EBCellFAB &a_primState, const Real &a_time, const Real &a_dt)
 
void do111coupling (EBFaceFAB a_fluxTwo[SpaceDim][SpaceDim], BaseIVFAB< Real > a_coveredFluxMinu3D[SpaceDim][SpaceDim], BaseIVFAB< Real > a_coveredFluxPlus3D[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 DataIndex &a_dit, const Real &a_time, const Real &a_dt)
 
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], const EBCellFAB &a_primState, const EBCellFAB &a_source, const DataIndex &a_dit, const Real &a_time, const Real &a_dt)
 
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)
 
void incrementWithSource (EBCellFAB &a_primState, const EBCellFAB &a_source, const Real &a_scale, const Box &a_box)
 
void updatePrim (EBCellFAB &a_primMinu, EBCellFAB &a_primPlus, const EBFaceFAB &a_primFace, const BaseIVFAB< Real > &a_coveredPrimMinu, const BaseIVFAB< Real > &a_coveredPrimPlus, const Vector< VolIndex > &a_coveredFaceMinu, const Vector< VolIndex > &a_coveredFacePlus, const int &a_faceDir, const Box &a_box, const Real &a_scale)
 
void upwindSlope (EBCellFAB &a_slopeUpWi, const EBCellFAB &a_primState, const int &a_dir, const Box &a_box)
 
void transversePred (EBCellFAB &a_rhoLo, EBCellFAB &a_rhoHi, const EBCellFAB &a_rho, const EBCellFAB &a_dRho, const Real &a_dtbydx, const int &a_dir, const Box &a_box)
 

Private Attributes

const EBFluxFABm_advectionVelPtr
 
const EBCellFABm_normalVelPtr
 
bool m_isVelSet
 
bool m_isMaxMinSet
 
bool m_useLimiting
 
Real m_maxVal
 
Real m_minVal
 
RefCountedPtr< EBPhysIBCm_bc
 
bool m_isBCSet
 
Box m_validBox
 
ProblemDomain m_domain
 
EBISBox m_ebisBox
 
RealVect m_dx
 
IntVectSet m_cfivs
 
Box m_validBoxG4
 
Vector< VolIndexm_irregVoFs
 
IntVectSet m_coveredSetsPlusG4 [SpaceDim]
 
IntVectSet m_coveredSetsMinuG4 [SpaceDim]
 
Vector< VolIndexm_coveredFacePlusG4 [SpaceDim]
 
Vector< VolIndexm_coveredFaceMinuG4 [SpaceDim]
 

Static Private Attributes

static int s_curComp
 these exist because special things have to be done for velocity More...
 
static int s_doingVel
 

Detailed Description

This does the same as EBPatchAdvect but presumably with less memory footprint. and with a somewhat more sane interface.

I have pared down the EBPatchGodunov interface and tried to optimize for minimal memory without completely destroying performance.

Constructor & Destructor Documentation

◆ EBAdvectPatchIntegrator() [1/2]

EBAdvectPatchIntegrator::EBAdvectPatchIntegrator ( const Box a_validBox,
const EBISBox a_ebisBox,
const IntVectSet a_coarseFineIVS,
const ProblemDomain a_domain,
const RealVect a_dx,
bool  a_useSlopeLimiting 
)

boundary condions are set via setEBPhysIBC

◆ ~EBAdvectPatchIntegrator()

virtual EBAdvectPatchIntegrator::~EBAdvectPatchIntegrator ( )
inlinevirtual

◆ EBAdvectPatchIntegrator() [2/2]

EBAdvectPatchIntegrator::EBAdvectPatchIntegrator ( )
private

weak construction is bad.

Member Function Documentation

◆ extrapolatePrim()

void EBAdvectPatchIntegrator::extrapolatePrim ( EBFluxFAB a_flux,
Vector< BaseIVFAB< Real > * > &  a_coveredFluxMinu,
Vector< BaseIVFAB< Real > * > &  a_coveredFluxPlus,
const Vector< IntVectSet > &  a_coveredSetsMinu,
const Vector< IntVectSet > &  a_coveredSetsPlus,
const Vector< Vector< VolIndex > > &  a_coveredFaceMinu,
const Vector< Vector< VolIndex > > &  a_coveredFacePlus,
const EBCellFAB a_consState,
const EBCellFAB a_source,
const DataIndex a_dit,
const Real a_time,
const Real a_dt 
)

◆ advectiveDerivative() [1/2]

void EBAdvectPatchIntegrator::advectiveDerivative ( EBCellFAB a_uDotDelRho,
const EBFluxFAB a_faceRho,
const EBFluxFAB a_faceVel,
const Vector< BaseIVFAB< Real > *> &  a_coveredRhoLo,
const Vector< BaseIVFAB< Real > *> &  a_coveredRhoHi,
const Vector< BaseIVFAB< Real > *> &  a_coveredVelLo,
const Vector< BaseIVFAB< Real > *> &  a_coveredVelHi,
const Vector< Vector< VolIndex > > &  a_coveredFaceLo,
const Vector< Vector< VolIndex > > &  a_coveredFaceHi,
const Box a_box 
)

◆ advectiveDerivative() [2/2]

void EBAdvectPatchIntegrator::advectiveDerivative ( EBCellFAB a_uDotDelRho,
const EBFluxFAB a_faceRho,
const EBFluxFAB a_faceVel,
const Box a_box 
)

Version that leaves out the covered face stuff. This is wrong near the EB but the codes that use it overwrite the EB stuff anyway.

◆ setEBPhysIBC()

void EBAdvectPatchIntegrator::setEBPhysIBC ( const EBPhysIBCFactory a_bc)
inline

◆ setVelocities()

void EBAdvectPatchIntegrator::setVelocities ( const EBCellFAB a_normalVel,
const EBFluxFAB a_advectionVel 
)
inline

◆ consUndividedDivergence() [1/2]

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

For when EBFlux is always zero.

Referenced by setVelocities().

◆ consUndividedDivergence() [2/2]

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

◆ interpolateFluxToCentroids()

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

Referenced by setVelocities().

◆ averageVelToCC()

void EBAdvectPatchIntegrator::averageVelToCC ( EBCellFAB a_normalVel,
const EBFluxFAB a_advectionVel,
const Vector< BaseIVFAB< Real > * > &  a_coveredVeloLo,
const Vector< BaseIVFAB< Real > * > &  a_coveredVeloHi,
const Vector< Vector< VolIndex > > &  a_coveredFaceLo,
const Vector< Vector< VolIndex > > &  a_coveredFaceHi,
const Box a_box 
) const

Referenced by setVelocities().

◆ extrapolateBCG() [1/2]

void EBAdvectPatchIntegrator::extrapolateBCG ( EBFluxFAB a_flux,
const EBCellFAB a_consState,
const EBCellFAB a_source,
const DataIndex a_dit,
const Real a_time,
const Real a_dt 
)

Referenced by setVelocities().

◆ mvExtrapolateBCG()

void EBAdvectPatchIntegrator::mvExtrapolateBCG ( EBFluxFAB a_flux,
const EBCellFAB a_consState,
const EBFluxFAB a_advectionVel,
const EBCellFAB a_normalVel,
const EBCellFAB a_source,
const Vector< RefCountedPtr< EBPhysIBCFactory > > &  a_allAdvectBC,
const DataIndex a_dit,
const Real a_time,
const Real a_dt,
const int &  a_doingVel 
)

Referenced by setVelocities().

◆ kappaDivergenceFlux()

void EBAdvectPatchIntegrator::kappaDivergenceFlux ( EBCellFAB a_kappaDivF,
const EBFluxFAB a_centroidFlux,
const Box a_validBox 
)

Referenced by setVelocities().

◆ setCurComp()

static void EBAdvectPatchIntegrator::setCurComp ( int  a_curComp)
inlinestatic

here are a couple of awful hooks necessary to get the minutiae of the algorithm correct

References s_curComp.

◆ setDoingVel()

static void EBAdvectPatchIntegrator::setDoingVel ( int  a_yesorno)
inlinestatic

References s_doingVel.

◆ getDoingVel()

static int EBAdvectPatchIntegrator::getDoingVel ( )
inlinestatic

References s_doingVel.

◆ getCurComp()

static int EBAdvectPatchIntegrator::getCurComp ( )
inlinestatic

◆ extrapToCoveredFaces() [1/2]

void EBAdvectPatchIntegrator::extrapToCoveredFaces ( BaseIVFAB< Real > &  a_extendedPrim,
const EBFaceFAB a_primFace,
const EBCellFAB a_primState,
const Vector< VolIndex > &  a_coveredFaces,
const int &  a_faceDir,
const Side::LoHiSide a_sd,
const Box a_box 
)

This is called by EBAMRNoSubCycle. The insane version that uses cell-centered data holders for face data (the plus-minus stuff) is called internally.

Referenced by getCurComp().

◆ setMaxMin()

void EBAdvectPatchIntegrator::setMaxMin ( const Real a_maxVal,
const Real a_minVal 
)
inline

References m_isMaxMinSet, m_maxVal, and m_minVal.

◆ extrapolatePrim3D()

void EBAdvectPatchIntegrator::extrapolatePrim3D ( EBCellFAB  a_primMinu[SpaceDim],
EBCellFAB  a_primPlus[SpaceDim],
const EBCellFAB a_consState,
const EBCellFAB a_source,
const DataIndex a_dit,
const Real a_time,
const Real a_dt 
)
private

internal functions (all the madness below probably needs to get cleaned up)

◆ extrapolateBCG() [2/2]

void EBAdvectPatchIntegrator::extrapolateBCG ( EBCellFAB  a_primMinu[SpaceDim],
EBCellFAB  a_primPlus[SpaceDim],
const EBCellFAB a_consState,
const EBCellFAB a_source,
const DataIndex a_dit,
const Real a_time,
const Real a_dt 
)
private

◆ extrapolatePrim2D()

void EBAdvectPatchIntegrator::extrapolatePrim2D ( EBCellFAB  a_primMinu[SpaceDim],
EBCellFAB  a_primPlus[SpaceDim],
const EBCellFAB a_consState,
const EBCellFAB a_source,
const DataIndex a_dit,
const Real a_time,
const Real a_dt 
)
private

◆ riemann() [1/2]

void EBAdvectPatchIntegrator::riemann ( BaseIVFAB< Real > &  a_coveredPrim,
const BaseIVFAB< Real > &  a_exteState,
const EBCellFAB a_primState,
const Vector< VolIndex > &  a_vofset,
const int &  a_faceDir,
const Side::LoHiSide a_sd,
const Box a_box 
)
private

◆ riemann() [2/2]

void EBAdvectPatchIntegrator::riemann ( EBFaceFAB a_primGdnv,
const EBCellFAB a_primLeft,
const EBCellFAB a_primRigh,
const int &  a_faceDir,
const Box a_box 
)
private

◆ getInterpStencil()

FaceStencil EBAdvectPatchIntegrator::getInterpStencil ( const FaceIndex a_face) const
private

◆ pointExtrapToCovered2D() [1/2]

void EBAdvectPatchIntegrator::pointExtrapToCovered2D ( Vector< Real > &  a_extrapVal,
const EBFaceFAB a_primFace,
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 
)
private

◆ pointExtrapToCovered3D() [1/2]

void EBAdvectPatchIntegrator::pointExtrapToCovered3D ( Vector< Real > &  a_extrapVal,
const EBFaceFAB a_primFace,
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 
)
private

◆ extrapToCoveredFaces() [2/2]

void EBAdvectPatchIntegrator::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 
)
private

This insane version called internally. The primMinu and primPlus stuff are really face centered data but because they came from cell-centered data they are left there.

◆ pointExtrapToCovered2D() [2/2]

void EBAdvectPatchIntegrator::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 
)
private

◆ pointExtrapToCovered3D() [2/2]

void EBAdvectPatchIntegrator::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 
)
private

◆ floorPrimitives() [1/2]

void EBAdvectPatchIntegrator::floorPrimitives ( EBCellFAB a_primState,
const Box a_box 
)
private

floors if m_isMaxMinSet

◆ floorPrimitives() [2/2]

void EBAdvectPatchIntegrator::floorPrimitives ( BaseIVFAB< Real > &  a_primState,
const IntVectSet a_set 
)
private

floors if m_isMaxMinSet

◆ coveredExtrapSlopes()

void EBAdvectPatchIntegrator::coveredExtrapSlopes ( Real a_dq,
const VolIndex a_vof,
const EBCellFAB a_primState,
const int &  a_dir,
const int &  a_ivar 
)
private

◆ pointGetSlopes()

void EBAdvectPatchIntegrator::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 
)
private

◆ bilinearFunc()

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

◆ pointGetSlopesUpwind()

void EBAdvectPatchIntegrator::pointGetSlopesUpwind ( 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 
)
private

◆ doNormalDerivativeExtr2D()

void EBAdvectPatchIntegrator::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],
const EBCellFAB a_primState,
const EBCellFAB a_source,
const DataIndex a_dit,
const Real a_time,
const Real a_dt 
)
private

and this is the simplified version

◆ slope()

void EBAdvectPatchIntegrator::slope ( EBCellFAB a_slopePrim,
const EBCellFAB a_primState,
const int &  a_dir,
const Box a_box 
)
private

options for 4th ordeer slopes and flattening removed

◆ finalExtrap2D()

void EBAdvectPatchIntegrator::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 Real a_time,
const Real a_dt 
)
private

◆ finalExtrap3D()

void EBAdvectPatchIntegrator::finalExtrap3D ( EBCellFAB  a_primMinu[SpaceDim],
EBCellFAB  a_primPlus[SpaceDim],
const BaseIVFAB< Real a_coveredFluxMinu3D[SpaceDim][SpaceDim],
const BaseIVFAB< Real a_coveredFluxPlus3D[SpaceDim][SpaceDim],
const EBFaceFAB  a_fluxTwo[SpaceDim][SpaceDim],
const EBCellFAB a_primState,
const Real a_time,
const Real a_dt 
)
private

◆ do111coupling()

void EBAdvectPatchIntegrator::do111coupling ( EBFaceFAB  a_fluxTwo[SpaceDim][SpaceDim],
BaseIVFAB< Real a_coveredFluxMinu3D[SpaceDim][SpaceDim],
BaseIVFAB< Real a_coveredFluxPlus3D[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 DataIndex a_dit,
const Real a_time,
const Real a_dt 
)
private

◆ doNormalDerivativeExtr3D()

void EBAdvectPatchIntegrator::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],
const EBCellFAB a_primState,
const EBCellFAB a_source,
const DataIndex a_dit,
const Real a_time,
const Real a_dt 
)
private

◆ normalPred()

void EBAdvectPatchIntegrator::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 
)
private

◆ incrementWithSource()

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

◆ updatePrim()

void EBAdvectPatchIntegrator::updatePrim ( EBCellFAB a_primMinu,
EBCellFAB a_primPlus,
const EBFaceFAB a_primFace,
const BaseIVFAB< Real > &  a_coveredPrimMinu,
const BaseIVFAB< Real > &  a_coveredPrimPlus,
const Vector< VolIndex > &  a_coveredFaceMinu,
const Vector< VolIndex > &  a_coveredFacePlus,
const int &  a_faceDir,
const Box a_box,
const Real a_scale 
)
private

◆ upwindSlope()

void EBAdvectPatchIntegrator::upwindSlope ( EBCellFAB a_slopeUpWi,
const EBCellFAB a_primState,
const int &  a_dir,
const Box a_box 
)
private

◆ transversePred()

void EBAdvectPatchIntegrator::transversePred ( EBCellFAB a_rhoLo,
EBCellFAB a_rhoHi,
const EBCellFAB a_rho,
const EBCellFAB a_dRho,
const Real a_dtbydx,
const int &  a_dir,
const Box a_box 
)
private

Member Data Documentation

◆ m_advectionVelPtr

const EBFluxFAB* EBAdvectPatchIntegrator::m_advectionVelPtr
private

Referenced by setVelocities().

◆ m_normalVelPtr

const EBCellFAB* EBAdvectPatchIntegrator::m_normalVelPtr
private

Referenced by setVelocities().

◆ m_isVelSet

bool EBAdvectPatchIntegrator::m_isVelSet
private

Referenced by setVelocities().

◆ m_isMaxMinSet

bool EBAdvectPatchIntegrator::m_isMaxMinSet
private

Referenced by setMaxMin().

◆ m_useLimiting

bool EBAdvectPatchIntegrator::m_useLimiting
private

◆ m_maxVal

Real EBAdvectPatchIntegrator::m_maxVal
private

Referenced by setMaxMin().

◆ m_minVal

Real EBAdvectPatchIntegrator::m_minVal
private

Referenced by setMaxMin().

◆ m_bc

RefCountedPtr<EBPhysIBC> EBAdvectPatchIntegrator::m_bc
private

Referenced by setEBPhysIBC().

◆ m_isBCSet

bool EBAdvectPatchIntegrator::m_isBCSet
private

Referenced by setEBPhysIBC().

◆ m_validBox

Box EBAdvectPatchIntegrator::m_validBox
private

◆ m_domain

ProblemDomain EBAdvectPatchIntegrator::m_domain
private

Referenced by setEBPhysIBC().

◆ m_ebisBox

EBISBox EBAdvectPatchIntegrator::m_ebisBox
private

◆ m_dx

RealVect EBAdvectPatchIntegrator::m_dx
private

Referenced by setEBPhysIBC().

◆ m_cfivs

IntVectSet EBAdvectPatchIntegrator::m_cfivs
private

◆ m_validBoxG4

Box EBAdvectPatchIntegrator::m_validBoxG4
private

◆ m_irregVoFs

Vector<VolIndex> EBAdvectPatchIntegrator::m_irregVoFs
private

◆ m_coveredSetsPlusG4

IntVectSet EBAdvectPatchIntegrator::m_coveredSetsPlusG4[SpaceDim]
private

◆ m_coveredSetsMinuG4

IntVectSet EBAdvectPatchIntegrator::m_coveredSetsMinuG4[SpaceDim]
private

◆ m_coveredFacePlusG4

Vector<VolIndex> EBAdvectPatchIntegrator::m_coveredFacePlusG4[SpaceDim]
private

◆ m_coveredFaceMinuG4

Vector<VolIndex> EBAdvectPatchIntegrator::m_coveredFaceMinuG4[SpaceDim]
private

◆ s_curComp

int EBAdvectPatchIntegrator::s_curComp
staticprivate

these exist because special things have to be done for velocity

Referenced by getCurComp(), and setCurComp().

◆ s_doingVel

int EBAdvectPatchIntegrator::s_doingVel
staticprivate

Referenced by getDoingVel(), and setDoingVel().


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