[petsc-dev] [petsc-maint #57017] Hypre

Barry Smith bsmith at mcs.anl.gov
Wed Dec 1 11:29:40 CST 2010


  We need a really good entry in the FAQ for solving Stokes problems with PETSc or a solid section in the users manual. This question comes up fairly often (usually phrased as something like ILU sucks for my problem, what is wrong with PETSc).

   Barry

On Dec 1, 2010, at 8:32 AM, Jed Brown wrote:

> On Wed, Dec 1, 2010 at 15:18, Barry Smith <bsmith at mcs.anl.gov> wrote:
> 
>> If your problem is a "Stokes" like problem that just throwing a generic
>> preconditioner like Euclid at it without doing something special for the
>> fact that it is "Stokes like" problem won't work well. Perhaps Jed has some
>> suggestions.
> 
> 
> Yes, please describe the problem you are solving, including your choice of
> space and time discretization.  If you are fully implicit in time for
> incompressible flow, chances are you will have to do some work to make it
> scale.
> 
> When dealing with indefinite problems (like Stokes), it is extremely
> important to check *unpreconditioned* residuals because it is not somewhat
> common for preconditioners to be singular when applied to such problems.
> BoomerAMG is often afflicted by this.  The following is pasted from an old
> email, but should serve as a warning:
> 
> This issue came up when a libmesh dev inquired why -pc_type hypre
> appeared to converge, but didn't actually solve the system (BoomerAMG
> has massive null space on this system).  Since they use penalty boundary
> conditions, working in the unpreconditioned norm is tricky, so it's
> necessary to be very careful that the preconditioner is full-rank.  So
> unpreconditioned residuals would look like:
> 
> 0 KSP Residual norm 9.899494936612e+05
> 1 KSP Residual norm 3.460941545811e-02
> 2 KSP Residual norm 3.411670842883e-02
> 3 KSP Residual norm 3.406431296292e-02
> 4 KSP Residual norm 3.376198186394e-02
> 5 KSP Residual norm 3.374434209905e-02
> 6 KSP Residual norm 3.370086274150e-02
> 7 KSP Residual norm 3.334190783058e-02
> 8 KSP Residual norm 3.321057363881e-02
> 9 KSP Residual norm 3.321055343672e-02
> 10 KSP Residual norm 3.318392045928e-02
> 
> while preconditioned residuals looked fantastic, despite being nonsense
> 
> 0 KSP Residual norm 9.526419214320e+00
> 1 KSP Residual norm 9.406988599189e-02
> 2 KSP Residual norm 2.767040414824e-03
> 3 KSP Residual norm 1.649604812054e-03
> 4 KSP Residual norm 1.611023301144e-03
> 5 KSP Residual norm 7.073431543229e-04
> 6 KSP Residual norm 1.404066303578e-04
> 7 KSP Residual norm 1.347821147393e-04
> 8 KSP Residual norm 7.713640141302e-05
> 9 KSP Residual norm 5.121198361232e-05
> 10 KSP Residual norm 4.790100151952e-05
> 11 KSP Residual norm 1.769376148248e-05
> 12 KSP Residual norm 1.671836687758e-05
> 13 KSP Residual norm 9.561298137614e-06
> 14 KSP Residual norm 6.509746067580e-07
> 15 KSP Residual norm 5.863323408081e-07
> 16 KSP Residual norm 5.120192651612e-07
> 17 KSP Residual norm 3.403122131501e-07
> 18 KSP Residual norm 3.342529361191e-07
> 19 KSP Residual norm 9.178974981883e-08
> 
> Jed
> 
> On Wed, Dec 1, 2010 at 15:18, Barry Smith <bsmith at mcs.anl.gov> wrote:
> If your problem is a "Stokes" like problem that just throwing a generic preconditioner like Euclid at it without doing something special for the fact that it is "Stokes like" problem won't work well. Perhaps Jed has some suggestions.
> 
> Yes, please describe the problem you are solving, including your choice of space and time discretization.  If you are fully implicit in time for incompressible flow, chances are you will have to do some work to make it scale.
> 
> When dealing with indefinite problems (like Stokes), it is extremely important to check *unpreconditioned* residuals because it is not somewhat common for preconditioners to be singular when applied to such problems.  BoomerAMG is often afflicted by this.  The following is pasted from an old email, but should serve as a warning:
> 
> This issue came up when a libmesh dev inquired why -pc_type hypre
> appeared to converge, but didn't actually solve the system (BoomerAMG
> has massive null space on this system).  Since they use penalty boundary
> conditions, working in the unpreconditioned norm is tricky, so it's
> necessary to be very careful that the preconditioner is full-rank.  So
> unpreconditioned residuals would look like:
> 
>  0 KSP Residual norm 9.899494936612e+05
>  1 KSP Residual norm 3.460941545811e-02
>  2 KSP Residual norm 3.411670842883e-02
>  3 KSP Residual norm 3.406431296292e-02
>  4 KSP Residual norm 3.376198186394e-02
>  5 KSP Residual norm 3.374434209905e-02
>  6 KSP Residual norm 3.370086274150e-02
>  7 KSP Residual norm 3.334190783058e-02
>  8 KSP Residual norm 3.321057363881e-02
>  9 KSP Residual norm 3.321055343672e-02
>  10 KSP Residual norm 3.318392045928e-02
> 
> while preconditioned residuals looked fantastic, despite being nonsense
> 
>  0 KSP Residual norm 9.526419214320e+00
>  1 KSP Residual norm 9.406988599189e-02
>  2 KSP Residual norm 2.767040414824e-03
>  3 KSP Residual norm 1.649604812054e-03
>  4 KSP Residual norm 1.611023301144e-03
>  5 KSP Residual norm 7.073431543229e-04
>  6 KSP Residual norm 1.404066303578e-04
>  7 KSP Residual norm 1.347821147393e-04
>  8 KSP Residual norm 7.713640141302e-05
>  9 KSP Residual norm 5.121198361232e-05
>  10 KSP Residual norm 4.790100151952e-05
>  11 KSP Residual norm 1.769376148248e-05
>  12 KSP Residual norm 1.671836687758e-05
>  13 KSP Residual norm 9.561298137614e-06
>  14 KSP Residual norm 6.509746067580e-07
>  15 KSP Residual norm 5.863323408081e-07
>  16 KSP Residual norm 5.120192651612e-07
>  17 KSP Residual norm 3.403122131501e-07
>  18 KSP Residual norm 3.342529361191e-07
>  19 KSP Residual norm 9.178974981883e-08
> 
> Jed




More information about the petsc-dev mailing list