On Wed, Feb 22, 2012 at 08:52, Kuhlemann, Verena <[email protected]> wrote:
I am not sure that I understand the MatStructure flag in the call of KSPSetOperators correctly.
If I use KSPSetOperators(ksp, A, P, DIFFERENT_NONZERO_PATTERN) and then solve two linear systems with the same matrix operators but different rhs is the preconditioner reassembled in every solve. I.e., if I call KSPSolve(ksp,b1,x1); KSPSolve(ksp,b2,x2);
If you don't put anything between these calls, the preconditioner will be reused.
And if I use KSPSetOperators(ksp, A, P, SAME_PRECONDITIONER) the preconditioner is only setup one time and reused later.
Or is the flag only important if I change the matrix operators in between.
You only need to call KSPSetOperators() when the matrix changes.