SetupEnvironment.hpp interfaces issue
The way SetupEnvironment.hpp is being written and used right now is somehow limiting. In more detail, the current interfaces used look like this:
using EnvironmentInterface =
IMediumPropertyModel<IMagneticFieldModel<IMediumModel>>;
This is limiting in many cases and it will be an issue in the near future as it hurts C8's generality. For example, if you want to introduce a refractive index interface you have to first go through SetupEnvironment.hpp and do something like this:
using EnvironmentInterface =
IRefractiveIndexModel<IMediumPropertyModel<IMagneticFieldModel<IMediumModel>>>;
in order for the environment to be able to compile. Unfortunately, when doing this other parts of C8 that do not use a refractive index interface break down. SetupEnvironment.hpp is also implicitly used in the stack you really have to change SetupEnvironment.hpp file every time you want to use a different interface setup, otherwise the stack simply won't work.