[petsc-users] DMPlex doubt

Miguel Angel Tapia miguel.td19 at outlook.com
Sun Jul 25 20:43:32 CDT 2021

I'm really sorry, I should have explained it more specifically.

This is the situation. I am using a very simple mesh to learn and test with DMPlex. My mesh has these nodes:
1 0 0 0
2 1 0 0
3 1 1 0
4 0 1 0
5 0 0 1
6 1 0 1
7 1 1 1
8 0 1 1
9 0.5 0.5 1
10 0.5 0 0.5
11 1 0.5 0.5
12 0.5 1 0.5
13 0 0.5 0.5
14 0.5 0.5 0

Executing in a single process these 14 nodes take values ​​from 24 to 37. I would like to know how to obtain the coordinates through DMPlex. I know that using DMGetCoordinatesLocal I get the vector of all coordinates. But I would like to be more specific. For example, I choose point 2 of the DAG of the mesh that I am using, this point is formed by nodes 32, 33, 34 and 36 according to the order of the DAG. How can I know the coordinates of those specific nodes?

And if I know those coordinates, I can see which points are from the original mesh and verify that they are the same in the software to which I want to implement DMPlex. Maybe this is very simple, but I am just learning the use of the tool and right now my job is to know if I can obtain the same results with DMPlex as the code I want to modify.
De: Mark Adams <mfadams at lbl.gov>
Enviado: domingo, 25 de julio de 2021 06:43 a. m.
Para: Miguel Angel Tapia <miguel.td19 at outlook.com>
CC: petsc-users at mcs.anl.gov <petsc-users at mcs.anl.gov>
Asunto: Re: [petsc-users] DMPlex doubt

This is a Matt question and I recall a question on getting the original node ordering recently, but I am not finding it.

How is your Plex created? If you give it a mesh and don't distribute it the node ordering does not change.
In that case you can use a simpler version Brandon's code:
ierr = DMGetCoordinatesLocal(dm, &coordinates);CHKERRQ(ierr);
Then use VecView.

However, I don't understand what you are trying to do exactly. Are you just verifying that PLex has the correct coordinates?


On Sat, Jul 24, 2021 at 9:58 AM Miguel Angel Tapia <miguel.td19 at outlook.com<mailto:miguel.td19 at outlook.com>> wrote:
Hello. I am a master's student in Mexico. I am currently working on a project in which we are implementing DMPlex in a code for electromagnetic modeling. Right now I am working on understanding the tool in C. But I'm stuck on something and that's why my next doubt:

I am trying to get the coordinates of the nodes of a mesh in DMPlex. I already understood how the DAG is structured, how to obtain the nodes that make up some point. But the ordering of the nodes changes in DMPlex. So I need to know the coordinates of each node to compare them with my initial mesh and confirm that the same nodes form the same point in the software I am using as well as in the DMPlex DAG.

It would be great if you could guide me a bit on how to do this or indicate which DMPlex examples would be good to review or which examples solve something similar to my situation.

Thank you in advance. Regards.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20210726/c5a8a3c8/attachment.html>

More information about the petsc-users mailing list