Dear Matt,

thanks for the clarification. Yes, that makes sense. Basically, I use two 
approaches for defining the splits in my code, see 
https://urldefense.us/v3/__https://github.com/sblauth/cashocs/blob/46c0d91467d03a4906b7bde29727b45d4bb0d6d2/cashocs/_utils/linalg.py*L245-L287__;Iw!!G_uCfscf7eWS!ZrZxEenSD9yoVQBgqWHSpGUGp75YsbFopexb0vZKBu8oG5soqUBYoVKVAGETh1eMtV2aO-XjQUFcjY-OdaJUjHL04TxyhunHGM7Y_93bJVg$
 
I think the first one, where the IS is defined, then does exactly what I 
thought it would do. In the second approach, which I need for nested 
fieldsplits, I use a DMShell with a Section defined analogously - so I guess 
the same applies here.

Well, yes I could just reorder the DoFs for the creation of the submatrices - 
but I usually don't need these sub-functionspaces and would not want to create 
them every time. I thought of using MatPermute 
(https://urldefense.us/v3/__https://petsc.org/release/petsc4py/reference/petsc4py.PETSc.Mat.html*petsc4py.PETSc.Mat.permute__;Iw!!G_uCfscf7eWS!ZrZxEenSD9yoVQBgqWHSpGUGp75YsbFopexb0vZKBu8oG5soqUBYoVKVAGETh1eMtV2aO-XjQUFcjY-OdaJUjHL04TxyhunHGM7YwxbMqnE$
 ) with the permutation I get from FEniCS - or is there any reason not to do so?

And thank you very much for the reference. Yes, I am aware of the paper you 
sent. However I think the function spaces involved in the method make it more 
or less infeasible for me - usually using Taylor-Hood elements is already very 
expensive. I usually use a stabilized P1-P1 discretization or try to get the 
linear Crouzeix–Raviart with elementwise constant pressure working (for slow 
flows, this works okay, but as I go to higher Reynolds numbers, things become 
more problematic).

And regarding your question on which operators I am planning to assemble on the 
pressure space: Basically the pressure mass matrix, pressure 
convection-diffusion matrix and a pressure Laplacian.

If you have any tips for solving the incompressible Navier Stokes equations 
(steady state) at higher Reynolds numbers I certainly welcome them. I can also 
go a bit more into detail of what kind of solution approach I am using - if 
that is appropriate here.

Thanks a lot and best regards,
Sebastian


-- 
Dr. Sebastian Blauth
Fraunhofer-Institut für
Techno- und Wirtschaftsmathematik ITWM
Abteilung  Transportvorgänge
Fraunhofer-Platz 1, 67663 Kaiserslautern
Telefon: +49 631 31600-4968
[email protected]
https://urldefense.us/v3/__https://www.itwm.fraunhofer.de__;!!G_uCfscf7eWS!ZrZxEenSD9yoVQBgqWHSpGUGp75YsbFopexb0vZKBu8oG5soqUBYoVKVAGETh1eMtV2aO-XjQUFcjY-OdaJUjHL04TxyhunHGM7YW0PRsVU$
 

> -----Original Message-----
> From: Matthew Knepley <[email protected]>
> Sent: Tuesday, November 18, 2025 5:23 PM
> To: Blauth, Sebastian <[email protected]>
> Cc: PETSc users list <[email protected]>
> Subject: Re: [petsc-users] Ordering of DoFs in submatrices with PCFieldsplit
> 
> On Tue, Nov 18, 2025 at 11:12 AM Blauth, Sebastian
> <[email protected]
> <mailto:[email protected]> > wrote:
> 
>       Dear PETSc developers and users,
> 
> 
> 
>       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?
> 
> 
> Hi Sebastian,
> 
> 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?
> 
> 
>       The thing I am wanting to work on is implementing a pressure convection
> diffusion preconditioner with FEniCS for the incompressible Navier-Stokes
> equations.
> 
>       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.
> 
> 
> You can just create an IS with that reordering. What operator are you 
> planning on
> assembling on the pressure space? Have you seen
> https://urldefense.us/v3/__https://arxiv.org/abs/1810.03315?__;!!G_uCfscf7eWS!ZrZxEenSD9yoVQBgqWHSpGUGp75YsbFopexb0vZKBu8oG5soqUBYoVKVAGETh1eMtV2aO-XjQUFcjY-OdaJUjHL04TxyhunHGM7YE-1UtAk$
>  
> 
>   Thanks,
> 
>      Matt
> 
> 
>       Thanks a lot in advance and best regards,
> 
>       Sebastian
> 
> 
> 
>       --
> 
>       Dr. Sebastian Blauth
> 
>       Fraunhofer-Institut für
> 
>       Techno- und Wirtschaftsmathematik ITWM
> 
>       Abteilung  Transportvorgänge
> 
>       Fraunhofer-Platz 1, 67663 Kaiserslautern
> 
>       Telefon: +49 631 31600-4968
> 
>       [email protected]
> <mailto:[email protected]>
> 
>       
> https://urldefense.us/v3/__https://www.itwm.fraunhofer.de__;!!G_uCfscf7eWS!ZrZxEenSD9yoVQBgqWHSpGUGp75YsbFopexb0vZKBu8oG5soqUBYoVKVAGETh1eMtV2aO-XjQUFcjY-OdaJUjHL04TxyhunHGM7YW0PRsVU$
>  
> <https://urldefense.us/v3/__https://www.itwm.fraunhofer.de/__;!!G_uCfscf7eW
> S!f_qaoCRxX3prMgl6ev5fvSFQegVfZo84xW9eJTz7uYmLjZiyJFIlm1tlqYrM3LqjOpkE
> oMrIJZo6J63-23-atPBnJn4et_4R-UvZoWlBpHM$>
> 
> 
> 
> 
> 
> --
> 
> What most experimenters take for granted before they begin their experiments 
> is
> infinitely more interesting than any results to which their experiments lead.
> -- Norbert Wiener
> 
> https://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!ZrZxEenSD9yoVQBgqWHSpGUGp75YsbFopexb0vZKBu8oG5soqUBYoVKVAGETh1eMtV2aO-XjQUFcjY-OdaJUjHL04TxyhunHGM7YQCIJKn8$
>  
> <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!ZrZxEenSD9yoVQBgqWHSpGUGp75YsbFopexb0vZKBu8oG5soqUBYoVKVAGETh1eMtV2aO-XjQUFcjY-OdaJUjHL04TxyhunHGM7YUxlQO8E$
>  >

Reply via email to