#include <PatchGodunov.H>
Public Member Functions | |
PatchGodunov () | |
Constructor. | |
virtual | ~PatchGodunov () |
Destructor. | |
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. | |
virtual void | setCurrentTime (const Real &a_currentTime) |
Set the current time before calling updateState(), computeWHalf(), computeUpdate(). | |
virtual void | setCurrentBox (const Box &a_currentBox) |
Set the current box before calling updateState(), computeWHalf(), computeUpdate(). | |
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. | |
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. | |
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. | |
void | computeFluxes (FluxBox &a_F, const FluxBox &a_WHalf, const Box &a_box) |
Compute fluxes from primitive variables on faces. | |
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. | |
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. | |
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. | |
GodunovPhysics * | getGodunovPhysicsPtr () |
Accessor to get at the GodunovPhysics object. | |
const ProblemDomain & | problemDomain () const |
Get the problem domain for this object. | |
virtual bool | isDefined () const |
Is the object completely defined. | |
void | highOrderLimiter (bool a_highOrderLimiter) |
Set whether to use high-order limiter. | |
Real | dx () const |
Returns the grid spacing at this level. | |
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 &) |
PatchGodunov::PatchGodunov | ( | ) |
Constructor.
virtual PatchGodunov::~PatchGodunov | ( | ) | [virtual] |
Destructor.
PatchGodunov::PatchGodunov | ( | const PatchGodunov & | ) | [private] |
virtual void PatchGodunov::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 | |||
) | [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 void PatchGodunov::setCurrentTime | ( | const Real & | a_currentTime | ) | [virtual] |
Set the current time before calling updateState(), computeWHalf(), computeUpdate().
virtual void PatchGodunov::setCurrentBox | ( | const Box & | a_currentBox | ) | [virtual] |
Set the current box before calling updateState(), computeWHalf(), computeUpdate().
virtual void PatchGodunov::updateState | ( | FArrayBox & | a_U, | |
FluxBox & | a_F, | |||
Real & | a_maxWaveSpeed, | |||
const FArrayBox & | a_S, | |||
const Real & | a_dt, | |||
const Box & | a_box | |||
) | [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 void PatchGodunov::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] |
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 void PatchGodunov::computeWHalf | ( | FluxBox & | a_WHalf, | |
const FArrayBox & | a_U, | |||
const FArrayBox & | a_S, | |||
const Real & | a_dt, | |||
const Box & | a_box | |||
) | [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 void PatchGodunov::computeUpdate | ( | FArrayBox & | a_dU, | |
FluxBox & | a_F, | |||
const FArrayBox & | a_U, | |||
const FluxBox & | a_WHalf, | |||
const Real & | a_dt, | |||
const Box & | a_box | |||
) | [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 bool PatchGodunov::isDefined | ( | ) | const [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.
virtual void PatchGodunov::expressions | ( | HDF5HeaderData & | a_holder | ) | const [inline, virtual] |
void PatchGodunov::operator= | ( | const PatchGodunov & | ) | [private] |
ProblemDomain PatchGodunov::m_domain [protected] |
Real PatchGodunov::m_dx [protected] |
GodunovPhysics* PatchGodunov::m_gdnvPhysics [protected] |
GodunovUtilities PatchGodunov::m_util [protected] |
int PatchGodunov::m_normalPredOrder [protected] |
bool PatchGodunov::m_useFourthOrderSlopes [protected] |
bool PatchGodunov::m_usePrimLimiting [protected] |
bool PatchGodunov::m_useCharLimiting [protected] |
bool PatchGodunov::m_useFlattening [protected] |
bool PatchGodunov::m_useArtificialViscosity [protected] |
Real PatchGodunov::m_artificialViscosity [protected] |
Real PatchGodunov::m_currentTime [protected] |
bool PatchGodunov::m_isCurrentTimeSet [protected] |
Box PatchGodunov::m_currentBox [protected] |
bool PatchGodunov::m_isCurrentBoxSet [protected] |
bool PatchGodunov::m_isDefined [protected] |