[WIP] Tempus: Step control strategy
Created by: sconde
@trilinos/tempus
Description
This is my attempt at defining the step control strategy.
TimeStepControl
will call the stepControlStrategy_
's getNextTimeStep
method, which can be a composite of strategies (such as @ikalash's BDF2 step control, ramping, time scale, I controller, PI Controller, etc). The implementation of these strategies (and new ones) will be application dependent.
This cleans up TimeStepControl
.
Also, this will prevent code duplication and minimizes tests from failing if/when TimeStepControl
should change in the future (at least in Drekar).
NOTE This is just an idea. The code is certainly not ready to be merge yet. If we decide to adopt this idea, I will go ahead and clean up and add a setStepControlStrategy
method to TimeStepControl
. This will allow applications to add strategies or override stepControlStrategy_
altogether. Like it is done with integrator observer (for output)
Motivation and Context
Related Issues
- Closes
- Blocks
- Is blocked by
- Follows
- Precedes
- Related to
- Part of
- Composed of
How Has This Been Tested?
Screenshots
Checklist
-
My commit messages mention the appropriate GitHub issue numbers. -
My code follows the code style of the affected package(s). -
My change requires a change to the documentation. -
I have updated the documentation accordingly. -
I have read the code contribution guidelines for this project. -
I have added tests to cover my changes. -
All new and existing tests passed. -
No new compiler warnings were introduced. -
These changes break backwards compatibility.