Chombo + EB + MF
3.2
|
#include <PatchGodunov.H>
Public Member Functions | |
PatchGodunov () | |
Constructor. More... | |
virtual | ~PatchGodunov () |
Destructor. More... | |
virtual void | define (const ProblemDomain &a_domain, const Real &a_dx, const GodunovPhysics *const a_gdnvPhysicsPtr, const int &a_normalPredOrder, const bool &a_useFourthOrderSlopes, const bool &a_usePrimLimiting, const bool &a_useCharLimiting, const bool &a_useFlattening, const bool &a_useArtificialViscosity, const Real &a_artificialViscosity) |
Define the object. More... | |
virtual void | setCurrentTime (const Real &a_currentTime) |
Set the current time before calling updateState(), computeWHalf(), computeUpdate(). More... | |
virtual void | setCurrentBox (const Box &a_currentBox) |
Set the current box before calling updateState(), computeWHalf(), computeUpdate(). More... | |
virtual void | updateState (FArrayBox &a_U, FluxBox &a_F, Real &a_maxWaveSpeed, const FArrayBox &a_S, const Real &a_dt, const Box &a_box) |
Update the conserved variables and return the fluxes used to do this. More... | |
virtual void | updateState (FArrayBox &a_U, FluxBox &a_F, FluxBox &a_wHalf, Real &a_maxWaveSpeed, const FArrayBox &a_S, const Real &a_dt, const Box &a_box) |
virtual void | computeWHalf (FluxBox &a_WHalf, const FArrayBox &a_U, const FArrayBox &a_S, const Real &a_dt, const Box &a_box) |
Compute the time-centered values of the primitive variables on cell faces. More... | |
virtual void | computeUpdate (FArrayBox &a_dU, FluxBox &a_F, const FArrayBox &a_U, const FluxBox &a_WHalf, const Real &a_dt, const Box &a_box) |
Compute the increment in the conserved variables from face variables. More... | |
void | computeFluxes (FluxBox &a_F, const FluxBox &a_WHalf, const Box &a_box) |
Compute fluxes from primitive variables on faces. More... | |
void | CTUNormalPred (FArrayBox &a_WMinus, FArrayBox &a_WPlus, const Real &a_dt, const Real &a_dx, const FArrayBox &a_W, const FArrayBox &a_flat, const int &a_dir, const Box &a_box) |
CTU normal predictor. More... | |
void | PLMNormalPred (FArrayBox &a_WMinus, FArrayBox &a_WPlus, const Real &a_dt, const Real &a_dx, const FArrayBox &a_W, const FArrayBox &a_flat, const int &a_dir, const Box &a_box) |
PLM normal predictor. More... | |
void | PPMNormalPred (FArrayBox &a_WMinus, FArrayBox &a_WPlus, const Real &a_dt, const Real &a_dx, const FArrayBox &a_W, const FArrayBox &a_flat, const int &a_dir, const Box &a_box) |
PPM normal predictor. More... | |
GodunovPhysics * | getGodunovPhysicsPtr () |
Accessor to get at the GodunovPhysics object. More... | |
const ProblemDomain & | problemDomain () const |
Get the problem domain for this object. More... | |
virtual bool | isDefined () const |
Is the object completely defined. More... | |
void | highOrderLimiter (bool a_highOrderLimiter) |
Set whether to use high-order limiter. More... | |
Real | dx () const |
Returns the grid spacing at this level. More... | |
virtual void | expressions (HDF5HeaderData &a_holder) const |
Protected Attributes | |
ProblemDomain | m_domain |
Real | m_dx |
GodunovPhysics * | m_gdnvPhysics |
GodunovUtilities | m_util |
int | m_normalPredOrder |
bool | m_useFourthOrderSlopes |
bool | m_usePrimLimiting |
bool | m_useCharLimiting |
bool | m_useFlattening |
bool | m_useArtificialViscosity |
Real | m_artificialViscosity |
Real | m_currentTime |
bool | m_isCurrentTimeSet |
Box | m_currentBox |
bool | m_isCurrentBoxSet |
bool | m_isDefined |
Private Member Functions | |
void | operator= (const PatchGodunov &) |
PatchGodunov (const PatchGodunov &) | |
The base class PatchGodunov provides an implementation of a second-order, unsplit Godunov method acting on a single grid/patch. PatchGodunov provides an interface to the level integrator, LevelGodunov, which manages the entire level and flux corrections (via flux registers) to the coarser and finer levels.
PatchGodunov::PatchGodunov | ( | ) |
Constructor.
|
virtual |
Destructor.
|
private |
|
virtual |
Define the object.
a_domain | problem domain |
a_dx | grid spacing |
a_gdnvPhysicsPtr | physics class |
a_normalPredOrder | order of the normal predictorr: 0 for CTU, 1 for PLM, 2 for PPM |
a_useFourthOrderSlopes | whether to use 4th-order slopes |
a_usePrimLimiting | whether to apply slope limiting to primitive variables |
a_useCharLimiting | whether to apply slope limiting to characteristic variables |
a_useFlattening | whether to apply slope flattening |
a_useArtificialViscosity | whether to apply artificial viscosity |
a_artificialViscosity | artificial viscosity coefficient |
|
virtual |
Set the current time before calling updateState(), computeWHalf(), computeUpdate().
|
virtual |
Set the current box before calling updateState(), computeWHalf(), computeUpdate().
|
virtual |
Update the conserved variables and return the fluxes used to do this.
a_U | conserved variables, updated in this routine |
a_F | fluxes from 2nd-order unsplit Godunov method, returned |
a_maxWaveSpeed | maximum wave speed, returned |
a_S | source terms, or null constructed if none |
a_dt | time step |
a_box | Box of a_U |
|
virtual |
a_U | conserved variables, updated in this routine |
a_F | fluxes from 2nd-order unsplit Godunov method, returned |
a_wHalf | primitive variables extrapolated to cell faces and a half time step |
a_maxWaveSpeed | maximum wave speed, returned |
a_S | source terms, or null constructed if none |
a_dt | time step |
a_box | Box of a_U |
|
virtual |
Compute the time-centered values of the primitive variables on cell faces.
This API is used in cases where some operation over the whole level must be performed on the face-centered variables prior to the final difference update. Examples include incompressible flow and MHD, in which it is necessary to compute the projection of a face-centered vector field on its divergence-free part. To complete the differencing, it is necessary to call the member function computeUpdate().
a_WHalf | primitive variables extrapolated to cell faces and a half time step |
a_U | conserved variables at beginning of time step |
a_S | source terms, or null constructed if none |
a_dt | time step |
a_box | Box of a_U |
|
virtual |
Compute the increment in the conserved variables from face variables.
Compute dU = dt*dU/dt, the change in the conserved variables over the time step. The fluxes are returned are suitable for use in refluxing.
a_dU | change in conserved variables over the time step |
a_F | fluxes for refluxing |
a_U | conserved variables at beginning of time step |
a_WHalf | primitive variables extrapolated to cell faces and a half time step |
a_dt | time step |
a_box | Box of a_U |
Compute fluxes from primitive variables on faces.
void PatchGodunov::CTUNormalPred | ( | FArrayBox & | a_WMinus, |
FArrayBox & | a_WPlus, | ||
const Real & | a_dt, | ||
const Real & | a_dx, | ||
const FArrayBox & | a_W, | ||
const FArrayBox & | a_flat, | ||
const int & | a_dir, | ||
const Box & | a_box | ||
) |
CTU normal predictor.
Compute the increments in the characteristic amplitudes using CTU (for CTU, increments are zero)
void PatchGodunov::PLMNormalPred | ( | FArrayBox & | a_WMinus, |
FArrayBox & | a_WPlus, | ||
const Real & | a_dt, | ||
const Real & | a_dx, | ||
const FArrayBox & | a_W, | ||
const FArrayBox & | a_flat, | ||
const int & | a_dir, | ||
const Box & | a_box | ||
) |
PLM normal predictor.
Compute the increments in the characteristic amplitudes using PLM
void PatchGodunov::PPMNormalPred | ( | FArrayBox & | a_WMinus, |
FArrayBox & | a_WPlus, | ||
const Real & | a_dt, | ||
const Real & | a_dx, | ||
const FArrayBox & | a_W, | ||
const FArrayBox & | a_flat, | ||
const int & | a_dir, | ||
const Box & | a_box | ||
) |
PPM normal predictor.
Compute the increments in the characteristic amplitudes using PPM
GodunovPhysics* PatchGodunov::getGodunovPhysicsPtr | ( | ) |
Accessor to get at the GodunovPhysics object.
const ProblemDomain& PatchGodunov::problemDomain | ( | ) | const |
Get the problem domain for this object.
|
virtual |
Is the object completely defined.
Return true if the object is completely defined.
void PatchGodunov::highOrderLimiter | ( | bool | a_highOrderLimiter | ) |
Set whether to use high-order limiter.
Real PatchGodunov::dx | ( | ) | const |
Returns the grid spacing at this level.
|
inlinevirtual |
|
private |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |