Meshing the cow
The cow mesh is an example of a "broken" mesh. Try
mesh = RepairMesh[mesh]
before sending it to ToElementMesh
.
Among other nice meshes, you can find a free and "clean" cow mesh also on Keenan Crane's homepage:
https://www.cs.cmu.edu/~kmcrane/Projects/ModelRepository/
This is the model (without texture):
As other's have stated, the issue is self intersecting facets:
mr = RepairMesh[ExampleData[{"Geometry3D", "Cow"}, "MeshRegion"]];
FindMeshDefects[mr]
If we could determine if a point is 'inside' the cow, we could use a naive variant of the powercrust algorithm. Here 'inside' is not necessarily well defined.
Luckily we can use isInside
defined specifically for this model here!
dm = DelaunayMesh[MeshCoordinates[mr]];
powercrust = BoundaryMesh @ MeshRegion[
MeshCoordinates[dm],
Pick[MeshCells[dm, 3], isInside /@ PropertyValue[{dm, 3}, MeshCellCentroid]]
];
Needs["NDSolve`FEM`"]
ToElementMesh[powercrust]
ElementMesh[{{-0.410816, 0.410816}, {-0.133851, 0.133851}, {-0.251619, 0.251619}}, {TetrahedronElement["<" 25368 ">"]}]