Grid shouldn't be a singleton
There is not just always one grid of a type, or one grid per typetag/problem. So the grid shouldn't be implemented as a singleton.
The gridcreator / gridwrapper needs to be available to problems (boundary conditions) and spatial params (params from dgf/msh) for parameters. We could pass a shared_ptr to the problem / spatialparams in the constructor.
All occurances of
GridCreator::grid() should be replaced by either
gridView.grid() or using a grid object directly (adaptive).