[petsc-users] locate DMSwarm particles with respect to a background DMDA mesh

Matthew Knepley knepley at gmail.com
Fri Nov 4 06:48:17 CDT 2022


On Fri, Nov 4, 2022 at 7:46 AM Matteo Semplice <
matteo.semplice at uninsubria.it> wrote:

> On 04/11/2022 02:43, Matthew Knepley wrote:
>
> On Thu, Nov 3, 2022 at 8:36 PM Matthew Knepley <knepley at gmail.com> wrote:
>
>> On Thu, Oct 27, 2022 at 11:57 AM Semplice Matteo <
>> matteo.semplice at uninsubria.it> wrote:
>>
>>> Dear Petsc developers,
>>>     I am trying to use a DMSwarm to locate a cloud of points with
>>> respect to a background mesh. In the real application the points will be
>>> loaded from disk, but I have created a small demo in which
>>>
>>>    - each processor creates Npart particles, all within the domain
>>>    covered by the mesh, but not all in the local portion of the mesh
>>>    - migrate the particles
>>>
>>> After migration most particles are not any more in the DMSwarm (how many
>>> and which ones seems to depend on the number of cpus, but it never happens
>>> that all particle survive the migration process).
>>>
>>> I am clearly missing some step, since I'd expect that a DMDA would be
>>> able to locate particles without the need to go through a DMShell as it is
>>> done in src/dm/tutorials/swarm_ex3.c.html
>>> <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpetsc.org%2Fmain%2Fsrc%2Fdm%2Ftutorials%2Fswarm_ex3.c.html&data=05%7C01%7Cmatteo.semplice%40uninsubria.it%7C98335c5548fd4df3ec9208dabe060043%7C9252ed8bdffc401c86ca6237da9991fa%7C0%7C0%7C638031230248558895%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=j23JDuWGg3BwgLdSNbO0biatt%2FfyslLISMn2mM6MxrI%3D&reserved=0>
>>>
>>> I attach my demo code.
>>>
>>> Could someone give me a hint?
>>>
>>
>> Thanks for sending this. I found the problem. Someone has some overly
>> fancy code inside DMDA to figure out the local bounding box from the
>> coordinates.
>> It is broken for DM_BOUNDARY_GHOSTED, but we never tested with this. I
>> will fix it.
>>
>
> Okay, I think this fix is correct
>
>   https://gitlab.com/petsc/petsc/-/merge_requests/5802
> <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.com%2Fpetsc%2Fpetsc%2F-%2Fmerge_requests%2F5802&data=05%7C01%7Cmatteo.semplice%40uninsubria.it%7C98335c5548fd4df3ec9208dabe060043%7C9252ed8bdffc401c86ca6237da9991fa%7C0%7C0%7C638031230248558895%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=qNjWHwveQoOIgvwLq1WBmMRlBr%2FLH%2FQQphOzoxNP7NQ%3D&reserved=0>
>
> I incorporated your test as src/dm/impls/da/tests/ex1.c. Can you take a
> look and see if this fixes your issue?
>
> Yes, we have tested 2d and 3d, with various combinations of DM_BOUNDARY_*
> along different directions and it works like a charm.
>
> On a side note, neither DMSwarmViewXDMF nor DMSwarmMigrate seem to be
> implemented for 1d: I get
>
> [0]PETSC ERROR: No support for this operation for this object type
>                                                                                                                                             [0]PETSC
> ERROR: Support not provided for 1D
>
> However, currently I have no need for this feature.
>
> Finally, if the test is meant to stay in the source, you may remove the
> call to DMSwarmRegisterPetscDatatypeField as in the attached patch.
>
> Thanks a lot!!
>
>
Thanks! Glad it works.

   Matt


>     Matteo and Silvia
>
>
>   Thanks,
>
>      Matt
>
>
>>   Thanks,
>>
>>      Matt
>>
>>
>>> Best
>>>     Matteo
>>>
>>>
>>
>> --
>> 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/
>> <https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.cse.buffalo.edu%2F~knepley%2F&data=05%7C01%7Cmatteo.semplice%40uninsubria.it%7C98335c5548fd4df3ec9208dabe060043%7C9252ed8bdffc401c86ca6237da9991fa%7C0%7C0%7C638031230248558895%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=NUrLdRYvJVG9FK%2B66ku2yE6gNsX5xDMsccNsdhSQXHA%3D&reserved=0>
>>
>
>
> --
> 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/
> <https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.cse.buffalo.edu%2F~knepley%2F&data=05%7C01%7Cmatteo.semplice%40uninsubria.it%7C98335c5548fd4df3ec9208dabe060043%7C9252ed8bdffc401c86ca6237da9991fa%7C0%7C0%7C638031230248558895%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=NUrLdRYvJVG9FK%2B66ku2yE6gNsX5xDMsccNsdhSQXHA%3D&reserved=0>
>
> --
> Prof. Matteo Semplice
> Università degli Studi dell’Insubria
> Dipartimento di Scienza e Alta Tecnologia – DiSAT
> Professore Associato
> Via Valleggio, 11 – 22100 Como (CO) – Italia
> tel.: +39 031 2386316
>
>

-- 
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/20221104/e4578161/attachment-0001.html>


More information about the petsc-users mailing list