19#include <CD_NamespaceHeader.H>
56 advectToFaces(EBAMRFluxData& a_facePhi,
const EBAMRCellData& a_cellPhi,
const Real a_dt)
override;
79 regrid(
const int a_lbase,
const int a_oldFinestLevel,
const int a_newFinestLevel)
override;
87 preRegrid(
const int a_lbase,
const int a_oldFinestLevel)
override;
133 const EBCellFAB& a_cellPhi,
134 const Box& a_cellBox,
135 const ProblemDomain& a_domain,
137 const DataIndex& a_dit);
157 upwind(EBFluxFAB& a_facePhi,
158 const EBCellFAB& a_normalSlopes,
159 const EBCellFAB& a_cellPhi,
160 const EBCellFAB& a_cellVel,
161 const EBFluxFAB& a_faceVel,
162 const ProblemDomain& a_domain,
163 const Box& a_cellBox,
165 const DataIndex& a_dit,
181 minmod(
const Real& dwl,
const Real& dwr)
noexcept;
190 superbee(
const Real& dwl,
const Real& dwr)
noexcept;
202#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:525
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:219
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:839
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:313
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:250
static Real monotonizedCentral(const Real &dwl, const Real &dwr) noexcept
Monotonized central difference slope limiter.
Definition CD_CdrCTU.cpp:856
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:827
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:37