EBAdvectLevelIntegrator Class Reference

#include <EBAdvectLevelIntegrator.H>

List of all members.


Detailed Description

Advection and diffusion on a level using

Public Member Functions

 ~EBAdvectLevelIntegrator ()
 Destructor.
 EBAdvectLevelIntegrator (const EBLevelGrid &a_thisEBLG, const EBLevelGrid &a_coarEBLG, const int &a_nRefine, const RealVect &a_dx, const bool &a_hasCoarser, const bool &a_hasFiner, const bool &a_useSlopeLimiting, const bool &a_forceNoEBCF=false, const EBIndexSpace *const a_eb=Chombo_EBIS::instance())
void advectToFacesCol (LevelData< EBFluxFAB > &a_extrapState, LayoutData< Vector< BaseIVFAB< Real > * > > &a_coveredPrimLo, LayoutData< Vector< BaseIVFAB< Real > * > > &a_coveredPrimHi, const LayoutData< Vector< Vector< VolIndex > > > &a_coveredFaceLo, const LayoutData< Vector< Vector< VolIndex > > > &a_coveredFaceHi, const LayoutData< Vector< IntVectSet > > &a_coveredSetsLo, const LayoutData< Vector< IntVectSet > > &a_coveredSetsHi, const LevelData< EBCellFAB > &a_consState, const LevelData< EBCellFAB > &a_normalVel, const LevelData< EBFluxFAB > &a_advectionVel, const LevelData< EBCellFAB > *a_consStateCoarseOld, const LevelData< EBCellFAB > *a_consStateCoarseNew, const LevelData< EBCellFAB > *a_normalVelCoarseOld, const LevelData< EBCellFAB > *a_normalVelCoarseNew, const Real &a_timeCoarseOld, const Real &a_timeCoarseNew, const Real &a_timeFine, const Real &a_dt, const LevelData< EBCellFAB > *const a_source=NULL, const LevelData< EBCellFAB > *const a_sourceCoarOld=NULL, const LevelData< EBCellFAB > *const a_sourceCoarNew=NULL)
void advectToFaces (EBFluxFAB &a_extrapState, Vector< BaseIVFAB< Real > * > &a_coveredPrimLo, Vector< BaseIVFAB< Real > * > &a_coveredPrimHi, const Vector< Vector< VolIndex > > &a_coveredFaceLo, const Vector< Vector< VolIndex > > &a_coveredFaceHi, const Vector< IntVectSet > &a_coveredSetsLo, const Vector< IntVectSet > &a_coveredSetsHi, const EBCellFAB &a_consState, const EBCellFAB &a_normalVel, const EBFluxFAB &a_advectionVel, const Box &a_cellBox, const EBISBox &a_ebisBox, const Real &a_dt, const Real &a_time, const EBCellFAB &a_source, const DataIndex &a_dit)
void advectToFacesBCG (LevelData< EBFluxFAB > &a_extrapState, const LevelData< EBCellFAB > &a_consState, const LevelData< EBCellFAB > &a_normalVel, const LevelData< EBFluxFAB > &a_advectionVel, const LevelData< EBCellFAB > *a_consStateCoarseOld, const LevelData< EBCellFAB > *a_consStateCoarseNew, const LevelData< EBCellFAB > *a_normalVelCoarseOld, const LevelData< EBCellFAB > *a_normalVelCoarseNew, const Real &a_timeCoarseOld, const Real &a_timeCoarseNew, const Real &a_timeFine, const Real &a_dt, const LevelData< EBCellFAB > *const a_source=NULL, const LevelData< EBCellFAB > *const a_sourceCoarOld=NULL, const LevelData< EBCellFAB > *const a_sourceCoarNew=NULL)
void advectToFacesBCG (EBFluxFAB &a_extrapState, const EBCellFAB &a_consState, const EBCellFAB &a_normalVel, const EBFluxFAB &a_advectionVel, const Box &a_cellBox, const EBISBox &a_ebisBox, const Real &a_dt, const Real &a_time, const EBCellFAB &a_source, const DataIndex &a_dit)
void computeNormalVel (LevelData< EBCellFAB > &a_normalVel, const LevelData< EBFluxFAB > &a_advectionVel, const LayoutData< Vector< BaseIVFAB< Real > * > > &a_coveredVeloLo, const LayoutData< Vector< BaseIVFAB< Real > * > > &a_coveredVeloHi, const LayoutData< Vector< Vector< VolIndex > > > &a_coveredFaceLo, const LayoutData< Vector< Vector< VolIndex > > > &a_coveredFaceHi) const
void resetBCs (const RefCountedPtr< EBPhysIBCFactory > &a_advectBC)
EBAdvectPatchIntegratorgetPatchAdvect (const DataIndex &a_dit)

Protected Attributes

bool m_hasCoarser
bool m_hasFiner
bool m_useSlopeLimiting
bool m_forceNoEBCF
RealVect m_dx
int m_refRatCrse
int m_nVar
int m_nGhost
EBLevelGrid m_thisEBLG
EBLevelGrid m_coarEBLG
RefCountedPtr< AggEBPWLFillPatchm_fillPatch
RefCountedPtr< AggEBPWLFillPatchm_fillPatchVel
ProblemDomain m_domain
LayoutData< RefCountedPtr
< EBAdvectPatchIntegrator > > 
m_ebPatchAdvect

Private Member Functions

void operator= (const EBAdvectLevelIntegrator &a_input)
 EBAdvectLevelIntegrator (const EBAdvectLevelIntegrator &a_input)
 EBAdvectLevelIntegrator ()
 weak construction is bad

Constructor & Destructor Documentation

EBAdvectLevelIntegrator::~EBAdvectLevelIntegrator (  )  [inline]

Destructor.

destroys all objects created by define(..). Passed in data references of define(..) are left alone.

EBAdvectLevelIntegrator::EBAdvectLevelIntegrator ( const EBLevelGrid a_thisEBLG,
const EBLevelGrid a_coarEBLG,
const int &  a_nRefine,
const RealVect a_dx,
const bool &  a_hasCoarser,
const bool &  a_hasFiner,
const bool &  a_useSlopeLimiting,
const bool &  a_forceNoEBCF = false,
const EBIndexSpace *const   a_eb = Chombo_EBIS::instance() 
)

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.

EBAdvectLevelIntegrator::EBAdvectLevelIntegrator ( const EBAdvectLevelIntegrator a_input  )  [inline, private]

References MayDay::Error().

EBAdvectLevelIntegrator::EBAdvectLevelIntegrator (  )  [inline, private]

weak construction is bad


Member Function Documentation

void EBAdvectLevelIntegrator::advectToFacesCol ( LevelData< EBFluxFAB > &  a_extrapState,
LayoutData< Vector< BaseIVFAB< Real > * > > &  a_coveredPrimLo,
LayoutData< Vector< BaseIVFAB< Real > * > > &  a_coveredPrimHi,
const LayoutData< Vector< Vector< VolIndex > > > &  a_coveredFaceLo,
const LayoutData< Vector< Vector< VolIndex > > > &  a_coveredFaceHi,
const LayoutData< Vector< IntVectSet > > &  a_coveredSetsLo,
const LayoutData< Vector< IntVectSet > > &  a_coveredSetsHi,
const LevelData< EBCellFAB > &  a_consState,
const LevelData< EBCellFAB > &  a_normalVel,
const LevelData< EBFluxFAB > &  a_advectionVel,
const LevelData< EBCellFAB > *  a_consStateCoarseOld,
const LevelData< EBCellFAB > *  a_consStateCoarseNew,
const LevelData< EBCellFAB > *  a_normalVelCoarseOld,
const LevelData< EBCellFAB > *  a_normalVelCoarseNew,
const Real a_timeCoarseOld,
const Real a_timeCoarseNew,
const Real a_timeFine,
const Real a_dt,
const LevelData< EBCellFAB > *const   a_source = NULL,
const LevelData< EBCellFAB > *const   a_sourceCoarOld = NULL,
const LevelData< EBCellFAB > *const   a_sourceCoarNew = NULL 
)

1. Average advection velocity to cell centers to get unorm. 2. Do linear C/F interpolation on a_cellState and compute the diffusion source term if necessary. Quadratic is unnecessary because the laplacian does its own CF interpolation in the viscous case. 3. Do linear C/F interpolation in space and time 4. Extrapolate cellState to to faces using patchgodunov->extrapolatePrim

Notes: The advection velocity that is sent in is not used. It will be taken out in later designs

void EBAdvectLevelIntegrator::advectToFaces ( EBFluxFAB a_extrapState,
Vector< BaseIVFAB< Real > * > &  a_coveredPrimLo,
Vector< BaseIVFAB< Real > * > &  a_coveredPrimHi,
const Vector< Vector< VolIndex > > &  a_coveredFaceLo,
const Vector< Vector< VolIndex > > &  a_coveredFaceHi,
const Vector< IntVectSet > &  a_coveredSetsLo,
const Vector< IntVectSet > &  a_coveredSetsHi,
const EBCellFAB a_consState,
const EBCellFAB a_normalVel,
const EBFluxFAB a_advectionVel,
const Box a_cellBox,
const EBISBox a_ebisBox,
const Real a_dt,
const Real a_time,
const EBCellFAB a_source,
const DataIndex a_dit 
)

void EBAdvectLevelIntegrator::advectToFacesBCG ( LevelData< EBFluxFAB > &  a_extrapState,
const LevelData< EBCellFAB > &  a_consState,
const LevelData< EBCellFAB > &  a_normalVel,
const LevelData< EBFluxFAB > &  a_advectionVel,
const LevelData< EBCellFAB > *  a_consStateCoarseOld,
const LevelData< EBCellFAB > *  a_consStateCoarseNew,
const LevelData< EBCellFAB > *  a_normalVelCoarseOld,
const LevelData< EBCellFAB > *  a_normalVelCoarseNew,
const Real a_timeCoarseOld,
const Real a_timeCoarseNew,
const Real a_timeFine,
const Real a_dt,
const LevelData< EBCellFAB > *const   a_source = NULL,
const LevelData< EBCellFAB > *const   a_sourceCoarOld = NULL,
const LevelData< EBCellFAB > *const   a_sourceCoarNew = NULL 
)

void EBAdvectLevelIntegrator::advectToFacesBCG ( EBFluxFAB a_extrapState,
const EBCellFAB a_consState,
const EBCellFAB a_normalVel,
const EBFluxFAB a_advectionVel,
const Box a_cellBox,
const EBISBox a_ebisBox,
const Real a_dt,
const Real a_time,
const EBCellFAB a_source,
const DataIndex a_dit 
)

void EBAdvectLevelIntegrator::computeNormalVel ( LevelData< EBCellFAB > &  a_normalVel,
const LevelData< EBFluxFAB > &  a_advectionVel,
const LayoutData< Vector< BaseIVFAB< Real > * > > &  a_coveredVeloLo,
const LayoutData< Vector< BaseIVFAB< Real > * > > &  a_coveredVeloHi,
const LayoutData< Vector< Vector< VolIndex > > > &  a_coveredFaceLo,
const LayoutData< Vector< Vector< VolIndex > > > &  a_coveredFaceHi 
) const

void EBAdvectLevelIntegrator::resetBCs ( const RefCountedPtr< EBPhysIBCFactory > &  a_advectBC  ) 

EBAdvectPatchIntegrator& EBAdvectLevelIntegrator::getPatchAdvect ( const DataIndex a_dit  )  [inline]

References m_ebPatchAdvect.

void EBAdvectLevelIntegrator::operator= ( const EBAdvectLevelIntegrator a_input  )  [inline, private]

References MayDay::Error().


Member Data Documentation

Referenced by getPatchAdvect().


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

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