On 4 Apr 2016, at 15:04, Onno Bokhove <O.Bokhove@leeds.ac.uk> wrote:
Some considerations for the firedrake(s): - It may be worthwhile to use a direct solver at first to see whether the scheme works at all;
Definitely. Try with not to many elements. You'll need to do the following: parameters["matnest"] = False And run with: solve(..., solver_parameters={'pc_type': 'lu'}) Be aware that you may need to select a "better" direct solver (e.g. MUMPS) using: 'pc_factor_mat_solver_package': 'mumps'
this may be slow but that is of later consideration. Note that the system of equations to be solved is linear (the system at time level ^n+1 is linear), even though the system of equations is nonlinear.
Aha, I had wondered where the nonlinearities had disappeared to!
- For a different iterative solver one may need some adequate preconditioning?
Without question. There are good schemes for the separate navier-stokes and cahn-hilliard blocks, there appears to be less literature on preconditioning for the coupled system (although a good start would be to have a block-preconditioner that ignores the couplings). Jessica Bosch has been doing work recently on preconditioning the coupled system (see e.g. http://meetings.siam.org/sess/dsp_talk.cfm?p=71937), but I do not think a paper has appeared. Cheers, Lawrence