As usual, the Firedrake person in the best position to answer your question is Lawrence, but he's currently on holiday.

I won't try to answer your question, but in an old email, Lawrence suggested you try using multigrid on the blocks; e.g.

'fieldsplit_0_pc_type': 'gamg',
'fieldsplit_1_pc_type': 'gamg',

My linear solver knowledge is pretty dire, so I'll stop talking here :)

Andrew

On 15 October 2015 at 13:58, Justin Chang <jychang48@gmail.com> wrote:
I did ask them, but it went unanswered for the last 1.5 months...

Let me clarify my question a bit though, I tried using -ksp_type cg -pc_type hypre -pc_hypre_type boomeramg, but it is not supported for matnest. I added nest=False but it seems to break my solver somehow.

The only thing that works for me is -ksp_type cg -pc_type bjacobi plus MixedVectorSpaceBasis(W, ...) but the number of solver iterations increases with problem size...

Thanks,
Justin

On Thu, Oct 15, 2015 at 6:50 AM, Andrew McRae <A.T.T.McRae@bath.ac.uk> wrote:
I think the PETSc mailing list is a much better place to ask questions like this?

On 15 October 2015 at 13:47, Justin Chang <jychang48@gmail.com> wrote:
Hi all,

I am attempting to solve Darcy's equation:

u + grad[p] = 0
div[u] = f

The weak form under the least-squares finite element method (LSFEM)
looks like this:

(u + grad[p]; v + grad[q]) + div[u]*div[v] = (f; div[v])

For H(div) elements like RT0, these options worked nicely:

-ksp_type gmres
-pc_type fieldsplit
-pc_fieldsplit_type schur
-pc_fieldsplit_schur_precondition selfp
-fieldsplit_0_ksp_type preonly
-fieldsplit_0_pc_type bjacobi
-fieldsplit_0_sub_pc_type ilu
-fieldsplir_1_ksp_type preonly
-fieldsplit_1_pc_type hypre

but for the above LSFEM, it does not work (get a DIVERGED_MAX_IT error). I heard multigrid methods are good for these types of problems, so how do I tweak the above parameters?

Thanks,
Justin


_______________________________________________
firedrake mailing list
firedrake@imperial.ac.uk
https://mailman.ic.ac.uk/mailman/listinfo/firedrake