It appears as though ElementMeshInterpolation
does not play nice with the element meshes produced by BoundaryMesh
<< NDSolve`FEM`
bmesh = ToBoundaryMesh[Ball[]];
bscalarvals = RandomReal[1, Length[bmesh["Coordinates"]]];
bmeshinterp = ElementMeshInterpolation[{bmesh}, bscalarvals];
(* ElementMeshInterpolation::fememtlq: The quality -1. of the underlying mesh is too low. The quality needs to be larger than 0.`. *)
This seems to stem from the fact that, being a surface mesh, bmesh
has no volume elements. Is there some way to trick this thing into working or acquire the desired functionality in some other way?
In the meantime I've written something to convert points on the surface mesh to the barycentric coordinates of one of the triangles and interpolate that way, but I wonder if there is a better way.