[petsc-users] ASM vs GASM
Boyce Griffith
boyceg at gmail.com
Tue Apr 30 07:53:13 CDT 2019
> On Apr 29, 2019, at 9:47 PM, Boyce Griffith <boyceg at gmail.com> wrote:
>
>
>
>> On Apr 29, 2019, at 8:39 PM, Smith, Barry F. via petsc-users <petsc-users at mcs.anl.gov> wrote:
>>
>>
>> I believe so. Probably you've already done this but you can look at src/ksp/ksp/examples/tutorials ex62.c and ex64.c for sample usage.
>
> Yep!
>
>> Do you get the same (correct) behavior for both when you use inner_ises but no outer (let GASM/ASM determine it)? What if you use the same outer as inner?
>
> I think that I had a bug in setting up the overlapping subdomains. Now GASM seems to work, but the convergence history does not seem to depend on how I set the outer IS, which seems surprising. In particular, with GASM, I’ve tried setting the outer IS to include overlaps; setting the outer IS to be the inner IS; and setting the outer IS to NULL — all converge in 2 iterations using exact subdomain solves. (This is a problem with only 2 subdomains.)
>
> ASM gives different results. Specifically, if I let ASM determine the overlaps automatically, then it converges in 4 iterations. If I use the inner IS and the overlapping IS, then it takes nearly 40.
Ah, I may have spoken too soon.
Allowing GASM to construct the "outer" subdomains from the non-overlapping "inner" subdomains, and using "exact" subdomain solvers (subdomain KSPs are using FGMRES+ILU with an rtol of 1e-12), I get convergence in ~2 iterations in the preconditioned residual norm to an rtol of 1e-12. If I look at the true residual norm, however, it stagnates around 1e-4.
Allowing ASM to construct the "outer" subdomains from the same non-overlapping "inner" subdomains used with GASM, and using "exact" subdomain solvers, I get convergence in ~4 iterations in both the preconditioned and true residual norm to an rtol of 1e-12.
>> Note that for ASM the "inner" subdomains can overlap while for GASM they cannot overlap (and of course their union needs to be all degrees of freedom).
>
> I think that I have been setting up the inner subdomains correctly for GASM. I have some doubts about how I am setting up the overlapping regions, and so I think I will just let GASM setup the overlaps for now.
>
>> GASM is usually used where each inner is exactly several processes but it should work more generally as well.
>
> This is a situation where I have different PDEs on two subdomains with a flux continuity condition along the interface. One subdomain has a scalar PDE (just Laplace’s equation), the other has a vector PDE. I am trying to use GASM to split up the problems, and then to use GAMG on the scalar domain and FIELDSPLIT on the vector domain. I already know that FIELDSPLIT can be made to work well on the vector PDE.
BTW, is GASM the right thing to be using for this kind of domain decomposition?
Thanks!
-- Boyce
> Thanks!
>
> — Boyce
>
>> Barry
>>
>>
>>> On Apr 29, 2019, at 7:10 PM, Griffith, Boyce Eugene via petsc-users <petsc-users at mcs.anl.gov> wrote:
>>>
>>> I am trying to setup a GASM preconditioner and am running into some difficulty getting convergence even with exact subdomain solvers. I am just doing things in serial now, and tried switching to ASM, and get convergence. I am wondering if I am misunderstanding the GASM interface. If inner_ises and outer_ises define the “inner” and “outer” subdomains for GASM, should GASM and ASM do the same things when configured via:
>>>
>>> PCGASMSetSubdomains(pc, n_subdomains, inner_ises, outer_ises);
>>>
>>> and
>>>
>>> PCASMSetLocalSubdomains(pc, n_subdomains, outer_ises, inner_ises);
>>>
>>> Thanks!
>>>
>>> — Boyce
>>
>
More information about the petsc-users
mailing list