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!



