Allow to restrict gradient and Hessian computations to subblocks
The current local solver alternates between minimization steps in local displacement and damage subspaces. However, only joint gradients and Hesse matrices for (displacement,damage)-pairs could previously be computed. This wasted a lot of computation time: These computations can take a lot of time, for example in the case of the spectrally decomposed brittle-fracture energy.
A clean solution would be to reflect the displacement-damage splitting in the linear algebra data structures, and use the dune-tnnmg restriction mechanism to get individual local displacement or damage subproblems. However, Carsten and I decided that (at least for now) this would make the code too complicated.
As a compromise solution, this patch allows to compute displacement or damage sub-blocks of the gradient and Hesse matrix without a corresponding blocking of the data structures. This approach is less invasive, but it still save up to roughly 30% run-time.