<div dir="ltr"><div dir="ltr">On Tue, Nov 18, 2025 at 11:12 AM Blauth, Sebastian <<a href="mailto:sebastian.blauth@itwm.fraunhofer.de">sebastian.blauth@itwm.fraunhofer.de</a>> wrote:</div><div class="gmail_quote gmail_quote_container"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg8581164509330084109">





<div lang="DE" style="overflow-wrap: break-word;">
<div class="m_-6491416473861208233WordSection1">
<p class="MsoNormal"><span lang="EN-US">Dear PETSc developers and users,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">I have a question regarding the Fieldsplit preconditioner in PETSc. In particular, I want to know how the submatrices there are created from the parent matrix. The “obvious” way would be to take the DoF indices of the
 corresponding split and “renumber” them so that the DoFs in the submatrix have the same order as the ones of the parent matrix. I did not find any documentation on this and as it is at least possible that the DoFs are re-ordered, I wanted to ask this question.
 Obviously, in case the DoFs are re-ordered, how can I get the mapping between the DoFs of the parent and the submatrix?</span></p></div></div></div></blockquote><div><br></div><div>Hi Sebastian,</div><div><br></div><div>Inside, we call MatCreateSubmatrix(), which takes an IS on each process, and selects those global rows, in the order in which they appear in the IS, into a new parallel matrix. PCFieldsplitSetIS() can be used to specify those IS, so you can control the reordering. Does that make sense?</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 class="msg8581164509330084109"><div lang="DE" style="overflow-wrap: break-word;"><div class="m_-6491416473861208233WordSection1">
<p class="MsoNormal"><span lang="EN-US">The thing I am wanting to work on is implementing a pressure convection diffusion preconditioner with FEniCS for the incompressible Navier-Stokes equations.</span> </p></div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg8581164509330084109"><div lang="DE" style="overflow-wrap: break-word;"><div class="m_-6491416473861208233WordSection1"><p class="MsoNormal"><span lang="EN-US">The parent matrix is assembled via a mixed FEM and then I use
 PETSc to solve the system. I want to assemble the corresponding operators on the pressure space from a collapsed (i.e. sub-space of the mixed FEM) function space. However, FEniCS re-orders the DoFs there, but I can get a mapping between the DoFs so this should
 not be problematic. However, I am not sure if PETSc also does a re-ordering.</span></p></div></div></div></blockquote><div><br></div><div>You can just create an IS with that reordering. What operator are you planning on assembling on the pressure space? Have you seen <a href="https://urldefense.us/v3/__https://arxiv.org/abs/1810.03315__;!!G_uCfscf7eWS!ZFlvrtpVlFuXdYWcwujVNh1WjnSmuEKqsh1s3GCYbyN0_wNsVgBaJo3x-lWG3Iea3iQhp_iniM9QzFsIVQ1L$">https://arxiv.org/abs/1810.03315</a>?</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 class="msg8581164509330084109"><div lang="DE" style="overflow-wrap: break-word;"><div class="m_-6491416473861208233WordSection1">
<p class="MsoNormal"><span lang="EN-US">Thanks a lot in advance and best regards,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">Sebastian<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt">--
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt">Dr. Sebastian Blauth<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt">Fraunhofer-Institut für<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt">Techno- und Wirtschaftsmathematik ITWM<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt">Abteilung  Transportvorgänge<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt">Fraunhofer-Platz 1, 67663 Kaiserslautern<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt">Telefon: +49 631 31600-4968<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt"><a href="mailto:sebastian.blauth@itwm.fraunhofer.de" target="_blank"><span style="color:blue">sebastian.blauth@itwm.fraunhofer.de</span></a><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt"><a href="https://urldefense.us/v3/__https://www.itwm.fraunhofer.de/__;!!G_uCfscf7eWS!f_qaoCRxX3prMgl6ev5fvSFQegVfZo84xW9eJTz7uYmLjZiyJFIlm1tlqYrM3LqjOpkEoMrIJZo6J63-23-atPBnJn4et_4R-UvZoWlBpHM$" target="_blank"><span style="color:blue">https://www.itwm.fraunhofer.de</span></a><u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>

</div></blockquote></div><div><br clear="all"></div><div><br></div><span class="gmail_signature_prefix">-- </span><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="https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!ZFlvrtpVlFuXdYWcwujVNh1WjnSmuEKqsh1s3GCYbyN0_wNsVgBaJo3x-lWG3Iea3iQhp_iniM9QzPGY9jGb$" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>