Linear system classes are confusing
We currently have the following classes doing the following tasks:
-
Assembler
: stores the (global) jacobian matrix and the residual vector -
LocalJacobian
: assembles the global jacobian and the global residual -
LocalResidual
: Computes the local residual and also stores it
-> This doesn't make that much sense. Brainstorming/Discussion:
-
class LinearSystem
: stores the (global) jacobian matrix and the global residual (with caching option for each term) and the solution? -
class LinearSystemAssembler
: (former local jacobian) assembles the global jacobian and the global residual using LocalResidualOperator -
class LinearSolver
: (as it is) solves the linear system -
class GlobalResidual
: localView gives local residual -
class LocalResidual
: bind binds to element context -
class LocalResidualOperator
: (the old local residual) contains only static methods to compute residual and is implemented for all models/equation systems