I want to mesh objects that contain multiple regions, starting from a surface mesh; and building “vol” files. I am trying to interpret the intended use of domin and domout. (I think I get surfnr and bcnr; at least well enough to make some progress.)
I looked at the vol files in the ngsolve share directory , but could not decipher the intent.

My first guess as to their use was that they indicate the region/material in a region (domin), and outside of the body (domout).

Attempting to implement this interpretation, by having domout vary with position/face in order to represent faces shared with other materials/regions, causes many errors as follows:
.ERROR: Edge 2920 - 3065 multiple times in surface mesh
ERROR: Edge 3065 - 3208 multiple times in surface mesh
ERROR: Surface mesh not consistent
ERROR: Stop meshing since surface mesh not consistent

Are descriptions of the use of domin and domout available somewhere?
Or can you describe their intent?

Thank you for any guidance:

You are right, domin/domout give the region number in front of and behind the surface triangle. Front and back side depend on the numbering of vertices.

We have a python example generating the surface mesh of a multi-material model here: Working with meshes — NGS-Py 6.2.2302 documentation