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
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.
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.
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.
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].
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.
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.
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 and respectively, with . For curves and for surfaces . In this work we assume . Figure 1 shows one NURBS surface example.
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 with . 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 knots are repeated. The number of knots is equal to , 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 | |||
NURBS basis function | |||
Number of control points | |||
Degree | |||
Knot vector | |||
Physical space | |||
Parameter space |
A NURBS entity is generated by mapping as detailed in Equations (1) and (2) for curves and surfaces respectively, where R are the NURBS basis functions.
(1) | |||
(2) |
The NURBS basis functions are calculated as in (3) and (4).
(3) |
(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 ():
(5) |
For degrees 1 and higher ():
(6) |
The physical path’s length for a NURBS curve between parameter coordinates and , corresponding to physical coordinates and , is given by the integral detailed in Equation (7).
(7) |
Where is the norm of the curve derivative w.r.t. parameter coordinate . See Figure 2 for clarity.
The physical length of a path on a NURBS surface between parameter coordinates to , that forms a angle w.r.t. the horizontal direction and corresponds to physical coordinates and , is given by the integral of the -directional derivative norm along the path as follows:
(8) |
Where represents an infinitesimal increment in the parameter domain with orientation , and is the - directional derivative, i.e. that is computed as per Equation (9).
(9) |
The distance lies onto the surface (physical space) but the shortest distance between and might be less (see Figure 3(b)).
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 .
(10) |
The estimation of the path’s length by the trapezoidal rule is expressed as:
(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 . Since the location is unknown, in this work we will evaluate the error at the initial and final locations for the following interval:
(12) |
The calculation of the derivatives and is detailed in Appendix A. The error is expressed as percentage of the path’s length:
(13) |
where is the absolute value of the error, computed as in Equation (12) and is the estimated physical length of the path as in Equation (11).
Let 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 (), assuming that the physical coordinates of the three points and the parameter coordinates of a and c ( and ) are known.
The trapezoidal rule between a and b is written as in Equation (11) with and being unknowns in this case. To compute we use the third point c, whose derivative norm lies on the line -, as shown in Figure 4(c). Equation (14) is used, where it was assumed that coincides with the location:
(14) |
Substituting in Equation (11) with the right-hand side of Equation (14), we arrive to the quadratic equation for , Equation (15), where . Among the two possible roots, the non-negative and within, or closest to, the interval corresponds to the searched increment .
(15) |
Then, the coordinate is given by:
(16) |
Let be a tangent vector to a surface at point in the physical space, the calculation of its orientation in the surface parameter space () will be presented in this section. is a linear combination of main derivatives as shown in Equation (17) (see Figure 5). Coefficients and are shortcuts to “” and “”, respectively, with being an unknown constant.
(17) |
To compute the orientation , the derivatives and are firstly calculated, then and are obtained from the system of Equations (17). Finally, is calculated as in the following equation:
(18) |
In this work we introduce a new 2D space, named pattern space (), as a set of vertexes lying on a number of concentric regular hexagons separated by the distance . Vertexes are equally spaced at . 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 . 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.
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 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 : 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.
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 distance, these are called edge vertexes. Section 4 delivers more details of this process.
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).
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.
Coordinates in the pattern, parameter and physical spaces are expressed as and , respectively. Coordinates at a specific point are written with as superscript, e.g. . 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.
– 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 .
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.
The dC-mesh is obtained by iterative division of the parameter space so that the error 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 and its second derivative by (see Appendix A for the calculation of ).
Initially, dC-mesh partitions coincide with non-void knot vector spans. Then, within each partition, the 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, and are calculated for each node (recall Equations (11) and (12)).
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).
To calculate the edge vertexes, the accumulated physical length up to each dC-mesh node, called , 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 and the accumulated length up to the previous node is .
The target physical spacing between vertexes is not exactly but it is re-calculated to ensure that the resultant vertexes are equally spaced. The updated spacing is called and is obtained as , where is the number of required segments between vertexes.
Accumulated target distances () are then sequentially searched. initially is set equal to and increases by in each step. The search first finds which partition of the dC-mesh contains , using the accumulated physical lengths . Then, it estimates the parameter coordinate increment within that partition in order to achieve the distance by using the PPI algorithm from Section 2.5. See one example in Figure 14.
The edge vertexes in the surface parameter space, required for triangulation (see Section 6), are computed by using point projection techniques [34].
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.
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 for simplicity.
Initially, partitions are the non-void knot spans. Error () 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.
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).
This section explains the End Parameter Position procedure (EPP) that estimates the end location of a path whose initial point coordinates , 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.
A semi-infinite line, starting at 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 , the parameter coordinate is searched by PPI within the current segment (see Section 2.5). Some examples are illustrated in Figure 19.
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 () is used for that effect. Figure 19 shows two examples representing this particular case.
In this section a procedure called Arcs Intersection in Physical space (AIP) will compute the intersection (point ) of two arcs, and , that lie on the physical space of the surface. Let us define one arc, onto the surface physical space centred at , by its radius (), trial angle () and amplitude (), in this work degrees. The trial angle is the orientation of the arc bisector and the total arc angle is twice the amplitude (see Figure 20).
To find the intersection, arcs are first discretized in a number of lines (), as shown in Figure 20 at the right. Hence, the number of points to compute per arc is (in this work ). 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 as the tangent plane to the surface at location , and as the vector projected from vector onto , with all of these vectors represented in the physical space (Figure 21).
The trial angle is measured from vector as shown in Figure 22. The value of for the first iteration is selected in the pattern space by using relative positions between pattern coordinates of points , and . Their values are typically around -60 and +60 degrees for and , respectively, except for the first hexagon (see Section 5.4). The angles for the arc points vary from to , with steps , all within the plane.
Points for the discretized arcs are computed by the EPP algorithm from Section 5.2, whose inputs needed are the location , the target distance 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:
– Compute the tangent plane in the physical space. The normal vector to the plane is given by (for the computation of the derivatives see Appendix B).
– Find : the projection of onto (for arc use ).
– Form local base with vectors , and . Note that .
– Compute vector contained in plane that forms degrees with . This step involves computing vector in the local base (at degrees from ) and transforming to the global coordinate system to obtain .
– Obtain , which is the orientation of 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 ( and ) 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 must hold w.r.t. the vector from to () via the cross product . If the third component of this cross product is positive, then must lie at the left-hand side of , 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 . 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 () 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.
For cases B to D, the arc amplitude might need to be increased to raise the possibilities of finding the intersection point.
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. and . Second, the vertex is computed by EPP with target distance , orientation and initial location . The rest of the first hexagon vertexes ( to ) are computed by the algorithm AIP from the previous vertex and , both with radius equal to . Initial trial angles for AIP are and . Figure 27 illustrates the fourth vertex calculation in the pattern space, showing only the final iteration 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 and | radius |
Side | 60 and 60 | |
corner | 60 and 60 |
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.
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).
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 . 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.
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 as a pre-established threshold distance in the physical space, which is measured from the surface edges (in this work ), then:
– SI-vertex: is a surface vertex which lies inside the parameter limits of the surface and is located further away of more than 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 when measured from the edges of the surface.
– SO-vertex: is a surface vertex which lies outside of the surface parameter limits.
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 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:
(19) |
Where shape functions are the area coordinates, as defined in Equation (20), where is the area of the triangle and 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 is illustrated.
(20) |
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.
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 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.
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).
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.
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: .
– 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 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%.
(21) |
The inputs for Equation (21) are frequencies, in percentage, for:
: triangles of QIT, with sizes in the same interval as BIT size ();
: angles of QIT in the same interval of 60 degrees;
and : vertexes with the valence number equal to 3 for both QIT and BIT;
and : 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%.
A single surface with abrupt increments in parameter space is meshed with our QIT algorithm. The algorithm was performed for two different sizes: and . 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 is greater when because the number of triangles affected by the edges is less than in the other case when . 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 and . 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.
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.
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 . 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.
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%.
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 . 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.
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.
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.
Let be a function defined as the norm of first derivative of another function . For the sake of clarity we remove the free variable from the notation, then is expressed as , as and so on.
(A.1) |
(A.2) |
First derivative of is computed by simple differentiation of (A.2), that yields (A.3).
(A.3) |
Applying differentiation again to (A.3) we obtain the second derivative of , written in (A.4).
(A.4) |
For NURBS surfaces the directional derivatives are functions of main derivatives ( and ) and are not trivial. First directional derivative is (A.5).
(A.5) |
Second and third directional derivatives are explained here. Let be a vector with orientation and , i.e. and . Let be a function such that with . Derivatives w.r.t. and at location may be calculated as expressions (A.6) and (A.7).
(A.6) |
(A.7) |
Directional first derivative of with orientation at location is given by Equation (A.8), which is equivalent to (A.9).
(A.8) |
(A.9) |
Directional second derivative is obtained as follows:
(A.10) |
(A.11) |
Developing Equation (A.11) and grouping terms we arrive to the bilinear form (A.12), which is equivalent to (13).
(A.12) |
(A.13) |
In (A.13), sub-index of indicates derivatives w.r.t. (sub-index 1) or (sub-index=2). Same procedure for third directional derivative yields Equation (A.14):
(A.14) |
Developing (A.14) and grouping terms, the third directional derivative can be expressed as (B.15).
(A.15) |
Where sub-index of 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 . Application for function is direct. Each of the components of the directional derivative can be calculated separately by Equations (A.9), (A.13) and (A.15). For example for () third directional derivative has three components as per Equation (A.16).
(A.16) | |||
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).
(B.1) |
Let be a function that store the NURBS surface derivatives fields, i.e. with that corresponds to components; and for derivatives w.r.t. and . The domain of is the parameter space of . The th component of corresponds to . Figure B.1 shows two examples.
We define in each knot span of a set of six spline surfaces to approximate the six components of . Spline1 surface is to be fitted to the th derivative component within the th knot span of . We will refer to each of those sets of six spline surfaces as k-set.
has the parameter space with components and maps onto , with two first components, called plan coordinates, equal to and the third component, called height (), with the derivative estimation, (see Figure B.2).
Features of each k-set are listed below:
– Parameter space domain coincides with the correspondent knot span domain: , where and are the kth knot span limits.
– Control points plan coordinates coincide with their parameter coordinates , therefore one parameter location for 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 .
– 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. fits to .
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 transition between knot spans. The fitted splines in this work are quadratic. Previously to fit splines to derivatives fields , 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.
Explanations in this section are given for one k-set and one derivative field . Sub-index on 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.
(B.2) | |||
Where and 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 and maximises the error. Relative error in percentage is obtained as equation (B.3), being the root mean square over the whole knot span (B.4) that might be estimated by Gauss quadrature.
(B.3) |
(B.4) |
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 spline with a single knot span, since is quadratic, initial number of control points is three in each direction. Therefore initial representative plan increments are and , where and are the knot span limits.
– Third derivatives are needed, but location is unknown, then we calculate exact derivatives values and at locations of a net of equally spaced (in this work ).
– is computed with equations (B.2), (B.3) and (B.4) for each of these points using the initial representative increments and . We consider only the highest value among the errors.
– The ratio is calculated.
– To reduce our error by a factor, we can only reduce the representative increments as shown in Equation (B.5).
(B.5) | |||
– 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).
(B.6) |
(B.7) |
– With these representative increments (, ) 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).
(B.8) |
(B.9) |
The number of control points and are shared by the six splines of the k-set.
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: .
(B.10) |
To compute heights of each of the six splines control points, we use Equations (B.11) and (B.12), where may be substituted by , or , and the exact values at control points: , are needed. These exact values are computed analytically prior to this operation.
(B.11) |
(B.12) |
Once the height of control points are calculated, we achieve all the features of the six splines of that approximates the components of and with error equal or less than the tolerance. In addition, the input parameter coordinates for and for are the same: .
The norm of -directional derivative can be estimated at location using the fitted spline surfaces . Firstly the surface knot span where 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 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).
This section demonstrates that the error when fitting a bi-quadratic spline surface to a function within the rectangular domain is calculated as expression (B.13).
(B.13) | |||
Where is an unknown location in whose derivatives and lead to the maximum error, and and are the representative increments, being and the increments in and directions between a regular spaced set of control points. values at parameter coordinates corresponding to control points must be analytically calculated.
We start with the error of a -degree polynomial interpolation to a function using a set of points. That interpolation can be expressed in Newton’s polynomials form (B.14).
(B.14) | |||
Where is known at locations and the finite difference are obtained as (B.15), being the first one (B.20).
(B.15) |
(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).
(B.17) |
Where is an unknown location within whose derivative maximises the error, and is the location where we want to estimate value using the polynomial interpolation.
For the particular case of , the error is expressed as (B.18).
(B.18) |
The error when using spline instead a polynomial has similar expression as demonstrated further on. Let 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 , and . Then any value is calculated as (B.19), where are the control points coordinates.
(B.19) |
Recall that each basis function is a 2-degree polynomial within the span [34], hence each basic function approximates to a function , i.e. , so that their linear combination with control points coordinates result the function as shown in Equation (B.20).
(B.20) |
Therefore the error committed within each basis function has the same expression than the Newton’s polynomial approximation (B.21).
(B.21) |
Where indicates third derivative of at , being an unknown location within whose maximises the error, is the location where we want to estimate value using the spline and and are the parameter coordinates of control points. The error when using is therefore the linear combination of the three errors as expressed in Equation (B.22).
(B.22) |
In (B.26) the expression within left brackets is the third derivative of , hence that equation can be expressed as (B.23).
(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 as Equation (B.24). Figure B.3 illustrates the location of this representative coordinate.
(B.24) |
Using the representative increment 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.
(B.25) |
Extension to spline surface that approximates to a scalar function involves chain rule for derivatives calculation. Here we show directly the error result for the sake of brevity. Equation (B.26) shows error for -degree and Equation (B.27) is particularized for 2-degree case with representative increments. The fitted surface is to have a rectangular domain shared with defined as .
(B.26) |
(B.27) | |||
In (B.27) and are the representative increments, calculated as (B.24). The derivatives of are at one location within the domain such hat the computed error is maximum.
In our case in particular, functions to approximate is . Sub-indexes values are for , and ; and for and . Some examples of expressions for derivatives required in Equation (B.27) are provided below:
The norm of -directional derivative can be estimated at certain location from the dS-mesh by linear interpolation by following next three steps. Firstly partition of dS-mesh where 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 is estimated by bi-linear interpolation of norms from the element nodes, as Equation (B.28).
(B.28) |
Where and are the value of the basis function at position and the derivative value at node respectively.
The dS-mesh is non-conformal, therefore if the location 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).
(B.29) |
(B.30) |
The relationship between both errors is:
(B.31) |
It is clear that the estimated error for derivatives interpolation is greater than error for path length trapezoidal rule (we assume ). 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.
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.
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 and . Figure C.1 provides one example.
The number of triangles () and number contour segments () of BIT are computed from and as shown in Equations (C.1) and (C.2).
(C.1) |
(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 | |
4 | 0 |
5 | 0 |
6 |
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).
(C.3) |
In Equations (C.3) we input the AT number of triangles and edge segments ( and ) and obtain its corresponding BIT number of rows and columns ( and ) 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.
Table D.1 QIT inputs
Threshold | Tolerance for | Tolerance for | Tolerance for | |
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 | |
Degrees | |
Knot vectors | |
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 |
Table D.4 QIT inputs
Threshold | Tolerance for | Tolerance for | Tolerance for | |
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 | |
Degrees | |
Knot vectors | |
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 | |
Degrees | |
Knot vectors | |
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 | |
Degrees | |
Knot vectors | |
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 |
1We refer to B-spline as spline for brevity.
[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.
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.
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.
European Journal of Computational Mechanics, Vol. 29_1, 27–82.
doi: 10.13052/ejcm2642-2085.2912
© 2020 River Publishers
1.1 Triangulation of Parametric Surfaces
2.3 Trapezoidal Rule for Path Lengths
2.4 Path Parameter Increment Corresponding to a Physical Length (PPI)
2.5 Orientation of a Surface Tangent Vector in the Parameter Space
3.2 A Whole View: The QIT Algorithm
3.3 Conventions and Definitions
4.1 Discretization of the Parameter Space. The dC-mesh
5.1 Discretization of the Parameter Space. The dS-mesh
5.2 End Parameter Position of a Path Given its Physical Length (EPP)
5.3 Intersection of Two Arcs in Physical Space (AIP)
5.5 Recovering of Non-Computed Base Vertexes
6.1 Estimation of Edge Vertexes in the Pattern Space
6.2 Removal of Non-Valid Surface Vertexes
6.3 Delaunay Triangulation in the Pattern Space
6.4 Edge Strip Triangles Amendment
7.1 Single Surface with Severe Distortion in the Parameter Space
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.2 Number of Control Points
B.1.4 Estimation of Directional Derivatives Using Fitted Splines
B.1.5 Error in Approximation with Spline Surface
B.2 Directional Derivatives Computed from the dS-mesh
Appendix C: Bounded Isotropic Triangulation
C.1 Bounded Isotropic Triangulation (BIT)
C.2 Computation of BIT Corresponding to Any Triangulation (AT)
Appendix D: Data for Numerical Examples