#include <LevelGodunov.H>
Collaboration diagram for LevelGodunov:
Public Methods | |
LevelGodunov () | |
Default constructor. | |
~LevelGodunov () | |
Destructor. | |
void | define (const DisjointBoxLayout &a_thisDisjointBoxLayout, const DisjointBoxLayout &a_coarserDisjointBoxLayout, const ProblemDomain &a_domain, const int &a_refineCoarse, const Real &a_dx, const PatchGodunov *const a_patchGodunovFactory, const bool &a_hasCoarser, const bool &a_hasFiner) |
Actual constructor. | |
Real | step (LevelData< FArrayBox > &a_U, LevelFluxRegister &a_finerFluxRegister, LevelFluxRegister &a_coarserFluxRegister, const LevelData< FArrayBox > &a_S, const LevelData< FArrayBox > &a_UCoarseOld, const Real &a_TCoarseOld, const LevelData< FArrayBox > &a_UCoarseNew, const Real &a_TCoarseNew, const Real &a_time, const Real &a_dt) |
Take one timestep for this grid level. | |
Real | getMaxWaveSpeed (const LevelData< FArrayBox > &a_U) |
Get maximum wave speed. | |
Protected Attributes | |
bool | m_defined |
DisjointBoxLayout | m_grids |
PatchGodunov * | m_patchGodunov |
int | m_numGhost |
PiecewiseLinearFillPatch | m_patcher |
Real | m_dx |
ProblemDomain | m_domain |
int | m_refineCoarse |
int | m_numCons |
int | m_numFluxes |
bool | m_hasCoarser |
bool | m_hasFiner |
Private Methods | |
void | operator= (const LevelGodunov &a_input) |
LevelGodunov (const LevelGodunov &a_input) |
|
Default constructor. Object requires define() to be called before all other functions. |
|
Destructor. Destroys all objects created by define(). Passed in data references of define() are left alone. |
|
|
|
Actual constructor. Inside the routine, we cast away const-ness on the data members for the assignment. The arguments passed in are maintained const (coding standards). a_refine is the refinement ratio between this level and the next coarser level. For the coarsest level, an empty DisjointBoxLayout is passed in for coarserDisjointBoxLayout. |
|
Get maximum wave speed.
|
|
|
|
Take one timestep for this grid level. For the coarsest level, UcoarseOld and UCoarseNew are empty LevelData<FArrayBox> objects. Also, either UCoarseOld or UCoarseNew might be empty to indicate that t(nf) = t(nc) the one grid is at the current time and interpolation is not required for boundary condition generation. U must be defined on the same DisjointBoxLayouts as were used in define(). Coarse flux register is flux register with the next coarser level. Fine flux register is the flux register with the next finer level. To the finer level FR, this level is the coarse level. To the coarser level FR, this level is the fine level. If source terms do not exist, "a_S" should be null constructed and not defined (i.e. its define() should not be called). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|