[petsc-dev] gamg regression

Stephan Kramer s.kramer at imperial.ac.uk
Thu Jun 18 05:20:15 CDT 2015

On 17/06/15 21:09, Mark Adams wrote:
> Thanks,
> There are two problems: 1) GAMG is not setting PREONLY & 2) PCSetup_MG
> sets the coarse grid KSP, with bjacobi/lu, to GMRES.  I have made a pull
> request in to fix this.
> You seem to be destroying the PC with PCDestroy (or KSPDestroy).  Is
> that right?

Hm not entirely sure what you mean. We destroy the KSP (and thus the PC) 
after the solve, yes - but that's in any of the lines I gave you.
> Can you please test this and see if works, without your fix?
>   'git fetch; git checkout mark/gamg-crs',

Great! That fixes everything for me: it uses KSP+PREONLY for mg_coarse 
by default again and I can also override it with -mg_coarse_ksp_type

Thanks a lot for fixing this

> Mark
> On Wed, Jun 17, 2015 at 1:03 PM, Stephan Kramer <s.kramer at imperial.ac.uk
> <mailto:s.kramer at imperial.ac.uk>> wrote:
>     On 17/06/15 17:37, Mark Adams wrote:
>                  Second question (less important): I didn't manage to
>         change this
>                  at the command line. I would have thought
>         -mg_coarse_ksp_type
>                  preonly should have done the trick but seemed to be
>         ignored.
>                  Instead I had to do it with some calls in the code:
>         Humm, this seems to work for me (I just cut and pasted this).
>         Can you
>         try using -options_left.
>     It does pick up the -mg_coarse_ksp_type option (so it's not printed
>     with -options_left) but gets overwritten later on. I've been tracing
>     the various calls to KSPSetType() and it seems to be doing the
>     following with the ksp of the coarse solve:
>     1) it sets it to KSPCHEBY on mg.c:226
>     2) it overwrites it with KSPPREONLY on mg.c:240 - I guess this is
>     the expected behaviour
>     3) it sets it to KSPPREONLY again on mg.c:717 via KSPSetFromOptions
>     - that is, it's picking up the "-mg_coarse_ksp_type preonly" option
>     4) it sets it back to KSPGMRES on mg.c:806 - because it seems to
>     think that the coarse solve is not a direct solve and therefore
>     shouldn't be using preonly. The reason for this is that the direct
>     solve is wrapped in a PCBJACOBI (gamg.c:713) and therefore the
>     pctype of mg_coarse is not PCLU but PCBJACOBI
>     (all line numbers refer to petsc master)
>     So I'm guessing it's that last one causing me trouble
>     Cheers
>     Stephan

More information about the petsc-dev mailing list