Nothing is forward declared here. It's just declared and then defined and specialized for all types it's supposed to work. A forward declaration would be a declaration without a definition immediately following. Maybe some include is missing?
I see the logics here. Actually I thought it would be a general problem, but I just find it is only for our 2d_kernel case, then I find that it is in our analyticalsolution.hh. At least I think the using NewtonSolver = Dumux::NewtonSolver<Assembler, LinearSolver, DefaultPartialReassembler>; might not be considered. But now I am trying to reproduce it with a test case in dumux.
@DennisGlaeser before merging the backend and seemed to have worked to use any vector that has certain operations defined. So maybe we should implement a default dofbackend which is the same as the blockvector specialization (then obsolete).
Timo Kochchanged title from implicit instantiation of undefined template in Variablesbackend to Variablesbackend does not support Dune::DynamicVector as Dof vector
changed title from implicit instantiation of undefined template in Variablesbackend to Variablesbackend does not support Dune::DynamicVector as Dof vector