Quasi-Isotropic Initial Triangulation of NURBS Surfaces

Daniel Herrero Adán1 and Rui Cardoso2

1Department of Engineering Design and Mathematics, University of the West of England Bristol, Frenchay Campus, Coldharbour Lane, Bristol, BS16 1QY, United Kingdom

2Department of Mechanical and Aerospace Engineering, Brunel University London, Kingston Lane, Uxbridge, Middlesex, UB8 3PH, United Kingdom

E-mail: daniel2.herreroadan@live.uwe.ac.uk; Rui.cardoso@brunel.ac.uk

*Corresponding Author

Received 22 May 2020; Accepted 07 July 2020; Publication 18 November 2020

Abstract

Isotropic triangulation of NURBS surfaces provides high quality triangular meshes, where all triangles are equilateral. This isotropy increases representation quality and analysis accuracy. We introduce a new algorithm to generate quasi-isotropic triangulation on NURBS surfaces at once, with no prior meshing. The procedure consists of one front made of vertexes that advances in a divergence manner avoiding front collision. Vertexes are calculated by intersecting arcs whose radius is estimated by trapezoidal rule integration of directional derivatives. The parameter space is discretized in partitions such that the error of trapezoidal rule is controlled efficiently. A new space, called pattern space, is used to infer the direction of the arcs’ intersection. Derivatives, whose analytical computation is expensive, are estimated by NURBS surface fitting procedures, which increases the speed of the process. The resultant algorithm is robust and efficient. The mesh achieved possesses most of the triangles equilateral and with high uniformity of sizes. The performance is evaluated by measuring angles, vertex valences and size uniformity in different numerical examples.

Keywords: NURBS, isotropic triangulation, initial mesh, pattern space, outside limits vertexes.

1 Introduction

Non-uniform rational B-spline (NURBS) for curves and surfaces are ubiquitous in computer aided design (CAD) representation. In addition, NURBS became part of analysis due to the so-called Isogeometric Analysis (IGA) [1, 2].

Surface representation in CAD environment is made of elements whose vertexes lie on the surface. This discretization into elements is called meshing or tessellation and represents an open problem still evolving [3]. Tessellation made of triangles, called triangulation, is widely used due to its facility of capturing any shape. Triangulation quality may be characterized by two parameters: angles of triangles corners and vertexes valences (number of triangles attached to each vertex), both measuring distortion of the triangles.

One triangulation is isotropic when it matches the two isotropy conditions: all its angles equal to 60 degrees and all valences are six. This situation only happens for a hypothetic triangulation with no boundaries, i.e. infinite mesh. We state that one bounded (non-infinite) triangulation is quasi-isotropic if only the triangles that are influenced by the contours do not match the isotropy conditions. The rest of the triangles, that are away from the boundaries form an isotropic mesh.

This work presents a new algorithm for computing quasi-isotropic triangulation on a given set of NURBS surfaces with no preliminary mesh. It provides high quality mesh regardless of the surface shape or parametrization.

1.1 Triangulation of Parametric Surfaces

There are three types of triangulation techniques: direct, parametric and hybrid triangulations [4].

Direct approaches compute the vertexes of triangles on the surface physical space. The three main methods within this type are the Delaunay triangulation [5, 6], the advancing front technique [6–9] and the octree division [10, 11]. Collision of two different fronts is susceptible of appearing in advancing front methods, which generates conflicts for the computation of new triangle vertexes.

Parametric approaches compute the triangulation in the parametric domain [12–14]. These methods lack uniformity for the resultant triangles for the case when the parametrization is not uniform.

Hybrid approaches, which is a mix of the two previous methods, cover most of the publications within the last two decades. For example, in [15, 16], surfaces are tessellated by primary coarse triangulation in the parameter space and then the quality is increased by the use of Delaunay methods. In [17], sequential triangulation was developed to reduce the memory usage of the CPU. An initial mesh was generated by Delaunay triangulation and then extra vertexes were added where curvature is more pronounced in the physical space. In [18] three different linear parametrization techniques for refining one initial triangulation were presented. The algorithm shown in [19] triangulated surfaces, minimizing the number of triangles and at the same time controlling the error from triangular discretization of the surface. The initial mesh assumed the edges were already discretized. The resulting tessellation has vertexes density which is a function of surface’s curvature. In [20] an automatic triangulation was presented; it starts from a preliminary coarse triangulation that is refined and improved in two stages.

1.2 Isotropic Meshes

The ideal isotropic mesh is defined with vertex valences equal to six and all angles equal to 60 degrees. One mesh may be approached closer to an isotropic mesh by four local operations used iteratively: edge collapsing, edge splitting, edge flipping and vertex relocation.

Surazhsky et al. [21] developed an isotropic remeshing technique to be applied to an initial mesh in three stages: generation of vertexes, initial vertex partition and modification based on a density function to achieve isotropy. The error diffusion algorithm was used for initial geometry sampling and then that mesh was modified in order to approximate it closer to an isotropic arrangement [22]. Yang and Choi [23] introduced an efficient algorithm for the computation of restricted Voronoi diagrams (RVD) repeatedly so that it could come closer to isotropic triangulation. Isotropic meshes do not apply only to triangulation, but also to other type of meshes such as the ones with quads or hexahedral elements, see for example [24, 25].

1.3 Proposed Method

In the mentioned triangulation techniques, a preliminary coarse mesh is first created and then modified to enhance the isotropy. Our method achieves quasi-isotropic mesh at once with no previous triangulation required. It estimates the physical coordinates of vertexes by using integration of paths in the parameter space. In the previous work of Tsai et al. [26] a similar technique was used, but the difference with this current work is that the path can have any orientation rather than being restrained over to orthogonal parameter directions ξ or η. The process consists of an advancing front method but, however, avoiding the colliding fronts since the front shape is always divergent in the physical space.

1.4 Article Structure

Section 2 introduces the theoretical background. Section 3 gives a general idea of the triangulation process and defines some concepts that are used in the rest of the work. Section 4 explains the discretization of NURBS curves, that will be used for construction of the surface edges. That procedure is the one-dimensional version of the surface triangulation. Triangulation of surfaces involves more steps than the discretization of curves and it is split into two main sections: Section 5 explains the vertexes calculation and Section 6 details the triangulation itself. Examples are provided in Section 7 and, finally, Section 8 presents conclusions and potential future work.

2 Theoretical Formulation

2.1 NURBS

A NURBS entity (curve or surface) is defined in both the parameter and physical spaces. The number of dimensions for the parameter and physical spaces are c and d respectively, with c<d. For curves c=1 and for surfaces c=2. In this work we assume d=3. Figure 1 shows one NURBS surface example.

images

Figure 1 NURBS surface parameter (a) and physical (b) spaces.

NURBS entities are the evolution of Bézier entities [27, 28] that are formed by linear combination of Bernštein polynomials [29]. NURBS entities have a set of control points whose coordinates in the physical space are defined by P and weights defined by w. Each control point has attached one NURBS basis function. Parametrization is given by knot vectors, with one knot vector per each parameter direction. The knot vector is a sequence of numbers 𝜩={ξ1ξ2ξaξn+p+1} with ξiξi+1. The components of 𝜩, called knots, are located in the parameter space. Stretches between knots are called knot spans. This work assumes knot values from 0 to 1 and open knot vectors, i.e. the first and last p+1 knots are repeated. The number of knots is equal to p+n+1, where p is de degree of the NURBS functions and n is the number of control points in the parameter direction. Table 1 shows the nomenclature used for curves and surfaces.

Table 1 NURBS nomenclature

Surface

Curve Direction 1 Direction 2
Parameter coordinates ξ ξ η
B-spline basis function Ni Ni Mj
NURBS basis function Ri Ri,j
Number of control points n n m
Degree p p q
Knot vector 𝜩 𝜩 H
Physical space 𝑪 𝑺
Parameter space 𝑪^ 𝑺^

A NURBS entity is generated by mapping cd as detailed in Equations (1) and (2) for curves and surfaces respectively, where R are the NURBS basis functions.

𝑪(ξ) = i=1nRip(ξ)𝑷i (1)
𝑺(ξ,η) = i=1nj=1mRi,jp,q(ξ,η)𝑷i,j (2)

The NURBS basis functions are calculated as in (3) and (4).

Rip(ξ)=Ni,p(ξ)wii^=1nNi^,p(ξ)wi^ (3)
Ri,jp,q(ξ,η)=Ni,p(ξ)Mj,q(η)wi,ji^=1nj^=1mNi^,p(ξ)Mj^,q(η)wi^,j^ (4)

B-spline functions N can be calculated with the Cox-De Boor iterative Equations (5) and (6) [30, 31]. Figure 1 (a) also includes the B-spline functions in both directions.

For zero degree (p=0):

Ni,0(ξ)={1ifξiξ<ξi+10otherwise (5)

For degrees 1 and higher (p>0):

Ni,p=ξ-ξiξi+p-ξiNi,p-1(ξ)+ξi+p+1-ξξi+p+1-ξi+1Ni+1,p-1(ξ) (6)

2.2 Length of Paths on NURBS

The physical path’s length for a NURBS curve between parameter coordinates ξa and ξb, corresponding to physical coordinates 𝒙a and 𝒙b, is given by the integral detailed in Equation (7).

Lab=ξaξb𝑪,ξdξ (7)

Where 𝑪,ξ is the norm of the curve derivative w.r.t. parameter coordinate ξ. See Figure 2 for clarity.

images

Figure 2 Curve path between a and b in parameter (a) and physical (b) spaces. Derivative at ith point (c).

The physical length of a path on a NURBS surface between parameter coordinates 𝝃a to 𝝃b, that forms a θ angle w.r.t. the horizontal direction and corresponds to physical coordinates 𝒙a and 𝒙b, is given by the integral of the θ-directional derivative norm along the path as follows:

Lab=𝝃a𝝃b𝑺,λdλ (8)

Where dλ represents an infinitesimal increment in the parameter domain with orientation θ, and 𝑺,λ is the θ - directional derivative, i.e. 𝑺,λ=(Sx,λ,Sy,λSz,λ)T that is computed as per Equation (9).

𝑺,λ=𝑺,ξcosθ+𝑺,ηsinθ (9)

The distance Lab lies onto the surface (physical space) but the shortest distance between 𝒙a and 𝒙b might be less (see Figure 3(b)).

images

Figure 3 Surface path between a and b in parameter (a) and physical (b) spaces. Directional derivative at ith point (c).

We can generalize Equations (7) and (8) by calling 𝑯 to the NURBS entity and μ to the parameter (ξ,𝝃 or λ). Then these two expressions may be written as in Equation (10), with h=𝑯,μ.

Lab=μaμbh𝑑μ (10)

2.3 Trapezoidal Rule for Path Lengths

The estimation of the path’s length by the trapezoidal rule is expressed as:

Lab12(hb+ha)Δμ (11)

Under appropriate smoothness assumptions, there exists some point α in the integration interval such that the error is bounded, as expressed in Equation (12) [32], where Δμ=(μb-μa). Since the location α is unknown, in this work we will evaluate the error at the initial and final locations for the following interval:

E-112𝑯,μα′′(Δμ)3 (12)

The calculation of the derivatives 𝑪,ξ′′ and 𝑺,λ′′ is detailed in Appendix A. The error is expressed as percentage of the path’s length:

Ep100EL (13)

where E is the absolute value of the error, computed as in Equation (12) and L is the estimated physical length of the path as in Equation (11).

2.4 Path Parameter Increment Corresponding to a Physical Length (PPI)

Let Lab be the length of a path that lies in the physical space of a NURBS entity whose end points are a and b. Let c be a third point along the path trajectory, either between the end points or beyond b (see Figure 4). The Path Parameter Increment procedure (PPI) presented in this section finds the parameter coordinate b (μb), assuming that the physical coordinates of the three points and the parameter coordinates of a and c (μa and μc) are known.

images

Figure 4 Path with points a, b and c in physical (a) and parameter (b) spaces. Line in the h-Δμ plane (c).

The trapezoidal rule between a and b is written as in Equation (11) with Δμ and hb being unknowns in this case. To compute Δμ we use the third point c, whose derivative norm hc lies on the line h-Δμ, as shown in Figure 4(c). Equation (14) is used, where it was assumed that Δμ=0 coincides with the ha location:

h(Δμ)=(hc-haμc-μa)Δμ+ha (14)

Substituting hb in Equation (11) with the right-hand side of Equation (14), we arrive to the quadratic equation for Δμ, Equation (15), where m=(hc-haμc-μa). Among the two possible roots, the non-negative and within, or closest to, the interval (μa,μc) corresponds to the searched increment Δμ*.

Δμ2m+Δμ2ha-2Lab=0 (15)

Then, the coordinate μb is given by:

μb=μa+Δμ* (16)

2.5 Orientation of a Surface Tangent Vector in the Parameter Space

Let 𝒗k be a tangent vector to a surface at point k in the physical space, the calculation of its orientation in the surface parameter space (θ) will be presented in this section. 𝒗k is a linear combination of main derivatives as shown in Equation (17) (see Figure 5). Coefficients c and s are shortcuts to “𝒞cosθ” and “𝒞sinθ”, respectively, with 𝒞 being an unknown constant.

c𝑺,ξk+s𝑺,ηk=𝒗k (17)

images

Figure 5 Vector 𝒗k in in physical space and its orientation in the parameter space.

To compute the orientation θ, the derivatives 𝑺,ξk and 𝑺,ηk are firstly calculated, then c and s are obtained from the system of Equations (17). Finally, θ is calculated as in the following equation:

θ=atan(sc) (18)

3 Preliminaries

3.1 Pattern Space

In this work we introduce a new 2D space, named pattern space (S), as a set of vertexes lying on a number of concentric regular hexagons separated by the distance Ro=Rsin60. Vertexes are equally spaced at R. Due to the regular hexagonal arrangement, these vertexes form an isotropic triangulation in this space, see Figure 6.

The centre of the hexagons is located at origin (0,0). Hexagon one is the smallest with six vertexes and the rest of the hexagons grow concentrically with 12, 18, etc vertexes. Vertexes are numbered: the central is the first and the numbering increases for each hexagon that is generated. Inside one hexagon, numbers start at the right-hand side corner and move counter-clockwise (Figure 6 shows some vertex numbers). Considering this additional new space for the hexagons (pattern space), three spaces are now involved for each surface: pattern, parameter and physical spaces.

images

Figure 6 Pattern space with five contours (dashed lines). Dots represent vertexes.

3.2 A Whole View: The QIT Algorithm

The Quasi-Isotropic initial Triangulation (QIT) algorithm purpose is to mesh a set of contiguous NURBS surfaces, each of them bounded by four edge curves, with conformal triangulations between contiguous surfaces and with a high degree of isotropy.

The strategy is to obtain the image of the pattern space vertexes onto the surface physical space, which leads naturally to a quasi-isotropic mesh given the pattern space arrangement indicated in Section 3.1. The target distance between vertexes is called R and is introduced by the user.

Figure 7 details the flowchart for the process that is briefed in this section. The algorithm provides the vertexes coordinates and their relationship in the triangulation (the connectivity matrix). The inputs required for the QIT algorithm are:

– Target triangles edge distance (R): this is the distance that ideally all the triangles edges should have in the physical surface.

– Threshold distance in the physical space from the surface edges to discriminate surface vertexes.

– Tolerance for the error, in percentage, when computing path lengths (recall Section 2.3).

– NURBS original data of the surfaces.

images

Figure 7 QIT algorithm flowchart. Related sections of the paper are in curved brackets.

Edges between two adjacent surfaces produce duplicated curves, one per surface. In order to compute the vertexes in both curves with the same coordinates and achieve conformity between them, they must be considered as a single curve instead (see Figure 8). All curves are extracted and those duplicated are merged into one. Their vertexes are obtained according to the R distance, these are called edge vertexes. Section 4 delivers more details of this process.

images

Figure 8 Extraction of surfaces and curves and their relationship.

Each surface is triangulated separately: the surface vertexes are calculated, the corresponding edge vertexes are added and all vertexes are triangulated. Surface vertexes calculation is outlined in Figure 9. The surface parameter space is discretized in a mesh called dS-mesh (Section 5.1). The first vertex is set at mid location and the rest of the vertexes are calculated in a 2D hexagonal wave propagation manner. Propagation stops at the hexagon with no vertexes computed (see Sections 5.4 and 5.5). This procedure links vertexes in pattern space with their image in the physical space using the parameter space in between (see Sections 5.2 and 5.3).

images

Figure 9 Computation of surface vertexes.

The advancing front algorithm is divergent in the physical space, therefore it is also in the parameter space (we assume the Jacobian of the NURBS mapping to be strictly positive). That divergence is necessary because it avoids front collisions.

Previous to triangulation, surface vertexes outside the parameter limits are removed as well as those that are too close to the limits, since they would generate highly distorted triangles (see Section 6.2). The remaining vertexes are called valid. Delaunay triangulation is carried out in the pattern space considering both, edge and valid surface vertexes (see Section 6.3). Finally, the triangles at the edges of the surface might be improved by edge flipping, as shown in Section 6.4. The triangulation process is illustrated in Figure 10.

images

Figure 10 Triangulation in the pattern space (a), image in the physical space (b) and improvement of edges (c).

3.3 Conventions and Definitions

Coordinates in the pattern, parameter and physical spaces are expressed as 𝒓=(r,s),𝝃=(ξ,η) and 𝒙=(x,y,z), respectively. Coordinates at a specific point a are written with a as superscript, e.g. 𝒓a. The expression vertex calculation refers to the calculation of the vertex coordinates.

The definitions listed below are used within the next sections. Figure 11 provides some examples of them for clarity.

images

Figure 11 Basic definitions used in the algorithm in pattern, parameter and physical spaces.

– Path: straight line between two points in the parameter space, that has an image in the surface space, which is not straight in general.

θ orientation: angle between a path and the horizontal axis in the parameter space.

λ: surface parameter coordinate with orientation θ.

– Path length: length of a path in the physical space (in general it is not the shortest).

Edge vertex: vertex computed on edge curves.

Surface vertex: vertex computed on the surface.

Main derivatives: surface derivatives w.r.t. parameter directions ξ and η.

4 Vertexes of Edge Curves

The computation of vertexes for edge curves is explained in this section. The first step is a parameter space discretization into a dC-mesh in order to control the error of the estimated path lengths.

4.1 Discretization of the Parameter Space. The dC-mesh

The dC-mesh is obtained by iterative division of the parameter space so that the error Ep from Equation (13) can be reduced for a path length estimation below a prescribed tolerance. We refer to the norm of the curve derivative 𝑪,ξ by h and its second derivative 𝑪,ξ′′ by h′′ (see Appendix A for the calculation of h′′).

Initially, dC-mesh partitions coincide with non-void knot vector spans. Then, within each partition, the Ep is computed and, in case it is greater than a prescribed tolerance, the element is halved. This iterative process ends whenever there is no partition with an error greater than the prescribed tolerance. The extremities of the partitions are called nodes. Figure 12 provides one example. To compute the partitions length and error, h and h′′ are calculated for each node (recall Equations (11) and (12)).

images

Figure 12 dC-mesh division process with first step detailed.

The error at some locations might be greater than the tolerance since the location α, introduced in (12), is the initial or final node of the partition, whichever maximizes the error, but there might exist an intermediate value that leads to a higher error. In spite of this risk, results are satisfactory (refer to Section 7).

4.2 Edge Vertexes Calculation

To calculate the edge vertexes, the accumulated physical length up to each dC-mesh node, called Lacc, is estimated by using the trapezoidal rule from Equation (11) applied to each partition, see Figure 13. The total estimated length of the curve is Laccend and the accumulated length up to the previous node is Laccprev.

images

Figure 13 Computation of accumulated length to each dC-mesh node.

The target physical spacing between vertexes is not exactly R but it is re-calculated to ensure that the resultant vertexes are equally spaced. The updated spacing is called Rc and is obtained as Rc=Laccend/NS, where NS=round(Laccend/R) is the number of required segments between vertexes.

Accumulated target distances (Ra) are then sequentially searched. Ra initially is set equal to Rc and increases by Rc in each step. The search first finds which partition of the dC-mesh contains Ra, using the accumulated physical lengths Lacc. Then, it estimates the parameter coordinate increment Δξ within that partition in order to achieve the distance L=Ra-Laccprev by using the PPI algorithm from Section 2.5. See one example in Figure 14.

images

Figure 14 Example for the calculation of the seventh vertex.

The edge vertexes in the surface parameter space, required for triangulation (see Section 6), are computed by using point projection techniques [34].

5 Surface Vertexes

For the calculation of surface vertexes the surface must first be discretized into a dS-mesh (Section 5.1). Sections 5.2 and 5.3 explain the two main algorithms used repeatedly in Sections 5.4 and 5.5 for the computation of the surface vertexes.

5.1 Discretization of the Parameter Space. The dS-mesh

The dS-mesh is obtained by iterative partition of the parameter space. Resultant rectangular partitions must be small enough such that the error in Equations (12) and (13) for any patch length remains below a prescribed tolerance.

Six representative paths were selected within each partition of the dS-mesh, they are the four edges and its two diagonals. The partition error is the maximum error amongst these six paths. The second derivative 𝑺,λα′′, selected for error calculation (12), must be the maximum amongst the two end points of the corresponding path. The calculation of these derivatives is detailed in Appendix A. Figure 15 shows one example, with the fifth path detailed and where 𝑺,λ′′ is called h′′ for simplicity.

images

Figure 15 Error measurement in one partition of the dS-mesh.

Initially, partitions are the non-void knot spans. Error (Ep) is evaluated for each partition, which is divided into four rectangles if such error is greater than the tolerance. The division process ends whenever the error is smaller than the prescribed tolerance in all partitions.

Once the partitions are generated, the dS-mesh is extended beyond the surface parameter limits with so-called perimeter partitions and corner partitions. The main derivatives on these partitions are merely an extension of the derivatives at the edge limits. These partitions are semi-infinite, i.e. one end coincides with the surface parameter limit and the opposite goes to the infinite. This extension will be relevant in Section 5.4. The whole process is depicted in Figure 16.

images

Figure 16 dS-mesh generation: initial setting, partition and extension with perimeter and corner partitions.

It is possible to find locations where the error is greater than the tolerance because the location α introduced in Equation (12) lies at the start or at the end of the path (recall Figure 15) but there might exist an intermediate value that leads to a higher error. In addition, only six orientations for the paths are analysed event though there are infinite possibilities. In spite of this risk, results are satisfactory (refer to Section 7).

5.2 End Parameter Position of a Path Given its Physical Length (EPP)

This section explains the End Parameter Position procedure (EPP) that estimates the end location 𝝃b of a path whose initial point coordinates 𝝃a, orientation θ and physical length are known a priori. The physical length is called target length and it is denoted by R, as shown in Figure 17.

images

Figure 17 Path in parameter (left) and physical (right) spaces. The position 𝝃b is the output of the EPP algorithm.

A semi-infinite line, starting at 𝝃a and with orientation θ is defined (see Figure 18). The procedure is to move along this line computing at each time its intersection with dS-mesh edges and calculating the segment physical length by using the trapezoidal rule of Equation (11). The θ-directional derivatives required for Equation (11) can be estimated as shown in Appendix B. When the accumulated length of the segments goes beyond the target R, the parameter coordinate 𝝃b is searched by PPI within the current segment (see Section 2.5). Some examples are illustrated in Figure 19.

images

Figure 18 Estimation of different path increments to achieve the physical target distance R. Above represents the parameter space, with grey hatching the partition of dS-mesh involved. Below it is detailed the path in the physical space.

One special case happens when the ray passes the surface parameter limits and does not intersect any more partition edges. For this situation, the second trial point c for PPI cannot be computed from the intersection with the dS-mesh. Instead, it is obtained by adding a certain distance along the θ direction. In this work, the diagonal length of the surface parameter space (udiag) is used for that effect. Figure 19 shows two examples representing this particular case.

images

Figure 19 Examples of application of the EPP for some particular cases.

5.3 Intersection of Two Arcs in Physical Space (AIP)

In this section a procedure called Arcs Intersection in Physical space (AIP) will compute the intersection (point c) of two arcs, a and b, that lie on the physical space of the surface. Let us define one arc, onto the surface physical space centred at 𝒙a, by its radius (R), trial angle (β) and amplitude (βamp), in this work βamp=15 degrees. The trial angle is the orientation of the arc bisector and the total arc angle is twice the amplitude (see Figure 20).

images

Figure 20 Definition of arc and discretization into three lines.

To find the intersection, arcs are first discretized in a number of lines (NL), as shown in Figure 20 at the right. Hence, the number of points to compute per arc is NL+1 (in this work NL=3). Due to this discretization procedure, a number of iterations is required to find the intersection point c. The iterative process ends when the difference between two consecutive intersections is less than a pre-established tolerance (in this work it is 1.0%). After each iteration, the trial angles are re-oriented to the updated intersection and the amplitudes are also adjusted accordingly. The rest of this sub-section has two parts, one to explain the calculation of the end-points of the arc lines and another to describe the iterative process.

Discretization of arcs:
Let us define πa as the tangent plane to the surface at location 𝒙a, and 𝒑𝒙a as the vector projected from vector 𝒙b-𝒙a onto πa, with all of these vectors represented in the physical space (Figure 21).

images

Figure 21 Tangent plane obtained by cross product of the derivatives to the surface (a). Projected vector 𝒑𝒙a onto the πa plane (b). Front view of the projection’s procedure at the right-bottom (c).

The trial angle βa is measured from vector 𝒑𝒙a as shown in Figure 22. The value of βa for the first iteration is selected in the pattern space by using relative positions between pattern coordinates of points 𝒓a, 𝒓b and 𝒓c. Their values are typically around -60 and +60 degrees for βa and βb, respectively, except for the first hexagon (see Section 5.4). The angles for the arc points vary from βa1=βa-βamp to βa4=βa+βamp, with steps Δβ=2βamp/NL, all within the πa plane.

images

Figure 22 Arc angles in the πa plane (a) and their counterparts in the parameter space (b). Trial angle and angles for points 1 and 4 are also indicated.

Points for the discretized arcs are computed by the EPP algorithm from Section 5.2, whose inputs needed are the location 𝝃a, the target distance Ra and the orientation θ in parameter space. This angle corresponds to β, but defined w.r.t. the horizontal axis in the parameter space. The procedure to find θ from β is depicted in Figure 23 and its steps are explained below:

images

Figure 23 Calculation of angle θ correspondent to the β angle. Computation of the πa plane and projected vector 𝒑𝒙a (a); local base 𝑩a (b); vector with β angle 𝒗a (c); corresponding angle θ in the parameter space (d).

– Compute the tangent plane πa in the physical space. The normal vector to the plane is given by 𝒏𝒂=𝑺,ξa×𝑺,ηa (for the computation of the derivatives see Appendix B).

– Find 𝒑𝒙a: the projection of 𝒙ba onto πa (for arc b use 𝒙ab).

– Form local base 𝑩a with vectors 𝒏𝒂, 𝒑𝒙a and 𝒘. Note that 𝒘=𝒏𝒂×𝒑𝒙a.

– Compute vector 𝝂a contained in plane πa that forms β degrees with 𝒑𝒙a. This step involves computing vector 𝒗a in the local base 𝑩a (at β degrees from 𝒑𝒙a) and transforming to the global coordinate system to obtain 𝝂a.

– Obtain θ, which is the orientation of 𝒗a referred to the horizontal axis in the parameter space, as described in Section 2.5.

The above-mentioned process is applied to the points of the arc for each iteration. The arc points obtained are equally spaced in the physical space but in the parameter space they can be distorted depending on the parametrization procedure used.

Iterative process:
Once the a and b arcs are discretized, the intersection of their lines can be calculated. The result is then compared against the previous intersection and, if it is greater than a threshold (1% in this work), arcs are re-defined and discretized again, and the intersection is re-calculated. If the difference is less than tolerance, then the process ends and the latest intersection is the one assumed valid.

After each iteration the trial angles are re-oriented to the latest computed intersection. The closer the initial trial angles (βa and βb) are to the final answer the smaller number of iterations are required. Since their initial values are taken from the pattern space, they are very close to the final answer and the number of iterations are typically equal or less than three. In addition, the pattern space is used to know the side that 𝝃c must hold w.r.t. the vector from 𝝃a to 𝝃b (𝝃ba) via the cross product 𝒓ba×𝒓ca. If the third component of this cross product is positive, then 𝝃c must lie at the left-hand side of 𝝃ba, otherwise it must lie at the right-hand side.

Four cases are possible to happen during the iterative process:

Case A: intersection is found and it is in the correct side. If the error is greater than the tolerance then the next iteration is prepared: trial angles are reoriented to the updated intersection and arc amplitudes are reduced after dividing by NL. See Figure 24.

Case B: intersection is found but it is located on the wrong side. The angle amplitude is then doubled, see Figure 25.

Case C: no intersection is found. Both the angle amplitude and the number of segments per arc (NL) are doubled up for the next iteration, see Figure 26.

Case D: the intersection was found previously but it was lost in the current iteration. The angle amplitude is then doubled for the next iteration.

images

Figure 24 AIP case A in the parameter space.

images

Figure 25 AIP case B in the parameter space. The pattern space is also shown for the ith iteration.

images

Figure 26 AIP case C in the parameter space.

For cases B to D, the arc amplitude might need to be increased to raise the possibilities of finding the intersection point.

5.4 Computation of Vertexes

This section explains how to compute the vertexes of the surfaces based on the EPP and AIP algorithms. First, the vertex is arbitrarily placed at the centre of the parameter and pattern spaces, i.e. 𝝃1=(0.5,0.5) and 𝒓1=(0,0). Second, the vertex is computed by EPP with target distance R, orientation θ=0 and initial location 𝝃1. The rest of the first hexagon vertexes (𝝃3 to 𝝃7) are computed by the algorithm AIP from the previous vertex and 𝝃1, both with radius equal to R. Initial trial angles for AIP are βa=-60 and βb=+60. Figure 27 illustrates the fourth vertex calculation in the pattern space, showing only the final iteration for clarity.

images

Figure 27 Fourth vertex computation.

images

Figure 28 Vertex computation for some contours in the pattern and parameter spaces for side and corner vertexes. Only the final iteration arcs are depicted here for clarity.

The remaining vertexes are computed alongside the creation of the hexagons during their propagating motion in the form of a 2D hexagonal wave. Within one hexagon, each vertex is computed using two vertexes from previous hexagons as centre points for the intersection of the arcs (AIP). This pair, called base vertexes, is selected according to the current vertex position: side or corner (see Figure 28). The base vertexes for the former are the closest of the previous hexagon’s side. The base vertexes for the latter are at both sides of the previous corner. If we call a and b to be the base vertexes and c to be the current vertex, the inputs required for AIP are described in Table 2 for each type of vertex.

Table 2 Inputs used for the intersection of arcs (AIP) to find each type of vertex

Current vertex location Initial trial angles βa and βb radius
Side -60 and 60 R
corner -60 and 60 3R

Not all the vertexes are computed: one vertex is computed if and only if at least one of its base vertexes lies inside the surface parameter limits. This rule avoids the computation of most of the vertexes that do not lie in the surface, reducing the computational cost considerably. Therefore, the unique hexagonal front that propagates from the central point will be cut and divided into two or more fronts by the surface boundaries during the propagation process, but its divergence is still a possibility. The propagation of contours ends at the hexagon that has all its vertexes non-computed, i.e. all the base vertexes, from previous hexagons, lie outside the surface parameter limits.

images

Figure 29 Pattern space representation of neighbour vertexes of 22 (side vertex) and 32 (corner vertex). First and second perimeters are indicated in solid line.

One of the base vertexes might be outside the limits in the parameter domain. That vertex involves computations beyond the limits of the surface and this is why the perimeter and corner elements of a dS-mesh are necessary (recall Section 5.1).

5.5 Recovering of Non-Computed Base Vertexes

The procedure described in Section 5.4 might lead to a vertex c with one base vertex non-computed. Let us call a and b to the computed and non-computed base vertexes respectively. If vertex c is to be calculated (we assume a inside surface limits) the base vertex b needs to be estimated. Two carry out this ‘rescue’ of vertex b we need first to identify its neighbours.

The vertexes that surround the b vertex in its first and second perimeters are localized using their relationship in the pattern space (see Figure 29). The relevant information required from these neighbour vertexes are their references, pattern distances and angles measured from vertex b. Two of them are then selected, giving priority to the first perimeter and to the pair that form 60 or 120 degrees with each other. The calculation of the b vertex is done by using AIP and the selected neighbour vertexes.

6 Triangulation

This section details the surface triangulation. Section 6.1 explains the calculation of edge vertexes in the pattern space. Section 6.2 gives the criteria to detect non-valid surface vertexes for the triangulation. Section 6.3 shows the triangulation itself and Section 6.4 details the improvement achieved at the edges.

The surface vertexes computed so far may be classified as follows. Let us define Δxth as a pre-established threshold distance in the physical space, which is measured from the surface edges (in this work Δxth=R/3), then:

SI-vertex: is a surface vertex which lies inside the parameter limits of the surface and is located further away of more than Δxth from the edges of the surface.

SE-vertex: is a surface vertex inside the parameter limits of the surface and lies within a distance lower than Δxth when measured from the edges of the surface.

SO-vertex: is a surface vertex which lies outside of the surface parameter limits.

6.1 Estimation of Edge Vertexes in the Pattern Space

The edge vertexes’ coordinates in the pattern space are part of the final triangulation procedure and, furthermore, they form the constraint that determines which triangles are inside or outside of the computable domain. Since these coordinates are unknown (edge vertexes were computed independently, see Section 4) they need to be estimated.

We construct a triangulation with all surface vertexes (SO, SE and SI-vertexes) in the parameter space. This triangulation allows the mapping 22 from the surface parameter space to the pattern space. The parameter coordinates for the edge vertexes lie within this triangular net, therefore their pattern coordinates may be calculated by the following mapping:

𝒓a=i=13Ni𝒓i (19)

Where shape functions Ni are the area coordinates, as defined in Equation (20), where Atotal is the area of the triangle and Ai are the sub-areas attached to each node of the triangle. In Figure 30, one example for the computation of the pattern coordinates for vertex a is illustrated.

Ni=AiAtotal (20)

images

Figure 30 Triangulation of all vertexes in the parameter space (a) and calculation of the pattern coordinates of the edge vertex a (b).

The triangulation explained in this section is not the final aim chased by the QIT procedure but it is a temporary triangulation that permits the estimation of the pattern coordinates of edge vertexes with some degree of accuracy.

6.2 Removal of Non-Valid Surface Vertexes

Only SI-vertexes are considered in the triangulation (valid vertexes). Meanwhile SO and SE-vertexes are non-valid. SO-vertexes are detected because they are located on the outside of the surface limits. SE-vertexes are closer than Δxth to the edges of the surface. To measure the distance from one surface vertex to the edges, the closest pair of edge vertexes needs to be found. Then the distance from the vertex to the segment between both edge vertexes is computed in the physical space.

6.3 Delaunay Triangulation in the Pattern Space

Triangulation is done in the pattern space mainly for two reasons:

– It will be quasi-isotropic, given the vertexes arrangement of this space.

– It is a 2D plane space that facilitates the entire process.

The resultant triangulation in the physical space will inherit the same features of the triangulation on the pattern space since the location of its vertexes follows the same scheme.

Valid surface and edge vertexes obtained in previous steps are used in this section for the Delaunay triangulation. Edge vertexes impose constraints to the triangulation: they form the perimeter of the domain (see Figure 31).

images

Figure 31 All vertexes and resultant triangulation with valid vertexes in the pattern space.

6.4 Edge Strip Triangles Amendment

Let us call edge triangles strip to triangles that have at least one edge vertex. As the pattern coordinates of edge vertexes were already estimated (Section 6.2) they might not yield the highest quality triangulation in the physical space along this strip.

A localized improvement through the edge triangles strip is needed to reduce their distortion. Since not all the triangles are to check but only the edge strip ones, the process is computationally cheap. Triangles are selected in pairs, forming one quadrilateral, in advancing sequence along the four different edges separately. In each quadrilateral, both diagonals are measured in the physical space and the shortest diagonal is selected, which might coincide with the original or might not (the diagonal is then flipped). Quadrilaterals with at least one angle greater than 180 are not checked. Figure 32 illustrates one example for demonstration purposes, where only one edge strip is detailed for clarity.

images

Figure 32 Edge triangles strip before (a) and after (b) improvement. Quadrilaterals advancing at left edge (c).

7 Numerical Examples

The aim of the two examples presented in this section is to demonstrate the performance of QIT. Geometry and algorithm input details are listed in Appendix D. For both examples, the resultant mesh from the proposed QIT algorithm is compared with the equivalent highest quality triangulation ideally achievable, that we call BIT (acronym for ‘Bounded Isotropic Triangulation’). Details of such triangulation are provided in Appendix C, but here we list the most relevant features:

– All angles are sixty degrees.

– All triangles have the same area: ABIT=R24tan60.

– Vertexes valences frequency is the closest possible to the ideal case: two vertexes of valence 2, two with valence 4, a few with valence 3 and the rest with valence 6.

To characterize the triangulation performance, we set intervals for angles, triangle sizes and valences, and count the number of instances in each interval to obtain the frequency, expressed in percentage. The frequencies are plotted and compared against the BIT reference solutions. In addition, the so-called quality index Q described in Equation (21), is computed. This is a numerical indicator in percentage of how close the triangulation is to the BIT reference solution. The ideal value is 100%.

Q=25fsa100+25fna100+25fv3afv3b+25fv6afv6b (21)

The inputs for Equation (21) are frequencies, in percentage, for:

fsa: triangles of QIT, with sizes in the same interval as BIT size (ABIT);

fna: angles of QIT in the same interval of 60 degrees;

fv3a and fv3b: vertexes with the valence number equal to 3 for both QIT and BIT;

fv6a and fv6b: vertexes with the valence number equal to 6 for both QIT and BIT.

Note that the frequencies for the size and angles for the BIT are 100%.

7.1 Single Surface with Severe Distortion in the Parameter Space

A single surface with abrupt increments in parameter space is meshed with our QIT algorithm. The algorithm was performed for two different sizes: R=12 and R=5. Derivatives were estimated by spline surface fitting, as described in Appendix B. In spite of the distortion in the parameter space, the resultant triangulations remain mostly isotropic, only some few triangles appear to be distorted due to the presence of edges. The quality factor Q is greater when R=5 because the number of triangles affected by the edges is less than in the other case when R=12. This indicates that if the edges have a small influence on the overall surface’s domain then the closer to the BIT reference solution is the QIT triangulation and, therefore, it proves that the QIT method brings onto the surface physical space an accurate ‘image’ of the pattern space.

Figure 33 shows the surface in the physical space with the knot spans depicted and one triangulation with vertexes equally spaced in the parameter space to highlight the distortion in the parametrization. Figure 34 illustrates the QIT method with both R=12 and R=5. Figure 35 shows the propagation of contours in the parameter space, where the divergent nature of the front can be clearly seen, note also some of the contours go further off the surface limits. Figures 36 to 38 show the frequency plots.

images

Figure 33 Left: surface for triangulation. Right: triangulation with nodes equally spaced in the parameter space.

images

Figure 34 Resultant QIT triangulation. Left: R=12. Right: R=5.

images

Figure 35 Contours propagation in the parameter space, red lines are the surface limits. Left: R=12. Right: R=5.

images

Figure 36 Frequency plots for triangle sizes. Red represents the QIT while blue represents the BIT. Left: R=12. Right: R=5.

images

Figure 37 Frequency plots for angles. Red represents the QIT while blue represents the BIT. Left: R=12. Right: R=5.

images

Figure 38 Frequency plots for valences. Red represents the QIT while blue represents the BIT. Left: R=12. Right: R=5.

The quality index (Q) is computed below for both cases. Note how the quality raises from 62 to 80% when the target distance decreases from 12 to 5, i.e. if a finer mesh is used then it gets closer to the ideal BIT.

Q =2541100+2555100+252433+255165=62%
Q =2578100+2580100+251218+257581=80%

To illustrate the influence of the tolerance in the computational cost, Figure 39 is used. It includes the plot for the relative computational time (tr) for edge vertex tolerances of 0.25, 0.50, 1.0, 2.0 and 4.0% (vertical axis on the right-hand side of the plot). The surface vertex tolerances are 4 times larger, e.g. 2.0% for the tolerance for edge vertexes, the tolerance for surface vertexes is 8.0%. The triangle size used was R=12. That relative computational time is referred to the tolerance of 1.0% for edges. It also includes the quality index (Q), which is plotted in the vertical axis on the left-hand side of the plot. It can be clearly seen that it decreases as the tolerance becomes larger, as expected.

images

Figure 39 Relative computational time (tr) and quality index (Q) versus tolerances.

The quality improvement with the tolerance restriction can also be seen in Figure 40, where the resultant meshes are depicted for tolerances of 4.0 and 0.25%.

images

Figure 40 Triangulation for tolerances of 4.0 % (left) and 0.25% (right).

7.2 Three Contiguous Surfaces

images

Figure 41 Left: surfaces for triangulation. Right: edge vertexes resultant from the QIT algorithm.

This example shows how three contiguous surfaces are conformal triangulated using the QIT algorithm, i.e. their shared edges have the same curve discretization. The target distance used was R=5. Figure 41 gives the surfaces in the physical space with knot spans and control points (left) and the computed edge vertexes (right). Figure 42 shows the final result after triangulation (left), where the general isotropy and uniformity of the triangulation can be clearly observed. On the right side of that figure, the edge shared by contiguous surfaces is detailed, where conformal meshes can be observed. Finally, Figure 43 provides the frequency plots showing again the tendency of the QIT algorithm to achieve mesh isotropy close to the perfect solution delivered by BIT. The quality index for this case is 73 %, as calculated below.

Q=2554100+2577100+25913+258086=73%

images

Figure 42 Left: resultant mesh from the QIT algorithm. Right: detail for the merging of the mesh for different surfaces.

images

Figure 43 Frequencies of sizes, angles and valences. Red represents our QIT and blue BIT.

8 Conclusions and Future Work

A new procedure for triangulating NURBS surfaces is presented in this work. It provides a quasi-isotropic triangular mesh at once, with no preliminary tessellation, based on a divergent advancing front technique that avoids front collisions. Each new vertex position is calculated using trapezoidal numerical integration, which provides simplicity and therefore efficiency. The error committed in this approximation is controlled by previous discretization of the parameter space. When there is more than one surface involved, their meshes are conformal at the shared curve because vertexes of such curve are computed once and applied for both surfaces. Derivatives are required repeatedly for this algorithm. In order to improve the efficiency, alternatives to the analytical calculation of these derivatives are proposed in Appendix B.

The examples proposed demonstrated that the method delivers high quality triangulations that tend to be isotropic, regardless of the shape or parametrization used. Potential extensions or improvements of the method are listed below:

– This procedure applies to non-trimmed surfaces. Application to trimmed surfaces is still pending.

– Triangulations obtained by the algorithm presented here might be the initial stage for further refinements at certain zones such as high curvature areas or where analysis results (e.g. strains) are expected to present sudden variations.

Acknowledgments

The authors gratefully acknowledge the Department of Engineering Design and Mathematics of the University of the West of England that partially founded this research. They also acknowledge to Dr. Arnaud Marmier, senior lecturer at the same university, for his comments on this work.

Appendixes

Appendix A: Derivatives of a Function that is as Norm of First Derivative of Another Function

Let f(u) be a function defined as the norm of first derivative of another function 𝒈(u):1d. For the sake of clarity we remove the free variable from the notation, then f(u) is expressed as f, 𝒈(u) as 𝒈 and so on.

𝒈=gii=1tod (A.1)
f=𝒈=(i=1dgi2)1/2 (A.2)

First derivative of f is computed by simple differentiation of (A.2), that yields (A.3).

f=i=1d(gigi′′)f (A.3)

Applying differentiation again to (A.3) we obtain the second derivative of f, written in (A.4).

f′′=i=1d(gi′′gi′′+gigi′′′)f-i=1d(gigi′′)ff2 (A.4)

For NURBS surfaces 𝑺(ξ,η) the directional derivatives are functions of main derivatives (𝑺,ξ and 𝑺,λ) and are not trivial. First directional derivative gi=𝑺,λ is (A.5).

𝑺,λ=𝑺,ξcosθ+𝑺,ηsinθ (A.5)

Second gi′′=𝑺,λλ and third gi′′′=𝑺,λλλ directional derivatives are explained here. Let 𝝂 be a vector with orientation θ and 𝝂=1, i.e. ν1=cosθ and ν2=sinθ. Let S(𝝃) be a function such that 𝒈(u):21 with 𝝃=(ξ,η)T. Derivatives w.r.t. ξ and η at location 𝝃0 may be calculated as expressions (A.6) and (A.7).

S,ξ=limh0S(𝝃0+(h,0))-S(𝝃0)h=limh0S(ξ0+h,η0)-S(ξ0,η0)h (A.6)
S,η=limh0S(𝝃0+(0,h))-S(𝝃0)h=limh0S(ξ0,η0+h)-S(ξ0,η0)h (A.7)

Directional first derivative of S with θ orientation at location 𝝃0 is given by Equation (A.8), which is equivalent to (A.9).

S,v=limh0S(𝝃0+h𝒗)-S(𝝃0)h=limh0S(ξ0+hv1,η0+hv2)-S(ξ0,η0)h (A.8)
S,v=𝑺𝝂={S,ξS,η}T{ν1ν2} (A.9)

Directional second derivative is obtained as follows:

S,νν=limh0(limh0S(𝝃0+h𝝂+h𝝂)-S(𝝃0+h𝝂)h)-(limh0S(𝝃0+h𝝂)-S(𝝃0)h)h (A.10)
S,νν=limh0S(𝝃0+2h𝝂)-2S(𝝃0+h𝝂)+S(𝝃0)h2 (A.11)

Developing Equation (A.11) and grouping terms we arrive to the bilinear form (A.12), which is equivalent to (13).

S,νν=𝒗T𝑯𝒗={ν1ν2}[S,ξξS,ξηS,ξηS,ηη]{v1v2} (A.12)
S,νν=νiνjS,iji,j=1,2 (A.13)

In (A.13), sub-index of S,ij indicates derivatives w.r.t. ξ (sub-index =1) or η (sub-index=2). Same procedure for third directional derivative yields Equation (A.14):

S,ννν=limh0S(𝝃0+3h𝝂)-3S(𝝃0+2h𝝂)+3S(𝝃0+h𝒗)+S(𝝃0)h3 (A.14)

Developing (A.14) and grouping terms, the third directional derivative can be expressed as (B.15).

S,ννν=νiνjvkS,ijki,j=1,2 (A.15)

Where sub-index of S,ijk indicates derivatives w.r.t. ξ (sub-index =1) or η (sub-index=2).

So far, third directional derivatives expression (A.9), (A.13) and (A.15) are deducted for functions S:21. Application for function 𝑺:2d is direct. Each of the d components of the directional derivative can be calculated separately by Equations (A.9), (A.13) and (A.15). For example for d=3 (𝒙=x,y,z) third directional derivative has three components as per Equation (A.16).

Sx,ννν = νiνjνkSx,ijki,j=1,2
Sy,ννν = νiνjνkSy,ijki,j=1,2 (A.16)
Sz,ννν = νiνjνkSz,ijki,j=1,2

Appendix B: Surface Derivatives Estimation

Analytical calculation of NURBS derivatives is computationally expensive. To increase the algorithm speed we propose two alternatives. In both cases analytical derivatives are calculated previously at certain locations (sample points) and then a surface is fitted to them. The first presented method fits spline surfaces to those sample points. The second method uses the dS-mesh nodes as sample points to linearly interpolate between them. We recall that θ-directional derivative is computed as per Equation (B.1).

𝑺,λ=𝑺,ξcosθ+𝑺,ηsinθ (B.1)

B.1 Derivatives Computed from Fitted B-spline Surfaces

B.1.1 Basic Definitions

Let 𝑭(ξ,η):26 be a function that store the NURBS surface 𝑺(ξ,η) derivatives fields, i.e. Sj,β with j=1,2,3 that corresponds to x,y,z components; and β=1,2 for derivatives w.r.t. ξ and η. The domain of 𝑭 is the parameter space of 𝑺. The ith component of 𝑭 corresponds to jxβ. Figure B.1 shows two examples.

images

Figure B.1 Derivatives fields of NURBS surface showing the first and last derivatives components.

We define in each knot span of 𝑺 a set of six spline surfaces to approximate the six components of 𝑭. Spline1 surface 𝑻ik:23 is to be fitted to the (βxj)th derivative component within the kth knot span of 𝑺. We will refer to each of those sets of six spline surfaces as k-set.

𝑻ik has the parameter space S^k with components (u,v) and maps onto 3, with two first components, called plan coordinates, equal to (u,v) and the third component, called height (ζ), with the F𝒊 derivative estimation, (see Figure B.2).

images

Figure B.2 k-set for the seventh span of the NURBS surface (first and last components are shown).

Features of each k-set are listed below:

– Parameter space domain coincides with the correspondent 𝑺 knot span domain: S^k=(ξk1,ξk2)(ηk1,ηk2), where ξk1,ξk2,ηk1 and ηk2 are the kth knot span limits.

– Control points plan coordinates coincide with their parameter coordinates (u,v), therefore one parameter location for 𝑻ik coincides with its physical plan coordinates and with the parameter coordinates of 𝑺.

– Control points are equally spaced on plan in each direction, i.e. plan coordinates form a regular net on S^k.

– The six splines of the k-set share the same plan coordinates, hence they share parametrization.

– The six splines of the k-set share basis functions, i.e. they use the same knot spans, degrees and number of control points.

– Control points heights are to be fitted to the correspondent derivatives field, e.g. 𝑻3k fits to F3=S1,3=Sz,ξ.

There is one k-set defined separately for each knot span of 𝑺 in order to guarantee that those splines are fitted to a smooth field avoiding any potential C0 transition between knot spans. The fitted splines in this work are quadratic. Previously to fit 𝑻ik splines to derivatives fields Sj,β, we need to define the number of control points in each direction, which is driven by the error estimation as shown in Section B.2.2.

B.1.2 Number of Control Points

Explanations in this section are given for one k-set and one derivative field Fi. Sub-index on F is removed for clarity. The number of control points is driven by the estimation of error. Absolute error is given by equation (B.2), that is deducted in Section B.2.5.

E |13!(F𝜶,ξξξΔξr3+3F𝜶,ξξηΔξr2Δηr+3F𝜶,ηηξΔηr2Δξr (B.2)
+F𝜶,ηηηΔηr3)|

Where Δξr and Δηr are the representative increments (see section B.2.5, Equation B.28) and derivatives are at location 𝜶=(ξα,ηα) that belongs to the knot span sub-domain S^k and maximises the error. Relative error in percentage is obtained as equation (B.3), being F¯ the root mean square over the whole knot span (B.4) that might be estimated by Gauss quadrature.

Er=100E/F¯ (B.3)
F¯=1AreaS^kS^kF𝑑S^k (B.4)

Er in the derivative estimation is to be equal or less than the prescribed tolerance. This condition will determinate the number of control points for the k-set following next steps:

– Initial number of control points corresponds to 𝑻ik spline with a single knot span, since 𝑻ik is quadratic, initial number of control points is three in each direction. Therefore initial representative plan increments are Δξ0r=0.72(ξk2-ξk1)/2 and Δη0r=0.72(ηk2-ηk1)/2, where ξk1,ξk2,ηk1 and ηk2 are the knot span limits.

– Third derivatives are needed, but 𝜶 location is unknown, then we calculate exact derivatives values F,ξξξ,F,ξξη,F,ηηξ and F,ηηη at locations of a net of s×s equally spaced (in this work s=3).

Er is computed with equations (B.2), (B.3) and (B.4) for each of these s×s points using the initial representative increments Δξ0r and Δη0r. We consider only the highest value among the s×s errors.

– The ratio d=Er/tolerance is calculated.

– To reduce our error by a d factor, we can only reduce the representative increments as shown in Equation (B.5).

E/d |13!(F𝜶,ξξξΔξr3/d+3F𝜶,ξξηΔξr2Δηr/d (B.5)
+3F𝜶,ηηξΔηr2Δξr/d+F𝜶,ηηηΔηr3/d)|

– We use first and last summands of (B.5) to estimate updated increments in each direction to reduce the error below tolerance, as shown in Equations (B.6) and (B.7).

Δξr=(Δξr03d)1/3=0.72(ξk2-ξk1)/2d1/3 (B.6)
Δηr=(Δηr03d)1/3=0.72(ηk2-ηk1)/2d1/3 (B.7)

– With these representative increments (Δξr, Δηr) the actual increments (Δξ, Δη) are obtained dividing by 0.72 and then the number of control points in each direction is calculated as (B.8) and (B.9).

n=max[3,round((ξk2-ξk1)Δξr/0.72)] (B.8)
m=max[3,round((ηk2-ηk1)Δηr/0.72)] (B.9)

The number of control points n and m are shared by the six splines of the k-set.

B.1.3 Surface Fitting

Once the number of control points is obtained all the splines features of the k-set are already defined with the exception of control points heights (ζ). These coordinates are obtained by surface fitting techniques. Matrix 𝐀 (B.10) is computed only once for the k-set, since basis functions are shared by the six splines. Computation of matrix 𝐀 needs parameter coordinates of control points. As stated before, these parameter coordinates coincide with their plan coordinates: u,v.

𝐀=[N1(u1)M1(v1)N1(u1)Mm(vm)Nn(un)M1(v1)Nn(un)Mm(vm)] (B.10)

To compute heights of each of the six splines control points, we use Equations (B.11) and (B.12), where a may be substituted by x, y or z, and the exact values at control points: Fx,ξ11,Fx,ξ12,,Fz,ηnm, are needed. These exact values are computed analytically prior to this operation.

{ζ111ζ1nm}=𝐀-1{Fa,ξ11Fa,ξnm} (B.11)
{ζ611ζ6nm}=𝑨-1{Fa,η11Fa,ηnm} (B.12)

Once the height of control points are calculated, we achieve all the features of the six splines of 𝑻ik that approximates the components of 𝑺,ξ and 𝑺,η with error equal or less than the tolerance. In addition, the input parameter coordinates for 𝑺 and for 𝑻ik are the same: (ξ,η)=(u,v).

B.1.4 Estimation of Directional Derivatives Using Fitted Splines

The norm of θ-directional derivative can be estimated at location 𝝃a using the fitted spline surfaces 𝑻ik. Firstly the surface 𝑺 knot span where 𝝃a lies is identified in order to select the corresponding k-set. Then the six components of both derivatives are calculated entering in each spline surface with the same 𝝃a coordinates. Note that basis functions are to be calculated only once, as the six splines share them. Estimation of derivatives vectors 𝑺,ξ and 𝑺,η are assembled and θ-directional derivative is computed as Equation (B.1).

B.1.5 Error in Approximation with Spline Surface

This section demonstrates that the error when fitting a bi-quadratic spline surface to a function F(ξ,η) within the rectangular domain (ξ1,ξ2)(η1,η2) is calculated as expression (B.13).

E |13!(F𝜶,ξξξΔξr3+3F𝜶,ξξηΔξr2Δηr+3F𝜶,ηηξΔηr2Δξr (B.13)
+F𝜶,ηηηΔηr3)|

Where 𝜶=(ξα,ηα) is an unknown location in (ξ1,ξ2)(η1,η2) whose derivatives F𝜶,ξξξ,F𝜶,ξξη,F𝜶,ηηξ and F𝜶,ηηη lead to the maximum error, and Δξr=0.72Δξ and Δηr=0.72Δη are the representative increments, being Δξ and Δη the increments in ξ and η directions between a regular spaced set of control points. F values at parameter coordinates corresponding to control points must be analytically calculated.

We start with the error of a p-degree polynomial interpolation to a function f(ξ):11 using a set of p+1 points. That interpolation can be expressed in Newton’s polynomials form (B.14).

q(ξ) = f(ξ0)+f[ξ1,ξ0](ξ-ξ0)+f[ξ2,ξ1,ξ0](ξ-ξ1)(ξ-ξ0)+ (B.14)
+f[ξp,,ξ0](ξ-ξp)(ξ-ξ0)

Where f is known at locations ξ0,ξ1,,ξp and the finite difference are obtained as (B.15), being the first one (B.20).

f[ξp,ξp-1,,ξ1,ξ0]=f[ξp,ξp-1,,ξ1]-f[ξp-1,,ξ1,ξ0]ξn-ξ0 (B.15)
f[ξ1,ξ0]=f(ξ1)-f(ξ0)ξ1-ξ0 (B.16)

Equation (B.14) has the same structure as Taylor’s polynomial and the error committed in this interpolation has a similar expression to Taylor’s error [33], which is expressed in its Lagrange form as (B.17).

Ep1(p+1)!f(p+1)(ξα)i=0p(ξ-ξi) (B.17)

Where ξα is an unknown location within (ξ0,ξp) whose p+1 derivative maximises the error, and ξ is the location where we want to estimate f value using the polynomial interpolation.

For the particular case of p=2, the error is expressed as (B.18).

E213!f3(ξα)(ξ-ξ0)(ξ-ξ1)(ξ-ξ2) (B.18)

The error when using spline instead a polynomial has similar expression as demonstrated further on. Let C(ξ) be a 2-degree spline defined within certain knot span. Since degree is 2, the number of basis functions influential on that span are three, which we call N1(ξ), N2(ξ) and N3(ξ). Then any C(ξ) value is calculated as (B.19), where zi are the control points coordinates.

C(ξ)=N1(ξ)z1+N2(ξ)z2+N3(ξ)z3 (B.19)

Recall that each basis function is a 2-degree polynomial within the span [34], hence each basic function approximates to a function fi(ξ), i.e. Ni(ξ)fi(ξ), so that their linear combination with control points coordinates zi result the function f(ξ) as shown in Equation (B.20).

f(ξ)=f1(ξ)z1+f2(ξ)z2+f3(ξ)z3 (B.20)

Therefore the error committed within each basis function Ni has the same expression than the Newton’s polynomial approximation (B.21).

E2i13!fiα,ξξξ(ξ-ξ0)(ξ-ξ1)(ξ-ξ2) (B.21)

Where fiα,ξξξ indicates third derivative of fi at ξα, being ξα an unknown location within (ξ0,ξ2) whose fiα,ξξξ maximises the error, ξ is the location where we want to estimate f value using the spline and ξ0,ξ1 and ξ2 are the parameter coordinates of control points. The error when using C is therefore the linear combination of the three errors as expressed in Equation (B.22).

E2C13!(f1α,ξξξz1+f2α,ξξξz2+f3α,ξξξz3)(ξ-ξ0)(ξ-ξ1)(ξ-ξ2) (B.22)

In (B.26) the expression within left brackets is the third derivative of f, hence that equation can be expressed as (B.23).

E2C13!fα,ξξξ(ξ-ξ0)(ξ-ξ1)(ξ-ξ2) (B.23)

Note that (B.23) has the same structure as Equation (B.18). To generalize (B.23) for any location within the knot span, and assuming control points with parameter coordinates equally spaced Δξ, we locate a representative ξ at mid point of one of the intervals and calculate the representative interval Δξr as Equation (B.24). Figure B.3 illustrates the location of this representative ξ coordinate.

Δξr=(12Δξ12Δξ32Δξ)1/30.72Δξ (B.24)

images

Figure B.3 Location of representative coordinate ξ.

Using the representative increment Δξr Equation (B.23) might be expressed as (B.25). Which establishes the estimated maximum error for any location for a 2-degree spline curve fitting to a set of equally spaced points.

E2C13!fα,ξξξΔξr3 (B.25)

Extension to spline surface T(ξ,η) that approximates to a scalar function F(ξ,η) involves chain rule for derivatives calculation. Here we show directly the error result for the sake of brevity. Equation (B.26) shows error for p-degree and Equation (B.27) is particularized for 2-degree case with representative increments. The fitted surface T(ξ,η) is to have a rectangular domain shared with F(ξ,η) defined as (ξ1,ξ2)(η1,η2).

EpSm=0p+1(pm)p+1ξmηp+1-mF(ξα,ηα)i=0m(ξ-ξi)j=0p+1-m(η-ηj) (B.26)
E2S |13!(F𝜶,ξξξΔξr3+3F𝜶,ξξηΔξr2Δηr+3F𝜶,ηηξΔηr2Δξr (B.27)
+F𝜶,ηηηΔηr3)|

In (B.27) Δξr and Δηr are the representative increments, calculated as (B.24). The derivatives of F are at one location 𝜶=(ξα,ηα) within the domain (ξ1,ξ2)(η1,η2) such hat the computed error is maximum.

In our case in particular, functions to approximate is Fi=Sj,β. Sub-indexes values are j=1,2,3 for x, y and z; and β=1,2 for ξ and η. Some examples of expressions for derivatives required in Equation (B.27) are provided below:

F1,ξξξ =Sx,ξξξξ
F1,ξξη =Sx,ξξξη
F4,ηηξ =Sx,ηηηξ
F6,ηηξ =Sz,ηηηξ

B.2 Directional Derivatives Computed from the dS-mesh

The norm of θ-directional derivative can be estimated at certain location 𝝃a from the dS-mesh by linear interpolation by following next three steps. Firstly partition of dS-mesh where 𝝃a lies is identified, secondly the main derivatives (𝑺,ξ and 𝑺,η) of that element nodes are extracted (they are analytically calculated previously) and the θ-directional derivative is computed at each node as per Equation (B.1). Third, the norm of θ-directional derivative at 𝝃a is estimated by bi-linear interpolation of norms from the element nodes, as Equation (B.28).

𝑺,λ𝝃ak=14Nk(𝝃a)|𝑺,λk (B.28)

Where Nk(𝝃a) and 𝑺,λk are the value of the kth basis function at position 𝝃a and the derivative value at kth node respectively.

The dS-mesh is non-conformal, therefore if the location 𝝃a lies at the edge between two elements, only the smallest one, more accurate, is considered.

This procedure leads to a high speed directional derivative estimation. However recall that dS-mesh was refined to control error for physical length computation, Equation (B.29), and not for derivatives itself. The error of the derivative linear interpolation is calculated as (B.30).

E-112𝑺,λα′′𝝃b-𝝃a3 (B.29)
Ed12𝑺,λα′′𝝃b-𝝃a (B.30)

The relationship between both errors is:

EdE3𝝃b-𝝃a2 (B.31)

It is clear that the estimated error for derivatives interpolation is greater than error for path length trapezoidal rule (we assume 𝝃b-𝝃a<1). Since dS-mesh is generated to control error (B.29) and not (B.30), the error or this estimation of derivatives is not fully controlled. Therefore this method, that is faster than the splines fitting (section B.1) can be used only if the accuracy is not critical in the triangulation process.

Appendix C: Bounded Isotropic Triangulation

This appendix defines the bounded isotropic triangulation (BIT) and explains how to obtain a BIT and its characterization parameters (angles, triangles sizes and valences) corresponding to any triangulation (AT). BIT is the ideal isotropic triangulation version of AT and therefore the highest quality triangulation ideally achievable.

C.1 Bounded Isotropic Triangulation (BIT)

BIT is a portion of unbounded isotropic triangulation. The latter extends to infinite, i.e. presents no boundary edges, all angles are sixty degrees, all nodes valences are six and all triangles are the same size (Figure C.1(a)). The former is bounded by four edges forming a rhomboid (Figure C.1(b)), therefore not all valences are six, however sizes and angles are preserved as ideal isotropic. Parameters that characterize the BIT are the number of rows and columns, designated as rb and cb. Figure C.1 provides one example.

images

Figure C.1 Ideal isotropic triangulation (a) and extraction of 6 × 5 BIT (b).

The number of triangles (tb) and number contour segments (sb) of BIT are computed from rb and cb as shown in Equations (C.1) and (C.2).

tb=2rbcb (C.1)
sb=2(rb+cb) (C.2)

As mention, BIT has all angles equal to sixty degrees and all triangles are the same size, but not all vertexes valences are six. Vertexes valences are calculated as per Table C.1.

Table C.1 Frequency (number of instances) of vertexes valences

Valence Frequency
1 2
2 2
3 2((cb-1)+(rb-1))
4 0
5 0
6 (cb-1)×(rb-1)

C.2 Computation of BIT Corresponding to Any Triangulation (AT)

Given AT mesh we can find its corresponding BIT using Equations (C.1) and (C.2). By manipulation of them we arrive to expressions (C.3).

rb=sa4+sa216-ta2sb=sa4-sa216-ta2 (C.3)

In Equations (C.3) we input the AT number of triangles and edge segments (ta and sa) and obtain its corresponding BIT number of rows and columns (rb and cb) and afterwards the BIT vertexes valences frequency as per Table C.1. Figure C.2 provides one example of the BIT associated to AT.

BIT is the closest version of AT to an ideal isotropic triangulation, then the closest the parameters (angles, sizes and valences) of AT are to its BIT the higher quality presents the former.

images

Figure C.2 Computation of BIT (right) for a given AT (left). Contour segments of AT are numbered.

Appendix D: Data for Numerical Examples

Example 7.1: Single Surface

Table D.1 QIT inputs

Threshold Tolerance for Tolerance for Tolerance for
R distance to edge curves (%) surfaces (%) derivatives (%)
12 and 6 4 and 2 1.0 4.0 15.0

Table D.2 Surface NURBS features

No. control points n=6m=5
Degrees p=2q=2
Knot vectors Ξ={000 0.25 0.50 0.75 111}
H={000 0.50 0.50 111}

Table D.3 Control points coordinates and weights

1 2 3 4 5
1 0, 0, -90, 1 0, 0, 0, 0.707 0, 30, 0, 1 0, 60, 0, 0.707 0, 60, -30, 1
2 30, 0, -15, 1 30, 15, 0, 1 30, 30, 0, 1 30, 45, 0, 1 30, 60, -15, 1
3 95, 0, 0, 1 95, 15, 0, 1 95, 30, 0, 1 95, 45, 0, 1 95, 60, 0, 1
4 150, 0, 0, 6 137.5, 15, 0, 1 125, 30, 0, 1 112.5, 45, 0, 1 100, 60, 0, 1
5 150, 65, 0, 1 137.5, 65, 0, 1 125, 65, 0, 1 112.5, 65, 0, 1 100, 65, 0, 1
6 150, 100, 0, 1 137.5, 100, 0, 1 125, 100, 0, 1 112.5, 100, 0, 1 100, 100, 0, 1

Example 7.2: Three Contiguous Surfaces

Table D.4 QIT inputs

Threshold Tolerance for Tolerance for Tolerance for
R distance to edge curves (%) surfaces (%) derivatives (%)
5 1.67 1.0 4.0 15.0

– Bottom surface:

Table D.5 Surface NURBS features

No. control points n=3m=5
Degrees p=2q=2
Knot vectors Ξ={000  111}
H={000 0.50 0.50 111}

Table D.6 Control points coordinates and weights

1 2 3 4 5
1 108, 40, 0, 1 108, -28, 0, 0.707 40, -28, 0, 1 -28,-28, 0, 0.707 -28, 40, 0, 1
2 80, 40, 75, 1 80, 0, 75, 0.707 40, 0, 75, 1 0, 0, 75, 0.707 0, 40, 75, 1
3 80, 40, 150, 1 80, 0, 150, 0.707 40, 0, 150, 1 0, 0, 150, 0.707 0, 40, 150, 1

– Mid surface:

Table D.7 Surface NURBS features

No. control points n=5m=2
Degrees p=2q=1
Knot vectors Ξ={000 0.50 0.50 111}
H={00  11}

Table D.8 Control points coordinates and weights

1 2
1 0, 40, 150, 1 20, 40, 150, 1
2 0, 0, 150, 0.707 20, 20, 150, 0.707
3 40, 0, 150, 1 40, 20, 150, 1
4 80, 0, 150, 0.707 60, 20, 150, 0.707
5 80, 40, 150, 1 60, 40, 150, 1

– Top surface:

Table D.9 Surface NURBS features

No. control points n=3m=5
Degrees p=2q=2
Knot vectors Ξ={000  111}
H={000 0.50 0.50 111}

Table D.10 Control points coordinates and weights

1 2 3 4 5
1 60, 40, 150, 1 60, 20, 150, 40, 20, 150, 1 20, 20, 150, 0.707 20, 40, 150, 1
0.707
2 60, 40, 210, 60, 20, 230, 40, 20, 230, 0.707 20, 20, 230, 0.707 20, 40, 210, 1
0.707 0.50
3 60, 100, 210, 1 60, 100, 230, 40, 100, 230, 1 20, 100, 230, 0.707 20, 100, 210, 1
0.707

Notes

1We refer to B-spline as spline for brevity.

References

[1] T.J.R. Hughes, J.A. Cottrell, Y. Bazilevs, ‘Isogeometric analysis: CAD, finite elements, NURBS, exact geometry and mesh refinement’. Computer Methods in Applied Mechanics and Engineering, 194(39), pp. 4135–4195, 2005

[2] J.A. Cottrell, T.J.R. Hughes, Y. Bazilevs, ‘Isogeometric analysis: toward integration of CAD and FEA’, Oxford: Wiley, 2009.

[3] T.J. Baker, ‘Mesh generation: Art or science?’, Progress in Aerospace Sciences, 41(1), pp. 29–63, 2005.

[4] K. Shimada, ‘Current issues and trends in meshing and geometric processing for computational engineering analyses’, Journal of Computing and Information Science in Engineering, 11(2), pp. 021008, 2011.

[5] Q. Du, V. Faber, M. Gunzburger, ‘Centroidal Voronoi tessellations: Applications and algorithms’, SIAM Review, 41(4), pp. 637–676, 1999.

[6] P.J. Frey, H. Borouchaki, P. George, ‘3D Delaunay mesh generation coupled with an advancing-front approach’, Computer Methods in Applied Mechanics and Engineering, 157(1-2), pp. 115–131, 1998.

[7] R. Löhner, P. Parikh, ‘Generation of three-dimensional unstructured grids by the advancing-front method’, International Journal for Numerical Methods in Fluids, 8(10), pp. 1135–1149, 1988.

[8] K. Nakahashi, D. Sharov, ’Direct surface triangulation using the advancing front method’, 12th Computational Fluid Dynamics Conference 1995, pp. 1686, 1995.

[9] J.R. Tristano, S.J. Owen, S.A. Canann, ‘Advancing Front Surface Mesh Generation in Parametric Space Using a Riemannian Surface Definition’, IMR 1998, pp. 429–445, 1998.

[10] M.A. Yerry, M.S. Shephard, ‘Automatic three-dimensional mesh generation by the modified-octree technique’, International Journal for Numerical Methods in Engineering, 20(11), pp. 1965–1990, 1984.

[11] M.S. Shephard, M.K. Georges, ’Automatic three-dimensional mesh generation by the finite octree technique’, International Journal for Numerical Methods in Engineering, 32(4), pp. 709–749, 1991.

[12] X. Sheng, B.E. Hirsch, ‘Triangulation of trimmed surfaces in parametric space’, Computer-Aided Design, 24(8), pp. 437–444, 1992.

[13] H. Borouchaki, P. Laug, P. George, ‘Parametric surface meshing using a combined advancing-front generalized Delaunay approach’, International Journal for Numerical Methods in Engineering, 49(1–2), pp. 233–259, 2000.

[14] R.J. Cripps, S. Parwana, ‘A robust efficient tracing scheme for triangulating trimmed parametric surfaces’, Computer-Aided Design, 43(1), pp. 12–20, 2011.

[15] E. Béchet, J. Cuilliere, F Trochu, ‘Generation of a finite element MESH from stereolithography (STL) files’, Computer-Aided Design, 34(1), pp. 1–17, 2002.

[16] D. Wang, O. Hassan, K. Morgan, N. Weatherill, ’EQSM: An efficient high quality surface grid generation method based on remeshing’, Computer Methods in Applied Mechanics and Engineering, 195(41–43), pp. 5621–5633, 2006.

[17] S.W. Yang, Y. Choi, ’Triangulation of CAD data for visualization using a compact array-based triangle data structure’, Computers & Graphics, 34(4), pp. 424–429, 2010.

[18] E. Marchandise, J. Remacle, C. Geuzaine, ‘Optimal parametrizations for surface remeshing’, Engineering with Computers, 30(3), pp. 383–402, 2014.

[19] R. Aubry, S. Dey, E.L. Mestreau, B.K. Karamete, D. Gayman, ‘A robust conforming NURBS tessellation for industrial applications based on a mesh generation approach’, Computer-Aided Design, 63, pp. 26–38, 2015.

[20] J. Guo , F. Ding, X. Jia, D. Yan, ‘Automatic and high-quality surface mesh generation for CAD models’, Computer-Aided Design, 109, pp. 49–59, 2019.

[21] V. Surazhsky, P. Alliez, C. Gotsman, ‘Isotropic remeshing of surfaces: a local parameterization approach’, 2003.

[22] P. Alliez, E.C. De Verdire, O. Devillers, M. Isenburg, ’Isotropic surface remeshing’, 2003 Shape Modeling International. 2003, IEEE, pp. 49–5, 2003.

[23] S.W. Yang, Y. Choi, ‘Triangulation of CAD data for visualization using a compact array-based triangle data structure’, Computers & Graphics, 34(4), pp. 424–429, 2010.

[24] Y. Li, W. Wang, R. Ling, C. Tu, ‘Shape optimization of quad mesh elements’, Computers & Graphics, 35(3), pp. 444–451, 2011.

[25] M.S. Ebeida, A. Patney, J.D. Owens, E. Mestreau, ‘Isotropic conforming refinement of quadrilateral and hexahedral meshes using two-refinement templates’, International Journal for Numerical Methods in Engineering, 88(10), pp. 974–985, 2011.

[26] M. Tsai, C. Cheng, M. Cheng, ‘A real-time NURBS surface interpolator for precision three-axis CNC machining’, International Journal of Machine Tools and Manufacture, 43(12), pp. 1217–1227, 2003.

[27] P. Bézier, ‘Numerical control: mathematics and applications’, 1970.

[28] A.R. Forrest, ‘Interactive interpolation and approximation by Bézier polynomials’, The Computer Journal, 15(1), pp. 71–79, 1972.

[29] S. Bernstein, ‘Démonstration du théoreme de Weierstrass fondée sur le calcul des probabilities’, Comm.Soc.Math.Kharkov, 13, pp. 1–2, 1912.

[30] M.G. Cox, ‘The numerical evaluation of B-splines’, IMA Journal of Applied Mathematics, 10(2), pp. 134–149, 1972.

[31] C. De Boor, ‘On calculating with B-splines’, Journal of Approximation theory, 6(1), pp. 50–62, 1972.

[32] E. Isaacson, H.B. Keller, ‘Analysis of numerical methods’, John Wiley & Sons, 1966.

[33] S.C. Chapra, R.P. Canale, ‘Numerical methods for engineers’, Boston: McGraw-Hill Higher Education, 2010.

[34] L. Piegl, W. Tiller, ‘The NURBS Book’, 2 edn. Springer-Verlag, 1996.

Biographies

images

Daniel Herrero Adán is a Structural Engineer at Hydrock Consultants, Bristol, UK. He is a Ph.D. student at the University of the West of England Bristol (UK) since October 2015. He attended to the Technical University of Madrid, Spain, where he received the degrees in Forestry Engineering in 2003 and in Mechanical Engineering in 2009. In 2014 he obtained the Master degree in Mechanical Engineering in the University of Distance Learning, Spain. Through all these years he worked in the industry as Forestry, Mechanical and Structural Engineer in Spain and the UK. He is author of 4 papers, including journal and conference papers. His research areas of interest include computational mechanics, integration of CAD and analysis, Isogeometric Analysis of solids, optimization of structural design and plastic and dynamic analysis.

images

Rui Cardoso Senior Lecturer at Brunel University London. Published more than 80 papers in international journals and conferences. Published a book in September 2018 with title: Stress Analysis for Lightweight Structures: A Matlab Oriented Approach. Chair of Numisheet 2016, International Conference and Workshop on Numerical Simulation of 3D Sheet Metal Forming Processes, September 2016, Bristol, UK.

Abstract

1 Introduction

1.1 Triangulation of Parametric Surfaces

1.2 Isotropic Meshes

1.3 Proposed Method

1.4 Article Structure

2 Theoretical Formulation

2.1 NURBS

images

2.2 Length of Paths on NURBS

images

images

2.3 Trapezoidal Rule for Path Lengths

2.4 Path Parameter Increment Corresponding to a Physical Length (PPI)

images

2.5 Orientation of a Surface Tangent Vector in the Parameter Space

images

3 Preliminaries

3.1 Pattern Space

images

3.2 A Whole View: The QIT Algorithm

images

images

images

images

3.3 Conventions and Definitions

images

4 Vertexes of Edge Curves

4.1 Discretization of the Parameter Space. The dC-mesh

images

4.2 Edge Vertexes Calculation

images

images

5 Surface Vertexes

5.1 Discretization of the Parameter Space. The dS-mesh

images

images

5.2 End Parameter Position of a Path Given its Physical Length (EPP)

images

images

images

5.3 Intersection of Two Arcs in Physical Space (AIP)

images

images

images

images

images

images

images

5.4 Computation of Vertexes

images

images

images

5.5 Recovering of Non-Computed Base Vertexes

6 Triangulation

6.1 Estimation of Edge Vertexes in the Pattern Space

images

6.2 Removal of Non-Valid Surface Vertexes

6.3 Delaunay Triangulation in the Pattern Space

images

6.4 Edge Strip Triangles Amendment

images

7 Numerical Examples

7.1 Single Surface with Severe Distortion in the Parameter Space

images

images

images

images

images

images

images

images

7.2 Three Contiguous Surfaces

images

images

images

8 Conclusions and Future Work

Acknowledgments

Appendixes

Appendix A: Derivatives of a Function that is as Norm of First Derivative of Another Function

Appendix B: Surface Derivatives Estimation

B.1 Derivatives Computed from Fitted B-spline Surfaces

B.1.1 Basic Definitions

images

images

B.1.2 Number of Control Points

B.1.3 Surface Fitting

B.1.4 Estimation of Directional Derivatives Using Fitted Splines

B.1.5 Error in Approximation with Spline Surface

images

B.2 Directional Derivatives Computed from the dS-mesh

Appendix C: Bounded Isotropic Triangulation

C.1 Bounded Isotropic Triangulation (BIT)

images

C.2 Computation of BIT Corresponding to Any Triangulation (AT)

images

Appendix D: Data for Numerical Examples

Example 7.1: Single Surface

Example 7.2: Three Contiguous Surfaces

Notes

References

Biographies