<div dir="ltr"><div dir="ltr">On Tue, Feb 14, 2023 at 1:43 PM Edoardo alinovi <<a href="mailto:edoardo.alinovi@gmail.com">edoardo.alinovi@gmail.com</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">Hi Matt,<div><br></div><div>So I have done some research these days and I have found out that I might try to assemble the SIMPLE for Schur approximation (<span style="color:rgb(178,34,34)">myS = A11 - A10 inv(DIAGFORM(A00)) A01</span>). </div></div></blockquote><div><br></div><div>I show this on some slides. You can do it with options since the inverse diagonal is just Preonly/Jacobi. It is not a great preconditioner, at least for Stokes.</div><div> </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>Reading papers around, I come up with a doubt, which I believe to be a very silly one but worth asking... </div><div><br></div><div>Is the way the unknowns are packed in the matrix relevant for schur preconditioning? </div></div></blockquote><div><br></div><div>No, we pull out the matrices before running the algorithm, so you can use any numbering you want as long as you</div><div>use it when you call SetIS().</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </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>I was studying a bit ex70.c, there the block matrix is defined like:</div><div><br></div><div>A = [A00 A10</div><div>       A10  A11]</div><div>Where A00 is the momentum equation matrix, A11 is the pressure equation matrix, while A01 and A10 are the matrices for the coupling terms (i.e. pressure gradient and continuity). The unknowns are x = [u1..uN v1...vN w1...wN p1...pN]^T</div><div><br></div><div>In my case, I assemble the matrix cell by cell (FV method), and the result will be this one:</div><div><br></div><div><img src="cid:ii_le4l08lm1" alt="image.png" width="532" height="236"><br></div><div><br></div><div>Then I split the fields giving index 0-1 for u and 2 for p. I guess Petsc is already doing the correct handling picking up the <i>a^33s</i> to assemble A11, but worth being 100% sure :)</div><div><br></div><div>Thank you!</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>