[petsc-dev] PCASM uses DMCreateDecomposition which splits field, NOT expected behavior

Jed Brown jedbrown at mcs.anl.gov
Mon May 28 17:02:08 CDT 2012


This is an enormous amount of new code and changes to put in during a code
freeze, but my test case works now. A couple comments  from looking at the
patch:

I'm not sure I like the direction of the link in DMSetEmbedding(DM dm, IS
embedding, DM ambientdm). Normally the composite DM knows how to fit its
pieces together, but the sub-DM does not have "upward links" to the global
problem.

There are dead links in your documentation because you reference functions
that don't exist (were renamed), e.g. DMCreateDecomposition() in the
DMSetEmbedding() man page. There may be more. You should generate the docs
and check the man pages.

How does your interface support "Neumann" subdomains?

Your DMCreateDomainDecomposition() seems to provide nominally overlapping
index sets, but how do we determine what part is owned? (RASM, especially,
needs both an overlapping decomposition and a (non-overlapping) partition.

On Mon, May 28, 2012 at 4:32 PM, Dmitry Karpeev <karpeev at mcs.anl.gov> wrote:

> I refactored the code to get rid of field/domain decomposition mixing.
> The use of DM in ASM is reenabled here:
> http://petsc.cs.iit.edu/petsc/petsc-dev/rev/2e2ee6a01d1a
> I didn't see any errors related to it in alltest, but I'll keep an eye on
> the nightlies.
>
> Dmitry.
>
>
> On Sun, May 27, 2012 at 9:40 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
>
>> In particular, read through my first email in this thread. I explain how
>> your implementation leads to several instances of either the wrong
>> algorithm or a crash.
>>
>> I pushed SNES runex48_5, it is a basic test of PCASM using AIJ, BAIJ, and
>> SBAIJ.
>>
>> If you revert http://petsc.cs.iit.edu/petsc/petsc-dev/rev/d9a0e3f9dacd,
>> the AIJ test will take much more iterations and the other two will crash.
>>
>>
>> On Sun, May 27, 2012 at 9:02 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
>>
>>> ./ex48 -pc_type asm
>>>
>>> does the wrong algorithm.
>>> On May 27, 2012 8:56 PM, "Dmitry Karpeev" <karpeev at mcs.anl.gov> wrote:
>>>
>>>> I think I have a fix and want to reenable DM to serve up decompositions
>>>> to PCASM.
>>>> Was there a particular test that was failing? I don't see any
>>>> decomposition-related errors in alltest.
>>>> Dmitry.
>>>>
>>>> On Sat, May 26, 2012 at 10:38 PM, Jed Brown <jedbrown at mcs.anl.gov>wrote:
>>>>
>>>>> On Sat, May 26, 2012 at 10:24 PM, Dmitry Karpeev <karpeev at mcs.anl.gov>wrote:
>>>>>
>>>>>> How about having a DM-specific function for that designation?
>>>>>>>
>>>>>> DMXXXGetFieldSplits()/DMXXXGetDomainDecompositions(), for example?
>>>>>>
>>>>>
>>>>> For the C interface, maybe configure a named set with DMXxxSet... and
>>>>> tell PCASM to use it. For the options database interface, maybe have the
>>>>> option processed by DMXxx code instead of by PCASM. I don't know, this
>>>>> might be just as bad.
>>>>>
>>>>>
>>>>>> I think that would work, if the implementation defined only a small
>>>>>> number of decompositions.
>>>>>> If instead there is a short grammar defining well-formed strings
>>>>>> naming such decompositions, I'm not sure how to
>>>>>> communicate that to the user, other than in documentation.  I have
>>>>>> DMLibMeshGetVars() to return all vars.  FieldSplits
>>>>>> can be defined as arbitrary groupings of those.  Each split will then
>>>>>> advertise only the vars in the groupings that defines the split.
>>>>>>
>>>>>
>>>>> I still don't know what to do about a nonlinear change of basis.
>>>>> Advertising var names seems reasonable to me.
>>>>>
>>>>> Note that ASM domains are essentially vertex-oriented which is
>>>>> different from element-centered domains (natural for non-overlapping
>>>>> methods).
>>>>>
>>>>
>>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120528/c730c099/attachment.html>


More information about the petsc-dev mailing list