[petsc-users] DMPlexCreateSection crashed with larger number of processors

Matthew Knepley knepley at gmail.com
Wed Jul 13 10:25:13 CDT 2022


On Wed, Jul 13, 2022 at 10:08 AM Mike Michell <mi.mike1021 at gmail.com> wrote:

> What I did to avoid the crash is to provide bcPointIS from "call
> DMGetStratumIS(dm_geom, "depth", dim, bcPointIS(1),ierr);CHKERRA(ierr)",
> instead of "marker" for calling DMGetStratumIS().
> The petscsection building part is
> from src/dm/impls/plex/tutorials/ex1f90.F90 (See line 72).
>

That looks like you are putting all cells in the IS. Is that what you want?

  Thanks,

     Matt


>
>> On Sat, Jul 9, 2022 at 8:34 AM Matthew Knepley <knepley at gmail.com> wrote:
>>
>>> On Fri, Jul 8, 2022 at 7:41 PM Mike Michell <mi.mike1021 at gmail.com>
>>> wrote:
>>>
>>>> As a follow-up, just "depth" default label was provided to avoid NULL
>>>> PETScIS, and it seems working.
>>>>
>>>
>>> Ah, "depth" is definitely required and is produced by DMPlexStratify().
>>> I will put in a check for this so that you get a good error message.
>>>
>>
>> I cannot find an instance of an IS being pulled from the depth label
>> here. Do you have something I can run that shows this fault?
>>
>>   Thanks,
>>
>>      Matt
>>
>>
>>>   Thanks!
>>>
>>>      Matt
>>>
>>>
>>>> Thanks,
>>>> Mike
>>>>
>>>>
>>>>> It looks like NULL PETScIS is obtained from DMGetStratumIS() which is
>>>>> shown in the previously attached code. Currently, "marker" label is used to
>>>>> define default bcPointIS pointer with numBC=1 through DMGetStratumIS(), and
>>>>> it seems that if a certain proc does not have any boundary from this
>>>>> "marker" label, the DMPlexCreateSection() crashes.
>>>>>
>>>>> The PETSc's manual page for DMPlexCreateSection() says "bcPoints" is
>>>>> an IS holding points to which each boundary condition applies. So, by
>>>>> including no boundary for a certain distributed mesh block, it looks very
>>>>> natural that this function crashes. How can I not to pass a NULL PETScIS in
>>>>> this case? Is there any specific way for that (or a trick)?
>>>>>
>>>>> Thanks,
>>>>> Mike
>>>>>
>>>>>
>>>>>> On Wed, Jul 6, 2022 at 3:42 PM Mike Michell <mi.mike1021 at gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> I am passing NULL for IS Permutation as;
>>>>>>>
>>>>>>> call
>>>>>>> DMPlexCreateSection(dm_geom,nolabel,pNumComp,pNumDof,numBC,pBcField,pBcCompIS,pBcPointIS,PETSC_NULL_IS,section,ierr)
>>>>>>>
>>>>>>> Should I define non-NULL IS Permutation before I call
>>>>>>> DMPlexCreateSection() to avoid the issue?
>>>>>>>
>>>>>>
>>>>>> No, the problem is not the perm argument. To be sure, we should get a
>>>>>> stack trace with line numbers (use a debug build). To me it looked
>>>>>> like you passed a NULL IS to DMAddBoundary().
>>>>>>
>>>>>>   Thanks,
>>>>>>
>>>>>>     Matt
>>>>>>
>>>>>>
>>>>>>> Thanks,
>>>>>>> Mike
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Jul 6, 2022 at 12:57 PM Mike Michell <mi.mike1021 at gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Hi, I am using DMPlex for a FVM code written in Fortran that uses
>>>>>>>>> DMPlexCreateSection() to prepare an output file in vtu format. A domain of
>>>>>>>>> interest has around 5000 node points and with small number of processors
>>>>>>>>> (such as nproc=3), the DMPlexCreateSection() works fine. However, if a
>>>>>>>>> larger number of procs (such as nproc=20) is used,  DMPlexCreateSection()
>>>>>>>>> crashes with error message below. It looks very similar problem in a
>>>>>>>>> previous PETSc user inquiry: " [petsc-dev] DMPlexCreateSection
>>>>>>>>> crash in a no-boundary corner case
>>>>>>>>> <https://lists.mcs.anl.gov/pipermail/petsc-dev/2013-November/014049.html>
>>>>>>>>> "
>>>>>>>>>
>>>>>>>>
>>>>>>>> Yes, the recommendation is not to pass a NULL PetscIS to the
>>>>>>>> AddBoundary() routine. Are you doing this?
>>>>>>>>
>>>>>>>>   Thanks,
>>>>>>>>
>>>>>>>>      Matt
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> When I call DMPlexCreateSection(), a nullified pointer
>>>>>>>>> "nolabel(:)=>NULL()" is provided. What is a possible solution to this
>>>>>>>>> problem? It looks like there is a problem with a processor that does not
>>>>>>>>> have any boundaries. A piece of the source code is attached to show how
>>>>>>>>> the  DMPlexCreateSection() is used in the code.
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Mike
>>>>>>>>>
>>>>>>>>> [16]PETSC ERROR: --------------------- Error Message
>>>>>>>>> --------------------------------------------------------------
>>>>>>>>> [16]PETSC ERROR: Null argument, when expecting valid pointer
>>>>>>>>> [16]PETSC ERROR: Null Pointer: Parameter # 1
>>>>>>>>> [16]PETSC ERROR: See https://petsc.org/release/faq/ for trouble
>>>>>>>>> shooting.
>>>>>>>>> [16]PETSC ERROR: Petsc Release Version 3.17.0, unknown
>>>>>>>>> [16]PETSC ERROR: #1 ISGetLocalSize() at
>>>>>>>>> [16]PETSC ERROR: #2 DMPlexCreateSectionBCDof() at
>>>>>>>>> [16]PETSC ERROR: #3 DMPlexCreateSection() at
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> What most experimenters take for granted before they begin their
>>>>>>>> experiments is infinitely more interesting than any results to which their
>>>>>>>> experiments lead.
>>>>>>>> -- Norbert Wiener
>>>>>>>>
>>>>>>>> https://www.cse.buffalo.edu/~knepley/
>>>>>>>> <http://www.cse.buffalo.edu/~knepley/>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> What most experimenters take for granted before they begin their
>>>>>> experiments is infinitely more interesting than any results to which their
>>>>>> experiments lead.
>>>>>> -- Norbert Wiener
>>>>>>
>>>>>> https://www.cse.buffalo.edu/~knepley/
>>>>>> <http://www.cse.buffalo.edu/~knepley/>
>>>>>>
>>>>>
>>>
>>> --
>>> What most experimenters take for granted before they begin their
>>> experiments is infinitely more interesting than any results to which their
>>> experiments lead.
>>> -- Norbert Wiener
>>>
>>> https://www.cse.buffalo.edu/~knepley/
>>> <http://www.cse.buffalo.edu/~knepley/>
>>>
>>
>>
>> --
>> What most experimenters take for granted before they begin their
>> experiments is infinitely more interesting than any results to which their
>> experiments lead.
>> -- Norbert Wiener
>>
>> https://www.cse.buffalo.edu/~knepley/
>> <http://www.cse.buffalo.edu/~knepley/>
>>
>

-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener

https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20220713/9ce2941e/attachment-0001.html>


More information about the petsc-users mailing list