Thats quite a few questions, I will try to answer them one by one:
The post you mentioned is about the CSG Geometry Kernel (built-in in Netgen). OCC Surface meshing is not parallelized because we had issues with thread-safety in OpenCascade. Thus, only the surface optimization afterwards is running in parallel.
The face numbering has nothing to do with the parallelization, Netgen builds a face map, iterating over all compounds/solids and their faces, see here:
github.com/NGSolve/netgen/blob/master/li...occ/occgeom.cpp#L900
The 100% CPU usage is due to the busy loop in the TaskManager (which has the benefit that even small loops profit from parallelization with low task distribution overhead). I agree that we should throttle this in sequential parts of the code (this is done when calling external direct solvers in NGSolve for instance)
Disabling multithreading was just a suggestion for debugging your meshing issue, not a recommendation in general.
For tagging the bad face, you could set the surface color at occgeom.cpp, line 247:
mesh.GetFaceDescriptor(nr).SetSurfColour({1,0,0,1});
We will think about a more general solution. Note that there is the debugparam setting "write_mesh_on_error", which is set from Python with
Code:
netgen.meshing.debugparam.write_mesh_on_error = True
But this flag is only handled during volume meshing at this moment.
Best,
Matthias