<div>Dmitry, I have problems with this commit.</div><div><br></div><div><a href="http://petsc.cs.iit.edu/petsc/petsc-dev/rev/440ec9350d51">http://petsc.cs.iit.edu/petsc/petsc-dev/rev/440ec9350d51</a></div><div><br></div><div>
<br></div>If I try running -pc_type asm with a vector problem defined on a DM, PCASM calls DMCreateDecomposition which splits fields on each process. This is of very limited value since usually every field is coupled to every other, so after increasing the overlap by one, you end up solving the entire subdomain twice. However, at this point, you are not using overlap so instead, we get subdomain and field blocked Jacobi. (Equivalent to BJacobi with additive fieldsplit inside.) This is certainly unexpected behavior.<div>
<br></div><div>It also crashes with Seq(S)BAIJ because MatGetSubMatrices_SeqBAIJ can only extract when the block size matches.</div><div><br></div><div>And it does the wrong thing when used with MPI(S)BAIJ because MatGetSubMatrices_MPIBAIJ calls ISCompressIndicesGeneral which silently "fills in" the blocks, leading to a Mat and Vec size mismatch. Hong, how should we enforce that the original index set actually addresses blocks? Why is it not okay to sort? (Don't we rely on those indices being sorted somewhere else anyway?)</div>
<div><br></div><div>Our test coverage must be pretty sucky if we went two months with ASM this broken for systems.</div><div><br></div><div><div><br></div><div>As a lower priority, -pc_asm_decomposition should provide a list of valid decompositions rather than be a magic string. Also, this form cannot be called outside of a PetscOptionsBegin/End pair, otherwise it doesn't print -help output. It should be moved to PCSetUp_ASM.</div>
</div><div><br></div><div>ierr = PetscOptionsString("-pc_asm_decomposition", "Name of the DM defining the composition", "PCSetDM", ddm_name, ddm_name,1024,&flg); CHKERRQ(ierr);</div><div>
<br></div><div><br></div><div><br></div><div>I have disabled that code for now, but we have to decide whether it's conceptually right (considering the effect on overlap) and if so, how to fix it.</div><div><br></div><div>
<a href="http://petsc.cs.iit.edu/petsc/petsc-dev/rev/d9a0e3f9dacd">http://petsc.cs.iit.edu/petsc/petsc-dev/rev/d9a0e3f9dacd</a></div>