Skip to content

Ifpack2 reuse introduction

James Willenbring requested to merge muelu:ifpack2_reuse into master

Created by: aprokop

@trilinos/ifpack2 @mhoemmen @jhux2

This PR only serves to solicit comments on the feature. It should not be merged in the current form.

Brief introduction: The goal is to reuse some data from preconditioner for consecutive preconditioner constructions. The poster child for this is ILU, where we can reuse the symbolic factorization, and only do the numeric factorization during the second setup.

Work done so far:

  1. I've introduced a call resetMatrix() to Ifpack2::RILUK, which mimics initialize() but skips few steps in it, assuming that the matrix graph is unchanged. I've run few experiments through MueLu, and it seems to work as expected.
  2. I've also fixed the compute() call to prevent it to being run twice.

Things to discuss:

  • Where should resetMatrix() call go? My thinking is that it should go to CanChangeMatrix class.
  • What are the limitations? Maps, graph, things like that
  • What code is required to be written? Unit tests, ....

Merge request reports