Skip to content

Add the concept of static quantities to the multisystem framework

Micael Oliveira requested to merge static_quantities into main

Description

Changes to the quantity class and its use in the code so that the framework works correctly with static quantities.

Removed the protectedflag and added two other flags: updated_on_demand and available_at_any_time. If updated_on_demand is true, then one needs to explicitly ask the system that owns this quantity to updated it. If available_at_any_time is true, it means that it is possible to use this quantity at arbitrary time.

In practice:

  • old protected quantities have now: updated_on_demand = .false. and available_at_any_time = .false.
  • static quantities have: updated_on_demand = .false. and available_at_any_time = .true.
  • quantities derived from 'protected' quantities have: updated_on_demand = .true. and available_at_any_time = .false.
  • parametrized quantities, like lasers, have: updated_on_demand = .true. and available_at_any_time = .true.

News snippet

Change handling of quantities in multisystem framework to correctly handle static quantities.

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