Since the surface meshes are to be extended to volume meshes by constructing an offset as well as a far-field mesh, an extension of the rules for Catmull-Clark subdivision surfaces to rules for volumes is needed. In 1996, Joy and MacCracken [36] were the first to formulate such rules by directly generalizing them from the surface case. Bajaj et al. [37] tried a different approach: they wanted to analyze the smoothness of the resulting volume mesh. Therefore, they factored the tricubic subdivision process into trilinear subdivision followed by averaging. Overall, this leads to a different formulation of the rules. In this work, a combination of both is used since the vertex recomputation
formula developed by Joy and MacCracken does not consider an adjustment for the number of edges a vertex is connected to. The generalization of the surface rules leads to the restriction that the volume mesh has to contain only hexahedra composed of eight vertices, six faces and twelve edges. This is guaranteed in this approach if the surface mesh consists of quadrilaterals exclusively before the volumetric cells of the offset mesh are constructed. Since the first Catmull-Clark subdivision always provides a quadrilateral mesh, this requirement can be fulfilled easily. The extraordinary vertices of the surface mesh become extraordinary edges in the volume mesh, resulting in C0 -continuity away from the surface mesh. For the purpose of flow simulations, this is sufficient since a nested mesh hierarchy allowing for adaptive flow simulations can be created, see Sections 5.1 and 6.2.
The first three subdivision rules for volumes in the following list are the ones presented by Joy and MacCracken, whereas the fourth rule is taken from Bajaj et al.:
1. For each volumetric cell, add a point given by the average of the eight cell ver-tices pi:
c = 1 8
X7 i=0
pi . (3.63)
2. For each face, add a point given by a weighted average of the two new adjacent cell points cleft, cright and the face centroid fc:
f = 1
4(cleft+ 2 fc+ cright) . (3.64) 3. For each edge, add a point given by a weighted average of the edge midpoint ec, the average ˜c of the new adjacent cell points and the average ˜fc of the adjacent face centroids:
e = 1
n(˜c + 2 ˜fc+ (n− 3) ec) , (3.65) where n denotes the number of adjacent faces.
4. Move each old vertex to a new position:
pnew= X
qi∈ ring(p)
33−dim(qi,p)
43 val(p) val(qi, p) qi (3.66) with ring(p) denoting the set of vertices qi connected to p by a cell, a face or an edge. The vertex p itself is stored in ring(p), too. The number of cells containing p is given by val(p), whereas val(qi, p) is the number of cells containing both qi
and p. The connection between qi and p is specified by dim(qi, p) which is 0 if qi = p, 1 if qi and p lie on a common edge, 2 if they only lie on a common face or 3 if they only lie in a common cell.
5. Build the new edges by splitting the old ones, connecting the new face points to the new adjacent edge points and connecting the new cell points to the new adjacent face points. For one old cell, this leads to eight new cells instead of the old one, twelve new faces connecting the eight new cells to each other and 24 new faces instead of the six old faces bounding the old cell.
The faces, edges and vertices lying on the bounding surfaces of the volume mesh are treated as described for the surface case in Section 3.1.
Inner volume faces, which are the faces not lying on the inner or outer bounding surface, can be tagged to be special faces. These are needed later for the construction of an offset mesh, see Section 5.2. The subdivision rules for these special faces differ from the standard rules (3.64) to (3.66): for an edge of a special face, the sum of special faces being connected to the edge is computed. If this sum is larger than two, the edge point is computed using the curve rule (3.4) and tagged to become a fixed vertex for further subdivisions. If the sum equals two, the edge point is calculated by applying the surface rule (3.2) and tagged to become a vertex to which the surface vertex recomputation rule (3.3) is applied for further subdivisions, i.e., ˜f and ˜ec are computed using only face points and edge midpoints belonging to the adjacent special faces. The volume rule (3.64) for the face point insertion is replaced by the corresponding surface rule (3.1), and, analogously to the edge point insertion with a tag sum of two, the face point is tagged to become a vertex for which the surface vertex recomputation rule (3.3) is used.
If the three-dimensional Catmull-Clark rules are applied to a volume mesh at subdi-vision level k, the following numbers of cells (|C|), faces (|F |), edges (|E|) and vertices (|V |) at the new subdivision level k + 1 are obtained:
|Ck+1| = 8 |Ck| ,
|Fk+1| = 12 |Ck| + 4 |Fk| ,
|Ek+1| = 6 |Ck| + 4 |Fk| + 2 |Ek| ,
|Vk+1| = |Ck| + |Fk| + |Ek| + |Vk| .
(3.67)
The first goal of the mesh generation process presented in this work is the construction of a surface mesh as a control mesh for a Catmull-Clark surface which approximates a given B-spline geometry. This control mesh will be converted into a B-spline control mesh later, see Section 5.4, such that the corresponding B-spline surface is described by a reparametrization of the given B-spline surface. Such a reparametrization is usually necessary to make the B-spline representation of the geometry in the flow field suitable for numerical flow simulations since the original parametrization which can have gaps or overlaps is converted into a watertight parametrization with a homogeneous distribution of control points.
This chapter demonstrates how a Catmull-Clark surface approximating a given B-spline surface can be generated by an iterative surface fitting technique. The approach is demonstrated for two examples of half models of airplane wings, each being con-nected to a simplified fuselage. These B-spline geometries are described in detail in Section 4.1. For the surface mesh generation, at first an initial surface polyhedron has to be constructed, roughly approximating the given B-spline surface, see Section 4.2.
This is the first part of the mesh generation process as it is depicted in Figure 1.1. After that, the iterative surface meshing process can be started. The first two iteration steps have been described in Sections 3.1 and 3.2, respectively. In iteration step 3, the limit points of the current surface mesh are projected onto the given B-spline target surface.
The projection algorithm is demonstrated in Section 4.3. Iteration step 4 approximates the projected limit points, see Section 4.4. It provides new surface mesh control points with improved approximation properties for the next iteration loop such that the limit surface corresponding to the new control mesh better approximates the target surface.
Optionally, the surface mesh obtained by the approximation step can be improved by smoothing the mesh without shrinking it, as described in Section 4.5, or by applying parameter correction steps, i.e., by repeatedly applying the iteration steps 2 to 4 to obtain better approximation results without an intermediate subdivision of the mesh.
Further improvements of the whole mesh generation process can be achieved if the polyhedron is prepared prior to the first iteration loop. This preparation step, including an algorithm for the automatic detection of sharp creases, is discussed in Section 4.6.
Resulting surface meshes for the wing-fuselage half models after different numbers of iterations are illustrated in Section 4.7, including a demonstration of the improvements obtained by smoothing or parameter correction. A study of the convergence behavior of the iterative surface meshing process for the approximation of the surface of a sphere
and of the wing-fuselage test cases is presented in Section 4.8.
Apart from the manual construction of an initial polyhedron and some knowledge regarding the B-spline surface which has to be given in a parameter list, see Section 4.3, all introduced methods of the iterative process and for improving the meshing results operate automatically.