diff --git a/elastodynamicsx/solutions/modalbasis.py b/elastodynamicsx/solutions/modalbasis.py index 7a622a5..d69561b 100644 --- a/elastodynamicsx/solutions/modalbasis.py +++ b/elastodynamicsx/solutions/modalbasis.py @@ -76,7 +76,8 @@ def plot(self, function_space:'dolfinx.fem.function_space', which='all', **kwarg grid = pyvista.UnstructuredGrid(topology, cell_types, geom) for i, eigM in zip(indexes, eigenmodes): nbpts = grid.number_of_points - grid['eigenmode_'+str(i)] = elastodynamicsx.plot.get_3D_array_from_nparray(np.array(eigM), nbpts) + with eigM.localForm() as loc_eigM: # Necessary for correct handling of ghosts in parallel + grid['eigenmode_'+str(i)] = elastodynamicsx.plot.get_3D_array_from_nparray(loc_eigM.array, nbpts) nbcols = int(np.ceil(np.sqrt(indexes.size))) nbrows = int(np.ceil(indexes.size/nbcols))