Skip to content
Snippets Groups Projects
Commit c1694ae1 authored by maxka's avatar maxka
Browse files

Merge branch 'feature/blocksolver-missing-diagonal' into 'master'

Fix: Cope with omitted diagonal blocks in outer GS loop.

The former implementation had two shortcomings:
1.  It assumed the diagonal block to exist. This is not necessarily the case, e.g., in the case of a `BCRSMatrix` where a non-retrievable block within the dimensions of the matrix is equivalent to it being zero. Nevertheless we should be able to cope with this case, in particular because semi-definite matrices should be covered by this approach due to the inherent regularization.
2. Access to the diagonal element was performed via the random access operator which is relatively costly.

The new implementation tackles both problems. In case the diagonal block does not exist, a temporary block is constructed and passed to the local solver instead.

*On a side note: A more generic approach to creating and initializing the temporary block might be needed for more complex nested matrix schemes.*

See merge request !11
parents 61883e44 b056ca66
Branches
No related tags found
1 merge request!11Fix: Cope with omitted diagonal blocks in outer GS loop.
Pipeline #