Put overload detection helpers in separate header
The spatial parameters implementations perform some inspections on which functions are overloaded by the user, using some helper structs defined in the Detail
namespace. The issue is that the poroelastic spatial params need the same kind of checks as the 1p porous medium spatial params. But if the poroelastic spatial params header defines the helpers again with the same name we run into a redefinition error in case an application includes both headers (e.g. in multidomain simulations). We can of course name the struct differently, but then we violate the DRY rule. Currently, the poroelastic spatial params include the 1p spatial params header only to get those details.
One solution would be to put the detail helpers in some extra header that can be included by all spatial params implementations.
On the other hand, maybe we are missing a level in our spatial params class hierarchy, because the poroelastic spatial params redefine a whole bunch of things related to porosity, inertVolumeFractions, etc. from the 1p spatial params. Maybe we should have porous medium-related (not porousmediumFLOW) spatial params that both 1p and poroelastic can derive from.