FEniCS / dolfinx

Next generation FEniCS problem solving environment
https://fenicsproject.org
GNU Lesser General Public License v3.0
734 stars 178 forks source link

Interpolation on a submesh #2126

Closed jpdean closed 3 months ago

jpdean commented 2 years ago

Interpolation on a mesh where a process has no cells currently causes a segfault. Returning an empty array of interpolation coordinates on processes with no cells (see https://github.com/FEniCS/dolfinx/tree/jpdean/submesh_function_fix) fixes this. However, if a process happens to own a dof that is not in a cell on that process, it's value will not be set on that process during intepolation. A work around is to send ghost values back to their owners, but this seems like a hack. This issue should only affect point evaluation dofs on the mesh vertices.

garth-wells commented 3 months ago

@jpdean can this be closed?

jpdean commented 3 months ago

Yes, this has been fixed properly now by determining new owners for unconnected submesh vertices