Hi,

I am trying to build a PCFIELDSPLIT preconditioner for a matrix

J =  [A00  A01]

       [A10  A11]

that has the following shape:


M_{user}^{-1} = [I   -ksp(A00) A01] [ksp(A00)           0] [I                   
     0]

                          [0                        I]  [0               
ksp(T)] [-A10 ksp(A00)  I ]


where T is a user-defined Schur complement approximation that replaces the true 
Schur complement S:= A11 - A10 ksp(A00) A01.


I am trying to do something similar to this example (lines 41--45 and 
116--121): 
https://www.mcs.anl.gov/petsc/petsc-current/src/snes/tutorials/ex70.c.html


The problem I have is that I manage to replace S with T on a separate single 
linear system but not for the linear systems generated by my time-dependent 
PDE. Even if I set the preconditioner M_{user}^{-1} correctly, the T matrix 
gets replaced by S in the preconditioner once I call TSSolve.

Do you have any suggestions how to fix this knowing that the matrix J does not 
change over time?

Many thanks.


Best regards,


Zakariae

Reply via email to