I have a slight problem with pairing up boundary points of BoundaryMesh with appropriate BoundaryNormals. Let's work with a simple domain for now: Needs["NDSolve`FEM`"] box = ToBoundaryMesh[Rectangle[], "MeshOrder" -> 1]; Now the problem is, that box["BoundaryNormals"] is nested: this will be important later. However, we can unnest it and show the normals: boxCoords = box["Coordinates"]; normals = Partition[Flatten@box["BoundaryNormals"],2]; Graphics@MapThread[Arrow[{#1, #2}] &, {boxCoords, normals/15 + boxCoords}] And this shows the problem: Normals are not appropriately oriented and some of them are messed up on the same side! My favorite domain is the following: dom = ImplicitRegion[(x - 1/2)^2 + (y - 1/2)^2 >= (1/4)^2, {{x, 0, 1}, {y, 0, 1}}]; boundary = ToBoundaryMesh[dom, "MeshOrder" -> 1]; bndry = Partition[Flatten[boundary["Coordinates"]], 2]; normals = Partition[Flatten[boundary["Bound