Why '-pc_type hypre' does not converge?

Dear all,

When I parallelize my code of a 2D lid driven cavity problem. I found that when I choose set(NS, sparams = “-pc_type lu”) the result is good. But when I choose to use set(NS, sparams = “-pc_type hypre”, the result is wrong, it shows it doesn’t converge every step.

Does anyone know the reason? Many thanks in advance.
2D_lid_dirven_cavity_parallel.edp (2.7 KB)

Multiple reasons:

  1. you are using the default tgv value which is terrible for iterative solvers
  2. you are solving a saddle-point problem, and this doesn’t work out-of-the-box for such problems

I see, many thanks , professor.