13#ifndef CD_EBFLUXREDISTRIBUTION_H
14#define CD_EBFLUXREDISTRIBUTION_H
17#include <EBLevelGrid.H>
23#include <CD_NamespaceHeader.H>
294#include <CD_NamespaceFooter.H>
Class for redistribution ala Chombo's flux redistribution.
Definition CD_EBFluxRedistribution.H:44
virtual void redistributeFine(LevelData< EBCellFAB > &a_phiFine, const LevelData< BaseIVFAB< Real > > &a_deltaM, const Real &a_scaleFine, const Interval &a_variables) const noexcept
Redistribute the input quantity to the coarse level.
Definition CD_EBFluxRedistribution.cpp:591
int m_refToCoar
Refinement factor between this level and the coarse level.
Definition CD_EBFluxRedistribution.H:192
bool m_hasCoar
Has coarse level or not.
Definition CD_EBFluxRedistribution.H:182
EBFluxRedistribution() noexcept
Weak constructor. Need to call define afterwards.
Definition CD_EBFluxRedistribution.cpp:26
bool m_hasFine
Has fine level or not.
Definition CD_EBFluxRedistribution.H:187
int m_refToFine
Refinement factor between this level and the fine level.
Definition CD_EBFluxRedistribution.H:197
LayoutData< BaseIVFAB< VoFStencil > > m_redistStencilsFine
Stencils for redistribution into valid grid cells on the fine level.
Definition CD_EBFluxRedistribution.H:260
bool m_redistributeOutside
If true, redistribute to the outside. Otherwise, do interior redistribution.
Definition CD_EBFluxRedistribution.H:177
virtual void defineBuffers() noexcept
Define buffer storages.
Definition CD_EBFluxRedistribution.cpp:412
virtual void defineValidCells(LevelData< BaseFab< bool > > &a_validCells) const noexcept
Define the valid region of this level.
Definition CD_EBFluxRedistribution.cpp:298
virtual void defineInterfaceCells(LevelData< BaseFab< bool > > &a_interfaceCells) const noexcept
Define the cells on the coarse side of the CF interface that we would redistribute to.
Definition CD_EBFluxRedistribution.cpp:368
virtual void defineStencils() noexcept
Define redistribution stencils.
Definition CD_EBFluxRedistribution.cpp:124
EBLevelGrid m_eblgFine
Fine grids.
Definition CD_EBFluxRedistribution.H:227
virtual ~EBFluxRedistribution() noexcept
Destructor (does nothing)
Definition CD_EBFluxRedistribution.cpp:52
int m_redistRadius
Redistribution radius. Always one.
Definition CD_EBFluxRedistribution.H:202
bool m_isDefined
Is defined or not.
Definition CD_EBFluxRedistribution.H:172
Copier m_fineCopier
Copier for copying from the refinement of this level to the fine level.
Definition CD_EBFluxRedistribution.H:242
LayoutData< BaseIVFAB< VoFStencil > > m_redistStencilsCoar
Stencils for redistribution into valid grid cells on the coarse level.
Definition CD_EBFluxRedistribution.H:248
Copier m_levelCopier
Copier for adding data from this level to this level (yes, really).
Definition CD_EBFluxRedistribution.H:237
virtual void define(const EBLevelGrid &a_eblgCoar, const EBLevelGrid &a_eblgCoarsened, const EBLevelGrid &a_eblg, const EBLevelGrid &a_eblgRefined, const EBLevelGrid &a_eblgFine, const int a_refToCoar, const int a_refToFine, const bool a_redistributeOutside) noexcept
Define function. Puts object in usable state.
Definition CD_EBFluxRedistribution.cpp:58
EBLevelGrid m_eblgCoar
Grids on coarser level.
Definition CD_EBFluxRedistribution.H:207
virtual void redistributeLevel(LevelData< EBCellFAB > &a_phi, const LevelData< BaseIVFAB< Real > > &a_deltaM, const Real &a_scale, const Interval &a_variables) const noexcept
Redistribute the input quantity to this level.
Definition CD_EBFluxRedistribution.cpp:532
LayoutData< VoFIterator > m_vofit
Iterator for going through all cells on this level that we redistribute from.
Definition CD_EBFluxRedistribution.H:265
Copier m_coarCopier
Copier for copying from the coarsening of this level to the coarse level.
Definition CD_EBFluxRedistribution.H:232
EBLevelGrid m_eblgCoarsened
Grids on this level that are a refinement of the coarser level.
Definition CD_EBFluxRedistribution.H:212
virtual void redistributeAMR(LevelData< EBCellFAB > *a_phiCoar, LevelData< EBCellFAB > *a_phi, LevelData< EBCellFAB > *a_phiFine, const LevelData< BaseIVFAB< Real > > &a_deltaM, const Real a_scaleCoar, const Real a_scale, const Real a_scaleFine, const Interval &a_variables) const noexcept
Redistribute the input quantity into the coarse level, this level, and the fine level.
Definition CD_EBFluxRedistribution.cpp:443
EBFluxRedistribution(const EBFluxRedistribution &a_other)=delete
Copy constructor is not allowed.
EBLevelGrid m_eblgRefined
Grids on this level that are a coarsening of the fine level.
Definition CD_EBFluxRedistribution.H:222
LayoutData< BaseIVFAB< VoFStencil > > m_redistStencilsLevel
Stencils for redistribution into valid grid cells on this level.
Definition CD_EBFluxRedistribution.H:254
EBLevelGrid m_eblg
Grids on this level.
Definition CD_EBFluxRedistribution.H:217
virtual void redistributeCoar(LevelData< EBCellFAB > &a_phiCoar, const LevelData< BaseIVFAB< Real > > &a_deltaM, const Real &a_scaleCoar, const Interval &a_variables) const noexcept
Redistribute the input quantity to the coarse level.
Definition CD_EBFluxRedistribution.cpp:473
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38