Short question: how to ensure that extra points are not included as 'boundary' points after calling the refine function.
More details.
I am working with a hexahedral mesh in $3$d. Let $X$ be the set of mesh points. The mesh describes a connected object with an irregular geometry, but is flat in the sense that if $\pmb{x}\in X$, then the third component of $\pmb{x}$ is in the set $\lbrace z_{1},z_{2}\rbrace$.
The hexahedral mesh was unsuitable for use in FEniCS, so I used the tetrahedralize filter in paraview. I then converted to xml format and was able to read this into a FEniCS code.
The mesh was unsuitable to solve PDEs on since all mesh points were boundary points. I then called refine and have mesh points $\pmb{x}$ such that their z-component is in the set $\lbrace z_{1},z_{3/2},z_{2}\rbrace$. I extracted the boundary mesh by calling bmesh = BoundaryMesh(mesh, "exterior", True). I find that there are too many bmesh coordinate points and that they lie on the interior of the object that I am meshing. Unfortunately the geometry of the mesh is complicated and so I can't describe the boundary with a simple function like $x[0]=0$.