Thanks for the prompt reply and clarifications!

2) Could you be more specific about what should be different? It sounds
> like you want "your" DM attached to the (0,0) block so that
>     you can do GMG on the Laplacian there.
>

Exactly. This works if I use pc_type gamg on the (0,0) block, but if I swap
to pc_type mg which should use my DM info I end up in this situation.


> 3) We do not actually attach the DM proper. Rather DMCreateSubDM() is
> called to create a new DM with only the fields in the 0 block present. It is
>     likely that your DMShell does not implement this, and so something
> default is being done which does not work.
>
> What is not getting propagated properly for you?
>

Right, we do not currently implement this, and as it stands it looks like
the coarsen/refine, createinterpolation/createrestriction pointers are all
empty for the DM at:

https://bitbucket.org/petsc/petsc/src/34b5b06749738ef6a1a80e732c08f902d83c0500/src/dm/interface/dm.c#lines-2524

while setting up MG at in the first iteration at :

https://bitbucket.org/petsc/petsc/src/34b5b06749738ef6a1a80e732c08f902d83c0500/src/ksp/pc/impls/mg/mg.c#lines-659

Reply via email to