3D Incompressible Navier-Stokes: boundary condition problem

The point is that you should write a triangular mesh (as shown in the tutorial) alongside your tetrahedral mesh.
You then read in the triangular mesh and load it into a MeshValueCollection, as described here:

Then, you can use DirichletBC in the way shown here: