Resolve "Increase encapsulation of TimeController"
What does this MR do?
Replace CalculationController
with TimeStepController
, which has a more limited set of capabilities and does not manage the model time anymore. The new controller offers management of time steps, but has to be called explicitly to do so.
Changes inside the models:
- models now have a member
time
and fully control it -
step
algorithms re-formulated as infinite loops which eitherbreak
on success orthrow
an exception
To-do from discussions:
-
Make time
a member ofSimulationBase
Is there something that needs to be double checked?
-
Time steps are properly adjusted to changes in BCs (testing in Richards only) -
Transport solver still working as intended -
[ ] This removes the "minimal step" work-around in theUpdate: Re-introduced the workaround in both models, leading to minimal time steps when boundary conditions change. Will be fixed when merging !121 (merged).CalculationController
which avoided that boundary conditions were applied to early. There is currently no replacement for this because !121 (merged) will solve this problem withinFlowBoundary
.
Can this MR be accepted?
-
Implemented TimeStepController
-
Added unit test -
Adapted system tests -
Pipeline passing -
Squash commits option set -
[ ] Added entry toNo change for users or in the Public API.CHANGELOG.md
Related issues
Closes #128 (closed)