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!