Add the concept of static quantities to the multisystem framework
Description
Changes to the quantity class and its use in the code so that the framework works correctly with static quantities.
Removed the protected
flag 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.
andavailable_at_any_time = .false.
- static quantities have:
updated_on_demand = .false.
andavailable_at_any_time = .true.
- quantities derived from 'protected' quantities have:
updated_on_demand = .true.
andavailable_at_any_time = .false.
- parametrized quantities, like lasers, have:
updated_on_demand = .true.
andavailable_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