Читать книгу IGA - Robin Bouclier - Страница 20
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 with n1 control points Pi. Knot-insertion consists of adding k1 new (interior) knots in the knot-vector. The new refined version of the B-spline curve takes the same degree p, but is built from the new knot-vector, which concatenates the initial knots with the inserted ones (in ascending order). The new knot-vector counts n1 + k1 + p + 1 knots. Ultimately, the only input that remains to be able to define the refined spline object is the vector collecting the control points. In other words, we need to compute the coordinates of the n1 + k1 control points denoted here Interestingly, it takes the form of a linear application:
[1.25]
where Dp is the refinement matrix (size l(k1 + n1) × ln1, with l being the dimension of the physical space) and vectors and x gather the control point positions associated with and Pi, respectively (the same notation as in [1.23]). The refinement matrix is sparse and is obtained recursively (Cottrell et al. 2009), since it is based on formula [1.13]:
[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 is for quartic functions. More precisely, Ξ and read:
[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:
where Qi and are the control points of the initial Bézier curve of degree p and of the new Bézier curve of degree p + t, respectively (the numbering of control points starts at zero, here). Overall, the interesting point to note is that the degree-elevation procedure also takes the form of a linear application. A refinement matrix can be built to express the new control points of the degree-elevated B-spline entity in relation to the initial ones (Lee and Park 2002):
[1.30]
where Di is the matrix that decomposes the curve in multiple Bézier curves, Tt is the matrix that elevates the degree of the Bézier curves (see equation [1.29]) and Sr is the matrix that recomposes the B-spline from the multiple Bézier curves. The matrix Sr can be seen as a least-squares pseudo-inverse of the operator used for knot-insertion in step 1.
The refinement procedures (knot-insertion and degree-elevation) can be combined, which offers great flexibility regarding the parameterization of a B-spline curve. In particular, it enables us to introduce a new refinement scheme in which the polynomial degree and the regularity of the basis functions can be simultaneously increased. In this case, degree-elevation is performed first, and then the new knot values are inserted (with multiplicity one), so that elements are added while ensuring the maximum available regularity of the basis functions at the knots level, namely Cp−1. This refinement procedure is called k-refinement (Cottrell et al. 2007). In this work, unless otherwise stated, we will perform k-refinement to take advantage of the superior properties of splines. Eventually, we can simply denote by D the refinement matrix, independent of the refinement procedure. Let us also mention that the same refinement operators can be used for NURBS curves by using the homogeneous coordinates, i.e.:
[1.31]
where xw has one more component than x for each control point: considering Pi = (xi, yi, zi) with associated weight The refinement strategy can also be extended to surfaces and volumes: the refinement is performed direction per direction in these situations. For more details on the refinement strategies of splines and their matrix representations, the reader is referred to Piegl and Tiller (1997), Lee and Park (2002) and Cottrell et al. (2007).
NOTE.– If the B-spline and NURBS technologies offer new opportunities with the k-refinement process, it has to be noted that multivariate B-spline or NURBS bases do not provide a natural possibility for local mesh refinement. Again, the reason for this is the rigid tensor-product structure [1.18] of these functions that precludes local mesh refinement within a patch. The possible harmful effects of a tensor product structure have already been underlined in Figure 1.8 (bottom). Basically, two approaches exist to answer this issue: (i) the generation and coupling of (usually non-conforming) spline patches and (ii) the creation of alternative splines that enable local mesh refinement. In this book, and particularly in Chapter 2, we will contribute to approach (i) in order to perform local mesh refinement and incorporate more general local phenomena within a B-spline or NURBS model. Regarding approach (ii), we may cite, for example, the hierarchical B-splines and NURBS (Vuong et al. 2011; Scott et al. 2014; Hennig et al. 2016), the locally refined B-splines (Dokken et al. 2013), the T-splines (Bazilevs et al. 2010; Scott et al. 2012; Veiga et al. 2012) and the hierarchical T-splines (Evans et al. 2015; Chen and Borst 2018). Among these strategies, T-splines have gathered an important momentum since they are also suitable for addressing trimmed multipatch geometries (see the discussion in section 1.4.1). Nevertheless, if we seek to perform local mesh refinement only, the hierarchical splines may be easier to implement (D’Angella et al. 2018). Finally, note that the work on new splines is by no means complete, as demonstrated, for example, by the recent introduction of U-splines (unstructured splines) by Coreform for industrial applications (Thomas et al. 2018).