Skip to content

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 either break on success or throw an exception

To-do from discussions:

  • Make time a member of SimulationBase

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 the CalculationController which avoided that boundary conditions were applied to early. There is currently no replacement for this because !121 (merged) will solve this problem within FlowBoundary. Update: Re-introduced the workaround in both models, leading to minimal time steps when boundary conditions change. Will be fixed when merging !121 (merged).

Can this MR be accepted?

  • Implemented TimeStepController
  • Added unit test
  • Adapted system tests
  • Pipeline passing
  • Squash commits option set
  • [ ] Added entry to CHANGELOG.md No change for users or in the Public API.

Related issues

Closes #128 (closed)

Edited by Lukas Riedel

Merge request reports