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

#include <EBAdvectLevelIntegrator.H>

Public Member Functions

 ~EBAdvectLevelIntegrator ()
 Destructor. More...
 
 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 More...
 

Detailed Description

Advection and diffusion on a level using

Constructor & Destructor Documentation

◆ ~EBAdvectLevelIntegrator()

EBAdvectLevelIntegrator::~EBAdvectLevelIntegrator ( )
inline

Destructor.

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

References advectToFaces(), advectToFacesBCG(), advectToFacesCol(), computeNormalVel(), EBAdvectLevelIntegrator(), Chombo_EBIS::instance(), and resetBCs().

◆ EBAdvectLevelIntegrator() [1/3]

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() [2/3]

EBAdvectLevelIntegrator::EBAdvectLevelIntegrator ( const EBAdvectLevelIntegrator a_input)
inlineprivate

References MayDay::Error().

◆ EBAdvectLevelIntegrator() [3/3]

EBAdvectLevelIntegrator::EBAdvectLevelIntegrator ( )
inlineprivate

weak construction is bad

Referenced by ~EBAdvectLevelIntegrator().

Member Function Documentation

◆ advectToFacesCol()

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

Referenced by ~EBAdvectLevelIntegrator().

◆ advectToFaces()

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 
)

◆ advectToFacesBCG() [1/2]

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 
)

◆ advectToFacesBCG() [2/2]

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 
)

◆ computeNormalVel()

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

◆ resetBCs()

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

◆ getPatchAdvect()

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

References m_ebPatchAdvect.

◆ operator=()

void EBAdvectLevelIntegrator::operator= ( const EBAdvectLevelIntegrator a_input)
inlineprivate

References MayDay::Error().

Member Data Documentation

◆ m_hasCoarser

bool EBAdvectLevelIntegrator::m_hasCoarser
protected

◆ m_hasFiner

bool EBAdvectLevelIntegrator::m_hasFiner
protected

◆ m_useSlopeLimiting

bool EBAdvectLevelIntegrator::m_useSlopeLimiting
protected

◆ m_forceNoEBCF

bool EBAdvectLevelIntegrator::m_forceNoEBCF
protected

◆ m_dx

RealVect EBAdvectLevelIntegrator::m_dx
protected

◆ m_refRatCrse

int EBAdvectLevelIntegrator::m_refRatCrse
protected

◆ m_nVar

int EBAdvectLevelIntegrator::m_nVar
protected

◆ m_nGhost

int EBAdvectLevelIntegrator::m_nGhost
protected

◆ m_thisEBLG

EBLevelGrid EBAdvectLevelIntegrator::m_thisEBLG
protected

◆ m_coarEBLG

EBLevelGrid EBAdvectLevelIntegrator::m_coarEBLG
protected

◆ m_fillPatch

RefCountedPtr<AggEBPWLFillPatch> EBAdvectLevelIntegrator::m_fillPatch
protected

◆ m_fillPatchVel

RefCountedPtr<AggEBPWLFillPatch> EBAdvectLevelIntegrator::m_fillPatchVel
protected

◆ m_domain

ProblemDomain EBAdvectLevelIntegrator::m_domain
protected

◆ m_ebPatchAdvect

LayoutData<RefCountedPtr<EBAdvectPatchIntegrator> > EBAdvectLevelIntegrator::m_ebPatchAdvect
protected

Referenced by getPatchAdvect().


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