VertexOnlyMesh in parallel #2813
-
Is that a way to map between the coordinates used to instantiate a For example with the construction
the length of Is there a way to identify which for which |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 4 replies
-
Not at the moment, which I'm aware is an issue particularly now that broadcasting the coordinates from rank 0 is the default behaviour. For now, assuming none of your coordinates are the same, you can manually look at the coordinates using vmesh = VertexOnlyMesh(space.mesh(), X_coords, missing_points_behaviour='error') to throw an error if points are lost. This will soon become the default behaviour. I'm currently in the process of allowing points in the halos and adding point ids which you can query to deal with the case where coordinates may match. Of course the ideal scenario would be to supply a global list of point values which matches the global list of point coordinates and have them automatically assigned. This could use the PETSc SF which I need to set up for having points in the halos but I'm not sure what the API should be. Perhaps we could use |
Beta Was this translation helpful? Give feedback.
Not at the moment, which I'm aware is an issue particularly now that broadcasting the coordinates from rank 0 is the default behaviour. For now, assuming none of your coordinates are the same, you can manually look at the coordinates using
vmesh.coordinates.data.data_ro_with_halos
on each rank and match them to the data you have. At present I empty the halos of points as a way of ensuring uniqueness, which I know isn't ideal, but you ought to find that the total length ofvmesh.coordinates.data.data_ro_with_halos
does correspond to the length ofX_coords
- if not, you must be losing points. You can check this by doing