Replies: 1 comment 1 reply
-
|
Can I suggest that you ask this on our Slack (https://www.firedrakeproject.org/contact.html) instead? I'm very confident someone will be able to answer you there. |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Hi guys,
I am new to Firedrake and I am currently trying out the matrix free implementation using the 3d driven cavity as an example. Initially I tried out a semi-implicit/pseudo time approach in which the matrix free multigrid jacobi preconditioner with mesh hierarchy was rebuilt each time step without any picard iterations within time steps. This code does not seem to have runtime issues.
When I switched to picard iterations within a time step, the solver was failing at random number of time steps of picard iterates for the same command (whether I lag the preconditioner or build it each picard step). I found this quite odd. Adding a very small 'pressure penalty' removed this behaviour entirely. Now the code seems to work that is it gives the same pressure drop but determined to various additive constants. I have had this type of experience in other matrix free codes as well when the pressure pin or nullspace remover seems to get lost within the multigrid.
If someone can provide guidance on this matter, in order to make it more robust (without adding any terms or by adding a pressure pin that works to remove the nullspace), I will be much obliged. I apologize in advance if I might have missed some tutorial details which are already provided on this.
My code is linked here
https://github.com/JD63021/3D_cavity_matrixfree/blob/non-linear-picard/cavity_3d2.py
best regards
Beta Was this translation helpful? Give feedback.
All reactions