19#include <CD_NamespaceHeader.H>
201#include <CD_NamespaceFooter.H>
Declaration of a class which implements CdrMultigrid using Godunov-type advection.
Extensions of CdrSolver which use EBHelmholtzOp for diffusion solves.
Class that uses a slope limited method for advection, in combination with corner transport upwind (CT...
Definition CD_CdrCTU.H:25
virtual void upwind(EBFluxFAB &a_facePhi, const EBCellFAB &a_normalSlopes, const EBCellFAB &a_cellPhi, const EBCellFAB &a_cellVel, const EBFluxFAB &a_faceVel, const ProblemDomain &a_domain, const Box &a_cellBox, const int &a_level, const DataIndex &a_dit, const Real &a_dt)
Upwind/Riemann solve. This extrapolates the cell-centered data to the inside face centers and selects...
Definition CD_CdrCTU.cpp:524
CdrCTU()
Default constructor.
Definition CD_CdrCTU.cpp:23
virtual void parseOptions() override
Parse class options to put object in usable state.
Definition CD_CdrCTU.cpp:38
void defineIterators()
Build m_grownVofIter for all AMR levels.
Definition CD_CdrCTU.cpp:108
Limiter
Supported limiters.
Definition CD_CdrCTU.H:105
virtual void parseSlopeLimiter()
Parse slope limiting on/off.
Definition CD_CdrCTU.cpp:218
virtual void allocate() override
Allocate internal storage and build pre-built VoF iterators.
Definition CD_CdrCTU.cpp:72
static Real superbee(const Real &dwl, const Real &dwr) noexcept
Superbee slope limiter.
Definition CD_CdrCTU.cpp:838
virtual Real computeAdvectionDt() override
Compute the largest possible advective time step (for explicit methods).
Definition CD_CdrCTU.cpp:135
virtual void computeNormalSlopes(EBCellFAB &a_normalSlopes, const EBCellFAB &a_cellPhi, const Box &a_cellBox, const ProblemDomain &a_domain, const int a_level, const DataIndex &a_dit)
Compute slopes.
Definition CD_CdrCTU.cpp:312
virtual void preRegrid(const int a_lbase, const int a_oldFinestLevel) override
Pre-regrid hook — releases the grown VoF iterators.
Definition CD_CdrCTU.cpp:84
Vector< RefCountedPtr< LayoutData< VoFIterator > > > m_grownVofIter
Pre-built VoFIterators over grow(validBox,1) for the irregular kernel in computeNormalSlopes.
Definition CD_CdrCTU.H:93
virtual void parseRuntimeOptions() override
Parse runtime options.
Definition CD_CdrCTU.cpp:55
virtual void advectToFaces(EBAMRFluxData &a_facePhi, const EBAMRCellData &a_cellPhi, const Real a_dt) override
MUSCL advection to faces.
Definition CD_CdrCTU.cpp:249
static Real monotonizedCentral(const Real &dwl, const Real &dwr) noexcept
Monotonized central difference slope limiter.
Definition CD_CdrCTU.cpp:855
bool m_useCTU
If true, the discretization uses CTU. Otherwise it's DCU (donor cell upwind)
Definition CD_CdrCTU.H:120
static Real minmod(const Real &dwl, const Real &dwr) noexcept
minmod slope function.
Definition CD_CdrCTU.cpp:826
Limiter m_limiter
If true, slopes are limited in the normal direction.
Definition CD_CdrCTU.H:115
virtual void regrid(const int a_lbase, const int a_oldFinestLevel, const int a_newFinestLevel) override
Regrid method — also rebuilds the grown VoF iterators.
Definition CD_CdrCTU.cpp:96
virtual ~CdrCTU()
Destructor (does nothing)
Definition CD_CdrCTU.cpp:32
Extension class of CdrSolver that uses multigrid for diffusion part. Can also solve for stochastic di...
Definition CD_CdrMultigrid.H:36
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38