Mark,<div><br></div><div>You should pass your subdomain ISs through the first IS list argument, and leave the second as PETSC_NULL.</div><div>In that case GASM assumes that the user passed in a nonoverlapping decomposition through the first list.</div>
<div>This is the behavior that GASM inherited from ASM and it isn't very well (or at all) documented in either.</div><div>Let me know if that doesn't fix the problem.</div><div><br></div><div>Note also that you don't have to explicitly set overlap to 0: if the user sets not overlap PETSc won't try to increase it,</div>
<div>and if you set overlap to 0 it will not try to adjust the subdomains to make sure the overlap is 0. Both ASM and GASM simply assume that the user does the right thing and passes in a nonoverlapping decomposition.</div>
<div><br></div><div>Incidentally, it may be time to change this API. I'm trying to debug a bad convergence problem with GASM -- inexplicably, it converges slower than ASM with a single process and multiple subdomains -- so now is a good time to mess with the code, while I still remember what's what. Another thing I've considered doing is reordering the subdomains internally (on demand only), to ensure a deadlock-free ordering of the subcomms.</div>
<div><br></div><div>Dmitry.</div><div><br><div class="gmail_quote">On Tue, Mar 27, 2012 at 6:28 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
This is why petsc-dev is better than a random list of email addresses. No one on your random list uses GASM<br>
<br>
<br>
<br>
Barry<br>
<br>
On Mar 27, 2012, at 4:49 PM, Mark F. Adams wrote:<br>
<br>
> I'm trying to make general non-overlapping domains in GASM. I create a vector of IS, each with the global indices of the equations in each block.<br>
><br>
> I use code that looks like:<br>
><br>
> ierr = PCSetType( subpc, PCGASM ); CHKERRQ(ierr);<br>
> ierr = PCGASMSetLocalSubdomains( subpc, sz, PETSC_NULL, is ); CHKERRQ(ierr);<br>
> ierr = PetscFree( is ); CHKERRQ(ierr);<br>
> ierr = PCGASMSetOverlap( subpc, 0 ); CHKERRQ(ierr);<br>
><br>
> In parallel, I get errors like this:<br>
><br>
> [1]PETSC ERROR: gis_local contains -85 indices outside of gis!<br>
> <snip><br>
> [1]PETSC ERROR: PCSetUp_GASM() line 332 in /Users/markadams/Codes/petsc-dev/src/ksp/pc/impls/gasm/gasm.c<br>
><br>
> Anyone have any ideas on what I'm doing wrong here? I've checked the input and I think it is fine,<br>
><br>
> Mark<br>
<br>
</blockquote></div><br></div>