#include <EBLevelAdvect.H>
Public Member Functions | |
EBLevelAdvect () | |
Default constructor. | |
~EBLevelAdvect () | |
Destructor. | |
EBLevelAdvect (const DisjointBoxLayout &a_thisDBL, const DisjointBoxLayout &a_coarDBL, const EBISLayout &a_thisEBISL, const EBISLayout &a_coarEBISL, const ProblemDomain &a_DProblem, const int &a_nRefine, const RealVect &a_dx, const bool &a_hasCoarser, const bool &a_hasFiner, const EBPatchGodunovFactory *const a_patchGodunov) | |
void | define (const DisjointBoxLayout &a_thisDBL, const DisjointBoxLayout &a_coarDBL, const EBISLayout &a_thisEBISL, const EBISLayout &a_coarEBISL, const ProblemDomain &a_DProblem, const int &a_nRefine, const RealVect &a_dx, const bool &a_hasCoarser, const bool &a_hasFiner, const EBPatchGodunovFactory *const a_patchGodunov) |
Actual constructor. | |
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) |
void | advectToFaces (EBFluxFAB &a_extrapState, BaseIVFAB< Real > &a_boundaryPrim, 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, bool a_doBoundaryPrim) |
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 |
bool | isDefined () const |
EBPatchAdvect & | getPatchAdvect (const DataIndex &a_dit) |
void | resetBCs (const RefCountedPtr< EBPhysIBCFactory > &a_advectBC) |
Protected Attributes | |
bool | m_hasCoarser |
bool | m_hasFiner |
bool | m_isDefined |
RealVect | m_dx |
int | m_refRatCrse |
int | m_nVar |
int | m_nGhost |
DisjointBoxLayout | m_thisGrids |
DisjointBoxLayout | m_coarGrids |
EBISLayout | m_thisEBISL |
EBISLayout | m_coarEBISL |
EBPWLFillPatch | m_fillPatch |
EBPWLFillPatch | m_fillPatchVel |
ProblemDomain | m_domain |
LayoutData< EBPatchAdvect * > | m_ebPatchAdvect |
Private Member Functions | |
void | operator= (const EBLevelAdvect &a_input) |
EBLevelAdvect (const EBLevelAdvect &a_input) |
EBLevelAdvect::EBLevelAdvect | ( | ) |
Default constructor.
Object requires define(..) to be called before all other functions.
EBLevelAdvect::~EBLevelAdvect | ( | ) |
Destructor.
destroys all objects created by define(..). Passed in data references of define(..) are left alone.
EBLevelAdvect::EBLevelAdvect | ( | const DisjointBoxLayout & | a_thisDBL, | |
const DisjointBoxLayout & | a_coarDBL, | |||
const EBISLayout & | a_thisEBISL, | |||
const EBISLayout & | a_coarEBISL, | |||
const ProblemDomain & | a_DProblem, | |||
const int & | a_nRefine, | |||
const RealVect & | a_dx, | |||
const bool & | a_hasCoarser, | |||
const bool & | a_hasFiner, | |||
const EBPatchGodunovFactory *const | a_patchGodunov | |||
) |
EBLevelAdvect::EBLevelAdvect | ( | const EBLevelAdvect & | a_input | ) | [inline, private] |
References MayDay::Error().
void EBLevelAdvect::define | ( | const DisjointBoxLayout & | a_thisDBL, | |
const DisjointBoxLayout & | a_coarDBL, | |||
const EBISLayout & | a_thisEBISL, | |||
const EBISLayout & | a_coarEBISL, | |||
const ProblemDomain & | a_DProblem, | |||
const int & | a_nRefine, | |||
const RealVect & | a_dx, | |||
const bool & | a_hasCoarser, | |||
const bool & | a_hasFiner, | |||
const EBPatchGodunovFactory *const | a_patchGodunov | |||
) |
Actual constructor.
For the coarsest level, an empty DisjointBoxLayout is passed in for coaserDisjointBoxLayout. Inside the routine, we cast away const-ness on the data members for the assignment. The arguments passed in are maintained const. (coding standards). a_nRefine is the refinement ratio between this level and the next coarser level. a_numGhosts is the number of ghost cells in each direction.
void EBLevelAdvect::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 | |||
) |
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 EBLevelAdvect::advectToFaces | ( | EBFluxFAB & | a_extrapState, | |
BaseIVFAB< Real > & | a_boundaryPrim, | |||
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, | |||
bool | a_doBoundaryPrim | |||
) |
void EBLevelAdvect::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 |
bool EBLevelAdvect::isDefined | ( | ) | const |
EBPatchAdvect& EBLevelAdvect::getPatchAdvect | ( | const DataIndex & | a_dit | ) | [inline] |
References m_ebPatchAdvect.
void EBLevelAdvect::resetBCs | ( | const RefCountedPtr< EBPhysIBCFactory > & | a_advectBC | ) |
void EBLevelAdvect::operator= | ( | const EBLevelAdvect & | a_input | ) | [inline, private] |
References MayDay::Error().
bool EBLevelAdvect::m_hasCoarser [protected] |
bool EBLevelAdvect::m_hasFiner [protected] |
bool EBLevelAdvect::m_isDefined [protected] |
RealVect EBLevelAdvect::m_dx [protected] |
int EBLevelAdvect::m_refRatCrse [protected] |
int EBLevelAdvect::m_nVar [protected] |
int EBLevelAdvect::m_nGhost [protected] |
DisjointBoxLayout EBLevelAdvect::m_thisGrids [protected] |
DisjointBoxLayout EBLevelAdvect::m_coarGrids [protected] |
EBISLayout EBLevelAdvect::m_thisEBISL [protected] |
EBISLayout EBLevelAdvect::m_coarEBISL [protected] |
EBPWLFillPatch EBLevelAdvect::m_fillPatch [protected] |
EBPWLFillPatch EBLevelAdvect::m_fillPatchVel [protected] |
ProblemDomain EBLevelAdvect::m_domain [protected] |
LayoutData<EBPatchAdvect*> EBLevelAdvect::m_ebPatchAdvect [protected] |
Referenced by getPatchAdvect().