Block-Preconditioned full matrix solve
Issue/feature addressed
The Block-Preconditioner is only implemented for Static Condensation solves. This branch implements a Block-Preconditioner for the full matrix solve (IterativeFull).
Proposed solution
Invert the internal DOFs block-wise and add them to the preconditioner.
Implementation
Extract Boundary and Interior matrix for each element. Then, run the boundary matrix through the available framework for the Schur complement (Static condensation). The interior matrix is handled separately and appended to the preconditioning operator.
Tests
Modified version of the Kovasznay test "KovaFlow_m3.tst". The idea is achieving the same result of the default solver while using the Block-Preconditioned IterativeFull solve and a tolerance of 1e-14.
Notes
Changelog and Documentation still needs to be updated.
Checklist
-
Functions and classes, or changes to them, are documented. -
User guide/documentation is updated. -
Changelog is updated. -
Suitable tests added for new functionality. -
Newly added files are correctly formatted. -
License added to any new files. -
No extraneous files have been added (e.g. compiler output or test data files).