Skip to content

Introduce generic iteration counters in multisystem framework

Micael Oliveira requested to merge iteration_counters into main

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 now iteration_counter_t%counter() so that we can write iteration%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.
Edited by Micael Oliveira

Merge request reports