#include <EBAdvectLevelIntegrator.H>
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) |
EBAdvectPatchIntegrator & | getPatchAdvect (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< AggEBPWLFillPatch > | m_fillPatch |
RefCountedPtr< AggEBPWLFillPatch > | m_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 |
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
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().
bool EBAdvectLevelIntegrator::m_hasCoarser [protected] |
bool EBAdvectLevelIntegrator::m_hasFiner [protected] |
bool EBAdvectLevelIntegrator::m_useSlopeLimiting [protected] |
bool EBAdvectLevelIntegrator::m_forceNoEBCF [protected] |
RealVect EBAdvectLevelIntegrator::m_dx [protected] |
int EBAdvectLevelIntegrator::m_refRatCrse [protected] |
int EBAdvectLevelIntegrator::m_nVar [protected] |
int EBAdvectLevelIntegrator::m_nGhost [protected] |
EBLevelGrid EBAdvectLevelIntegrator::m_thisEBLG [protected] |
EBLevelGrid EBAdvectLevelIntegrator::m_coarEBLG [protected] |
ProblemDomain EBAdvectLevelIntegrator::m_domain [protected] |
LayoutData<RefCountedPtr<EBAdvectPatchIntegrator> > EBAdvectLevelIntegrator::m_ebPatchAdvect [protected] |
Referenced by getPatchAdvect().