gridfunctionspaceutilities.hh growing large

@all : The LARGE header file (913 lines of code) "dune/pdelab/gridfunctionspace/gridfunctionspaceutilities.hh"

contains the different classes

  • template<typename T, typename X> class DiscreteGridFunction
  • template<typename T, typename X> class DiscreteGridFunctionCurl
  • template<typename T, typename X> class DiscreteGridFunctionGlobalCurl
  • template<typename T, typename X> class DiscreteGridFunctionGradient
  • template<typename T, typename X> class DiscreteGridFunctionPiola
  • template<typename T, typename X, std::size_t dimR = T::CHILDREN> class VectorDiscreteGridFunction
  • template<typename T, typename X> class VectorDiscreteGridFunctionGradient

which reconstruct diverse grid functions given a solution vector of type X on a gridfunction space of type T.

I consider adding two new classes evaluating the Darcy flux out of a P0 and a FEM solution which retrieves the diffusion tensor out of an additional template parameter P. P has the form of "class ConvectionDiffusionModelProblem" from "dune/pdelab/localoperator/convectiondiffusionparameter.hh".

1.) Since these new classes are somehow application specific I don't want to add them into "gridfunctionspaceutilities.hh". I would prefer to leave them in their own header files such that a user can find them easily by their file names such as "darcy_CCFV.hh" and "darcy_FEM.hh".

2.) The directory "dune/pdelab/gridfunctionspace" would also be the wrong place in my opinion. What would you suggest?