How to generate a mesh which contains given points at the boundary. The simplest representation would be a cube with a circle presented by this code:
<< NDSolve`FEM`
cubeCoordinates = {{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}, {0, 0,
1}, {1, 0, 1}, {1, 1, 1}, {0, 1, 1}};
circle = {#[[1]], #[[2]], 0} & /@ CirclePoints[{0.5, 0.5}, 0.25, 10];
ListPointPlot3D[{cubeCoordinates, circle}]
QE = QuadElement[{{1, 2, 3, 4}, {5, 6, 7, 8}, {1, 2, 6, 5}, {2, 3, 7,
6}, {3, 4, 8, 7}, {4, 1, 5, 8}}];
bm = ToBoundaryMesh["Coordinates" -> cubeCoordinates,
"BoundaryElements" -> {QE}];
bm["Wireframe"]
em = ToElementMesh[bm];
em["Wireframe"]
Generating the mesh without including the circle is very simple, however when trying to include the circle points I always get an error. Also nothing about such case is in documentation (only 2D examples are present).
dm = DelaunayMesh[ Cases[Join[cubeCoordinates, circle], {_, _, 0}][[All, {1, 2}]]]
as a basis for the lower part. $\endgroup$