SciCompMod / memilio

Modular spatio-temporal models for epidemic and pandemic simulations
https://scicompmod.github.io/memilio/
Apache License 2.0
54 stars 16 forks source link

Change member functions in Model class from public to private in IDE model #1133

Open annawendler opened 3 weeks ago

annawendler commented 3 weeks ago

In the implementation of the IDE model, some functions are public although they shouldn't be accessed from outside of the model without deeper knowledge of the numerical solver. This concerns functions such as compute_flow and set_transitiondistributions_support_max. However, they are needed for initialization based on reported data and are used in the file parameters_io.h which is why they have to be public.

One solution would be to rewrite the initialization as a class and define this class as well as the Simulation class as friend classes of Model. With this, functions from Model could be used in these classes but not anywhere else and errors could be prevented.

lenaploetzke commented 3 weeks ago

Functions can be declared as friend as well, such that it is not necessary to rewrite the initialization function. Therefore, this issue should not be very difficult.