BoundaryMesh of MeshView in Parallel

Hello,

I want to create a exterior boundary mesh of a mesh view created from parrent mesh like this:

dolfin-version: 2019.2.0.dev0

full_mesh = Mesh()
with XDMFFile("domain_data/mesh.xdmf") as infile:
    infile.read(full_mesh)

mvc = MeshValueCollection("size_t", full_mesh, 3)
with XDMFFile("domain_data/mesh_subdomains.xdmf") as infile:
    infile.read(mvc)
domains = cpp.mesh.MeshFunctionSizet(full_mesh, mvc)

sub_mesh = MeshView.create(domains, 1)
with XDMFFile("domain_data/sub_mesh.xdmf") as infile:
    infile.write(sub_mesh)


interface_mesh = BoundaryMesh(sub_mesh, 'exterior')
with XDMFFile("domain_data/interface_mesh.xdmf") as infile:
    infile.write(interface_mesh)

The mesh data are accesible here: meshes_fenics - Google Drive

The problem is that this works only with one process.
When I use MPI the BoundaryMesh also contains ‘interior’ boundary facets (see image bellow):
top left - the parent mesh
top right - the MeshFunction for domains
bottom left - is the extracted MeshView
bottom_right - should be just the surface of the cylinders but has the interior inter process facets in it as well

The mesh is generated by Gmsh btw.
This might be related: Problem with interpolating and mixed function over a submesh in parallel - #13 by nami

How can I extract just the surface when I need the two domains to be conformal and such that they map to the parrent mesh correctly?
This for example does not allow me to use interpolate.

Thank you for any reply!

Now when I am looking at it it looks like the problem comes from MeshView. When I solve my problem I see that the DirichletBCs got applied at the internal inter process boundaries as well.

I have red that MeshView should work in parallel here Assigning one VectorFunctionSpace to multiple submeshes - #4 by dokken

but this looks like it does not :face_with_diagonal_mouth:.

It is Broken!!

I have studied the source code on BitBucket and tried to test an undocumented demo/test (Bitbucket) for meshview in 3D myself with the latest version of dolfin built from source (Bitbucket).

Serial solution: python3 demo.py

Parallel solution: mpirun -n 35 python3 demo.py

So basically MeshView is not working in parallel!
If you have similar problems then do not use MeshView.