<div dir="ltr"><div dir="ltr">On Wed, Jul 7, 2021 at 1:51 PM Jorti, Zakariae via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">




<div dir="ltr">
<div id="gmail-m_4230588803823514004divtagdefaultwrapper" dir="ltr" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<p>Hi,</p>
<p><br>
</p>
<p>I am trying to build a PCFIELDSPLIT preconditioner for a matrix </p>
<p>J =  [A00  A01]</p>
<p>       [A10  A11] </p>
<p>that has the following shape: </p>
<p><br>
</p>
<p>M_{user}^{-1} = [I   -ksp(A00) A01] [ksp(A00)           0] [I                        0]</p>
<p>                          [0                        I]  [0               ksp(T)] [-A10 ksp(A00)  I ]<br>
</p>
<p><br>
</p>
<p>where T is a user-defined Schur complement approximation that replaces the true Schur complement S:= A11 - A10 ksp(A00) A01.</p>
<p><br>
</p>
<p>I am trying to do something similar to this example (lines 41--45 and 116--121): <a href="https://www.mcs.anl.gov/petsc/petsc-current/src/snes/tutorials/ex70.c.html" id="gmail-m_4230588803823514004LPlnk826214" target="_blank">https://www.mcs.anl.gov/petsc/petsc-current/src/snes/tutorials/ex70.c.html</a></p>
<p><br>
</p>
<p>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 <span style="font-size:12pt">M_{user}^{-1} correctly, the T matrix
 gets replaced by S in the preconditioner once I call TSSolve. </span></p>
<p><span style="font-size:12pt">Do you have any suggestions how to fix this knowing that the matrix J does not change over time?</span></p>
<p><span style="font-size:12pt"></span></p></div></div></blockquote><div>I don't like how it is done in that example for this very reason.</div><div><br></div><div>When I want to use a custom preconditioning matrix for the Schur complement, I always give a preconditioning matrix M to the outer solve.</div><div>Then PCFIELDSPLIT automatically pulls the correct block from M, (1,1) for the Schur complement, for that preconditioning matrix without</div><div>extra code. Can you do this?</div><div><br></div><div>  Thanks,</div><div><br></div><div>    Matt</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div id="gmail-m_4230588803823514004divtagdefaultwrapper" dir="ltr" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,Helvetica,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols"><p><span style="font-size:12pt">Many thanks.</span></p>
<p><span style="font-size:12pt"><br>
</span></p>
<p><span style="font-size:12pt">Best regards,</span></p>
<p><span style="font-size:12pt"><br>
</span></p>
<p><span style="font-size:12pt">Zakariae   </span></p>
<p><span style="font-size:12pt"></span></p>
</div>
</div>

</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>