| 
    Chombo + EB
    3.2
    
   | 
 
#include <EBLevelAdvect.H>
Public Member Functions | |
| EBLevelAdvect () | |
| Default constructor.  More... | |
| ~EBLevelAdvect () | |
| Destructor.  More... | |
| 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, const bool &a_forceNoEBCF=false, const EBIndexSpace *const a_eb=Chombo_EBIS::instance()) | |
| 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, const bool &a_forceNoEBCF=false, const EBIndexSpace *const a_eb=Chombo_EBIS::instance()) | 
| Actual constructor.  More... | |
| 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, 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 | 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, BaseIVFAB< Real > &a_boundaryPrim, 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_forceNoEBCF | 
| 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 | 
| AggEBPWLFillPatch | m_fillPatch | 
| AggEBPWLFillPatch | m_fillPatchVel | 
| ProblemDomain | m_domain | 
| LayoutData< EBPatchAdvect * > | m_ebPatchAdvect | 
Private Member Functions | |
| void | operator= (const EBLevelAdvect &a_input) | 
| EBLevelAdvect (const EBLevelAdvect &a_input) | |
Advection and diffusion on a level using
| 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, | ||
| 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.
      
  | 
  inlineprivate | 
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, | ||
| const bool & | a_forceNoEBCF = false,  | 
        ||
| const EBIndexSpace *const | a_eb = Chombo_EBIS::instance()  | 
        ||
| ) | 
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. 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.
| 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,  | 
        ||
| const LevelData< EBCellFAB > *const | a_sourceCoarOld = NULL,  | 
        ||
| const LevelData< EBCellFAB > *const | a_sourceCoarNew = NULL  | 
        ||
| ) | 
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::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 EBLevelAdvect::advectToFacesBCG | ( | EBFluxFAB & | a_extrapState, | 
| BaseIVFAB< Real > & | a_boundaryPrim, | ||
| 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 | 
      
  | 
  inline | 
References m_ebPatchAdvect, and resetBCs().
| void EBLevelAdvect::resetBCs | ( | const RefCountedPtr< EBPhysIBCFactory > & | a_advectBC | ) | 
Referenced by getPatchAdvect().
      
  | 
  inlineprivate | 
References MayDay::Error().
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
Referenced by getPatchAdvect().
 1.8.13