Introduce generic iteration counters in multisystem framework
Description
Introduce generic iteration counters in the multisystem framework, so that one does not have to use clocks along with algorithms that have no concept of time (e.g., SCF).
The new class has a slightly different API than the clocks, but works in a very similar way. The most important change regarding how clocks work now, is the clock comparison, which now relies on the iteration_counter comparison, which uses integer arithmetic. This means that we need to defined a miminum time-step and all allowed time-steps need to be multiples of this.
A lot of changes are simple changes of names of variables and routines to reflect the changes from clocks/time to iteration counters/iterations:
- clock instances are now called iteration
-
iteration_counter_t%iter()
is nowiteration_counter_t%counter()
so that we can writeiteration%counter()
-
quantity%available_at_any_time
->quantity%always_available
-
reset_clocks
->reset_iteration_counters
-
init_clocks
->init_iteration_counters
-
requested_time
->requested_iteration
Closes #634 (closed)
News snippet
Introduce generic iteration counters in the multisystem framework
Checklist
-
I have checked that my code follows the Octopus coding standards -
I have added tests for all the new features added in this request.