| Chombo + EB
    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 | 
 1.8.13
 1.8.13