Transfer the partial reassembly functionality to the current structure.
On the topmost level, the
NewtonSolver uses the functionality
in the methods
by calls to new methods
assembleLinearSystem_. In these
new methods, new member functions of the
FVAssembler are called:
computeColors as well as
assembleJacobianAndResidual with a
second argument. Use SFINAE and
enable_if such that not all
assemblers are required to implement the extended interface.
FVAssembler forwards the work to a new class
PartialReassembler. This class also holds the required data.
After each Newton iteration, the
PartialReassembler colors the
geometrical degrees of freedom depending on the shift of the
primary variables from the last time that the derivatives have been
calculated. For green-colored entities, the entries in the Jacobian
are kept, while for the other entities, they are recalculated.
Use an enum class
EntityColor for the coloring, enable read
access to the color of an entity via the Assembler.
Implement the functionality for Box and TPFA. The correspnding local assemblers have to be adapted such that no calculations are performed for green elements.
Still missing (while also not present in Dumux 2.x):
Parametrize the thresholds in the
Throw if called with mpfa
Fixes #379 (closed).