11 #ifndef _LEVELCONSOPERATOR_H_ 12 #define _LEVELCONSOPERATOR_H_ 29 #include "NamespaceHeader.H" 62 const int& a_refineCoarse,
65 const int& a_numStates,
66 const bool& a_hasCoarser,
67 const bool& a_hasFiner);
87 const Real& a_timeCoarseOld,
89 const Real& a_timeCoarseNew,
154 void noPPM(
bool a_noPPM);
202 const Real& a_timeCoarseOld,
203 const Real& a_timeCoarseNew);
209 const Real& a_timeCoarseOld,
210 const Real& a_timeCoarseNew);
321 #include "NamespaceFooter.H" virtual void fillGhosts(LevelData< FArrayBox > &a_U, const Real &a_time, const Real &a_timeCoarseOld, const Real &a_timeCoarseNew)
fill in ghost cells of a_U
virtual void resetFluxes()
reset fluxes contained in this object to zero
bool m_hasFiner
Definition: LevelConsOperator.H:266
int m_evalCount
Definition: LevelConsOperator.H:298
int m_spaceOrder
Definition: LevelConsOperator.H:272
Real m_dx
Definition: LevelConsOperator.H:250
LevelConsOperator()
Default constructor.
Copier m_exchangeCopier
Definition: LevelConsOperator.H:237
bool m_limitFaceValues
Definition: LevelConsOperator.H:275
bool m_forwardEuler
Definition: LevelConsOperator.H:307
PatchConsOperator * m_patchConsOperatorPtr
Definition: LevelConsOperator.H:231
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:141
LevelData< FluxBox > & getFluxes()
returns reference to fluxes computed and accumulated by this operator.
virtual ~LevelConsOperator()
Destructor.
FourthOrderFillPatch m_patcher
Definition: LevelConsOperator.H:247
void forwardEuler(bool a_forwardEuler)
sets whether to use forward Euler instead of RK4
int m_evalCountMax
Definition: LevelConsOperator.H:295
void useArtificialViscosity(bool a_useArtificialViscosity)
sets whether to use artificial viscosity (from divergence)
bool m_useArtificialViscosity
Definition: LevelConsOperator.H:301
void highOrderLimiter(bool a_highOrderLimiter)
bool m_useFlattening
Definition: LevelConsOperator.H:281
A strange but true thing to make copying from one boxlayoutdata to another fast.
Definition: Copier.H:152
virtual void defineExchanger()
sets m_exchangeCopier
void copySolnData(LevelData< FArrayBox > &a_dest, const LevelData< FArrayBox > &a_src)
copy data from src->dest
Definition: MOLPhysics.H:37
void resetEvalCount()
reset m_evalCount to 0
void spaceOrder(int a_spaceOrder)
set spatial order of accuracy
void limitFaceValues(bool a_limitFaceValues)
if true, limit face values
bool m_defined
Definition: LevelConsOperator.H:310
void artificialViscosity(Real a_artificialViscosity)
sets coefficient of artificial viscosity (from divergence)
int m_refineCoarse
Definition: LevelConsOperator.H:256
int m_numFields
Definition: LevelConsOperator.H:283
virtual void evalRHSpatches(LevelData< FArrayBox > &a_LofU, const LevelData< FArrayBox > &a_U, LevelFluxRegister &a_finerFluxRegister, LevelFluxRegister &a_coarserFluxRegister, Real a_weight)
virtual void evalRHS(LevelData< FArrayBox > &a_LofU, LevelData< FArrayBox > &a_U, LevelFluxRegister &a_finerFluxRegister, LevelFluxRegister &a_coarserFluxRegister, const LevelData< FArrayBox > &a_UcoarseOld, const Real &a_timeCoarseOld, const LevelData< FArrayBox > &a_UcoarseNew, const Real &a_timeCoarseNew, Real a_time, Real a_weight)
Evaluate the operator (div(flux) ) at a given time.
virtual void defineFlattening()
sets m_flattening
void doDeconvolution(bool a_doDeconvolution)
sets m_doDeconvolution
bool m_noPPM
Definition: LevelConsOperator.H:286
A FArrayBox-like container for face-centered fluxes.
Definition: FluxBox.H:22
virtual void setPatchIndex(const DataIndex &a_ind) const
void doFaceDeconvolution(bool a_doFaceDeconvolution)
sets m_doFaceDeconvolution
ProblemDomain m_domain
Definition: LevelConsOperator.H:253
virtual void defineRHSData(LevelData< FArrayBox > &a_newRHS, const LevelData< FArrayBox > &a_existingSoln)
define RHS data based on existingSoln (in this case, w/o ghost cells)
double Real
Definition: REAL.H:33
Patch Cons Operator - a class for evaluating the Laplacian.
Definition: PatchConsOperator.H:30
A BoxLayout that has a concept of disjointedness.
Definition: DisjointBoxLayout.H:30
Time interpolator class using 4th-order Runge-Kutta.
Definition: TimeInterpolatorRK4.H:24
void evalCountMax(int a_evalCountMax)
set number of calls that will be made to evalRHS
BoxLayoutData< FArrayBox > m_flattening
Definition: LevelConsOperator.H:269
virtual void fillGhostsRK4(LevelData< FArrayBox > &a_U, const Real &a_time, int a_stage, const Real &a_timeCoarseOld, const Real &a_timeCoarseNew)
fill in ghost cells of a_U to RK4 intermediates
LevelFluxRegister-A class to encapsulate a levels worth of flux registers.
Definition: LevelFluxRegister.H:29
TimeInterpolatorRK4 & getTimeInterpolator()
Return time interpolator object within patch-fill object.
void operator=(const LevelConsOperator &a_input)
int m_numCons
Definition: LevelConsOperator.H:259
void numGhost(int a_numGhost)
sets m_numGhost, the number of ghost cells
bool m_hasCoarser
Definition: LevelConsOperator.H:265
Definition: DataIndex.H:114
bool m_doDeconvolution
Definition: LevelConsOperator.H:289
virtual void exchangeGhosts(LevelData< FArrayBox > &a_U)
Real m_artificialViscosity
Definition: LevelConsOperator.H:304
Level Cons Operator - a class for evaluating the Laplacian.
Definition: LevelConsOperator.H:35
virtual void addArtificialViscosity(LevelData< FArrayBox > &a_Unew, const LevelData< FArrayBox > &a_Uold, LevelFluxRegister &a_finerFluxRegister, LevelFluxRegister &a_coarserFluxRegister, Real a_oldTime, Real a_weight)
add artificial viscosity to a_Unew
void useFlattening(bool a_useFlattening)
sets whether to flatten extrapolations to faces
int m_numGhost
Definition: LevelConsOperator.H:234
int m_numFluxes
Definition: LevelConsOperator.H:262
virtual void defineSolnData(LevelData< FArrayBox > &a_newSoln, const LevelData< FArrayBox > &a_existingSoln)
define newSoln to match existingSoln, including ghost cells
DisjointBoxLayout m_grids
Definition: LevelConsOperator.H:228
bool m_doFaceDeconvolution
Definition: LevelConsOperator.H:292
virtual void updateFluxTotalsAndRegisters(FluxBox &a_Fface, LevelFluxRegister &a_finerFluxRegister, LevelFluxRegister &a_coarserFluxRegister, const DataIndex &a_dataIndex, Real a_weight)
update a_finerFluxRegister and a_coarserFluxRegister
Fourth-order interpolation in time and space to ghost cells.
Definition: FourthOrderFillPatch.H:27
virtual void updateODE(LevelData< FArrayBox > &a_soln, const LevelData< FArrayBox > &a_rhs, Real a_dt)
update solution – soln += dt*rhs (required by LevelRK4)
virtual void define(const DisjointBoxLayout &a_thisDisjointBoxLayout, const DisjointBoxLayout &a_coarserDisjointBoxLayout, const ProblemDomain &a_domain, const int &a_refineCoarse, const Real &a_dx, const MOLPhysics *const a_molPhysics, const int &a_numStates, const bool &a_hasCoarser, const bool &a_hasFiner)
Actual constructor.
void noPPM(bool a_noPPM)
sets m_noPPM
bool m_highOrderLimiter
if true, use high-order limiter
Definition: LevelConsOperator.H:278
virtual void definePatch(const MOLPhysics *const a_molPhysics)
sets m_patchConsOperator
LevelData< FluxBox > m_fluxes
Definition: LevelConsOperator.H:242