This is a bit like #1807 in that it provides a base class for the various Manager classes. This PR also converts two of the manager class to use the common base class. The remaining ones will follow later.
Observations:
There isn't quite as much commonality, or at least it's not as easy to refactor.
A nuisance is that the different Manager classes use different names for the same functionality. For example, we have Postprocessor::Manager<dim>::has_matching_postprocessor() but HeatingModels::Manager<dim>::has_matching_heating_model(). Both do the same, but because they have different names I can't abstract them into the base class (though I have abstracted their functionality into the base class).
This is a bit like #1807 in that it provides a base class for the various
Manager
classes. This PR also converts two of the manager class to use the common base class. The remaining ones will follow later.Observations:
Manager
classes use different names for the same functionality. For example, we havePostprocessor::Manager<dim>::has_matching_postprocessor()
butHeatingModels::Manager<dim>::has_matching_heating_model()
. Both do the same, but because they have different names I can't abstract them into the base class (though I have abstracted their functionality into the base class).