Move FECache from gridgeometry to grid variables?
The FECache in Box is the only type that requires to know about the scalar type. This is because it is supposed to map to variables. So shouldn't it be in the grid variables?
More details
The concept of the grid geometry does not have a notion of variables living on the grid and is strictly related to the geometrical description of the domain/grid adapted for a specific discretization scheme. As such it should also only be concerned with the coordinate type and not the scalar variable type.
One element breaking this is the finite element basis in Box which is currently used to interpolate variables. In the concept above it seems ok to use it for coordinate interpolation, but the concept of constructing discrete variable function spaces and bases seems to be what the grid variables are for (mapping variables onto a given grid geometry).