Hi all,

I might be missing something obvious, but I can't tell from the documentation 
if 1D coordinate DMSWARMs (immersed in interval DMPlex meshes) are supported. 
Does anyone know?

I've successfully implemented 2D and 3D coordinate DMSwarms in 2D and 3D 
DMPlexes using DMSwarmSetPointCoordinates in Firedrake using petsc4py (via 
swarm.setPointCoordinates. The petsc4py function forces the input numpy array 
to have 2 dimensions with 1 column per dimension. In the 1D case, where each 
row of the coordinates array therefore has one column, I get the following 
error:

E   petsc4py.PETSc.Error: error code 63
E   [0] DMSwarmSetPointCoordinates() line 305 in 
/Users/rwh10/firedrake/src/petsc/src/dm/impls/swarm/swarmpic.c
E   [0] DMLocatePoints() line 6499 in 
/Users/rwh10/firedrake/src/petsc/src/dm/interface/dm.c
E   [0] DMLocatePoints_Plex() line 744 in 
/Users/rwh10/firedrake/src/petsc/src/dm/impls/plex/plexgeometry.c
E   [0] DMPlexLocatePoint_Internal() line 462 in 
/Users/rwh10/firedrake/src/petsc/src/dm/impls/plex/plexgeometry.c
E   [0] Argument out of range
E   [0] No point location for cell 0 with type segment

Thanks

Reuben Hill

Reply via email to