Solving the Navier Stokes Equations accurately up to a tolerance

I am currently working on solving a non-linear coupled system where one of the coupled PDEs is the Navier-Stokes-Equation. As an intermediate step, I currently try to solve the coupled formulation of the Navier-Stokes-Equation which itself is not a problem.
However, the solution misses the precision I need. Even using a Krylov Solver with BiCGStab as algorithm and hypre_amg as preconditioner does not yield a solution that has a tolerance lower than 1e-2.
I also ran through the FENaPack demos without improvement and considered the iterative stokes demo using a preconditioner again without achieving the desired tolerance. Of course, I could simply use the standard solver and make the time step much smaller, but this does not seem feasible in the big scheme.

TLDR: What is the best way to solve the coupled weak formulation of the Navier Stokes Equations in Fenics up to an absolute tolerance of lets say 1e-6 w.r.t. unit testing.

Any hints to packages, demos etc. are appreciated.

Turns out I did a Rookie-mistake. I was simply evaluating the residual wrong since I was not applying the boundary conditions. Therefore my residual was artifically high along the boundary. For the solution see this:

For reasonable small DOFs and reasonably small time discretization the standard solver, as well as the Krylov solver equipped with BiCGStab and hypre_amg as preconditioner, solves the coupled Navier-Stokes-Equation up to a precision of 1e-12.

1 Like