[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