Skip to content

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).
Edited by Henrik Wustenberg

Merge request reports