|
| EBReflux () noexcept |
| Disallowed constructor.
|
|
| EBReflux (const EBReflux &a_other)=delete |
| Disallowed copy constructor.
|
|
| EBReflux (const EBLevelGrid &a_eblg, const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoFi, const int a_refRat) noexcept |
| Full constructor. Calls the define function. More...
|
|
virtual | ~EBReflux () noexcept |
| Destructor (does nothing)
|
|
virtual void | define (const EBLevelGrid &a_eblg, const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoFi, const int a_refRat) noexcept |
| Define method. Puts object in usable state. More...
|
|
virtual void | reflux (LevelData< EBCellFAB > &a_Lphi, const LevelData< EBFluxFAB > &a_flux, const LevelData< EBFluxFAB > &a_fineFlux, const Interval a_variables, const Real a_scaleCoarFlux, const Real a_scaleFineFlux) const noexcept |
| Reflux into the coarse data. More...
|
|
|
virtual void | defineRegionsCF () noexcept |
| Define coarse-fine interface regions so that we can compute things later.
|
|
virtual void | defineStencils () noexcept |
| Define the stencils required for coarsening the fine-grid fluxes onto the coarse grid.
|
|
virtual void | defineBuffers () noexcept |
| Define buffers.
|
|
virtual void | coarsenFluxesCF (LevelData< EBFluxFAB > &a_coarFluxes, const LevelData< EBFluxFAB > &a_fineFluxes, const int a_coarVar, const int a_fineVar) const noexcept |
| Coarsen the input fine fluxes onto the coarse fluxes. More...
|
|
virtual void | refluxIntoCoarse (LevelData< EBCellFAB > &a_Lphi, const LevelData< EBFluxFAB > &a_oldFluxes, const LevelData< EBFluxFAB > &a_newFluxes, const int a_phiVar, const int a_oldFluxVar, const int a_newFluxVar, const Real a_scaleCoarFlux, const Real a_scaleFineFlux) const noexcept |
| Reflux data into a_Lphi. More...
|
|
|
bool | m_isDefined |
| Is defined or not.
|
|
int | m_refRat |
| Refinement factor between fine and coarse level.
|
|
EBLevelGrid | m_eblgFine |
| Fine grids.
|
|
EBLevelGrid | m_eblg |
| Grid on this level.
|
|
EBLevelGrid | m_eblgCoFi |
| Coarsened fine grids.
|
|
Copier | m_copier |
| Copier for copying from the coarsened fine grids to the coarse grids.
|
|
LayoutData< std::map< std::pair< int, Side::LoHiSide >, BaseIFFAB< FaceStencil > > > | m_fluxCoarseningStencils |
| Stencils for conservatively coarsening fine-grid fluxes onto the coarse grid.
|
|
LayoutData< std::map< std::pair< int, Side::LoHiSide >, DenseIntVectSet > > | m_regularCoarseFineRegions |
| Regular coarse-fine regions for coarse-grid patches.
|
|
LayoutData< std::map< std::pair< int, Side::LoHiSide >, FaceIterator > > | m_fluxCoarseningRegions |
| Stencils for conservatively coarsening fine-grid fluxes onto the coarse grid.
|
|
LayoutData< std::map< std::pair< int, Side::LoHiSide >, VoFIterator > > | m_irregularCoarseFineRegions |
| Cut-cells in each patch that lie on the coarse-fine interface. More...
|
|
Class which can do refluxing across a coarse-fine interface.
This is like Chombos EBReflux, but trimmed for being faster & cheaper. This class will only reflux on the coarse-fine interface. If the user wants to accumulate fluxes, he/she should do it outside of this routine and only call the reflux method at the very end (only relevant for subcycling).
This reflux method operates slightly different from Chombo in that the coarse-grid fluxes are first constructed by conservatively coarsening the fine-grid fluxes. Then we do as we always do, subtracting the originan coarse-grid fluxes and adding in the corresponding fine-grid fluxes. Standard scaling factor for scaling the coarse/fine flux contributions are present, as always.