Refractor Shallow Water Equation solver to reduce duplication
Issue/feature addressed
ShallowWaterSystem
has been refactored to reduce duplication. The motivation is to tidy-up the
ShallowWaterSystem
classes to implement time-implicit discretization for the Parareal work.
The following functions have been moved to the ShallowWaterSystem base class:
- DoOdeProjection
- SetBoundaryConditions
- WallBoundary2D
- WallBoundary
- AddCoriolis
In addition:
- Use
default
keyword for destructor - Clean-up implementation of
ConservativeToPrimitive
andPrimitiveToConservative
and remove unnecessary virtual functions - Remove unused function declaration
NumericalFlux1D
andNumericalFlux2D
- Remove
using namespace std;
- The
NonlinearPeregrine
has been refractored as a subclass ofNonlinearSWE
Proposed solution
Implementation
Tests
Suggested reviewers
Please suggest any people who would be appropriate to review your code.
Notes
Please add any other information that could be useful for reviewers.
Checklist
-
Functions and classes, or changes to them, are documented. [ ] User guide/documentation is updated.-
Changelog is updated. [ ] Suitable tests added for new functionality.-
Contributed code is correctly formatted. (See the contributing guidelines). [ ] License added to any new files.-
No extraneous files have been added (e.g. compiler output or test data files).
Edited by Jacques Xing