Interface of interpolate() for composite functions
Hi,
w.r.t. issue #112 (closed) I had just been contemplating whether I should also implement multElementwise() for our composite functions, i.e.
- P1StokesFunction
- P2P1TaylorHoodFunction
- P2P2StokesFunction
Looking at their interpolate() methods as an example I decided against it for the moment. Now finally coming to the actual issue. I don't think that the following interface for the method is very useful
void interpolate( const std::function< real_t( const hyteg::Point3D& ) >& expr, size_t level, DoFType flag = All ) const
as it only allows to initialise all component functions with the same std::function which to me doesn't seem to be a scenario that is required too often. The apps I looked into consequently do not use this method at all, but instead call interpolate() on the component functions which are publicaly accessible. I'd suggest to do one of the following:
- Remove this interpolate() method from the composite functions (maybe also the one for a constant value?)
- Alternatively change the interface of both to accept an std::array of length four
Cheers
Marcus