# Normal of a triangular mesh

I know the function RegionMeshMeshCellNormals[], which evaluates the knot normal. I couldn't find documentation to this function which probably averages the normals of the neighboring mesh elements.

Does someone know how the averaging works? Thanks!

Testing it with

R = DiscretizeRegion[Sphere[]]


and

R = ExampleData[{"Geometry3D", "Triceratops"}, "MeshRegion"]


it looks like Mathematica takes the normals of each triangle adjacent to a given vertex and returns the normalization of their arithmetic mean.

Often a different averaging is used: Take the normals of the triangles and avarage them per area; i.e. take the area normals of each triangle (the cross product of two edge vectors; beware to use consistent orientations), add all the area normals of all the triangles around a vertex and normalize the result. A nice feature of these normals is that they coincide with the $L^2$-gradient of the enclosed-volume functional (for closed, oriented surfaces). In view of the Steiner formula, these normals are often considered to be "the right discretization" of surface normals. Moreover, they behave a bit better when dealing with meshes of triangles with severely differing size.

However, in view of FEM, all these normals are equally good (or equally bad), i.e. they have error $O(h)$ which is to big to use them for a consistent definition of a discrete second fundamental form - just in case your question should point into that direction.

• And just to make sure: FEM does not make use of normals - ever. – user21 Jan 22 '18 at 7:31
• Oh, you made the 10K mark. Well done. – user21 Jan 22 '18 at 7:33
• @user21 Thank's! – Henrik Schumacher Jan 22 '18 at 7:34
• @user21 Well, if one would like to apply FEM to curvature functionals of surfaces (e.g. thin plate energy), then the second fundamental form (the derivative of the normal vector field along the surface) is a major contribution. Applied to piecewise-linear surfaces, this does sometimes leads to consistent results - and nobody can tell why. I humbly link to this paper (look only at the images, the rest is quite abstract and not related to approximation theory). – Henrik Schumacher Jan 22 '18 at 7:38
• @Henrik Schumacher: Thank you for the detailed answer, which describes some kind of arithmetic averaging. A different approach would be a harmonic averaging using the inverse areas. The background of my question was the comparison of these two approaches. – Ulrich Neumann Jan 22 '18 at 8:01