Parallel read of ExodusII side sets not a union of the parts
When I use the ExodusII reader to read a data set (mesh + side sets + field data) from partitioned files, I don't get a correct union of the side sets. Perhaps I'm not using this correctly and someone can help me out.
Example: An ExodusII mesh file has 6 side sets each with its own 16 triangle faces (relevant output obtained using ncdump):
num_side_ss1 = 16 ; num_side_ss2 = 16 ; num_side_ss3 = 16 ; num_side_ss4 = 16 ; num_side_ss5 = 16 ; num_side_ss6 = 16 ; ss_prop1 = 1, 2, 3, 4, 5, 6 ;
If this is saved in two ExodusII files (after running on 2 PEs and having the mesh partitioned into two parts), out.0 and out.1 may contain partial side set information:
num_side_ss1 = 16 ; num_side_ss2 = 7 ; num_side_ss3 = 7 ; num_side_ss4 = 7 ; num_side_ss5 = 8 ; ss_prop1 = 2, 3, 4, 5, 6 ;
num_side_ss1 = 16 ; num_side_ss2 = 9 ; num_side_ss3 = 9 ; num_side_ss4 = 9 ; num_side_ss5 = 8 ; ss_prop1 = 1, 3, 4, 5, 6 ;
I.e., side set 1 is only in out.1, side set 2 is only in out.0, while the rest of the side sets have a partial list of faces in each file. Note that the number of faces in each correctly sum to 16 on each side set, thus the union is what I'd like to see in Paraview. However, Paraview's Exodus reader fails to correctly load the union of all side sets when stitching the two files together, and only lists side sets 1,3,4,5,6. (In which all faces show up but some are assigned to incorrect side set ids, e.g., faces that were in 1 and 2 in the original mesh now are all in set 1.)
For reproduction, I attach the input mesh (unitcube_135ss.exo) and the mesh partitioned into to two files (out.0 and out.1).
I tried this with Paraview 5.4.1 and 5.5.2 and both behaves the same.unitcube_135ss.exoout.0out.1