Monolithic Navier–Stokes solver with PETSc field-split (LSC) preconditioning #289
Replies: 3 comments 4 replies
-
|
I think we could replace ns_code1 with a block preconditioned, monolithic solver. That demo enforces bad behavior (pressure enforced strongly), and introduces a sub-par splitting scheme (ns_code2.py is better). so yes, I would be interested in a demo that does this. Maybe open cavity example from: https://arxiv.org/pdf/2112.05309 I am open to other benchmarks that have available data as well. |
Beta Was this translation helpful? Give feedback.
-
|
Thank you for the clarification and helpful feedback. I’ve reviewed the Open Cavity benchmark from Huang et al. (2021, arXiv:2112.05309), and agree it’s an excellent choice. Based on your suggestion, I plan to:
Before proceeding, I just wanted to confirm that this setup aligns with what you had in mind for replacing ns_code1.py. Once confirmed, I’ll open a new GitHub Issue to formally outline the implementation plan, and then submit a Pull Request (PR) once the new solver example is complete. Thank you again for the guidance and I really appreciate your time and input. |
Beta Was this translation helpful? Give feedback.
-
|
Thank you for the suggestion, that’s a great point. Yes, using another inf-sup stable element pair, such as the Crouzeix–Raviart (CR) element or another div-conforming option, could indeed be valuable. Would you recommend that I implement the solver directly using the CR element pair instead of the Taylor–Hood (P2–P1) formulation, or should I start with the Taylor–Hood version first and then explore the CR-based implementation as a comparison? Appreciate the guidance. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I would like to suggest adding a monolithic incompressible Navier–Stokes solver example to the FEniCSx tutorial collection.
This implementation would solve the fully coupled velocity–pressure system using PETSc field-split (Schur complement) preconditioning, starting with the Least-Squares Commutator (LSC) approach. The example would build upon existing Navier–Stokes tutorials (ns_code1, ns_code2) but differ by demonstrating a block-preconditioned monolithic formulation rather than a projection or splitting scheme.
The tutorial could include standard benchmark problems such as the lid-driven cavity or steady cylinder flow, showcasing performance and solver configuration details for users interested in advanced PETSc options.
Could you please confirm whether this capability already exists in the repository or if this would be a new and valuable addition?
Thank you for your time and consideration.
Beta Was this translation helpful? Give feedback.
All reactions