I like to introduce a mechanism to "extend a Simul class" with another class.
The first application is to introduce a particular output specialized for one study. Thus, we don't want to have it in a solver used for many applications.
This MR will contain deep changes (also in fluidsim_core), it's a bit tricky and it can have consequences on projects depending on fluidsim_core. Thus, I don't assign to myself this time
More coming soon...
Proposed new API:
# can be anywhere, but should be importable (otherwise, the simulation can't be loaded afterwards) from fluidsim.extend_simul.spatial_means_center_milestone import SpatialMeansCenter Simul = SpatialMeansCenter.create_extended_Simul(Simul) # then, as usual params = Simul.create_default_params() ...
Note: I'm not very happy with the name
Then, the simulation can be loaded as usual with
There is another case when one wants to plug this output to a simulation already created. Then, I guess we need to do:
params, Simul = load_for_restart(name_dir) Simul = SpatialMeansCenter.create_extended_Simul(Simul) SpatialMeansCenter.complete_params_with_default(params)