Figure 1.10. Example of a hollow cylinder described with a quadratic NURBS volume
In the rest of this book, we may omit the degree of the functions when unnecessary. In this case, the notations of the form
where R and x denote the matrix of the NURBS basis functions and the vector collecting the locations of the associated control points, respectively. Considering, for example, control points in 3D, R and x, formally read as:
[1.24]
Pi in [1.23] is obviously the subset of x gathering the coordinates (xi, yi, zi) of the ith control point.
1.2.3. Design features and shape parameterization
Besides being attractive for generating geometries, B-splines and NURBS are interesting because they offer great flexibility in terms of shape control. This certainly explains why most of the CAD software is based on these spline technologies. In this work, which ultimately intends to perform the shape optimization of structures, we will deeply benefit from many of the appealing properties of B-splines and NURBS, especially their efficient refinement procedures and their flexible shape manipulation possibilities. Key aspects regarding these two features are given in the following.
1.2.3.1. Refinement
B-splines and NURBS can be refined while leaving the underlying geometry intact. There are different refinement mechanisms. The first possibility consists of inserting new knots into the knot-vectors. This process is called knot-insertion. More precisely, let us take the case of a p-degree B-spline curve, defined from knot-vector
[1.25]
where Dp is the refinement matrix (size l(k1 + n1) × ln1, with l being the dimension of the physical space) and vectors
[1.26]
[1.27]
An example of refinement through knot-insertion, starting with a quadratic B-spline curve, is presented in Figure 1.11 (middle). We can observe the changes for the basis functions and for the control points, while leaving the initial geometry intact.
Figure 1.11. Refinement procedures applied to a B-spline curve
The other refinement possibility is the degree elevation. As its name suggests, it consists of increasing the polynomial degree of the B-spline basis functions. Hence, it has to be noted that through the order-elevation, all values in the knot-vector are repeated to preserve the initial discontinuities of the derivatives of the functions (ensuring that the refined spline space includes the initial coarse spline space). As an illustration, let us take the example from Figure 1.11. The initial knot-vector Ξ is for quadratic B-spline functions while the refined knot-vector
[1.28]
At the (interior) knot location, the regularity of the refined curve is still C1:. Indeed, we have p − m = 4 − 3 = 1 (with m being the multiplicity of the interior knots). The computation of the new control points can be performed in three steps (Piegl and Tiller 1997):
1 1) subdivide the curve into as many (C0) Bézier curves as there are elements by repeating p times the interior knots;
2 2) elevate the polynomial degree on each of these segments;
3 3) remove exceeding knots to combine the Bézier element curves into one B-spline curve.
Steps 1 and 3 are performed using the knot-insertion procedure. The formula for the degree-elevation of a Bézier curve can be found for the example in Piegl and Tiller (1997). It is possible to elevate the degree from p to p + t in one step: