This work presents the first method for generating tetrahedral-based volume meshes dedicated to the NURBS-enhanced finite element method (NEFEM). Built upon the developed method of generating feature-independent surface meshes tailored for NEFEM, the proposed mesh generation scheme is able to grow volume elements that inherit the feature-independence by using the surface mesh as the initial boundary discretisation. Therefore, the generated tetrahedral elements may contain triangular faces that span across multiple NURBS surfaces whilst maintaining the exact boundary description. The proposed strategy completely eliminates the need for de-featuring complex watertight CAD models. At the same time, it eliminates the uncertainty originated from the simplification of CAD models adopted in industrial practice and the error introduced by traditional isoparametric mesh generators that produce polynomial approximations of the true boundary representation. Thanks to the capability of having element faces traversing multiple geometric surfaces, small geometric features in the CAD model no longer restrict the minimum element size, and the user-required mesh spacing in the generated mesh is better satisfied than in traditional meshes that require local refinement. To demonstrate the ability of the proposed approach, a variety of CAD geometries are meshed with the proposed strategy, including examples relevant to the fluid dynamics, wave propagation and solid mechanics communities.
Hinweise
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
1 Introduction
Computer simulation often requires generating a mesh from a computer-aided design (CAD) model which is mathematically described by non-uniform rational B-splines (NURBS) [1]. This process typically involves two steps: the preparation of the geometry and the discretisation. The preparation of the geometry requires substantial human intervention, and cannot be performed automatically with computer software. This is because (1) CAD models throughout the digitised industry pipeline are prone to contain geometric issues [2, 3] due to the tolerance of floating point arithmetic; (2) realistic CAD models normally contain multi-scale geometric features [4, 5] that may or may not have an impact on a particular simulation. The reliance on human experience and expertise to make decisions to repair and/or de-feature a CAD model seriously hampers the current ability to perform simulations with high fidelity geometric models. Standard mesh generators normally create excessive refined elements near regions with small geometric features, ignoring the user-defined mesh size or spacing. The unnecessary local refinement, often results in highly distorted or badly shaped elements, introducing a negative impact to the efficiency of simulations and the quality of results. For instance, unnecessary small elements can pose a severe restriction in a explicit time stepping scheme for the simulation of transient problems [6]. This is particularly important for exploiting the high-order approximation [7‐10], where coarse meshes are preferred. On the other hand, the existence of small elements, even only one, can drastically drive the simulation away from an affordable cost, and, in a sense, hurdles a widespread adoption of high-order methods in industry.
Despite of the existence of fully automatic standard mesh generators, including academic packages such as [11‐13] and numerous commercial packages, the software dedicated to geometry preparation, such as [14, 15], is only semi-automatic. Large resources have been invested to the research and development of automatic de-featuring complex CAD models [16‐18]. However, fully automatised de-featuring has not yet been achieved. Machine learning techniques have been used to classify some common geometric features [19] in a large assembly, though it requires a significant amount of pre-labelled data. In addition, it is difficult to predict how the feature will affect the simulation, especially when it involves multiphysics or depends on geometry-related parameters. A naive de-featuring could unintentionally reduce the fidelity of the physical problem, and introduce unintended uncertainty. For instance, the level of de-featuring required in problems on heat transfer, stress analysis, aerodynamics or wave propagation is completely different. When different levels of de-featuring are performed on the same geometry, it is not always possible to cater for all necessary simulations. This means either the same geometric model is considered for all the physics with a non-optimal de-featuring, or different geometries are produced to simulate different physics, resulting in misaligned and inconsistent simulation results and preventing multi-objective optimisation processes.
Anzeige
In addition to the difficulties in de-featuring CAD models, the standard mesh generation also introduces a geometric uncertainty that is well-known but often ignored. This is because the isoparametric element [20], which is the most common approach used in existing solvers, uses the same function space, spanned by polynomials, to approximate both the geometry and the unknown fields. In particular, when isoparametric elements are used to discretise the domain a piecewise polynomial approximation of the true boundary representation is introduced, and the discrepancy between the true and the approximation geometry increases when coarse meshes are considered, which is often the case in high-order solvers. The accuracy of the geometric approximation can be improved by refining the mesh based on the boundary curvature, known as the h-refinement, or by increasing the number of interpolating nodes and adapting them to the curved boundary, regarded as the p-refinement. However, insufficient attention is often paid to the fact that the resulting mesh provides only a piecewise polynomial approximation of the original CAD geometry, and the geometric continuity between elements is only \(C^0\). This implies that the result could possibly converge to a solution defined on a different geometric domain with its boundary described by the polynomial functions rather than the desired NURBS B-rep of the CAD geometry [21]. When high-order isoparametric elements are employed on coarse meshes, the piecewise polynomial approximation of the geometry with \(C^0\) continuity between elements can induce nonphysical effects, such as stress singularity in solid mechanics, diffraction in wave propagation, as well as entropy production and flow separation in fluid dynamics. Such effects, as thoroughly discussed in [22‐24], can lead the p-adaptive analysis to an incorrect solution.
Originally proposed in [25] in a two-dimensional framework, the NURBS-enhanced finite element method (NEFEM) provides a simple and efficient approach to guarantee the true geometry from a CAD model is persistent throughout the whole simulation pipeline. This method was later extended to three dimensions in [26] and has been tested in various problems including fluid dynamics, electromagnetic wave propagation, heat transfer and stress analysis [27]. In the treatment of NURBS geometry, NEFEM is similar to the isogeometric analysis approach [28]. Both methods uses the NURBS parametrisation directly from the CAD data to describe the shape of discretised elements at the boundary. Therefore, the de-featuring of the geometry is avoided, and the geometric approximation error is completely eliminated. However, the isogeometric approach also requires the use of NURBS functions as the basis to approximate the unknown solution, which demands a fundamental modification on the geometry kernel of CAD software, as the three-dimensional NURBS parametrisation is not available in industrial CAD platforms [29] where a CAD model is constructed following the B-rep philosophy. Moreover, isogeometric methods do not prevent the existence of small elements caused by small geometric features. Unlike the isogeometric approach, NEFEM uses standard polynomial functions for the approximation of solution, addressing the problem by a complete separation of the geometry description and solution approximation. This means an enriched element, with NURBS functions describing its geometric shape, and polynomial functions approximating the solutions within the domain, is no longer isoparametric. In this way, the NEFEM element sizes are not restricted by the geometric features, and are controlled by user-specified spacing. Similar to the virtual topology techniques [30] that are able to modify the topological structure of the CAD model without changing the geometry, a NURBS-enhanced element is allowed to traverse different surfaces to achieve the desired element size. In addition, the traversing NEFEM elements can span across surfaces connected with only \(C^0\) continuity.
Apart from the benefits introduced by NEFEM, its extensive application to industrial problems involving complex geometries has been impeded by the lack of a capable mesh generator. This has also led to development of strategies using the NEFEM rationale but without the need of a mesh, namely unfitted [31‐33] or meshless methods [34, 35]. A two-dimensional NEFEM mesh generator was developed in [36], where the use of NEFEM showed to accelerate the simulation of a electromagnetic wave scattering problems by a factor of 140. To extend this success to three-dimensional problems, a surface mesh generator tailored for NEFEM was developed in [37].
This paper presents, for the first time, the 3D volume mesh generation framework tailored for NEFEM. The proposed method is based on the NEFEM surface mesh generator [37], with extra modifications to allow further validity checks during the volume element creation. The generated surface mesh, which already uses the NURBS B-rep and enables surface elements to traverse multiple curves or surfaces, is used as the discretised boundary for volume meshing, thus ensuring the preservation of the true geometry from the CAD model. Thus, naturally the first layer of NEFEM volume elements grown upon these surface elements will inherit the exact geometry. To ensure the validity of the NEFEM volume elements, intersection checks are performed during the creation process. The detailed algorithms are listed in pseudo codes, and explained with illustrations. Examples are presented to demonstrate the ability of the developed framework. In addition numerical validity checks are performed on the generated meshes.
Anzeige
The outline of the paper is as follows. The fundamentals of NEFEM is introduced in Sect. 2, where the definition of NEFEM entities is extended to account for the possibility of triangular elements spanning across multiple surfaces. Section 3 briefly recalls the NEFEM surface mesh generation and introduces the necessarily additional checks appended to this process to enable NEFEM volume mesh generation. Section 4 presents the proposed technique to generate NEFEM volume meshes. In Sect. 4.4, the generation of high-order nodal distributions on NEFEM surface elements is detailed. Several mesh examples, of increasing complexity, are presented in Sect. 5, to illustrate the potential of the proposed technique. Finally, Sect. 6 summarises the main conclusions.
2 Tetrahedral mesh tailored for NEFEM
This section aims at introducing characteristics of the NURBS-enhanced element and of the mesh tailored for NURBS-enhanced FEM. Formal definitions of the geometric entities, which lay the foundation of the proposed mesh generation strategy, are detailed.
2.1 Characteristics of NEFEM elements and mesh
In three dimensions, a standard isoparametric FE mesh is typically generated in a hierarchical manner, discretising the CAD model from points, curves, surfaces and volumes. During this process, the geometric entities are associated with the mesh entities. To be specific, points in the CAD model define nodes in the FEM mesh; curves are discretised into edges; surfaces are approximated with faces or facets such as triangles or quadrilaterals; and volumes are divided into polyhedral elements such as tetrahedra, prisms, pyramids or hexahedra. After the mesh has been created, a set of nodes and element connectivities are stored and the CAD geometric information is usually discarded in the forthcoming simulations.
The foundation of NEFEM [38] is the separation of the geometric approximation and functional approximation, which are tightly coupled in isoparametric FEs and isogeometric methods. To decouple these two concepts, NEFEM generalises the definition of an FE: the geometry is exactly described by means of the NURBS parametrised B-rep that, directly obtained from CAD models, whereas the functional approximation is defined using polynomials, as is in standard FEM. As a result, NEFEM elements require new quadrature rules to ensure that the exact B-rep is accounted for by the solver.
When a CAD model contains small geometric features, e.g. short curves or sliver surfaces, standard meshing algorithms disregard the user-specified mesh spacing, generating small elements that are often badly shaped. NEFEM has introduced a new class of FE, which is dedicated to lifting the restriction of small geometric features inducing small elements, so that compliance with the user-defined spacing is significantly improved.
As an example, let us consider a CAD model of a hollow fairing of a turbine engine, represented in Fig. 1a, where all NURBS curves are rendered in blue. A high-order triangular surface mesh generated by a standard mesh generator is shown in Fig. 1b. The virtual topology approach has been employed to enable the generation of elements across surfaces with a smooth transition of the outward unit normal. However, it can be clearly observed that small and badly shaped triangles are present in trailing edge regions where the desired element size is much larger than the sliver feature. In contrast, the NEFEM mesh shown in Fig. 1c has employed some NURBS-enhanced elements that traversed the surfaces, even without a smooth transition of the normal, resulting in compliant element sizes.
Fig. 1
Meshing a hollow fairing model with isoparametric and NURBS-enhanced surface elements
×
In two dimensions, a typical NEFEM element is defined as a curved triangle where at least one edge is geometrically defined as a combination of trimmed NURBS curves. Similarly, in three dimensions, a typical NEFEM element can be defined as a tetrahedron where at least one edge or face is geometrically defined as a collection of trimmed NURBS curves or surfaces, respectively. The new concept of element is illustrated in Fig. 2 and a detailed discussion can be found in [38].
Fig. 2
Illustration of the generalisation introduced by NEFEM
×
Among the illustrative examples of NEFEM elements in Fig. 2, it can be observed that the exact B-rep is always preserved by the corresponding NEFEM element, regardless of the order of approximation used in the element. In particular, a NEFEM element with low-order interpolation nodes is capable of representing a curved boundary. In addition, Fig. 2 also shows that the face of a NEFEM element can be made of a collection of NURBS surface patches, even with abrupt changes of the normal within the face.
It is worth noting that NEFEM elements can be restricted to just one layer of elements in contact with the boundary of the domain. The large majority of elements in a NEFEM mesh do not have any edge or face on the boundary, and the standard isoparametric FEM approach is used. This implies that NEFEM elements are only used near the boundary, and a negligible computational overhead will be introduced when compared to the cost of standard FEs.
2.2 Definition of NEFEM elements
The boundary of an open bounded domain \(\Omega \in \mathbb {R}^3\), denoted by \(\partial \Omega\), is assumed to be described by a set of \(n_s\) NURBS surfaces \(\mathcal {S}:=\{\varvec{S}_j\}_{j=1,\ldots ,n_s}\). The intersections of the surfaces define a set of \(n_c\) NURBS curves \(\mathcal {C}:=\{\varvec{C}_i\}_{i=1,\ldots ,n_c}\). Each curve \(\varvec{C}_i\) or surface \(\varvec{S}_j\) is parametrised as
For further details on NURBS curves and surfaces, the reader is referred to [1].
In three dimensions, the surface mesh generation strategy proposed in [37] introduced the mapping to define the geometry of surface NEFEM elements using the exact B-rep from CAD data. In particular, a NEFEM surface element, which could traverse several NURBS surfaces \(\{\varvec{S}_i(\lambda , \kappa )\}_{i=1,\ldots ,\mathtt {n_{sdo}}}\), is defined as the image of a piecewise mapping from the parameter domains \(\Lambda _{e,i}\subset \mathbb {R}^2\) to the physical domain \(\varvec{S}_i(\Lambda _{e,i})\subset \mathbb {R}^3\), where \(\mathtt {n_{sdo}}\) denotes the number of subdomains of the piecewise mapping. An example is presented in Fig. 3 to illustrate the mapping for a NURBS surface element traversing three surfaces rendered in different colours.
Fig. 3
Illustration of the piecewise NEFEM geometric mappings for a triangular NEFEM surface element traversing three NURBS surfaces \((\varvec{S}_1, \varvec{S}_2, \varvec{S}_3)\), where \(\varvec{S}_2\) is a trimmed surface
×
The piecewise surface mapping is then extended to the volume element. Let us consider a finite element \(\Omega _e\subseteq \Omega \subset \mathbb {R}^3\) with \(\mathtt {n_{dof}}\) degrees of freedom. The parametrised geometry of the element is defined by a mapping from the parameter domain \(\Pi _e\subset \mathbb {R}^3\) to the physical domain \(\Omega _e\subset \mathbb {R}^3\). The parameter domain of a NEFEM element is defined as \(\Pi _e:=\Lambda _e\times [0,1]\), where \(\Lambda _e\) is the parameter domain of the surface element in \(\varvec{S}(\lambda ,\kappa )\). The mapping to define the geometry of a volumetric NEFEM element is given by
where \(\varvec{x}_4\) denotes the node interior to the domain. This mapping can be viewed as a particular case of the blending function method [39], where the internal edges of the tetrahedral element \(\Omega _e\) are assumed to be straight. More complex mappings can be designed to consider tetrahedral elements involving multiple faces or edges on the boundary. Further details have been introduced in [38].
In NEFEM, the shape functions, \(\{N_i(\varvec{x})\}_{i=1}^{\mathtt {n_{dof}}}\) and the derivatives are defined and evaluated at the integration points of each individual element, directly in the physical domain, and the elemental matrices and vectors are computed in an ad hoc manner for each element. Therefore, the incorporation of NEFEM elements into an existing solver can be easily achieved by creating a new element type that encloses the CAD data and is accompanied by tailored quadrature rules for NEFEM elements.
In the case that the face of \(\Omega _e\) on the B-rep CAD involving multiple NURBS surfaces \(\{\varvec{S}_i(\lambda _i,\kappa _i)\}\), the geometric mapping \(\varvec{\psi }\) is accordingly defined in a piecewise manner, i.e. \(\{\varvec{\psi }_i\}\). The parameter domains are also defined in a piecewise manner, and thus the element \(\Omega _e\) consists of three sub-tetrahedra which are mapped from the three prisms in the corresponding parameter domains. This mapping is illustrated in Fig. 4 for a tetrahedral element with a bottom face traversing three trimmed NURBS surfaces that are rendered in distinguished colours. Note that due to the particular design of \(\varvec{\psi }\) in (1), all top faces of the prisms are mapped to the same node \(\varvec{x}_4\).
Fig. 4
Illustration of the piecewise NEFEM geometry mappings for a tetrahedral element with one face defined on three NURBS surfaces \((\varvec{S}_1, \varvec{S}_2, \varvec{S}_3)\), where \(\varvec{S}_2\) is a trimmed surface. Note that the tetrahedral element comprises three pieces
×
2.3 Geometric entities facilitating subdivision of NEFEM elements
Standard FEM mesh generation algorithms are designed to generate surface elements to approximate the B-rep of CAD model, which is then discarded in subsequent volume meshing procedures. The NEFEM surface mesh generation framework proposed in [37] has introduced the necessary geometric entities for constructing NEFEM surface elements, which embedded the NURBS parametrisation into the definition. In this section, definitions of the geometric entities are introduced to to facilitate the creation of a NEFEM volume element which requires subdivision.
In practice, the piecewise definition of a NEFEM element face, as the bottom face shown in Fig. 4, is described by a subdivision based on the surfaces. This leads to a sub-mesh with each constituent cell sticking onto one of the involved surfaces. Note that the sub-mesh terminology is limited to the surface mesh. Using the sub-mesh as the underlying faces, the tetrahedral element can be further subdivided. Figure 5 illustrates the subdivision of the example tetrahedral element \(\Omega _e\) in Fig. 4 into three subdomains \(\Omega _{e,i}\), where \(i=1,2,3\) denotes the i-th prism in the corresponding parameter domain \(\Pi _{e,i}\). In general, a subdivided element is expressed as
where \(\mathtt {n_{sdo}}\) is the number of physical subdomains according to the embedded NURBS geometry. To maintain a consistent meshing strategy with simplified data structure storing the element information, each subdomain is further subdivided into several subcells in tetrahedral shape. For instance, as shown in Fig. 5, the subdomain \(\Omega _{e,2}\) is further divided into subcells \(\Omega _{e,2}^1\) and \(\Omega _{e,2}^2\). This is facilitated by subdividing the corresponding parameter domains, such as splitting \(\Pi _{e,2}\) into \(\Pi _{e,2}^1\) and \(\Pi _{e,2}^2\), as well as the parameter domains of the underlying NURBS surface, such as dividing \(\Lambda _{e,2}\) into \(\Lambda _{e,2}^1\) and \(\Lambda _{e,2}^2\). Eventually, the tetrahedral element \(\Omega _e\) is divided into six subcells in total and all in tetrahedron shape.
Fig. 5
Illustration of the subdivision for the tetrahedral element \(\Omega _e\) in Fig. 4
×
In this work, the geometric entities of NEFEM elements are defined at the subcell level. This is consistent with the NEFEM surface mesh, so that similar data structure can be used. Due to the prismatic structure of the geometric mapping (1), all edges of the subcell connecting the top node \(\varvec{x}_4\) are straight lines.
2.3.1 Geometric definition of subedges
For a non-self-intersecting NURBS surface \(\varvec{S}\), any of its boundary or trimming curves \(\varvec{C}(\lambda )\) can be projected back to its parametric space to obtain the parametric curve or p-curve\(\varvec{c}(\lambda )\in \mathbb {R}^2\), which is defined as
The p-curve may be further mapped to the physical space by the NURBS parametrisation \(\varvec{S}\), therefore the NURBS curve \(\varvec{C}(\lambda )\in \mathbb {R}^3\) is also referred to as the physical p-curve.
The edges of a subcell, firstly defined in the parametric space, are also known as the parametric subedges. In particular, considering the prismatic structure of the parameter domain, viz. \(\Pi _e=\Lambda _e\times [0,1]\), only three scenarios are considered for a parametric subedge:
1.
The subedge is interior to the underlying parametric space \(\Lambda _{e,i}\), i.e. with at most one vertex on a p-curve;
2.
The subedge is on the boundary or trimming p-curve of the parametric space, i.e. with both vertices on a p-curve;
3.
The subedge is a ridge of the prism.
The first type, parametric subedges with at most one vertex on a p-curve are defined, using a cubic description, namely
where \(\varvec{\lambda }_k = (\lambda _k, \kappa _k)\) for \(k=1,\ldots ,4\) are the four points in \(\Lambda _{e,i}\) that define the edge \(\Gamma _\lambda\), and \(N_k(\xi )\) are the four one-dimensional cubic Lagrange polynomials defined on the reference interval [0, 1].
The second type, a parametric subedge with both vertices on a p-curve, is simply defined by trimming the parent p-curve as
where \(\varvec{C}(\lambda ):[0,1]\rightarrow \Lambda _{e,i}\) is the parametrisation of the p-curve to which the edge \(\Gamma _\lambda\) belongs, and \([\lambda _1, \lambda _2]\) is the trimming interval for the subedge.
The last type, parametric subedges that are ridges of the prism, are defined the same way as the first type, but with the parametric space \(\Lambda _{e,i}\) replaced by the parameter domain of the prism \(\Pi _{e,i}\), and thus the defining points \(\varvec{\lambda }_k=(\lambda _k,\kappa _k,\vartheta _k)\in \Pi _{e,i}\). It is noted the internal points, namely \(\varvec{\lambda }_3\) and \(\varvec{\lambda }_4\), are restricted to the straight line defined by \(\varvec{\lambda }_1\) and \(\varvec{\lambda }_2\).
The parametric subedges are then mapped to the physical space by the geometric mapping \(\varvec{\psi }\), to obtain the physical subedges.
2.3.2 Geometric definition of subfaces
Similarly, the faces of a subcell are firstly defined in the parametric space as the parametric subfaces, and then mapped by \(\varvec{\psi }\) to obtain the physical subfaces. There are two types of parametric subfaces of interest:
1.
The subface is part of the underlying parametric space \(\Lambda _{e,i}\) for a boundary surface, namely \(\Lambda _{e,i}^j \subset \Lambda _{e,i}\);
2.
The subface is an extrusion face of the prismatic parameter domain \(\Pi _{e,i}\), namely \(\partial \Pi _{e,i}^j \subset \partial \Pi _{e,i}\).
The first type, a parametric subface \(\Lambda _{e,i}^j \subset \Lambda _{e,i}\) is defined using the mapping
where \(\varvec{\Psi }_1\) is the parametrisation of the first subedge, connecting nodes 1 and 2 of the subface, \(\varvec{\Psi }_2\) is the parametrisation of the second subedge, connecting nodes 2 and 3 of the subface and \(\varvec{\Psi }_3\) is the parametrisation of the third subedge, connecting nodes 1 and 3 of the subface. This mapping can be seen as a particular case of the blending function method [39]. The corresponding physical subfaces are simply defined as \(\partial \Omega _{e,i}^j = \varvec{S}( \Lambda _{e,i}^j )\).
The second type, a parametric subface \(\partial \Pi _{e,i}^j \subset \partial \Pi _{e,i}\) is defined using the mapping
where \(\varvec{\Psi }(\xi ) \in \Lambda _{e,i}\) is the parametrisation of the underlying subedge. Note that this type of parametric subface is in quadrilateral shape, but the mapped physical subface is in triangular shape.
2.3.3 Geometric supporting points
For NEFEM elements containing an edge or a face traversing multiple curves or surfaces, the intersection of the edge and a NURBS curve is inevitable. To account for the intersection between the edge and a geometric curve, an enhanced edge description is proposed in [37] by introducing geometric supporting points or GS-points. The set of GS-points associated to one element \(\Omega _e\) is given by the intersections of \(\partial \Omega _e\) with the physical p-curves plus the intersections between physical p-curves that are inside \(\Omega _e\). In this paper, a convention is introduced that all vertex nodes are rendered by black dots, while all GS-points are shown as green dots, as illustrated in Fig. 4 and 5.
It is worth emphasising that GS-points are introduced to formally define the geometry of a NEFEM element and its subcells. They do not induce any new degrees of freedom to a solver that adopts the NEFEM meshes. Similarly, subcells are only introduced due to the piecewise nature of a NEFEM surface element, but the only element that being used by the solver is \(\Omega _e\). Because of the geometry-defining feature of the GS-points, they will be used for devising piecewise quadratures for numerical integration over the faces traversing multiple surfaces and the associated elements. Further usage of the GS-points during the mesh generation process will be discussed in Sect. 3 and 4.
3 NEFEM surface mesh generation
In this section, the generation of NEFEM triangular surface mesh is briefly recalled. It is worth emphasising that it is assumed that the upstream CAD geometry is watertight. The NEFEM surface mesh is a prerequisite for generating the volume mesh, as it provides the boundary discretisation tailored for NEFEM solvers. The surface mesh is desired to satisfy the following requirements:
1.
The characteristic element size is dominated by the user-specified spacing, and it is not restricted by the size of geometric features in the CAD model;
2.
The surface mesh must not introduce geometric discretisation error as it encapsulates the NURBS definition of the geometry;
3.
The surface elements should pass visibility checks to enable the efficient creation of volume elements that avoids self-intersections.
The first two requirements have been addressed in previous work [37]. Note that the geometry entities introduced in Sect. 2.3 are compatible with the second requirement. The last requirement is posed here to facilitate the volume mesh generation, and it will be further detailed in Sect. 3.2.
The NEFEM surface mesh generation starts from an initial surface mesh obtained by a standard mesh generator with a user-defined mesh size. Despite that this initial mesh is likely to contain numerous elements violating the user-specified spacing, it is required to be watertight and free of self-intersections. A remeshing is then performed on the initial surface mesh, with a dedicated process to allow creating elements traversing multiple surfaces around geometric features, so that the element sizes become compliant with the user specification.
During the surface mesh generation, GS-points are typically created using operations such as edge collapse, edge split or edge flip. Besides, the GS-points can slide along the parent intersection curve, so that the element could achieve a better quality.
Local mesh refinement can be performed by specifying a spacing function, as done with traditional mesh generators. Examples in [37] show the ability to produce locally refined NEFEM surface meshes.
3.1 The sub-mesh
As detailed in Sect. 2.3, a sub-mesh is required for the definition of a surface element or a face of a volume element that traverses multiple surfaces. The sub-mesh, together with the GS-points, is used for quadrature as it is a subdivision of the traversing surface element which naturally forms the integration cells. The sub-mesh may also be used to represent the physical interface, such as the interface of different materials, inside a NEFEM element [40]. It is worth noting that an integration cell cannot traverse surfaces, and an element traversing multiple surfaces must contain at least two integration cells.
In addition, the sub-mesh also plays an important role during the NEFEM mesh generation. It is well-known that operations such as edge split and edge flip are commonly involved in a mesh generation process. Dissimilar to the operations in standard mesh generators, the sub-mesh is required during the NEFEM mesh generation because the operations may involve multiple surfaces and their intersection curves. For instance, when flipping an edge between two NURBS-enhanced triangular elements, the subdivision of both elements is necessary for searching the new diagonal traversing multiple surfaces. In this procedure, the GS-points also play a role as the nodes for the sub-mesh of each element. Detailed discussion on this procedure can be found in [37].
A typical example for the sub-mesh of a NEFEM surface element is presented in Fig. 6. The triangular surface element is defined with three nodes \(\varvec{x}_1\), \(\varvec{x}_2\) and \(\varvec{x}_3\). The two edges \(E(\varvec{x}_1, \varvec{x}_2)\) and \(E(\varvec{x}_1, \varvec{x}_3)\) are traversing a NURBS curve rendered in blue, inducing two GS-points, \(\varvec{g}_1\) and \(\varvec{g}_2\), to register the edge-curve intersections. The two GS-points and three nodes have defined the vertices for three integration cells that belong to two different surfaces rendered in distinguished colours.
Fig. 6
Sub-mesh of a typical NEFEM surface element. Integration cells belong to different surfaces are filled with distinguishing colours. The intersection curve is coloured in blue
×
3.2 Additional validity check
During the NEFEM surface mesh generation, validity checks have been introduced as it is detailed in [37]. To facilitate the creation of volume elements in the next stage, additional validity checks must be appended to the generation process of NEFEM surface elements.
Firstly, an additional check is performed prior to collapsing an edge of a NEFEM surface element that traverses multiple intersection curves or surfaces. This check is crucial to minimise the cost of future visibility checks in Sect. 4.3 to avoid possible self-intersection in the corresponding NEFEM volume element. Secondly, a intersection check between a surface element edge and a NURBS curve is performed after having created or updated the NEFEM elements. This check is dedicated to avoiding the surface element edge penetrating surfaces, causing a self-intersecting mesh. In addition to this check, it will also try to fix the self-intersection by curving the subedges.
The first check is performed when trying to create a new NURBS-enhanced edge that comprises several subedges. This new edge is traversing multiple surfaces that are connected with only \(C^0\) continuity. In other words, the normals to the surfaces along the edge do not transit smoothly, and sharp dihedral angles will occur at a node or a GS-point, causing difficulties for future generation of a valid volume element. To tackle this, the angles between normals to the surfaces at each node and each GS-point are computed and checked, as detailed in Algorithm 1. As illustrated in Fig. 7, a local feature appearing to be a U-shaped channel involves a set of five surfaces \(\mathcal {S}:=\{\varvec{S}_i\}\) for \(i=1,2,\ldots ,5\), where all dihedral angles between adjacent surfaces are \(90^\circ\). When trying to collapse a short edge inside the channel, all related surface normals at the involved nodes of the sub-mesh are compared with the normal at the target node. The criterion for the validity check is chosen as
where \(\varvec{n}_i\) and \(\varvec{n}_j\) are the normals to surfaces \(\varvec{S}_i\) and \(\varvec{S}_j\), respectively. All the normals are computed locally at the corresponding nodes of the sub-mesh.
Algorithm 1
Validity check for collapsing a NEFEM surface element edge.
×
Figure 7b presents two examples when testing possible new NURBS-enhanced edges before the edge collapse. The first candidate edge, \(E(\varvec{x}_5,\varvec{x}_7)\), is obtained from collapsing node \(\varvec{x}_6\) to \(\varvec{x}_7\), and the normal \(\varvec{n}_3\) at the target node \(\varvec{x}_7\) is compared with all normals involved in this collapse, such as \(\varvec{n}_4\) at GS-point \(\varvec{g}_2\) and \(\varvec{n}_5\) at node \(\varvec{g}_5\). This case will pass the validity check. A second option involves the candidate NURBS-enhanced edge \(E(\varvec{x}_1,\varvec{x}_4)\), the normal \(\varvec{n}_4\) at target node \(\varvec{x}_4\) is opposite to \(\varvec{n}_2\) at \(\varvec{x}_1\). Therefore, the second configuration will fail the validity check and thus the collapse of edge \(E(\varvec{x}_2,\varvec{x}_4)\) will be prevented.
Fig. 7
Illustration of the validity check at a U-channel feature. a Two edge collapsing scenarios: from \(\varvec{x}_6\) to \(\varvec{x}_7\), and from \(\varvec{x}_2\) to \(\varvec{x}_4\). b Proposed new NURBS-enhanced edges, showing selected normals for validity checks
×
In the rare case that a subedge intersects with an intersection curve and penetrates a neighbour surface, as shown in Fig. 8a, the second validity check will detect and fix this by curving the subedge. The intersection between edge \(E(\varvec{x}_a,\varvec{x}_b)\) and the intersection curve of surface \(\varvec{S}_1\) and \(\varvec{S}_3\) can easily be detected by seeding a number of sampling points along the intersection curve. This type of self-intersection occurs because surface \(\varvec{S}_3\) is trimmed by a circle. The trimming circle is the image of a circle in the parameter space of the NURBS surface \(\varvec{S}_3(\lambda ,\kappa )\), as shown in Fig. 8c. A simple fix to this problem is performed by replacing the straight edge \(E(\varvec{x}_a,\varvec{x}_b)\) in the parametric space by a cubic curve, as shown in Fig. 8d. The fixed scenario after the second validity check is shown in Fig. 8b. Note that this check and fix is performed at the subedge level.
Fig. 8
Illustration of the self-intersection fix at the bottom of a cylindric feature. a Edge \(E(\varvec{x}_a,\varvec{x}_b)\) intersecting with an intersection curve at the red arrow. b Fixed the intersection by curving \(E(\varvec{x}_a,\varvec{x}_b)\) within surface \(\varvec{S}_3\). c The parameter space of surface \(\varvec{S}_3\) featuring intersection with the trimming circle. d The cubic curve to fix the intersection
×
4 NEFEM volume mesh generation
This section presents the main purpose of this paper on the generation of NEFEM volume meshes comprised by tetrahedral elements. According to the geometric entity that is part of the B-rep, the tetrahedral element that is of interest falls into one of the two types:
An element with at least one face located on the boundary.
An element with at least one edge but with no faces located on the boundary.
An element of each type is further classified in terms of the number of intersection curves and surfaces of the CAD model that it involves. Elements with faces or edges not traversing multiple surfaces are grown using the same techniques available in standard mesh generators. A flag is assigned to each tetrahedral element for the purpose of accounting for the NURBS B-rep by the solvers, as special care must be taken for elements with the traversing faces or edges.
4.1 Volume meshing strategy
The volume mesh generation starts from a valid NEFEM surface mesh which already encapsulates the GS-points as well as the sub-mesh for traversing surface elements.
It is appreciated that the NEFEM elements, whether or not traversing multiple curves or surfaces, are only required at the boundary. Therefore, the strategy for the generation of a NEFEM volume mesh is to first grow a layer of NURBS-enhanced volume elements that covers the featured surface. Next, the exterior facets of the layer of grown volume elements are extracted to form a new surface mesh. This extracted surface mesh will only contain standard triangle elements, so that it can be sent to a standard volume mesh generator to obtain the volume elements of the remaining part of the domain. Finally, the NEFEM volume mesh is obtained by stitching the NEFEM element layer and the standard interior elements. In this work, the FLITE mesh generator [11] is used to create standard meshes. The overall procedure is illustrated in Fig. 9.
Fig. 9
NEFEM volume mesh generation procedure
×
Remark 1
The stitching of boundary layer mesh and interior mesh, as discussed in [41, 42], is an established procedure in standard mesh generation. The presented work is dedicated to generating the geometric-persistent mesh layer that is valid for NEFEM solvers. As the interior mesh is generated after the boundary layer mesh, the stitching of the two meshes is naturally done with merely renumbering the corresponding nodes. Besides, a flag is associated to each element to indicate whether it is a NEFEM element or a standard element. This flag will be used to distinguish the two classes of element by the NEFEM solver.
Remark 2
In the case of a bounding box is required to generate the volume mesh, the bounding box is not considered for generating the NEFEM volume element layer due to its simplicity, but will be taken into account for the standard volume mesh generation for the interior elements.
4.2 Growing volume elements on the boundary
To guide the growth of volume elements into the three-dimensional domain, the normal vectors are firstly computed based on the NEFEM surface mesh. Unlike standard triangle elements, a NEFEM triangle element can have a non-unique definition of its normal as it may traverse multiple surfaces. Thus, it is not trivial to evaluate the normal to a face or its edges.
As required in Sect. 3.1, an integration cell is associated to a unique parent surface. Therefore, for each integration cell, the normal vector is unique to that parent surface, and a smoothed normal can be obtained at each node of the sub-mesh that may be a node of the mesh or a GS-point. This also implies that a sequence of normal vectors can be extracted along an element edge as it traverses multiple curves or surfaces. Several smoothing options have been tested, such as surface-based averaging, weighted averaging and Laplacian. It is found that the surface-based averaging provides satisfactory normal vectors in the tested geometries.
Several possible choices of the normal to guide the growth of volume element based on a typical NEFEM surface element are illustrated in Fig. 10. The surface element with vertices \(\{\varvec{x}_a,\varvec{x}_b,\varvec{x}_c\}\) traverses surfaces \(\{\varvec{S}_1,\varvec{S}_4,\varvec{S}_7\}\). The smoothed normal at GS-points \(\varvec{g}_1\) and \(\varvec{g}_2\) are shown in Fig. 10a, the naive normal evaluated using only the vertices is plotted in Fig. 10b at the centroid of a planar triangle determined by the three vertices. In contrast, Fig. 10c shows the four normal associated to each integration cell depicted at the corresponding centroid.
Fig. 10
Choices of normal vectors to grow a tetrahedral element
×
The two major process used to grow volume elements based on the surface mesh are edge-based and face-based. The first process is to grow a pair of tetrahedra based on an edge of the surface mesh. The second process is to grow a tetrahedron based on a surface element. For both processes, the key is to find a suitable guiding normal.
The first attempt involves a loop through all edges in the surface mesh, and the check of dihedral angle \(\theta\) between faces connected by the edge. For an edge between two surface elements, four vertices are involved in the process, including the vertices defining the edge, and other two vertices opposing each other. The two triangular faces may be collapsed and the two opposing vertices be merged when \(\theta\) is small. Otherwise a tetrahedron will be created by linking the two opposing vertices, creating a new edge to form the tetrahedron. In most cases, it is necessary to find a normal on the edge to create a top node above the edge and try to link it with all vertices and GS-points of the two triangles sharing the edge. During this linking process, the validity checks are performed: a self-intersection check via evaluating the volume of the newly formed subcell tetrahedra, a general edge-face intersection check between the new edges and existing faces as well as between the new faces and existing edges. The validity checks are detailed in Sect. 4.3. If a self-intersection is identified, the position of the top vertex is tuned by sliding along the normal vector as well as sliding the base point of the normal vector along the edge to find another suitable location that is free from self-intersection. The procedure is detailed in Algorithm 2. After having grown a pair of tetrahedra, the connectivity of the volume mesh and the surface mesh are updated by removing the closed faces and edges. The process is repeated until all edges are closed or leaving few edges cannot be closed.
Algorithm 2
Growing volume elements based on an edge.
×
Figure 11 illustrates a typical scenario for volume element growth. Three surface elements are traversing surfaces \(\varvec{S}_1\) and \(\varvec{S}_2\) that are rendered in red and yellow. Note that the connection between \(\varvec{S}_1\) and \(\varvec{S}_2\) is of \(C^0\) continuity, and exhibiting a sharp dihedral angle. During an edge-based loop, a suitable normal vector \(\varvec{n}_{g_7}\) is found at GS-point \(\varvec{g}_7\) of edge \(E(\varvec{x}_2, \varvec{x}_4)\), as depicted by Fig. 11a. Two tetrahedral elements, coloured in blue and green, are grown with the guidance of \(\varvec{n}_{g_7}\), sharing the same new vertex \(\varvec{x}_6\), as shown in Fig. 11b. Other tetrahedra are grown during this edge-based loop, including the one with a new vertex \(\varvec{x}_7\). A second edge loop will be performed to close the edges between two grown tetrahedra where the dihedral angles between element faces are checked. In the scenario presented in Fig. 11c, a new tetrahedron will be created by simply linking the existing vertices \(\varvec{x}_6\) and \(\varvec{x}_7\).
Fig. 11
Typical scenario to grow tetrahedral elements
×
A second attempt is another loop through the unclosed surface elements to grow a tetrahedron based on a surface element. The normal vector is evaluated at the centroid of the surface element, and the new vertex is proposed above the surface element. The new vertex might be substituted by an existing node nearby when the distance is sufficiently small. The normal vector is then used to link the new vertex with all vertices and GS-points of the surface element. The validity checks are performed in the same way as the edge-based process. The procedure is detailed in Algorithm 3.
Algorithm 3
Growing volume elements based on a face.
×
As a tetrahedral element is grown based on a surface element, such as shown in Fig. 5, it inherits the subdivision of the surface element in the way that three sub-tetrahedra are grown to form the integration cells for computing quadrature over the NURBS-enhanced tetrahedron. This can also be considered as a straightforward subdivision of the tetrahedron element with the guidance of the sub-mesh on a traversing face, as illustrated in Fig. 12.
Fig. 12
Integration cells of a typical NEFEM volume element grown from the sub-mesh of the surface element in Fig. 6
×
It is worth noting that the tetrahedron grown from a surface element is not necessarily a NEFEM element. This is because the surface element may not traverse multiple surfaces, and the boundary surface is planar, thus the tetrahedron is not required to be a NEFEM element. In this case, the tetrahedron is grown as a standard tetrahedron with the subcell being itself, and is still included in the NEFEM volume layer. The validity checks are performed in the same way as the introduced process.
4.3 Validity checks for volume elements
Two major validity checks are performed during the growth of volume elements. The first check, also known as the visibility check [36], is to ensure that the new volume element is free from self-intersection. The second check is to ensure that the new volume element is free from intersection with the existing mesh entities. This section will focus on the first check only, as the second check is similar to the validity checks in established standard mesh generation process.
Taking the creation process of triangle to tetrahedron for example, the objective is to ensure the top vertex of the tetrahedron is visible to any point in the base sub-mesh. When the visibility requirement is met, all ridges of the tetrahedron, excluding the ones corresponding to edges of the base triangle, will be straight, and this enables an efficient subdivision of the volume element into volumetric integration cells.
It is worth noting that the visibility requirement is not mandatory for a valid NEFEM element, a self-intersecting element can be fixed by curving the interior edges to maintain the validity. In this case, the interior physical subedges can be curved cubically using the isoparametric mapping of (4) in Sect. 2.3.1. However, the strategy presented here tries to maintain the maximum number of interior edges as straight with the objective to accelerate the solver.
At some convex geometric features, special care has to be taken to ensure the visibility from the top node to the bottom sub-nodes. The feature of a sharp step in Fig. 13 presents a scenario in which a violation occurs, resulting in a self-intersecting NEFEM volume element.
Fig. 13
Illustration of visibility issue for a NEFEM volume element and its base surface element at a step feature
×
The volume element shown in Fig. 13a is based on the surface element in Fig. 13c, which traverses surfaces \(\{\varvec{S}_1,\varvec{S}_2,\varvec{S}_3\}\) as well as intersection curves \(\{\varvec{C}_1,\varvec{C}_2\}\), and four GS-points have been included. It can be seen that the dihedral angles on the intersection curves are considerably sharp and include both convex and concave instances. Besides, surface \(\varvec{S}_2\) appears to be a narrow strip folding between surfaces \(\varvec{S}_1\) and \(\varvec{S}_3\). A surface integration cell with nodes \(\{\varvec{g}_1,\varvec{x}_2,\varvec{g}_2\}\), as shown in Fig. 13d, forms the bottom face of the volume integration cell illustrated in Fig. 13b. As partially highlighted by red dashed lines, the edges \(E(\varvec{x}_4, \varvec{g}_1)\) and \(E(\varvec{x}_4, \varvec{g}_2)\) penetrate both \(\varvec{S}_1\) and \(\varvec{S}_2\). In other words, the top node \(\varvec{x}_4\) lacks visibility to the bottom nodes of the sub-mesh \(\varvec{g}_1\) and \(\varvec{g}_2\), and results in a self-intersecting subdivision for the volume element. This self-intersecting volume element can be fixed by curving the edges \(E(\varvec{x}_4,\varvec{g}_1)\) and \(E(\varvec{x}_4,\varvec{g}_2)\), and potentially \(E(\varvec{x}_4,\varvec{x}_2)\) and \(E(\varvec{x}_4,\varvec{x}_3)\).
4.4 Extension to high-order
For high-order approximations, more nodes are required to be added to the edges, faces and interior of NEFEM volume elements. It is worth emphasising first that, due to the non-isoparametric nature of NEFEM elements, the location of the high-order nodes are not linked to any geometric mapping and will only be used to define high-order polynomial basis within the element. Therefore, the high-order nodes can be added to the NEFEM elements without any modification to the NEFEM mesh. The only requirement is that the high-order nodes must be located on the edges or faces or inside of the NEFEM element to achieve optimal convergence [25]. It is also appreciated the high-order nodes are not created during the volume mesh generation, but are appended to the NEFEM mesh after the meshing process.
The high-order nodes on the boundary surfaces are initially created during the surface meshing, as it is detailed in [37]. For volume elements, a similar strategy is used to add high-order nodes to the edges and faces. However, the interior nodes for elements with interpolation polynomial order \(p>3\) must satisfy the requirement that they cannot be located outside the volume, thus a different placement strategy is used. This strategy is based on a elasticity analogy, in which the interior nodes are initially mapped from the distribution in a standard reference tetrahedral element, and then the boundary face are deformed to adapt the NURBS B-rep. During the deformation, the vertex nodes are fixed and Dirichlet boundary conditions are applied to the face nodes on the B-rep surfaces, so the interior nodes are moved accordingly by solving a linear elasticity problem. The details of this strategy have been presented in [43], and similar works such as [44, 45]. To improve the efficiency, in this work, the elastic deformations are limited to a number of user-defined layers of volume elements surrounding the boundary. In Fig. 14, an example is presented to demonstrate the elastic deformation of the NEFEM volume elements. It can be seen in Fig. 14b a few traversing NEFEM elements have deformed when the elevation of polynomial order to \(p=6\), and the interior volume element above has also deformed accordingly.
Fig. 14
Deforming the NEFEM elements (rendered in green) to ensure the validity after adding high-order nodes
×
5 Examples
This section presents some examples to demonstrate the NEFEM volume mesh generation strategy detailed in the previous section. The examples are selected to cover a wide range of geometric features, including sharp dihedral angles, sliver surfaces, steps, etc. In particular, validation of the generated NEFEM meshes for the first example, as analytical surface area and volume are available, is also presented.
5.1 Flat plate with two cylinders
In the initial illustration, we examine a flat plate featuring two cylinders, one flat with a substantial radius and the other slender with a small radius, as depicted in Fig. 15.
Fig. 15
NURBS surfaces in the CAD model of a flat plate with two cylinders
×
Detailed geometric specifications are outlined in Table 1.
Table 1
Geometric data of the flat plate with cylinders model
Number of NURBS Surfaces
12
Number of NURBS Curves
24
Minimum curve length
0.019
Maximum curve length
2.000
Figure 16 showcases the original FEM mesh, which deviates from the user-defined spacing.
Fig. 16
FEM surface mesh of the flat plate intersected by two cylinders, showing elements not complying with the user-defined spacing
×
Subsequently, employing the methodology proposed in [37], the NEFEM surface mesh is generated, maintaining a consistent mesh size irrespective of plate thickness, cylinder heights, or diameters, as demonstrated in Fig. 17a.
Fig. 17
NEFEM meshing process for the flat plate intersected by two cylinders
×
Utilising this boundary discretisation and the specified element size, the first layer of NEFEM volume elements is crafted following the approach delineated in Sect. 4, as shown in Fig. 17b. Notably, volume elements spanning surfaces are highlighted in green. The interior volume elements are crafted based on the extracted exterior faces of the NEFEM volume layer and the surface mesh, creating a standard triangulation through the Delaunay method for tetrahedral mesh. This model yields 121 tetrahedra in the NEFEM volume layer and \(50\,815\) interior volume elements. Figure 17c, visually underscores the significantly reduced number of NEFEM volume elements compared to standard elements, minimising the computational impact on the solver. This enhancement is particularly crucial for transient simulations utilising explicit time marching. Table 2illustrates, the minimum element edge length normalised with the user-specified spacing for the NEFEM mesh has increased by over tenfold.
Table 2
Normalised edge lengths for the flat plate intersected by two cylinders
Minimum edge length in FEM mesh
0.045
Minimum edge length in NEFEM mesh
0.458
Increase factor
10.18
In the context of this specific example, where analytical determination of the exact surface area and volume is feasible, the NEFEM elements, embedded with exact NURBS geometry information, allow for validation. This validation involves computing the relative error of surface area and volume, utilising the evaluated exact area and volume as reference. Employing Gauss-Legendre quadrature rules with varying numbers of quadrature points, Fig. 18 portrays a diminishing trend in relative errors to machine precision with increasing quadrature points (\(\mathtt {n_{GQ}}\)) in each dimension. This dual-validation approach not only confirms the integrity of the mesh but also underscores the advantages introduced by NEFEM in mitigating geometric representation errors. Notably, the quadratures are executed on each subcell for NEFEM elements, ensuring results are independent of the interpolation polynomial order.
Fig. 18
Validation of the meshes for the model of a flat plate with two cylinders. The relative errors decrease to machine precision with increasing quadrature points
×
5.2 Hollow fairing for a turbine engine
The second illustrative case, as introduced in Section 2, focuses on generating the NEFEM volume mesh for a turbine engine fairing utilising a uniform spacing function. The CAD model, shown in Fig. 1a, incorporates four surfaces representing the outer and inner shells, along with six slender surfaces denoting the leading and trailing edges that interconnect these two shells. The model’s characteristic dimensions are detailed in Table 3, underscoring substantial variations in the lengths of curves within the CAD model. Notably, the longest curve is approximately 54 times larger than the shortest one, introducing a significant range in dimensions.
Fig. 19
NEFEM meshing process for the hollow fairing of a turbine engine
Table 3
Geometric data of the hollow fairing model
Number of NURBS Surfaces
10
Number of NURBS Curves
22
Minimum curve length
15.62
Maximum curve length
850.74
×
Crucially, the user-specified spacing in this scenario, denoted as \(h(\varvec{x})=100\), necessitates elements with a representative length over six times larger than the shortest curve in the CAD model. Consequently, the initial FEM mesh exhibits several undersized elements that deviate markedly from the desired spacing, as portrayed in Fig. 1b. The NEFEM mesh effectively addresses this issue by eliminating small elements on both leading and trailing edges. It achieves an impressive 9.64-fold increase in the minimum edge length, as outlined in Table 4. This enhancement translates to a comparable acceleration factor for explicit time integration, achievable by utilising a considerably larger time step.
The traversing volume elements are visually presented in Fig. 19, highlighted in green with subtle transparency to facilitate observation of the curved boundary. For clarity, a specific NEFEM tetrahedron is isolated and presented with zoom-in views in Fig. 19c and 19d. From Fig. 19c, a distinct sharp ridge within a face is evident, originating from the sharp dihedral between the two surfaces the element traverses. It is crucial to emphasise that this ridge is embedded within the element and does not constitute an edge of the element, and no nodes are associated with it.
Table 4
Normalised edge lengths for the hollow fairing model
Minimum edge length in FEM mesh
0.076
Minimum edge length in NEFEM mesh
0.734
Increase factor
9.64
5.3 Wing with a blunt trailing edge
This illustration showcases the creation of NEFEM meshes for a wing featuring a blunt trailing edge, emphasising the capability to accommodate user-specified non-uniform mesh spacing. The NURBS surfaces defining the wing are visually represented in Fig. 20 and comprehensive geometric data is concisely summarised in Table 5. To encompass the entire wing within a CFD-oriented meshing strategy, a substantial bounding box is appended to the CAD model, ensuring ample coverage.
Fig. 20
NURBS surfaces in the CAD model of a wing with blunt trailing edge
Table 5
Geometric data of the wing model
Number of NURBS Surfaces
5
Number of NURBS Curves
9
Minimum curve length
7.27
Maximum curve length
1 381.12
×
Notably, a non-uniform mesh spacing is implemented using two line sources at both the leading and trailing edges, employing a stretching ratio of 5. Despite the refinement introduced by these line sources, the prescribed mesh size remains larger than the length of the shortest curve. The ensuing FEM mesh, shown in Fig. 21, reveals an abundance of small elements at the blunt trailing edge and wing tip due to the constraints of the thin thickness.
Fig. 21
FEM surface mesh of the wing, showing elements not complying with the user-defined spacing
×
Subsequently, Fig. 22a illustrates how the NEFEM surface mesh effectively eliminates these small elements. Based on this surface mesh, Fig. 22b shows the creation of traversing NEFEM volume elements at the blunt trailing edge, complemented by the interior volume mesh presented in 22c. Evidently, the number of traversing elements, totalling 179, is notably fewer compared to the staggering \(1\,458\,208\) interior volume elements. This signifies that minimal additional computational costs will be incurred during integration over the NEFEM elements. Table 6 provides further insight, indicating that the normalised minimum edge length in the NEFEM mesh exceeds 7 times that of the FEM mesh. This reaffirms that the NEFEM element constitutes only a negligible portion of the overall mesh but significantly enhances the minimum element size, facilitating large time-stepping in explicit solvers.
Fig. 22
NEFEM mesh process for the wing with a blunt trailing edge
Table 6
Normalised edge lengths for the wing
Minimum edge length in FEM mesh
0.06
Minimum edge length in NEFEM mesh
0.46
Increase factor
7.67
×
5.4 Falcon aircraft
In this example, we consider a comprehensive aircraft model to underscore the adept handling of intricate geometries. The CAD geometry exhibits an array of complex features, including notably short curves and petite surfaces, particularly evident at the wing tips. The wing’s characteristic thickness, approximately 0.2, poses a specific challenge during surface mesh generation, given its brevity compared to the minimum curve length.
Figure 23 elucidates the NURBS surfaces of the CAD model, while Table 7 succinctly summarises the geometric data, revealing a substantial ratio between maximum and minimum curve lengths, approximately 28.68. Consequently, the FEM mesh, depicted in Fig. 24, anticipates the emergence of small elements violating the user-defined spacing. Despite all surface elements being NURBS-enhanced, originating from the discretisation of the intricate B-rep, only a sparse number of traversing elements are necessary to enhance the minimal element size.
Fig. 23
NURBS surfaces in the CAD model of the Falcon aircraft
Table 7
Geometric data of the Falcon model
Number of NURBS Surfaces
48
Number of NURBS Curves
100
Minimum curve length
0.37
Maximum curve length
10.61
×
Fig. 24
FEM surface mesh of the Falcon, showing elements not complying with the user-defined spacing
×
The first layer of NEFEM volume elements, strategically concentrating on the building of traversing volume elements, comprises a modest number of tetrahedral elements, as showcased in Fig. 25b, c. The total count of tetrahedral elements in the volume mesh stands at \(229\,693\), with 28 NEFEM tetrahedra involving multiple definitions during integration. Table 8 presents a noteworthy enhancement, with the normalised minimum edge length in the NEFEM mesh surpassing that of the FEM mesh by 4.5 times.
Fig. 25
NEFEM mesh process for the Falcon aircraft
Table 8
Normalised edge lengths for the Falcon model
Minimum edge length in FEM mesh
0.06
Minimum edge length in NEFEM mesh
0.27
Increase factor
4.50
×
It is imperative to highlight the significance of this improvement, as even a small subset of elements exhibiting spacing well below the user-defined threshold can render the solution of a transient problem with explicit time marching unfeasible. Consequently, the capability to overcome this restriction bears substantial implications for the solver.
5.5 Mechanical component
This specific case is designed to showcase the adeptness of the proposed methodology in generating a volume mesh within a singular enclosed domain. The focal point is a knurled knob, depicted in Fig. 26, where surfaces are delineated in distinct colours and delicately transparent to afford visibility into the internal structure. The model encompasses several intricate features, including small curved surfaces, diminutive steps or fillets, and curved holes. Notably, the length of the longest curve exceeds that of the shortest one by a factor of approximately 40.84, as succinctly detailed in Table 9.
Table 9
Geometric data of the mechanical component model
Number of NURBS Surfaces
103
Number of NURBS Curves
240
Minimum curve length
1.23
Maximum curve length
50.23
Fig. 26
NURBS surfaces in the CAD model of the knurled knob
×
Figure 27, the initial FEM surface mesh is presented, revealing numerous small elements constrained by the intricate features.
Fig. 27
FEM surface mesh of the knurled knob, showing elements not complying with the user-defined spacing
×
In stark contrast, the NEFEM meshes, shown in Fig. 28, effectively eliminate these diminutive elements, resulting in a notable 5.82-fold increase in the minimum edge length, meticulously documented in Table 10. Traversing volume elements, depicted in green, are discernible in Fig. 28b offering a clear view through the slight transparency applied to the NEFEM surface mesh. The clipped NEFEM volume mesh, inclusive of interior volume elements, is illustrated in Fig. 28c. For a more detailed examination, an alternative perspective of Fig. 28b is selected and presented with zoom-in views Fig. 29.
Fig. 28
NEFEM mesh process for the knurled knob
Fig. 29
Zoomed view of the clipped NEFEM surface mesh with traversing volume elements
Table 10
Normalised edge lengths for the mechanical component model
Minimum edge length in FEM mesh
0.17
Minimum edge length in NEFEM mesh
0.99
Increase factor
5.82
×
×
Once again, this example underscores the consistent traits of the NEFEM volume mesh, including geometric preservation and the limited number of traversing elements.
5.6 Electromagnetic simulation using NEFEM meshes
In this example, a numerical example is presented to show the validity of NEFEM volume meshes for performing simulations. A NEFEM volume mesh around a plate with a short thick cylinder on the top surface is generated using the strategy proposed in this paper. The mesh is shown in Fig. 30.
Fig. 30
NEFEM volume mesh for the electromagnetic simulation
×
A simulation of the scattering of a plane electromagnetic wave is considered using a high-order discontinuous Galerkin method [46] equipped with the NEFEM formulation. The simulation is performed in the time domain and the quantity of interest is the so-called radar cross section (RCS) [47].
Figure 31 shows the computed RCS results for vertical and horizontal polarisations and for an increasing degree
of the approximation used for the solution.
Fig. 31
RCS for an increasing order of approximation of the solution
×
The results show the validity of the NEFEM meshes and it shows that the results with quadratic and cubic approximation of the solution are almost identical. In fact, even when using a linear approximation of the solution, it can be observed that the exact boundary representation enables to compute an accurate RCS.
6 Concluding remarks
In this work, a mesh generation framework dedicated to creating volume meshes tailored for NEFEM has been presented for the first time. The technique is capable of generating volume meshes which preserves the exact boundary representation provided by the NURBS parametrisation from the CAD model. In the NEFEM mesh, the geometric definition at the featured boundary is encapsulated in NEFEM elements that may traverse multiple curves or surfaces. As a result, the small geometric features present in the CAD model no longer restrict the element size in a NEFEM mesh. This has completely removed the need for the time-consuming de-featuring process on complex CAD models and, at the same time, has eliminated the geometric representation error introduced by the de-featuring process or by traditional mesh generators.
Given a CAD geometry in the form of B-rep, the proposed strategy begins with generating an initial FEM surface mesh using a standard mesh generator. Then, during the NEFEM surface mesh generation guided by the user-defined spacing, elements near the undersized geometric features are remeshed, and the new elements are allowed to traverse multiple surfaces, provided they pass the dedicated validity check. This process results in a NEFEM surface mesh customised for the next volume mesh generation stage. Various normal vectors are defined and computed on the NEFEM surface elements to guide the growth of volume elements. During the growth of each volume element, self-intersection checks are performed to ensure the element validity. The volume elements grown from traversing surface elements form the first layer of NEFEM volume elements, including a few traversing elements, whose exterior faces are extracted and merged with the NEFEM surface mesh, so that a standard volume mesh generator can be used to obtain the remaining of the interior volume mesh. The final NEFEM volume mesh is obtained by combining the NEFEM volume layer and the interior volume mesh.
Examples have been presented to demonstrate the applicability and potential of the proposed meshing framework. For completeness, the CAD model, the initial FEM surface mesh, the NEFEM surface and volume meshes are shown. The examples involve geometries where the CAD model contains very small edges, such as the blunt trailing edges of the hollow fairing and the wing. The resulting NEFEM meshes demonstrate a spacing closely matching the user-specification, even when the CAD model contains small features. The extension to high-order interpolations can be easily achieved by adding high-order nodes to the NEFEM elements and deforming the elements via an elasticity analogy, which is independent on the definition of geometric mapping for the NURBS-enhanced elements.
In the examples shown, all elements with at least one face or edge on the boundary are treated as NEFEM elements. However, for problems with quantities of interest in specific parts of the domain, it is possible for the user to specify the surfaces of the CAD model that will be discretised with NEFEM elements and keep a traditional isoparametric description near boundaries away from the region of interest.
Future work will involve devising a new definition of the element quality and its improvement strategies. Ultimately, it is expected to integrate the generated mesh to existing FEM solvers with an API for further applications.
Acknowledgements
The authors gratefully acknowledge the financial support of the EPSRC project A feature-independent mesh generation and integrated solution framework with reference EP/T009071/1.
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.