[petsc-users] locate DMSwarm particles with respect to a background DMDA mesh
Matteo Semplice
matteo.semplice at uninsubria.it
Fri Nov 4 06:46:21 CDT 2022
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!!
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20221104/72c0a34b/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch_on_dmdatestlocateparticles.patch
Type: text/x-patch
Size: 608 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20221104/72c0a34b/attachment.bin>
More information about the petsc-users
mailing list