Step 31: Preconditioner correspondence

21 views
Skip to first unread message

Franco Milicchio

unread,
Jul 30, 2019, 11:47:47 AM7/30/19
to deal.II User Group
Dear all,

As I am moving towards understanding the wrappers, I am facing a problem in making Step 31 converge. My previous question is answered, and it compiles. Yet, I am still wondering what kind of "pure deal.II" preconditioner I could use in that tutorial.

Specifically, there are two in the tutorial (using Trilinos).
  • PreconditionAMG is an algebraic multigrid using a Chebyshev smoother, used to solve the stokes problem. 
  • PreconditionIC is an incomplete Cholesky, used to retrieve the temperature.
Now my implementation runs (with results), but I am aware my choices are not the best ones. Please note that I am using just deal.II without PETSc now as I am unable to run codes that require MPI (so, no Hypre). I've chosen to use:
  • SparseILU for the stokes problem.
  • IdentityPreconditioner for the temperature.
Do you have any suggestions? I could also use PETSc, but MPI is not an option.

Thanks for your help!
    Franco

Wolfgang Bangerth

unread,
Jul 30, 2019, 4:57:55 PM7/30/19
to dea...@googlegroups.com
On 7/30/19 9:47 AM, Franco Milicchio wrote:
> Dear all,
>
> As I am moving towards understanding the wrappers, I am facing a problem
> in making Step 31 converge. My previous question is answered, and it
> compiles. Yet, I am still wondering what kind of "pure deal.II"
> preconditioner I could use in that tutorial.
>
> Specifically, there are two in the tutorial (using Trilinos).
>
> * PreconditionAMG is an algebraic multigrid using a Chebyshev
> smoother, used to solve the stokes problem.
> * PreconditionIC is an incomplete Cholesky, used to retrieve the
> temperature.
>
> Now my implementation runs (with results), but I am aware my choices are
> not the best ones. Please note that I am using just deal.II without
> PETSc now as I am unable to run codes that require MPI (so, no Hypre).
> I've chosen to use:
>
> * SparseILU for the stokes problem.
> * IdentityPreconditioner for the temperature.
>
> Do you have any suggestions? I could also use PETSc, but MPI is not an
> option.

Preconditioner design is hard -- which is why I've recorded 4 or so
lectures on the topic ;-)

The Stokes problem is symmetric, so you can probably gain a bit by using
an incomplete Cholesky decomposition for it instead of the ILU.

The temperature equation is, I believe, symmetric in step-31 as well
(the advection is treated explicitly IIRC) and so a sparse IC would work
again. (If we decided to treat advection implicitly -- I just don't
recall --, then an ILU would again be the correct choice.)

But in reality, neither ILU nor IC are particularly good
preconditioners. They're expensive to compute and, unless you have very
good strategies for deciding which fill-in you want to allow (which we
don't have in deal.II), then they're not all that much better than an
SSOR or SOR preconditioner -- which you can of course also try. The
strategies used in the tutorial are chosen well, but require
implementations of algorithms that just aren't available in deal.II.

Best
W.


--
------------------------------------------------------------------------
Wolfgang Bangerth email: bang...@colostate.edu
www: http://www.math.colostate.edu/~bangerth/

Franco Milicchio

unread,
Aug 1, 2019, 9:16:35 AM8/1/19
to deal.II User Group

Preconditioner design is hard -- which is why I've recorded 4 or so
lectures on the topic ;-)



Thanks for your answer, Wolfgang, and I sure appreciate all the lectures!

Cheers!
    Franco
Reply all
Reply to author
Forward
0 new messages