11 #ifndef _EBADVECTPATCHINTEGRATOR_H_    12 #define _EBADVECTPATCHINTEGRATOR_H_    26 #include "NamespaceHeader.H"    28 #define EBAPI_TOL 1.e-12    48                           bool                  a_useSlopeLimiting);
   141                  const Box&                        a_box) 
const;
   163                    const int                                      &  a_doingVel);
   168                       const Box&       a_validBox);
   200                        const int&              a_faceDir,
   205                  const Real& a_minVal)
   278           const int&              a_faceDir,
   287           const int&       a_faceDir,
   298                          const int&              a_faceDir,
   302                          const int&              a_numPrim);
   308                          const int&              a_faceDir,
   312                          const int&              a_numPrim);
   326                        const int&              a_faceDir,
   335                          const int&              a_faceDir,
   339                          const int&              a_numPrim);
   346                          const int&              a_faceDir,
   350                          const int&              a_numPrim);
   374                  bool&            a_hasFacesLeft,
   375                  bool&            a_hasFacesRigh,
   380                  const bool&      a_verbose);
   391                        bool&            a_hasFacesLeft,
   392                        bool&            a_hasFacesRigh,
   397                        const bool&      a_verbose);
   440                 const EBFaceFAB        a_fluxTwo[SpaceDim][SpaceDim],
   499              const int&              a_faceDir,
   501              const Real&             a_scale);
   514                  const Real&      a_dtbydx,
   519 #include "NamespaceFooter.H" 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 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 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)
 
Definition: Stencils.H:194
 
An irregular domain on an integer lattice. 
Definition: IntVectSet.H:44
 
A class to facilitate interaction with physical boundary conditions. 
Definition: ProblemDomain.H:141
 
bool m_isMaxMinSet
Definition: EBAdvectPatchIntegrator.H:215
 
void consUndividedDivergence(BaseIVFAB< Real > &a_divF, const BaseIFFAB< Real > a_centroidFlux[SpaceDim], const IntVectSet &a_ivs)
 
const EBFluxFAB * m_advectionVelPtr
Definition: EBAdvectPatchIntegrator.H:212
 
virtual ~EBAdvectPatchIntegrator()
Definition: EBAdvectPatchIntegrator.H:50
 
one dimensional dynamic array 
Definition: Vector.H:53
 
bool m_isVelSet
Definition: EBAdvectPatchIntegrator.H:214
 
Definition: FaceIndex.H:28
 
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 setMaxMin(const Real &a_maxVal, const Real &a_minVal)
Definition: EBAdvectPatchIntegrator.H:204
 
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 
 
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 slope(EBCellFAB &a_slopePrim, const EBCellFAB &a_primState, const int &a_dir, const Box &a_box)
options for 4th ordeer slopes and flattening removed 
 
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 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 setVelocities(const EBCellFAB &a_normalVel, const EBFluxFAB &a_advectionVel)
Definition: EBAdvectPatchIntegrator.H:105
 
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 interpolateFluxToCentroids(BaseIFFAB< Real > a_centroidFlux[SpaceDim], const BaseIFFAB< Real > *const a_fluxInterpolant[SpaceDim], const IntVectSet &a_irregIVS)
 
Definition: EBFaceFAB.H:28
 
Definition: EBAdvectPatchIntegrator.H:38
 
Real m_maxVal
Definition: EBAdvectPatchIntegrator.H:217
 
const int SpaceDim
Definition: SPACE.H:38
 
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 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)
 
Vector< VolIndex > m_coveredFaceMinuG4[SpaceDim]
Definition: EBAdvectPatchIntegrator.H:233
 
A EBFaceFAB-like container for edge-centered fluxes. 
Definition: EBFluxFAB.H:25
 
IntVectSet m_coveredSetsPlusG4[SpaceDim]
Definition: EBAdvectPatchIntegrator.H:230
 
RealVect m_dx
Definition: EBAdvectPatchIntegrator.H:225
 
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)
 
Real m_minVal
Definition: EBAdvectPatchIntegrator.H:218
 
static int s_doingVel
Definition: EBAdvectPatchIntegrator.H:237
 
bool m_useLimiting
Definition: EBAdvectPatchIntegrator.H:216
 
void upwindSlope(EBCellFAB &a_slopeUpWi, const EBCellFAB &a_primState, const int &a_dir, const Box &a_box)
 
Definition: EBCellFAB.H:29
 
bool m_isBCSet
Definition: EBAdvectPatchIntegrator.H:221
 
double Real
Definition: REAL.H:33
 
void floorPrimitives(EBCellFAB &a_primState, const Box &a_box)
floors if m_isMaxMinSet 
 
Box m_validBoxG4
Definition: EBAdvectPatchIntegrator.H:227
 
Vector< VolIndex > m_coveredFacePlusG4[SpaceDim]
Definition: EBAdvectPatchIntegrator.H:232
 
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 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)
 
IntVectSet m_coveredSetsMinuG4[SpaceDim]
Definition: EBAdvectPatchIntegrator.H:231
 
LoHiSide
Definition: LoHiSide.H:27
 
void coveredExtrapSlopes(Real &a_dq, const VolIndex &a_vof, const EBCellFAB &a_primState, const int &a_dir, const int &a_ivar)
 
void incrementWithSource(EBCellFAB &a_primState, const EBCellFAB &a_source, const Real &a_scale, 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)
 
ProblemDomain m_domain
Definition: EBAdvectPatchIntegrator.H:223
 
static int getDoingVel()
Definition: EBAdvectPatchIntegrator.H:181
 
Definition: EBPhysIBCFactory.H:25
 
IntVectSet m_cfivs
Definition: EBAdvectPatchIntegrator.H:226
 
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)
 
virtual void define(const ProblemDomain &a_domain, const RealVect &a_dx)=0
 
A Rectangular Domain on an Integer Lattice. 
Definition: Box.H:465
 
A Real vector in SpaceDim-dimensional space. 
Definition: RealVect.H:41
 
Definition: DataIndex.H:112
 
Definition: BaseIFFAB.H:34
 
EBISBox m_ebisBox
Definition: EBAdvectPatchIntegrator.H:224
 
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) 
 
const EBCellFAB * m_normalVelPtr
Definition: EBAdvectPatchIntegrator.H:213
 
EBAdvectPatchIntegrator()
weak construction is bad. 
 
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)
 
static int s_curComp
these exist because special things have to be done for velocity 
Definition: EBAdvectPatchIntegrator.H:236
 
Box m_validBox
Definition: EBAdvectPatchIntegrator.H:222
 
RefCountedPtr< EBPhysIBC > m_bc
Definition: EBAdvectPatchIntegrator.H:220
 
Vector< VolIndex > m_irregVoFs
Definition: EBAdvectPatchIntegrator.H:228
 
Volume of Fluid Index. 
Definition: VolIndex.H:31
 
void setEBPhysIBC(const EBPhysIBCFactory &a_bc)
Definition: EBAdvectPatchIntegrator.H:98
 
void kappaDivergenceFlux(EBCellFAB &a_kappaDivF, const EBFluxFAB &a_centroidFlux, const Box &a_validBox)
 
virtual EBPhysIBC * create() const =0
 
Real bilinearFunc(const Real a_WVal[2][2], const Real &a_xd1, const Real &a_xd2)
 
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 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 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)
 
FaceStencil getInterpStencil(const FaceIndex &a_face) const
 
static int getCurComp()
Definition: EBAdvectPatchIntegrator.H:185
 
static void setDoingVel(int a_yesorno)
Definition: EBAdvectPatchIntegrator.H:176
 
static void setCurComp(int a_curComp)
here are a couple of awful hooks necessary to get the minutiae of the algorithm correct ...
Definition: EBAdvectPatchIntegrator.H:171