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?