Next Article in Journal
Mathematical Investigation of the Infection Dynamics of COVID-19 Using the Fractional Differential Quadrature Method
Next Article in Special Issue
Buckling Assessment in the Dynamics Mechanisms, Stewart Platform Case Study: In the Context of Loads and Joints, Deflection Positions Gradient
Previous Article in Journal
Numerical Methodology to Reduce the Drag and Control Flow around a Cam-Shaped Cylinder Integrated with Backward Splitter Plate
Previous Article in Special Issue
Computational Fracture Modeling for Effects of Healed Crack Length and Interfacial Cohesive Properties in Self-Healing Concrete Using XFEM and Cohesive Surface Technique
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

A General Procedure to Formulate 3D Elements for Finite Element Applications

1
Department of Mechanical Engineering, The University of Texas at San Antonio, San Antonio, TX 78249, USA
2
School of Civil and Environmental Engineering, The University of Texas at San Antonio, San Antonio, TX 78249, USA
*
Author to whom correspondence should be addressed.
Computation 2023, 11(10), 197; https://doi.org/10.3390/computation11100197
Submission received: 8 August 2023 / Revised: 12 September 2023 / Accepted: 16 September 2023 / Published: 3 October 2023
(This article belongs to the Special Issue Application of Finite Element Methods)

Abstract

:
This paper presents a general procedure to formulate and implement 3D elements of arbitrary order in meshes with multiple element types. This procedure includes obtaining shape functions and integration quadrature and establishing an approach for checking the generated element’s compatibility with adjacent elements’ surfaces. This procedure was implemented in Matlab, using its symbolic and graphics toolbox, and complied as a GUI interface named ShapeGen3D to provide finite element users with a tool to tailor elements according to their analysis needs. ShapeGen3D also outputs files with the element formulation needed to enable users to implement the generated elements in other programming languages or through user elements in commercial finite element software. Currently, finite element (FE) users are limited to employing element formulation available in the literature, commercial software, or existing element libraries. Thus, the developed procedure implemented in ShapeGen3D offers FEM users the possibility to employ elements beyond those readily available. The procedure was tested by generating the formulation for a brick element, a brick transition element, and higher-order hexahedron and tetrahedron elements that can be used in a spectral finite element analysis. The formulation obtained for the 20-node element was in perfect agreement with the formulation available in the literature. In addition, the results showed that the interpolation condition was met for all the generated elements, which provides confidence in the implementation of the process. Researchers and educators can use this procedure to efficiently develop and illustrate three-dimensional elements.

1. Introduction

The finite element method (FEM) is a popular numerical technique for solving partial differential equations (PDE) in engineering and mathematics. Traditional areas in which this method has been applied include structural analysis, heat transfer, fluid flow, mass transport, electromagnetic potential, and augmented reality [1,2,3,4,5]. Under this method, the domain is subdivided into smaller parts, called elements, composed of multiple nodes. The number of nodes within an element determines the order of the interpolation function that represents the approximate solution of the PDE. The interpolation function is defined in terms of nodal basis functions, also known as shape functions. The error associated with the interpolation is minimized using the calculus of variation, resulting in a system of algebraic equations. The variational formulation also requires the integration of finite element variables that are a function of shape functions and other properties, such as shape function derivatives, over the element’s domain. These integrals are approximated using a quadrature rule, which requires selecting appropriate integration points and corresponding weights to obtain an exact integration. Finally, each element’s equations are combined into a larger system of equations that models the entire problem.
The shape functions and integration quadrature are essential parts of the FEM formulation of an element. Generally, the nodal shape functions are defined in a reference element in local coordinates. If the same shape functions used to interpolate displacements in a reference element are used to map local and global coordinates, they are termed isoparametric elements. The nodal functions and integration quadrature are available for several three-dimensional elements in the literature and are incorporated into commercial FEM software. These elements are generally lower order and limited to four specific elements: hexahedrons from the Lagrangian and Serendipity families, tetrahedrons, prisms, and pyramids [6]. For instance, ABAQUS [7] only offers elements of quadratic order to model solids, including a hexahedron from the Serendipity family, also known as the 20-node brick element, tetrahedrons, and prism elements.
Researchers generally use elements only up to the second order of the geometries mentioned above when modeling three-dimensional solids. However, there is a need to employ elements of higher order in many applications. For instance, transition elements are extensively used for mesh refinement [8], where relying only on quadratic elements brings up hanging node problems. Unconventional elements, such as the xNy-element concept [9], are developed to tackle this issue. Transition elements are also employed in contact problems. Buczkowski [10] developed 22 and 21-node elements, and Smith et al. [11] developed 14-node hexahedral isoparametric elements to analyze contact problems by modifying the 8 and 20-node hexahedral elements. In addition to transition elements, there is also a need for higher-order three-dimensional elements as they offer higher accuracy in calculating Lagrangian solid dynamics. For instance, the spectral finite element method [12] uses the interpolation function of high-order Lagrange polynomials to capture high-frequency wave propagation that benefits fields such as structural health monitoring [13,14,15,16] and seismology [17].
Formulating shape functions for elements with arbitrary numbers of nodes in 3D requires defining the nodal distribution, interpolation functions, and integration quadrature. The method for determining the shape functions [3] requires incorporating a polynomial function as the interpolation function in each nodal point. These calculations can be carried out by hand for one-dimensional and lower-order two-dimensional elements. For three-dimensional cases, the procedure is extremely laborious. Another aspect in generating the element formulation is verifying that the shape functions fulfill the following conditions [3]: (a) Interpolation: take a unit value at node i and zero at all other nodes; (b) Local support: vanish over any element boundary that does not include node i ; and (c) Interelement compatibility: No discontinuities at the element boundary, i.e., for solid mechanics applications, the elements should deform along the common surface without openings and overlaps. If two elements share a surface, the difference in the value of the shape functions at common nodal points between the two elements should be zero. If the element is a hexahedron or tetrahedron, the need to define the nodal distribution can be avoided by following specific procedures available in the literature. For the hexahedron element of the Lagrangian family, the procedure is explained in [3], whereas in the case of the Serendipity family, Arnold and Arnold [18] provided the theory to obtain shape functions for any given order. In the case of higher-order tetrahedrons, Silvester [19] proposed a simple and elegant procedure based on four-digit node numbering to obtain nodal coordinates that generate a uniform nodal distribution, which is observed to cause Runge oscillations [20]. Some alternative nodal distributions to mitigate this effect are Fekete points, Gauss–Legendre points, and Chebyshev points.
There are several methods to obtain the integration quadrature, such as the Gaussian quadrature rule [21] and Legendre–Gauss–Lobatto nodes [22] for hexahedrons. In the case of higher-order tetrahedrons, the standard collapsed coordinate system that maps the quadrature to the tetrahedron from a reference hexahedron [23] is a popular choice. Another approach is based on the integration scheme used for the finite cell method, where a high-order tetrahedron is subdivided into multiple sub-tetrahedrons [20], and numerical integration is carried out on each of them using Gaussian quadrature.
Several existing libraries provide the nodal shapes for higher-order elements that have been obtained a priori. For example, ELEMENTS [24] is a library written in c++ that focuses on supporting novel element spaces, such as Serendipity element space and any order spectral elements. Nekter++ [25] is a FEM solver that supports variable polynomial order in space and heterogeneous polynomial order within two and three-dimensional elements. Scilab [26] is another platform that offers spectral elements in 2D. Some other libraries, such as deal.ii [27], Dune [28], and MFEM [29] are also available. These codes do not generate shape functions nor determine the appropriate integration quadrature for a custom element and do not provide a visual representation.
No methodology exists in the literature for formulating elements of arbitrary order in an automated way. Moreover, if a new element is generated, checks must be performed to guarantee that the interpolation and location support conditions are satisfied. Such a task is difficult to perform for a 3D element as they contain more than three boundaries or surfaces where the local support condition needs to be satisfied for each shape function. In addition, an approach must be established to verify the interelement compatibility of elements in a multielement mesh. Hence, a general procedure is developed in this paper to perform these tasks programmatically. This procedure is capable of generating shape functions and integration quadrature for: (1) arbitrary or custom elements with a given nodal distribution and interpolation function; (2) hexahedrons of the Serendipity and Lagrange families; and (3) tetrahedrons of any given element order. The integration quadrature includes integration points and weights for: (1) volume; and (2) surface integration. The normal vector and parametric coordinates for each element surface are also obtained to enable users to implement the traction vector in FEM applications. The interpolation and local support conditions are checked qualitatively through computer graphics, while interelement compatibility is verified by establishing expressions that ensure nodal shape agreement from adjacent elements at common nodes.
An attractive feature of the proposed procedure is that it can be automated using symbolic and graphical tools, readily available in programming platforms such as Matlab, Python, and Mathematica. In this paper, Matlab was used to implement the procedure, but other users can program the procedure on the platform of their choice. In addition, a Graphical User Interfaces (GUI), named ShapeGen3D (ShapeGen 3D installation file link: https://github.com/sjdyke-reth-institute/ShapeGen3D/blob/main/ShapeGen3D.mlappinstall, accessed on 19 September 2023), was developed to expedite the use of the procedure. GUIs have facilitated the implementation of novel techniques developed by FE code developers, such as in [30,31]. Hence, the development of ShapeGen3D can serve as an interactive approach for developing 3D elements and providing finite element users the flexibility to adopt elements of arbitrary order in their simulations.
The remainder of this paper is organized as follows. Section 2 presents the generalized procedure for generating element properties and explains the implementation of the GUI interface, ShapeGen3D. Section 3 obtains the formulation for several 3D elements through the use of ShapeGen3D. The numerical examples are relevant to applications that can be potentially impacted by this work, including the generation of tailored elements designed to reduce the computational cost associated with the analysis (Section 3.3), transition elements that connect fine to coarse mesh regions, such as in contact problems (Section 3.4), and high-order spectral elements to simulate wave propagation behavior (Section 3.5). Section 4 discusses the potential impact of this development in the computational mechanics field. Finally, Section 5 concludes with some final remarks.

2. Materials and Methods

This section illustrates the general procedure to formulate and implement an element within a multielement FE mesh through computer implementation. The formulation of the element includes three stages, which are (1) the generation of shape functions, (2) integration quadrature, and (3) verification by checking interpolation and local support conditions. If stages 1 and 2 are completed, the element can be incorporated into a multielement mesh if the interelement compatibility is satisfied between the adjacent elements of different types. Hence, stage 3 checks the elements’ compatibility. The procedure was outlined in such a way as to make computer implementation possible. This procedure was implemented using a Matlab app with a GUI interface.
Figure 1 breaks down the steps to formulate an element (stages 1 to 3). At the input step, a distinction is made between hexahedron and tetrahedron elements and arbitrary elements. Arbitrary elements, such as transition elements, do not have any specified nodal coordinates and shape functions. Hence, an approach was developed that utilizes (1) nodal coordinates and (2) the monomial basis of the interpolation function to calculate the shape functions, as described in Section 2.1. The procedure for determining the shape functions of hexahedrons and tetrahedrons of elements followed existing literature (see Section 2.3 and Section 2.4).
Next, in stage 2, the volume and surface integration quadrature are obtained. The integration quadrature in volumetric space includes only integration points and weights, whereas the surface integration quadrature includes integration points, weights, and parametric coordinates for each element’s surface. As arbitrary elements do not have any reference quadrature, a method similar to the finite cell method [32,33] was implemented, as described in Section 2.2. Following this approach, the integration quadrature for any element type can be determined for both volume and surface integrations in an automated way, allowing computer implementation. Moreover, the formulation of standard quadratures for hexahedrons and tetrahedrons was implemented as outlined in Section 2.3 and Section 2.4, respectively. Stage 3 is a verification step to check the interpolation and local support conditions. This verification was conducted through a graphical representation of the shape function in Matlab (see Section 2.6). The locations where the shape functions yield a 0 value are presented as a void (blank space).
For the final implementation stage, if an element is to be incorporated into a multielement mesh, the interelement compatibility condition between two adjacent elements must be checked. In this paper, a method was developed that can be used to check this condition for each of the integration points of the adjacent surfaces numerically. Such a task is highly labor-intensive to perform by hand for 3D elements, but it can be automized, as presented in Section 2.5. Figure 2 shows the overview of this stage, which requires the input of the surface pairs that will form the interelement boundary.
The layout of this methodology was essential for developing GUI software that automizes the generation of arbitrary 3D element formulation. Finally, Section 2.7 shows the implementation of the GUI interface, which facilitates the execution of the procedure outlined in Figure 1 and Figure 2.

2.1. Computation of Shape Functions for a Given Nodal Distribution and Interpolation Function

The generation of shape functions of the development stage is discussed here. Assume that an element defined by a node-set P i = x i y i z i consists of n nodes and an interpolation function f n x , y , z . If f n x , y , z is a linear combination of arbitrary constants c i and a function with a monomial basis, F i ( x , y , z ) , then the interpolation function can be written as
f n x , y , z = i = 1 n c i F i ( x , y , z )
This function, f n , can also be expressed in terms of the shape function terms, N i , as
f n x , y , z = i = 1 n N i ( x , y , z ) u i
where u i is a variable associated with node i . Plugging Equation (1) into Equation (2)
i = 1 n c i F i ( x , y , z ) = i = 1 n N i ( x , y , z ) u i
The shape functions can be obtained for a given set of known function F i by manipulating Equation (3) to solve for parameters c i . In matrix form, this operation becomes x
c 1 c 2 . . c n = F 1 P 1 F 2 P 1 . . F n P 1 F 1 P 2 F 2 P 2 . . F n P 2 . . . . . . . . . . F 1 P n F 2 P n . . F n P n 1 u 1 u 2 . . u n
C = F 1 U
Plugging c i in Equation (3) and isolating u i , yields the shape functions [4]. If the interpolation function f n is unable to form a non-invertible matrix F with node set P , then the node-set and interpolation function are not valid. If invertible, shape functions can be formulated that automatically satisfy the interpolation and partition of unity condition. This method cannot be used to generate shape functions for rational polynomials, such as in the case of Wachspress basis functions [34] and Radial basis functions [35]. This approach for determining shape functions was implemented using the symbolic toolbox in Matlab. The steps implemented in the Matlab routines are summarized in Figure 3.

2.2. Determination of Integration Quadrature for an Arbitrary Element

The integration quadrature for an arbitrary element is determined following an approach similar to the finite cell method [32,33], which involves dividing the element into a finite number of tetrahedron cells and mapping the integration points from a reference tetrahedron to each cell. First, the Delaunay triangulation [36] is carried out for the given set of node P , which subdivides the arbitrary element into multiple tetrahedrons in the x y z space. Each of the tetrahedrons is termed as S e , where the subscript e indicates the element number with nodal coordinates ( x n ,   y n ,   z n ) , and n can take values from 1 to 4. Next, a reference element, consisting of a standard orthogonal tetrahedron in ξ η γ space with vertices 0 ,   0 ,   0 ,   1 ,   0 ,   0 ,   ( 0 ,   1 ,   0 ) , and ( 0 ,   0 ,   1 ) is formulated. An integration quadrature, i.e., integration points and weights, up to order 4 is used from [37] for such reference tetrahedron element. The shape functions of the reference 4-noded tetrahedron element are
N 1 = 1 ξ η γ N 2 = ξ N 3 = η N 4 = γ
Finally, the integration quadrature of the global cells or tetrahedrons is calculated. Each integration point coordinate ( ξ i , η i , γ i ) from the reference tetrahedron in ξ η γ space is mapped to each S e in the x y z space following Equation (7) [3]
x y z = N 1 0 0 N 2 0 0 N 3 0 0 N 4 0 0 0 N 1 0 0 N 2 0 0 N 3 0 0 N 4 0 0 0 N 1 0 0 N 2 0 0 N 3 0 0 N 4 ξ i , η i , γ i x 1 y 1 z 1 . . x 4 y 4 z 4
The weight of the integration points for the global element w i x , where superscript x indicates x y z space, is mapped by multiplying the weights of integration points of the reference element w i ξ with the determinant of Jacobian, as w i x = J w i ξ . Following the isoparametric mapping, the Jacobian matrix can be determined as
J = x ξ y ξ z ξ x η y η z η x γ y γ z γ = N 1 ξ N 2 ξ N 3 ξ N 4 ξ N 1 η N 2 η N 3 η N 4 η N 1 γ N 2 γ N 3 γ N 4 γ ξ i , η i , γ i x 1 y 1 z 1 x 2 y 2 z 2 x 3 y 3 z 3 x 4 y 4 z 4
For linear tetrahedrons, i.e., the reference element,
J = 1 1 0 0 1 0 1 0 1 0 0 1 x 1 y 1 z 1 x 2 y 2 z 2 x 3 y 3 z 3 x 4 y 4 z 4
The integration quadrature on each surface is also determined to allow the computation of equivalent nodal flux. First, the surfaces of an element must be identified. This step can be accomplished by determining the convex hull [36], which is the smallest convex set that bounds all the nodes of an element. Hence, the convex hull of the Delaunay triangulation is determined to obtain the integration points and weights at the surfaces. Each surface s of the set is a triangle with three vertices ( a n ,   b n ,   c n ) , where n is from 1 to 3. The integration point coordinates for a surface s are determined as,
x s = x y z = 1 3 a 1 + a 2 + a 3 b 1 + b 2 + b 3 c 1 + c 2 + c 3
The normal vector for the surface, pointing outside the element interior, can be determined by performing the following cross-product operation as,
n s z = a 2 , b 2 , c 2 a 1 , b 1 , c 1 × a 3 , b 3 , c 3 a 1 , b 1 , c 1 a 2 , b 2 , c 2 a 1 , b 1 , c 1 × a 3 , b 3 , c 3 a 1 , b 1 , c 1
where v indicates the second norm of vector v . The parametric coordinates of a surface s , n s x , n s y can be determined as
n s y = b 1 b 2 b 3 a 1 a 2 a 3 b 1 b 2 b 3 a 1 a 2 a 3
n s x = n s z × n s y
The area of the surface is the weight of the integration, which can be determined as
w s = 1 2 n

2.3. Formulation of Nodal Coordinates and Integration Quadrature for Hexahedron Elements

A standard orthogonal hexahedron in x y z space is considered to formulate hexahedron elements with eight vertices as 1 , 1 , 1 , 1 ,   1 , 1 , 1 ,   1 , 1 , 1 , 1,1 , 1 , 1 ,   1 ,   1 ,   1 ,   1 , ( 1 ,   1 ,   1 ) . If c n is an arbitrary constant, the interpolation function for Lagrange family elements can be written as,
f n = i = 0 , j = 0 , k = 0 i = m x , j = m y , k = m z c n x i y j z k
where m x ,   m y , and m z are the polynomial order along x , y , and z axis. For the Serendipity family, the interpolation function for such element can be obtained as,
f n = 1 + i = 1 , j = 0 , k = 0 i = m x , j = 1 , k = 1 c n x i y j z k + i = 0 , j = 1 , k = 0 i = 1 , j = m y , k = 1 c n x i y j z k + i = 0 , j = 0 , k = 1 i = 1 , j = 1 , k = m z c n x i y j z k
Many studies and codes [37,38] follow a uniform nodal distribution that exhibits Runge oscillations. To avoid this numerical artifact, this development follows Legendre–Gauss–Lobatto nodes [22] where the node coordinates for each of the three axes, P x , P y ,   P z , is the solution of Equations (17)–(19) between + 1 and 1 , respectively.
1 x 2 d d x L m x x = 0
1 y 2 d d y L m y y = 0
1 z 2 d d z L m z z = 0
where, L m x indicates the Legendre polynomial of the degree m x . Each of these vectors of Equations (17)–(19) comprise a set of ( m x + 1 ) , m y + 1 , and ( m z + 1 ) , respectively. To obtain the nodal coordinates in three dimensions, a mesh grid of size m y + 1 × m x + 1 × m z + 1 is generated using the obtained one-dimensional grids. For the Lagrange family, all the mesh grid points were considered, whereas only the points on the element edges were considered for the Serendipity family elements.
For integration quadrature, Legendre–Gauss–Lobatto quadrature and Gauss–Legendre quadrature were computed for a given element order along the x, y, and z-axis. Similar to node generation, one-dimensional reference grids were generated at first. For the Legendre–Gauss–Lobatto quadrature [22], the weights w x , for each component of a one-dimensional reference grid in the x axis can be determined as
w x i = 2 m x m x + 1 L m x x 2
For the Gauss–Legendre quadrature [21], the coordinate of integration points in one dimension, P I x can be determined as the solutions of Equation (21) between + 1 and 1 as
L m x x = 0
The corresponding weight components of w x can be determined as
w i x = 2 ( 1 P I x i 2 ) d d x L m x x P I x i 2
Considering that w y and w z are reference grids for the weights along y and z axes, the weights w for the integration points in 3D can be determined using the tensor product [39] as presented in Equation (23). The components of the product w are then assigned to the corresponding points.
w = w z     w x w T y
where “ ” indicates elementwise multiplication. For the surfaces, the interpolation order for each surface is determined before computing the integration quadrature. If a surface s contains node i , the number of differentiations along each axis of the shape function that produces a constant can be set as the interpolation order. This operation can be performed for all the nodes contained by s , where the maximum order is chosen for the surface. For m s x , this condition can be defined using a constant C as presented in Equation (24), which is carried out using the symbolic toolbox of Matlab.
n N i x n = C ,   m s x = max   ( n   f o r   a l l   i s )
The coordinates and weights of the integration points and parametric coordinates for each of the six surfaces for hexahedron elements, x = 1 , x = 1 ,   y = 1 ,   y = 1 ,   z = 1 ,   and   z = 1 are defined according to Table 1.

2.4. Formulation of Nodal Coordinates and Integration Quadrature for Tetrahedron Elements

This section presents the methodology implemented in the general procedure to formulate tetrahedron elements. The Lobatto triangle grid for orthogonal polynomials proposed by Luo et al. [40] is implemented to generate element properties for the standard orthogonal tetrahedron in x y z space, which consists of four vertices as 0 ,   0 ,   0 ,   1 ,   0 ,   0 ,   ( 0 ,   1 ,   0 ) , and ( 0 ,   0 ,   1 ) . This nodal distribution does not exhibit Runge oscillations. According to this method, if an m t h degree interpolating polynomial is used, the interpolation function can be expressed as,
f n = i = 0 , j = 0 , k = 0 i = m , j = m , k = m c n x i y j z k   w h e r e ,   ( i + j + k ) m
where c n is an arbitrary constant. A one-dimensional reference grid comprising a set of m 1 degrees is generated as,
v = 1 2 ( 1 + P x )
where P x is the solution of Equation (26) between the range +1 and −1 as,
1 x 2 d d x L m x = 0
The L m is the Legendre polynomial, which can be written as,
L m x = 1 2 n k = 0 m m k x 1 m k x + 1 k
Then, using the grid, the i node coordinate, x i y i z i can be determined as,
  • On the z = −1 surface with i = 1,2,…,m + 1, j = 1,2,…,m + 2, and l = m + 3 − ij,
P i T = 1 3 ( 1 + 2 v i v j v l ) 1 3 ( 1 v i + 2 v j v l ) 0
  • On the x = −1 surface with j = 1,2,…,m, k = 2,3,…,m + 2 − j, and l = m + 3 − ik,
P i T = 0 1 3 ( 1 + 2 v j v k v l ) 1 3 ( 1 v j + 2 v k v l )
  • On the y = −1 surface with i = 2,3,…,m, k = 2,3,…,m + 2 − i, and l = m + 3 − ik,
P i T = 1 3 ( 1 + 2 v i v k v l ) 0 1 3 ( 1 v i + 2 v k v l )
  • On the slanted surface, x + y + z = 1 with i = 2,3,…,m, j = 2,3,….m + 1 − i, and l = m + 3 − ij,
P i T = 1 3 ( 1 + 2 v i v j v l ) 1 3 ( 1 + 2 v i v j v l ) 1 x y
  • Interior nodes with i = 2,3,…,m, j = 2,3,…,m + 1 − i, k = 2,3,…,m + 2 − ij, and l = m + 4 − ijk,
P i T = 1 4 ( 1 + 3 v i v j v k v l ) 1 4 ( 1 v i + 3 v j v k v l ) 1 4 ( 1 v i v j + 3 v k v l )
For elements with order 4 , the integration quadrature is used from [37], whereas the integration quadrature for elements with order > 4 is determined using the finite cell method. According to this method, the element is subdivided into multiple sub-tetrahedrons, and the integration points and weights for each of these sub-tetrahedrons are then determined based on the Gaussian quadrature. The decomposition of the tetrahedron into 8 and 64 sub-tetrahedrons is shown in Figure 4. The method adopted for the arbitrary element is followed to determine the integration quadrature at the surface with the parametric coordinates presented in Table 2.

2.5. Interelement Compatibility Check between Two Elements for a Chosen Surface Pair

The nodal compatibility condition requires that the nodal values of a variable evaluated at the common nodes of adjacent elements must be equal. This condition will be satisfied if all the nodes of the interelement surface have the same coordinates and satisfy the interpolation condition. The interelement compatibility condition will be satisfied if the value of a variable is equal for all the points on the interelement surface. If the interelement condition is satisfied, the nodal compatibility condition is satisfied by default. This paper develops a new approach to check the interelement compatibility condition between two elements for a given interelement surface using the symbolic toolbox of Matlab. The approach consists of forming a two-element mesh and ensuring the nodal shapes match at the integration points of the interelement surface.
Assume two elements, e 1 and e 2 , are formulated in the coordinates x = x y z , and that the compatibility condition needs to be checked between surface p for element 1 and surface q for element 2. To form an interelement surface Γ by p and q , element 2 must go through coordinate transformation ( x X ) such that the normal surface vectors cancel each other, and the surface centroids have the same coordinates as presented in the equations below
n z p 1 + n Z q 2 = 0
x p 1 = X q 2
A coordinate translation followed by a rotation of the element nodal coordinates is performed to satisfy Equations (34) and (35). Figure 5 presents the elements in the local coordinate x , and Figure 6 shows element 2 in the X coordinates after the transformation is conducted. For this purpose, the parametric coordinates of the surfaces of both elements are utilized. A coordinate system,   e 1 , with n z p as its third component, indicates that this normal vector points inward to the element as
e 1 = n y p n x p n z p
For element 2, a coordinate system can be constructed as
e 2 = n x q n y q n z q
According to Equation (34), element 2 needs to be rotated such that the n z q aligns with n z p . The resulting transformation of the x coordinates is
X = e 1 e T 2 x
Equation (38) facilitates the formation of an interelement boundary between p and q . The rotation matrix, R θ , about the n z q axis, and the coordinate translation is performed to satisfy Equation (35) as
X = e 1 R θ e T 2 x + x p 1 X R q 2  
where X R q 2 is the centroid of the surface q after coordinate rotation and R θ
R θ = c o s θ s i n θ 0 s i n θ c o s θ 0 0 0 1
Next, the shape functions are expressed in terms of the global coordinate X following a similar approach as
X = e 1 R θ e T 2 T x x p 1 X R q 2
The variable substitution from x to X is performed using the Symbolic toolbox in Matlab. For an element to undergo such coordinate transformation, x can be mapped (xX) using isoparametric formulation as,
X = N i x X x i
After the coordinate transformation, the compatibility condition can be checked following the procedure presented below. A variable u at x of element 1 can be determined as
u 1 = N 1 i x u i 1 = x j p N 1 j x u j 1 + x k p N 1 k ( x ) u k 1
where N 1 j is shape function j of element 1 and x j     p indicates that node j does not fall in the surface p . Similarly, a variable u at x of an element 2 can be determined as
u 2 = N 2 i x X u i 2 = x j p N 2 j X u j 2 + x k p N 2 k ( X ) u k 2
The interelement compatibility condition holds if the variable u ( x ) 1 = u 1 ( X ) , on the interelement surface Γ . Following Equations (42)–(44) can be written as
  x j p N 1 j x u j 1 + x k p N 1 k x u k 1 x l q N 2 l X u l 2 x m q N 2 m X u m 2 = 0 x Γ
If the local support condition is satisfied, the first and third components of Equation (45) will be zero as
x j p N 1 j ( x ) u j 1 = 0 ,   x Γ
x l q N 2 l ( X ) u l 2 = 0 ,   x Γ
Using Equations (46) and (47) and performing the assembly by setting u m 2 = u k 1 = u Γ k , the compatibility conditions hold if
x k Γ N 1 k ( x ) N 2 k ( X ) u Γ k = 0 ,   x Γ  
For every x Γ , and u Γ k Equation (46) will be satisfied if
Γ x k Γ N 1 k ( x ) N 2 k ( X ) 2 d Γ = 0
Equation (49) can be integrated numerically for each integration point as
x g Γ x k Γ N 1 k ( x ) N 2 k ( X ) 2 = 0
Similarly, Equations (46) and (47) can be checked numerically as
x g Γ x j Γ N 1 j ( x ) 2 d Γ = 0
x g Γ x j Γ N 2 j ( X ) 2 d Γ = 0
Hence, the compatibility condition is satisfied if Equations (50)–(52) are satisfied for a given element surface pair between two elements.

2.6. Generation of Graphical Representation of Element Properties

Element properties, including (a) shape functions, N i (b) differentiation of N i along the x, y, and z-axis, and (c) integration points and weights, are plotted using the Matlab graphics toolbox. These plots facilitate the understanding of the element interpolation function and help to check the interpolation and local support conditions.
The Matlab graphics toolbox is utilized to create a 3D graphical representation of elements’ properties, such as shape function value. For the hexahedron element, the element is subdivided into a 3D grid to perform plotting. For tetrahedrons and arbitrary elements, each surface is plotted. The fidelity of the plot can be increased by discretizing the reference element further by tetrahedron partitioning, and subsequently, each point’s coordinates can be mapped to S e following Equation (7). Figure 7 presents an example to illustrate the process with a pyramid element. In step 1, the element is subdivided into two tetrahedrons, S 1 and S 2 . In steps 2 and 3, a reference tetrahedron is generated and subdivided into multiple grids to increase the graphics fidelity, and finally, in step 4, each grid point is mapped to the global tetrahedron.

2.7. Implementation of GUI Interface

The procedure is compiled as a GUI software: ShapeGen3D, and organized into four segments, as presented in Figure 8, to enable users to navigate, formulate, and verify the accuracy of the formulation. Segment 1 is the input for the software that lets users choose the element family of interest and the desired interpolation order. Segment 2 includes the execution command to run the software and obtain the element formulation. Segment 3 allows users to store the element properties. Segment 4 represents the results and post-processing blocks that will enable users to observe and manipulate plots that can be used to verify the accuracy of the generated formulation visually. Detailed descriptions for each of these segments are provided below.
A short description and a screenshot of the sub-options in Segment 1 are presented in Table 3 and Figure 9, respectively. The element order and integration quadrature type must be defined for developing hexahedron and tetrahedron elements. On the other hand, in the case of arbitrary or custom elements, the nodal distribution must be inputted by users, and the software will determine the integration quadrature.
Segment 2 represents the “Execution” block. It includes the “Generate shape function” button, which executes the code with the input given in Segment 1 and generates shape functions, integration quadrature, and graphical representation of the element properties. The code can automatically detect isoparametric hexahedrons and tetrahedron elements. There are several checkboxes, such as the “Do not guess” command. If this box is checked, the software avoids detecting the element type and assumes it is an arbitrary element. This segment also includes a display window that shows messages and the progress of the execution of the code. If the “Check interelement compatibility” box is selected in Segment 1, this option will be activated in Segment 2. The software will compute the nodes with the same coordinates between two consecutive elements and subtract the corresponding shape functions. If the difference is 0 at an interelement boundary, that boundary satisfies the compatibility condition between two elements, i.e., there are no discontinuities at the boundary.
Segment 3 is a block that outputs results in the Matlab workspace to allow users to implement the elements in other programming languages or through user elements in commercial finite element software, such as ABAQUS and ANSYS. Users can also output shape functions and derivatives of the shape functions evaluated at the integration points by ticking the “Shape matrix” and “Derivatives of Shape matrix” options. A description of the workspace files is presented in Table 4. These files are readily available for FEM calculations.
Finally, segment 4 represents a results and post-processing block that shows the results obtained by the software and allows users to manipulate graphics. There are many components, such as the “Shape function, N” spinner block, which is a control block where the user can select to plot the number of shape function properties, such as their value and derivatives. This segment also allows users to plot other element properties, such as node number, integration points, and weights, as shown in the bottom left part of the software. It also includes a display window that shows the shape function property in equation format and other user-controlled options to manipulate the graphics options, such as the view angle, axis, image resolution (Peels), and transparency (Fill). Increasing the “Peels” will increase the overall image resolution. If “Fill” is chosen as 0, the software will not show any 0 value and will represent it as a blank space.

3. Numerical Examples

This section shows the properties of three different 3D elements that were obtained following the procedure developed in this paper. The results were generated through the GUI software: ShapeGen3D. First, the element properties, i.e., nodal coordinates, shape functions, and integration quadrature, of the popular 20-node brick element were obtained and compared against the literature to verify the accuracy of the formulation. Second, a 21-node hexahedron transition element similar to a 20-node quadratic hexahedron element but with one node on the x y face at z = 1 was formulated. The interpolation, local support condition, and compatibility with the 20-node brick element were checked. Third, a custom element was formulated to replicate the Germain–Lagrange plate [41] bending, showing how the methodology implemented in the software can help solve challenging problems efficiently. The fourth example shows the development of a 43-node transition element from a fourth to second-order Lagrangian element. Finally, two high-order spectral elements were formulated to provide a complete overview. The steps followed in ShapeGen3D to generate the elements’ shape functions and other finite element properties for each of the examples are presented in Table A9.

3.1. 20-Node Brick Element

A 20-node brick element follows serendipity element formulation with m x = 2, m y = 2, and m z = 2. The software determines the nodal coordinates, shape functions (Stage 1), and integration quadrature (Stage 2). The obtained results were saved as the files explained in Table 4 and are shown in the Appendix A, see Table A1, Table A2, Table A3, Table A4 and Table A5, which includes: (1) nodal coordinates; (2) corresponding shape functions; (3) integration points and weights; (4) integration points on the surface and weights; and (5) nodes on the surface and surface normal vector pointing outward of the domain for all surfaces, respectively. The nodal coordinates, shape functions, and integration quadrature match the formulation found in the literature [37], thus verifying the accuracy of the software results. Figure 10 represents the input to the ShapeGen3D and the obtained results with nodes as black dots and integration points for volume integration as red dots.

3.2. 21-Node Brick Element

Next, the 21-node brick element was formulated to illustrate the development of a custom element. For this example, the node coordinates and the interpolation function generated for the 20-node element were imported to “Arbitrary or Custom element” by pressing the “Import previous element” button. Then, one node was added manually with coordinate (0,0,−1), and several trials for adding a polynomial term associated with coefficient c 21 were made until an invertible F matrix (Equation (5)) was obtained by the software. The additional polynomial basis that was added to the interpolation function was x 2 y 2 ( z + 1 ) , which yields 2 x 2 y 2 at the z = 1 surface that contains the 21st mid-surface node and vanishes at the z = 1 surface without a mid-surface node. The interpolation function is presented in Equation (53) as,
f n = c 1 + c 2 x + c 3 y + c 4 z + c 5 x y + c 6 y z + c 7 x z + c 8 x 2 + c 9 y 2 + c 10 z 2 + c 11 x y z + c 12 x 2 y + c 13 x 2 z + c 14 y 2 x + c 15 y 2 z + c 16 z 2 x + c 17 z 2 y + c 18 x 2 y z + c 19 x y 2 z + c 20 x y z 2 + c 21 x 2 y 2 ( z + 1 )
The input to ShapeGen3D is presented in Figure 11, which shows the input coordinate of the 21st node and the polynomial term with coefficient c 21 . The obtained nodal coordinates, corresponding shape functions, and nodes on the surface and surface normal vector pointing outward of the domain for all surfaces are presented in Table A6, Table A7 and Table A8, respectively. Other element variables, such as integration points and weights, match those of the 20-node brick element shown in Table A8.
For stage 3, each shape function can be analyzed to check the accuracy of the calculations performed by the software. The element must satisfy two conditions: (1) the interpolation condition; and (2) local support. As stated in Section 2, the interpolation condition was satisfied when an invertible matrix F of Equation (5) was obtained. The graphical illustrations of each shape function can be used to check if the local support condition is satisfied. For example, Figure 12 plots shape functions at nodes 5 and 21, N 5 and N 21 , where the shape functions are shown to vanish at the face that does not contain the nodes, and thus, satisfying the local support condition.
Next, on stage 4, the compatibility with the 20-node brick element was checked. For this purpose, the “Check compatibility” button was selected. Figure 13 shows the results of the intercompatibility check of the first surface pair between the two elements, which was performed according to the procedure described in Section 2.5. The green lamp next to the compatibility text in Figure 10 indicates that the interelement compatibility condition was satisfied. A red lamp would indicate that the intercompatibility condition was not met. This condition can also be verified qualitatively using the plots of shape functions corresponding to the connecting nodes, which show the same shape function profile at the element boundary. By checking all of the surface pairs, it is concluded that any surface can be the interelement surface between the 20 and 21-node elements, except the x y face at z = 1 .

3.3. 43-Node Hexahedron Element

A 43-node hexahedron element was formulated following a similar procedure as the 21-node, such that the interpolation function provided a solution to the plate bending equation. According to the Kirchhoff–Love plate theory [41] for isotropic plates, the displacement along the z-axis, w , follows the differential equation as,
2 ρ h D 2 w t 2 + 4 w x 4 + 2 4 w x 2 y 2 + 4 w y 4 = q D
where q is the constant distributed load, and D is the flexure rigidity. If the time derivative is canceled, it forms the Germain–Lagrange plate equation. A polynomial solution of this differential equation can be written as,
w n = c 1 + c 2 x + c 3 y +   c 4 x 2 +   c 5 x y + c 6 y 2 + c 7 x 3 + c 8 x 2 + c 9 y x 2 + c 10 x y 2 + c 11 y 3 + c 12 x 4 + c 13 x 3 y +   c 14 x y 3 + c 15 y 4 + c 16 x 2 y 2
A 3D element was formulated keeping the lowest order as quadratic along the z-axis such that the interpolation function contained the polynomial basis presented in Equation (55). First, a 36-node hexahedron element of the Serendipity family was formulated with the options m x = 4 , m y = 4 and m z = 2 . This interpolation function of this Serendipity element does not contain the x 2 y 2 term, hence, it cannot replicate the solution of Equation (54) exactly. Thus, the element was imported as an arbitrary element, and seven additional nodes with coordinates ( ± 1 ,   0 ,   0 ), ( 0 ,   ± 1 ,   0 ), ( 0 ,   0 ,   ± 1 ), and ( 0 ,   0 ,   0 ) were added. Finally, seven polynomial basis as x 2 y 2 z 2 , x 2 y 2 z , x 2 y z 2 ,   x y 2 z 2 ,   x 2 y 2 ,   z 2 y 2 and x 2 z 2 were added to formulate the 43-node element that has the polynomial interpolation function as presented in Equation (56). The screenshot of this element formulation is presented in Figure 14.
f n = c 1 + c 2 x + c 3 y + c 4 z + c 5 x 2 + c 6 x y + c 7 x z + c 8 y 2 + c 9 y z + c 10 z 2 + c 11 x 3 + c 12 x 2 y + c 13 x 2 z + c 15 x y 2 + c 16 x y z + c 17 x z 2 + c 18 y 3 + c 19 y 2 z + c 20 y z 2 + c 21 x 4 + c 22 x 3 y + c 23 x 3 z + c 24 x 2 y z + c 25 x y 3 + c 26 x y 2 z + c 27 x y z 2 + c 28 y 4 + c 29 y 3 z + c 30 x 4 y + c 31 x 4 z + c 32 x 3 y z + c 33 x y 4 + c 34 x y 3 z + c 35 y 4 z + c 36 x 4 y z + c 37 x y 4 z + c 38 x 2 y 2 z 2 + c 39 x 2 y 2 z + c 40 x 2 y z 2 + c 41 x y 2 z 2 + c 42 x 2 y 2 + c 43 y 2 z 2 , x 2 z 2

3.4. 43-Node Transition Element from Fourth to Second-Order Lagrangian Element

The fourth-order Lagrangian element is a 125-node element ( m x = m y = m z = 4 ) with five nodes along each axis. Such high-order elements can replicate wave propagation and are widely used in the structural health monitoring field [13,14,15,16]. The second-order Lagrangian element is a 27-node element ( m x = m y = m z = 2 ) with three nodes along each axis. In this example, a transition element was developed to bridge these two elements. The transition element is considered to be of second order along the z -axis.
The z = 1 surface of the transition element should match the z = 1 surface of the 125-node element, and z = 1 surface should match the 27-node element’s surface. Hence, there will be 25 nodes on the z = 1 surface and nine nodes on the z = 1 surface. As the order of the transition element is two, instead of a 125-node element, a 75-node element with m x = m y = 4 and m z = 2 was considered as the reference element. Upon formulation of the 75-node element, the nodes at the z = 1 surface are removed to replicate the surface of a 27-node element.
The minimum order of the element is 2. Hence, all the monomial basis functions of order 2 are kept. As the element needs to transition from order 4 to 2 along the z -axis, the monomial basis that has order m z = 1 was kept and manipulated as z + 1 , such that those terms vanish at the z = 1 surface, as presented in Table 5. The remaining 43 terms form the interpolation function of the 43-node transition element.
The generated element satisfies the local support conditions presented in Figure 15 for two shape functions, nodes 6 and 35. The inter-element compatibility conditions were also checked, and compatibility was observed between the z = 1 surface of the transition element and the fourth-order element and between the z = 1 surface of the transition and the second-order element. Figure 16 presents a graphical overview of the compatibility check. The red hollow diamond represents the nodes of the second-order (Figure 16a) and fourth-order (Figure 16b) elements, whereas the black dots represent the transition element. It is evident that the node coordinates match, and the shape functions agree at the common nodes.

3.5. Spectral Elements

Finally, the shape functions were generated for a hexahedron element of the Lagrangian family with 108 nodes to provide a complete overview of the methodology. In ShapeGen3D, m x = 5 , m y = 5 , and m z = 2 were provided as input parameters. The shape function for node 70 of the element is presented in Figure 17a. The red spot of the plot indicates the location of this node. It can be observed that the shape function satisfies the interpolation and local support conditions as it vanishes to 0 over surfaces that do not contain the node. The same behavior is observed for other nodes. This spectral element was used for simulating guided waves by Soman et al. [15].
Additionally, a 5th-order tetrahedron element (56 nodes) with input m = 5 (Equation (13)) was formulated. The shape function for the 50th node of the element is presented in Figure 17b. All shape functions for this element were also observed to satisfy the interpolation and local support conditions. Thus, analysts using the spectral finite element method can use ShapeGen3D to determine the formulation for arbitrary noded elements.

4. Discussion

This development reduces implementation effort in formulating and verifying arbitrary 3D elements for FEM applications. It provides FEM users the possibility to employ elements beyond those available in commercial FEM software, FEM libraries, and open-access codes. The proposed procedure facilitates the formulation of higher-order elements, which can be shown to solve challenging problems with fewer degrees of freedom in some applications. The software was developed as part of a NASA-sponsored space technology research institute, Resilient Extra-Terrestrial Habitat Institute (RETHi), which aims to propel space exploration forward by developing new knowledge, technologies, and techniques. ShapeGen3D was used to develop the 21-node brick elements presented in this paper to capture meteoroid impact loading on a space habitat model. The model was embedded within a Modular coupled virtual testbed (MCVT) [42,43] that integrates several sub-systems of a space habitat to evaluate their interdependence and the effectiveness of safety controls when a habitat is exposed to external disturbances. ShapeGen3D allowed developers to easily adjust the elements of the structural model until the functional requirements were met. A 43-node brick element was also developed with ShapeGen3D to mimic wave propagation due to meteoroid impact and assist with generating a structural health monitoring algorithm for detecting damage.
Upon publication, this development is expected to benefit the computational mechanics community beyond the RETHi group. The higher-order and transition element formulation that the software can generate will allow researchers to employ elements that can increase the accuracy and reduce the computational time when dealing with simulations that involve contact, mesh transition regions, and Lagrangian solid dynamics. Furthermore, ShapeGen3D can become an educational tool to illustrate three-dimensional FEM concepts.

5. Conclusions

This work presents the development of a generalized procedure for formulating nodal coordinates, shape functions, and integration quadrature of higher-order hexahedrons, tetrahedrons, and arbitrary or custom elements in 3D. This procedure also derived expressions for checking the interelement compatibility of adjacent elements, which enables incorporating newly formulated elements within multielement meshes. The procedure was incorporated into GUI software, ShapeGen3D, to facilitate its implementation. In this paper, several elements were formulated to verify the accuracy of the implementation. ShapeGen3D allows users to verify that the nodal shape conditions are met and checks the element’s compatibility with other elements through a graphical interface. This advanced feature was illustrated through the 21-hexahedron element, where compatibility with a 20-node brick element was checked. Additionally, 43-node elements were formulated to capture the behavior of a Germain–Lagrange plate and establish a transition between Lagrangian elements of different order. Finally, a fifth-order tetrahedron element was generated to simulate guided waves. Thus, this work can have potential impacts on the accuracy and efficiency of FEM runs, as it can be used to generate elements that minimize the number of elements and degrees of freedoms used in traditional analyses, develop transition elements that connect fine to coarse mesh regions, and generate high-order spectral elements that accurately capture waves propagating through solid bodies. The numerical results illustrate that the generalized procedure captured in ShapeGen3D can significantly benefit research and development in FEM and numerical methods.

Author Contributions

Conceptualization, A.S., A.M. (Arsalan Majlesi) and A.M. (Arturo Montoya); methodology, A.S.; software, A.S.; validation, A.S., A.M. (Arsalan Majlesi) and A.M. (Arturo Montoya); formal analysis, A.S.; investigation, A.S. and A.M. (Arsalan Majlesi); resources, A.S. and A.M. (Arsalan Majlesi); data curation, A.S. and A.M. (Arsalan Majlesi); writing—original draft preparation, A.S. and A.M. (Arsalan Majlesi); writing—review and editing, A.S., A.M. (Arsalan Majlesi) and A.M. (Arturo Montoya); visualization, A.S.; supervision, A.M. (Arturo Montoya); project administration, A.M. (Arturo Montoya).; funding acquisition, A.M. (Arturo Montoya). All authors have read and agreed to the published version of the manuscript.

Funding

The research was funded by the Space Technology Research Institute grant (No.80NSSC19K1076) from NASA’s Space Technology Research Grants Program.

Data Availability Statement

Not applicable.

Acknowledgments

This material was based on work done under the Resilient Extra-Terrestrial Habitat Institute (RETHi) supported by a Space Technology Research Institute grant (No.80NSSC19K1076) from NASA’s Space Technology Research Grants Program.

Conflicts of Interest

The authors declare no conflict of interest.

Appendix A

Table A1. Node_Coordinates for 20 node brick element.
Table A1. Node_Coordinates for 20 node brick element.
Node NumberXyZ
1−1−1−1
21−1−1
311−1
4−11−1
5−1−11
61−11
7111
8−111
90−1−1
1010−1
1101−1
12−10−1
130−11
14101
15011
16−101
17−1−10
181−10
19110
20−110
Table A2. Shape_Functions for 20-node brick element.
Table A2. Shape_Functions for 20-node brick element.
Node N i ( x , y , z )
1 x 2 y z 8 x 2 y 8 x 2 z 8 + x 2 8 + x y 2 z 8 x y 2 8 + x y z 2 8 x y z 8 x z 2 8 + x 8 y 2 z 8 + y 2 8 y z 2 8 + y 8 + z 2 8 + z 8 1 4
2 x 2 y z 8 x 2 y 8 x 2 z 8 + x 2 8 x y 2 z 8 + x y 2 8 x y z 2 8 + x y z 8 + x z 2 8 x 8 y 2 z 8 + y 2 8 y z 2 8 + y 8 + z 2 8 + z 8 1 4
3 x 2 y z 8 + x 2 y 8 x 2 z 8 + x 2 8 x y 2 z 8 + x y 2 8 + x y z 2 8 x y z 8 + x z 2 8 x 8 y 2 z 8 + y 2 8 + y z 2 8 y 8 + z 2 8 + z 8 1 4
4 x 2 y z 8 + x 2 y 8 x 2 z 8 + x 2 8 + x y 2 z 8 x y 2 8 x y z 2 8 + x y z 8 x z 2 8 + x 8 y 2 z 8 + y 2 8 + y z 2 8 y 8 + z 2 8 + z 8 1 4
5 x 2 y z 8 + x 2 y 8 x 2 z 8 + x 2 8 x y 2 z 8 + x y 2 8 + x y z 2 8 x y z 8 + x z 2 8 x 8 y 2 z 8 + y 2 8 + y z 2 8 y 8 + z 2 8 + z 8 1 4
6 x 2 y z 8 + x 2 y 8 x 2 z 8 + x 2 8 + x y 2 z 8 x y 2 8 x y z 2 8 + x y z 8 x z 2 8 + x 8 y 2 z 8 + y 2 8 + y z 2 8 y 8 + z 2 8 + z 8 1 4
7 x 2 y z 8 x 2 y 8 + x 2 z 8 + x 2 8 x y 2 z 8 x y 2 8 + x y z 2 8 + x y z 8 x z 2 8 + x 8 + y 2 z 8 + y 2 8 y z 2 8 + y 8 + z 2 8 z 8 1 4
8 x 2 y z 8 x 2 y 8 + x 2 z 8 + x 2 8 + x y 2 z 8 + x y 2 8 x y z 2 8 x y z 8 + x z 2 8 x 8 + y 2 z 8 + y 2 8 y z 2 8 + y 8 + z 2 8 z 8 1 4
9 y z 4 z 4 y 4 + x 2 y 4 + x 2 z 4 x 2 4 x 2 y z 4 + 1 4
10 x 4 z 4 x z 4 x y 2 4 + y 2 z 4 y 2 4 + x y 2 z 4 + 1 4
11 y 4 z 4 y z 4 x 2 y 4 + x 2 z 4 x 2 4 + x 2 y z 4 + 1 4
12 x z 4 z 4 x 4 + x y 2 4 + y 2 z 4 y 2 4 x y 2 z 4 + 1 4
13   z 4 y 4 y * z 4 + x 2 y 4 x 2 z 4 x 2 4 + x 2 y z 4 + 1 4
14 x 4 + z 4 + x z 4 x y 2 4 y 2 z 4 y 2 4 x y 2 z 4 + 1 4
15 y 4 + z 4 + y z 4 x 2 y 4 x 2 z 4 x 2 4 x 2 y z 4 + 1 4
16 z 4 x 4 x z 4 + x y 2 4 y 2 z 4 y 2 4 + x y 2 z 4 + 1 4
17 x y 4 y 4 x 4 + x z 2 4 + y z 2 4 z 2 4 x y z 2 4 + 1 4
18 x 4 y 4 x y 4 x z 2 4 + y z 2 4 z 2 4 + x y z 2 4 + 1 4
19 x 4 + y 4 + x y 4 x z 2 4 y z 2 4 z 2 4 x y z 2 4 + 1 4
20 y 4 x 4 x y 4 + x z 2 4 y z 2 4 z 2 4 + x y z 2 4 + 1 4
Table A3. Integration_Points_Coordinates and Integration_Points_Weights for 20 node brick element.
Table A3. Integration_Points_Coordinates and Integration_Points_Weights for 20 node brick element.
Integration Point NoxyzWeight
1−0.7746−0.7746−0.77460.171468
2−0.7746−0.774600.274348
3−0.7746−0.77460.7745970.171468
4−0.77460−0.77460.274348
5−0.7746000.438957
6−0.774600.7745970.274348
7−0.77460.774597−0.77460.171468
8−0.77460.77459700.274348
9−0.77460.7745970.7745970.171468
100−0.7746−0.77460.274348
110−0.774600.438957
120−0.77460.7745970.274348
1300−0.77460.438957
140000.702332
15000.7745970.438957
1600.774597−0.77460.274348
1700.77459700.438957
1800.7745970.7745970.274348
190.774597−0.7746−0.77460.171468
200.774597−0.774600.274348
210.774597−0.77460.7745970.171468
220.7745970−0.77460.274348
230.774597000.438957
240.77459700.7745970.274348
250.7745970.774597−0.77460.171468
260.7745970.77459700.274348
270.7745970.7745970.7745970.171468
Table A4. Integration_Points_Coordinates_Weights_Vectors_on_Surface for 20 node brick element.
Table A4. Integration_Points_Coordinates_Weights_Vectors_on_Surface for 20 node brick element.
Integration Point NoxyzWeight n x n y n z
11−0.7746−0.77460.30864100
21−0.774600.49382100
31−0.77460.774590.30864100
410−0.77460.49382100
51000.79012100
6100.774590.49382100
710.77459−0.77460.30864100
810.7745900.49382100
910.774590.774590.30864100
10−1−0.7746−0.77460.30864−100
11−1−0.774600.49382−100
12−1−0.77460.774590.30864−100
13−10−0.77460.49382−100
14−1000.79012−100
15−100.774590.49382−100
16−10.77459−0.77460.30864−100
17−10.7745900.49382−100
18−10.774590.774590.30864−100
19−0.77461−0.77460.30864010
20−0.7746100.49382010
21−0.774610.774590.30864010
2201−0.77460.49382010
230100.79012010
24010.774590.49382010
250.774591−0.77460.30864010
260.77459100.49382010
270.7745910.774590.30864010
28−0.7746−1−0.77460.308640−10
29−0.7746−100.493820−10
30−0.7746−10.774590.308640−10
310−1−0.77460.493820−10
320−100.790120−10
330−10.774590.493820−10
340.77459−1−0.77460.308640−10
350.77459−100.493820−10
360.77459−10.774590.308640−10
37−0.7746−0.774610.30864001
38−0.7746010.49382001
39−0.77460.7745910.30864001
400−0.774610.49382001
410010.79012001
4200.7745910.49382001
430.77459−0.774610.30864001
440.77459010.49382001
450.774590.7745910.30864001
46−0.7746−0.7746−10.3086400−1
47−0.77460−10.4938200−1
48−0.77460.77459−10.3086400−1
490−0.7746−10.4938200−1
5000−10.7901200−1
5100.77459−10.4938200−1
520.77459−0.7746−10.3086400−1
530.774590−10.4938200−1
540.774590.77459−10.3086400−1
Table A5. Surface_Nodes_and_vectors for 20-node brick element.
Table A5. Surface_Nodes_and_vectors for 20-node brick element.
Node Number n x n y n z
2100
3100
6100
7100
10100
14100
18100
19100
1−100
4−100
5−100
8−100
12−100
16−100
17−100
20−100
3010
4010
7010
8010
11010
15010
19010
20010
10−10
20−10
50−10
60−10
90−10
130−10
170−10
180−10
5001
6001
7001
8001
13001
14001
15001
16001
100−1
200−1
300−1
400−1
900−1
1000−1
1100−1
1200−1
Table A6. Node_Coordinates for 21 node brick element.
Table A6. Node_Coordinates for 21 node brick element.
Node Numberxyz
1−1−1−1
21−1−1
311−1
4−11−1
5−1−11
61−11
7111
8−111
90−1−1
1010−1
1101−1
12−10−1
130−11
14101
15011
16−101
17−1−10
181−10
19110
20−110
21001
Table A7. Shape_Functions for 21-node brick element.
Table A7. Shape_Functions for 21-node brick element.
Node N i ( x , y , z )
1 x 2 y z 8 x 2 y 8 x 2 z 8 + x 2 8 + x y 2 z 8 x y 2 8 + x y z 2 8 x y z 8 x z 2 8 + x 8 y 2 z 8 + y 2 8 y z 2 8 + y 8 + z 2 8 + z 8 1 4
2 x 2 y z 8 x 2 y 8 x 2 z 8 + x 2 8 x y 2 z 8 + x y 2 8 x y z 2 8 + x y z 8 + x z 2 8 x 8 y 2 z 8 + y 2 8 y z 2 8 + y 8 + z 2 8 + z 8 1 4
3 x 2 y z 8 + x 2 y 8 x 2 z 8 + x 2 8 x y 2 z 8 + x y 2 8 + x y z 2 8 x y z 8 + x z 2 8 x 8 y 2 z 8 + y 2 8 + y z 2 8 y 8 + z 2 8 + z 8 1 4
4 x 2 y z 8 + x 2 y 8 x 2 z 8 + x 2 8 + x y 2 z 8 x y 2 8 x y z 2 8 + x y z 8 x z 2 8 + x 8 y 2 z 8 + y 2 8 + y z 2 8 y 8 + z 2 8 + z 8 1 4
5 x 8 + y 8 x y 2 8 x 2 y 8 x z 2 8 y z 2 8 + z 2 8 + x y z 2 8 x y 2 z 8 x 2 y z 8 + x y z 8 + x 2 y 2 z   +   1 8 1 8
6 y 8 x 8 + x y 2 8 x 2 y 8 + x z 2 8 y z 2 8 + z 2 8 x y z 2 8 + x y 2 z 8 x 2 y z 8 x y z 8 + x 2 y 2 z   +   1 8 1 8
7 x y 2 8 y 8 x 8 + x 2 y 8 + x z 2 8 + y z 2 8 + z 2 8 + x y z 2 8 + x y 2 z 8 + x 2 y z 8 + x y z 8 + x 2 y 2 z   +   1 8 1 8
8 x 8 y 8 x y 2 8 + x 2 y 8 x z 2 8 + y z 2 8 + z 2 8 x y z 2 8 x y 2 z 8 + x 2 y z 8 x y z 8 + x 2 y 2 z   +   1 8 1 8
9 y z 4 z 4 y 4 + x 2 y 4 + x 2 z 4 x 2 4 x 2 y z 4 + 1 4
10 x 4 z 4 x z 4 x y 2 4 + y 2 z 4 y 2 4 + x y 2 z 4 + 1 4
11 y 4 z 4 y z 4 x 2 y 4 + x 2 z 4 x 2 4 + x 2 y z 4 + 1 4
12 x z 4 z 4 x 4 + x y 2 4 + y 2 z 4 y 2 4 x y 2 z 4 + 1 4
13 x 2 y 4 y z 4 y 4 + y 2 z 4 + y 2 4 + x 2 y z 4 x 2 y 2 z   +   1 4
14 x 4 + x z 4 x y 2 4 + x 2 z 4 + x 2 4 x y 2 z 4 x 2 y 2 z   +   1 4
15 y 4 + y z 4 x 2 y 4 + y 2 z 4 + y 2 4 x 2 y z 4 x 2 y 2 z   +   1 4
16 x y 2 4 x z 4 x 4 + x 2 z 4 + x 2 4 + x y 2 z 4 x 2 y 2 z   +   1 4
17 x y 4 y 4 x 4 + x z 2 4 + y z 2 4 z 2 4 x y z 2 4 + 1 4
18 x 4 y 4 x y 4 x z 2 4 + y z 2 4 z 2 4 + x y z 2 4 + 1 4
19 x 4 + y 4 + x y 4 x z 2 4 y z 2 4 z 2 4 x y z 2 4 + 1 4
20 y 4 x 4 x y 4 + x z 2 4 y z 2 4 z 2 4 + x y z 2 4 + 1 4
21 z 2 x 2 z 2 y 2 z 2 x 2 2 y 2 2 + x 2 y 2 z   +   1 2 + 1 2
Table A8. Surface_Nodes_and_vectors for 21-node brick element.
Table A8. Surface_Nodes_and_vectors for 21-node brick element.
Node Number n x n y n z
2100
3100
6100
7100
10100
14100
18100
19100
1−100
4−100
5−100
8−100
12−100
16−100
17−100
20−100
3010
4010
7010
8010
11010
15010
19010
20010
10−10
20−10
50−10
60−10
90−10
130−10
170−10
180−10
5001
6001
7001
8001
13001
14001
15001
16001
21001
100−1
200−1
300−1
400−1
900−1
1000−1
1100−1
1200−1
Table A9. Element formulation steps.
Table A9. Element formulation steps.
ObjectiveProcedure
20-node brick formulationSegment 1 optionsHexahedron or Brick elementClick
Polynomial degree along x 2
Polynomial degree along y 2
Polynomial degree along z 2
Lagrangian FamilyUn-check
Integration quadratureGauss–Legendre
Segment 2 optionsDo not guessUnchecked
Generate shape function!Click
21-node brick formulationSegment 1 optionsArbitrary or Custom elementClick
Import ElementPrevious Element
Number of nodes21
Input Node coordinates in the 21st row0 0 1
Input Interpolation function in the 21st row x 2 y 2 ( z + 1 )
Integration quadratureGauss–Legendre
Segment 2 optionsDo not guessUnchecked
Generate shape function!Click
20 and 21-node brick compatibility testSegment 1 optionsCompare shape functionClick
Check interelement compatibilityClick
36-node brick elementSegment 1 optionsHexahedron or Brick elementClick
Polynomial degree along x 4
Polynomial degree along y 4
Polynomial degree along z 2
Lagrangian FamilyUn-check
Integration quadratureGauss–Legendre
Segment 2 optionsDo not guessUnchecked
Generate shape function!Click
43-node brick element for Germain–Lagrange plate bendingSegment 1 optionsArbitrary or Custom elementClick
Import ElementPrevious Element
Number of nodes43
Input Node coordinates0 0 1
0 0 −1
0 1 0
0 −1 0
1 0 0
−1 0 0
0 0 0
Input monomial basis functions x 2   y 2   z 2
x 2 y 2 z
x 2   y z 2
x y 2 z 2
x 2 y 2
z 2 y 2
x 2 z 2
Integration quadratureGauss–Legendre
Segment 2 optionsDo not guessUnchecked
Generate shape function!Click
75-node brick elementSegment 1 optionsHexahedron or Brick elementClick
Polynomial degree along x 4
Polynomial degree along y 4
Polynomial degree along z 2
Lagrangian FamilyCheck
Integration quadratureGauss–Lobatto
Segment 2 optionsDo not guessUnchecked
Generate shape function!Click
43-node transition element from fourth to second order Lagrangian elementSegment 1 optionsArbitrary or Custom elementClick
Import ElementPrevious Element
Number of nodes43
Remove Node coordinates0 0 1
0 0 −1
0 1 0
0 −1 0
1 0 0
−1 0 0
0 0 0
Remove monomial basis functionsFactors with
m x < 3 m y < 3 m z < 3
Modify monomial basis functions x 3 z   +   1
y 3 z   +   1
x 4 z   +   1
x 3 y z   +   1
y 3 z   +   1
y 4 z   +   1
x 4 y z   +   1
x 3 y 2 z   +   1
Integration quadratureGauss–Lobatto
Segment 2 optionsDo not guessUnchecked
Generate shape function!Click
Spectral hexahedron
formulation
Segment 1 optionsHexahedron or Brick elementClick
Polynomial degree along x 5
Polynomial degree along y 5
Polynomial degree along z 2
Lagrangian FamilyCheck
Integration quadratureGauss–Lobatto
Segment 2 optionsDo not guessUnchecked
Generate shape function!Click
Spectral tetrahedron
formulation
Segment 1 optionsTetrahedron elementClick
Element order5
No of Sub-Tetrahedrons8
Integration order for reference tetrahedron1
Segment 2 optionsDo not guessUnchecked
Generate shape function!Click

References

  1. Zienkiewicz, O.C.; Taylor, R.L.; Zhu, J.Z. The Finite Element Method: Its Basis and Fundamentals, 7th ed.; Elsevier: Amsterdam, The Netherlands, 2013. [Google Scholar] [CrossRef]
  2. Bunting, C.F. Introduction to the finite element method. In Proceedings of the 2008 IEEE International Symposium on Electromagnetic Compatibility, Detroit, MI, USA, 18–22 August 2008; pp. 1–9. [Google Scholar] [CrossRef]
  3. Chari, M.; Salon, S. Numerical Methods in Electromagnetism; Elsevier: Amsterdam, The Netherlands, 2000. [Google Scholar] [CrossRef]
  4. Bathe, K.-J. Discontinuous Finite Element Procedures. In Computational Fluid and Solid Mechanics; Springer: London, UK, 2006; pp. 21–43. [Google Scholar] [CrossRef]
  5. Logg, A.; Lundholm, C.; Nordaas, M. Finite element simulation of physical systems in augmented reality. Adv. Eng. Softw. 2020, 149, 102902. [Google Scholar] [CrossRef]
  6. Liu, L.; Davies, K.B.; Křížek, M.; Guan, L. On Higher Order Pyramidal Finite Elements. Adv. Appl. Math. Mech. 2011, 3, 131–140. [Google Scholar] [CrossRef]
  7. Smith, M. ABAQUS/Standard User’s Manual, Version 6.9; Dassault Systèmes Simulia Corp.: Johnston, RI, USA, 2009. [Google Scholar]
  8. Staten, M.L.; Jones, N.L. Local refinement of three-dimensional finite element meshes. Eng. Comput. 1997, 13, 165–174. [Google Scholar] [CrossRef]
  9. Duczek, S.; Saputra, A.; Gravenkamp, H. High order transition elements: The xy-element concept—Part I: Statics. Comput. Methods Appl. Mech. Eng. 2020, 362, 112833. [Google Scholar] [CrossRef]
  10. Buczkowski, R. 21-node hexahedral isoparametric element for analysis of contact problems. Commun. Numer. Methods Eng. 1998, 14, 681–692. [Google Scholar] [CrossRef]
  11. Smith, I.M.; Kidger, D.J. Elastoplastic analysis using the 14-node brick element family. Int. J. Numer. Methods Eng. 1992, 35, 1263–1275. [Google Scholar] [CrossRef]
  12. Canuto, C.; Hussaini, M.Y.; Quarteroni, A.; Zang, T.A. Spectral Approximation. In Spectral Methods in Fluid Dynamics; Springer: Berlin/Heidelberg, Germany, 1988; pp. 31–75. [Google Scholar] [CrossRef]
  13. Patera, A.T. A spectral element method for fluid dynamics: Laminar flow in a channel expansion. J. Comput. Phys. 1984, 54, 468–488. [Google Scholar] [CrossRef]
  14. Palacz, M.; Krawczuk, M.; Żak, A. Spectral Element Methods for Damage Detection and Condition Monitoring. In Smart Innovation, Systems and Technologies; Springer: Berlin/Heidelberg, Germany, 2020; Volume 166, pp. 549–558. [Google Scholar] [CrossRef]
  15. Soman, R.; Kudela, P.; Balasubramaniam, K.; Singh, S.K.; Malinowski, P. A Study of Sensor Placement Optimization Problem for Guided Wave-Based Damage Detection. Sensors 2019, 19, 1856. [Google Scholar] [CrossRef]
  16. Ostachowicz, W.; Kudela, P.; Krawczuk, M.; Zak, A. Guided Waves in Structures for SHM: The Time-Domain Spectral Element Method; John Wiley & Sons, Ltd.: New York, NY, USA, 2012. [Google Scholar] [CrossRef]
  17. Komatitsch, D.; Tromp, J. Spectral-element simulations of global seismic wave propagation-I. Validation. Geophys. J. Int. 2002, 149, 390–412. [Google Scholar] [CrossRef]
  18. Arnold, D.N.; Awanou, G. The Serendipity Family of Finite Elements. Found. Comput. Math. 2011, 11, 337–344. [Google Scholar] [CrossRef]
  19. Silvester, P. Tetrahedral polynomial finite elements for the Helmholtz equation. Int. J. Numer. Methods Eng. 1972, 4, 405–413. [Google Scholar] [CrossRef]
  20. Duczek, S.; Duvigneau, F.; Gabbert, U. The finite cell method for tetrahedral meshes. Finite Elem. Anal. Des. 2016, 121, 18–32. [Google Scholar] [CrossRef]
  21. Kabir, H.; Matikolaei, S.A.H.H. Implementing an accurate generalized gaussian quadrature solution to find the elastic field in a homogeneous anisotropic media. J. Serbian Soc. Comput. Mech. 2017, 11, 11–19. [Google Scholar] [CrossRef]
  22. von Winckel, G. Legende-Gauss-Lobatto Nodes and Weights. MATLAB Central File Exchange. Available online: https://www.mathworks.com/matlabcentral/fileexchange/4775-legende-gauss-lobatto-nodes-and-weights (accessed on 20 September 2023).
  23. Sherwin, S.J.; Karniadakis, G.E. A new triangular and tetrahedral basis for high-order (hp) finite element methods. Int. J. Numer. Methods Eng. 1995, 38, 3775–3802. [Google Scholar] [CrossRef]
  24. Moore, J.L.; Morgan, N.R.; Horstemeyer, M.F. ELEMENTS: A high-order finite element library in C++. SoftwareX 2019, 10, 100257. [Google Scholar] [CrossRef]
  25. Cantwell, C.D.; Moxey, D.; Comerford, A.; Bolis, A.; Rocco, G.; Mengaldo, G. Nektar++: An open-source spectral/hp element framework. Comput. Phys. Commun. 2015, 192, 205–219. [Google Scholar] [CrossRef]
  26. Vishwanatha, J.S.; Swamy, R.H.M.S.; Mahesh, G.; Gouda, H.V. A toolkit for computational fluid dynamics using spectral element method in Scilab. Mater. Today Proc. 2023. [Google Scholar] [CrossRef]
  27. Bangerth, W.; Hartmann, R.; Kanschat, G. deal. II—a general-purpose object-oriented finite element library. ACM Trans. Math. Softw. 2007, 33, 24. [Google Scholar] [CrossRef]
  28. Bastian, P.; Blatt, M.; Dedner, A.; Engwer, C.; Klöfkorn, R.; Kornhuber, R.; Ohlberger, M.; Sander, O. A generic grid interface for parallel and adaptive scientific computing. Part II: Implementation and tests in DUNE. Computing 2008, 82, 121–138. [Google Scholar] [CrossRef]
  29. Kolev, T. Modular Finite Element Methods; No. MFEM; Lawrence Livermore National Lab. (LLNL): Livermore, CA, USA, 2020.
  30. Weng, W.-C. Web-based post-processing visualization system for finite element analysis. Adv. Eng. Softw. 2011, 42, 398–407. [Google Scholar] [CrossRef]
  31. Beneš, Š.; Kruis, J. Efficient methods to visualize finite element meshes. Adv. Eng. Softw. 2015, 79, 81–90. [Google Scholar] [CrossRef]
  32. Wachspress, E.L. A Rational Basis for Function Approximation. IMA J. Appl. Math. 1973, 11, 83–104. [Google Scholar] [CrossRef]
  33. Kien, D.N.; Zhuang, X. Radial basis function based finite element method: Formulation and applications. Eng. Anal. Bound. Elem. 2023, 152, 455–472. [Google Scholar] [CrossRef]
  34. Parvizian, J.; Düster, A.; Rank, E. Finite cell method. Comput. Mech. 2007, 41, 121–133. [Google Scholar] [CrossRef]
  35. Schillinger, D.; Kollmannsberger, S.; Mundani, R.-P.; Rank, E. The finite cell method for geometrically nonlinear problems of solid mechanics. In IOP Conference Series: Materials Science and Engineering; Elsevier: Amsterdam, The Netherlands, 2014; Volume 10, pp. 3768–3782. [Google Scholar] [CrossRef]
  36. Fortune, S. Voronoi diagrams and delaunay triangulations. In Handbook of Discrete and Computational Geometry, 3rd ed.; World Scientific: Singapore, 2017; pp. 705–721. [Google Scholar] [CrossRef]
  37. Maździarz, M. Unified isoparametric 3D lagrangeFinite elements. CMES—Comput. Model. Eng. Sci. 2010, 66, 1–24. [Google Scholar]
  38. Neto, M.A.; Amaro, A.; Roseiro, L.; Cirne, J.; Leal, R. Engineering Computation of Structures: The Finite Element Method; Springer: Berlin/Heidelberg, Germany, 2015. [Google Scholar] [CrossRef]
  39. Bourbaki, N. Algebra I: Chapters 1–3; Springer Science & Business Media: Berlin/Heidelberg, Germany, 1998; Volume 1. [Google Scholar]
  40. Luo, H.; Pozrikidis, C. A Lobatto interpolation grid in the tetrahedron. IMA J. Appl. Math. 2006, 71, 298–313. [Google Scholar] [CrossRef]
  41. Reddy, J.N. Theory and Analysis of Elastic Plates and Shells, 2nd ed.; Taylor and Francis Group: Abingdon, UK, 2006. [Google Scholar]
  42. Shahriar, A.; Reynolds, S.; Najarian, M.; Montoya, A. Development of a Computational Framework for the Design of Resilient Space Structures. Earth and Space 2021: Space Exploration, Utilization, Engineering, and Construction in Extreme Environments. In Proceedings of the 17th Biennial International Conference on Engineering, Science, Construction, and Operations in Challenging Environments, Online, 19–23 April 2021; pp. 1263–1271. [Google Scholar] [CrossRef]
  43. Kitching, R.; Mattingly, H.; Williams, D.; Marais, K. Resilient Space Habitat Design Using Safety Controls. Earth and Space 2021: Space Exploration, Utilization, Engineering, and Construction in Extreme Environments. In Proceedings of the 17th Biennial International Conference on Engineering, Science, Construction, and Operations in Challenging Environments, Online, 19–23 April 2021; pp. 992–1003. [Google Scholar] [CrossRef]
Figure 1. Element formulation procedure flowchart.
Figure 1. Element formulation procedure flowchart.
Computation 11 00197 g001
Figure 2. Compatibility condition check flowchart (Stage 3).
Figure 2. Compatibility condition check flowchart (Stage 3).
Computation 11 00197 g002
Figure 3. Algorithm for shape function determination.
Figure 3. Algorithm for shape function determination.
Computation 11 00197 g003
Figure 4. Decomposition of the reference tetrahedron, (a) 8, (b) 64.
Figure 4. Decomposition of the reference tetrahedron, (a) 8, (b) 64.
Computation 11 00197 g004
Figure 5. Elements 1 (a) and 2 (b) in x coordinate. Bold black rectangle indicates surface p and q.
Figure 5. Elements 1 (a) and 2 (b) in x coordinate. Bold black rectangle indicates surface p and q.
Computation 11 00197 g005
Figure 6. Element 2 after transformation in X coordinate.
Figure 6. Element 2 after transformation in X coordinate.
Computation 11 00197 g006
Figure 7. Delaunay triangulation and mapping.
Figure 7. Delaunay triangulation and mapping.
Computation 11 00197 g007
Figure 8. Software overview.
Figure 8. Software overview.
Computation 11 00197 g008
Figure 9. Overview of the options in Segments 1 and 2: (a) Hexahedron or Brick elements, (b) Tetrahedron element, (c) Arbitrary or Custom elements, and (d) Check interelement compatibility.
Figure 9. Overview of the options in Segments 1 and 2: (a) Hexahedron or Brick elements, (b) Tetrahedron element, (c) Arbitrary or Custom elements, and (d) Check interelement compatibility.
Computation 11 00197 g009
Figure 10. Input for 20-node brick element.
Figure 10. Input for 20-node brick element.
Computation 11 00197 g010
Figure 11. Input for the 21-node element.
Figure 11. Input for the 21-node element.
Computation 11 00197 g011
Figure 12. Nodal shape function for (a) Node 5 and (b) Node 21 evaluated in the space of the 21-node hexahedron element.
Figure 12. Nodal shape function for (a) Node 5 and (b) Node 21 evaluated in the space of the 21-node hexahedron element.
Computation 11 00197 g012
Figure 13. Shape function comparison between the 20 and 21-node brick elements.
Figure 13. Shape function comparison between the 20 and 21-node brick elements.
Computation 11 00197 g013
Figure 14. Formulation of 43-node brick element.
Figure 14. Formulation of 43-node brick element.
Computation 11 00197 g014
Figure 15. Nodal shape function for (a) Node 6 and (b) Node 35.
Figure 15. Nodal shape function for (a) Node 6 and (b) Node 35.
Computation 11 00197 g015
Figure 16. Inter-element compatibility with (a) quadratic and (b) fourth-order Lagrangian element.
Figure 16. Inter-element compatibility with (a) quadratic and (b) fourth-order Lagrangian element.
Computation 11 00197 g016
Figure 17. Evaluation of shape functions over the volume of the element for (a) N70 of a higher-order hexahedron and (b) N50 of a higher-order tetrahedron element.
Figure 17. Evaluation of shape functions over the volume of the element for (a) N70 of a higher-order hexahedron and (b) N50 of a higher-order tetrahedron element.
Computation 11 00197 g017
Table 1. Integration points weights and parametric coordinates of the element’s surfaces.
Table 1. Integration points weights and parametric coordinates of the element’s surfaces.
SurfaceIntegration Point Weights n s x T n s y T n s z T
x = 1 w y w z T 0 1 0 0 0 1 1 0 0
x = 1 w y w z T 0 0 1 0 1 0 1 0 0
y = 1 w x w z T 0 0 1 1 0 0 0 1 0
y = 1 w x w z T 1 0 0 1 0 0 0 1 0
z = 1 w x w y T 1 0 0 0 1 0 0 0 1
z = 1 w x w y T 0 1 0 1 0 1 0 0 1
Table 2. Parametric coordinates of element surface.
Table 2. Parametric coordinates of element surface.
Surface n s x T n s y T n s z T
x = 1 0 0 1 0 1 0 1 0 0
y = 1 1 0 0 1 0 0 0 1 0
z = 1 0 1 0 1 0 1 0 0 1
x + y + z = 1 0.8165 0.4082 0.4082   0 1 2 1 2 1 3 1 3 1 3
Table 3. Segment 1 sub-options and description.
Table 3. Segment 1 sub-options and description.
Seg 1: Input OptionsSub-OptionsDescription
Hexahedron or Brick elementPolynomial degree along x m x of Equation (17)
Polynomial degree along y m y of Equation (18)
Polynomial degree along z m z of Equation (19)
Lagrangian FamilyChecking this option will formulate a Lagrangian element. Otherwise, a Serendipity element will be formulated
Integration quadratureThis option offers two integration quadratures;
(1) Gauss–Legendre
(2) Gauss–Lobatto
Tetrahedron elementElement order m in Equation (27)
Number of Sub-TetrahedralThe number of sub-tetrahedrons used for integration quadrature following the finite cell method. It is active when an element order greater than 4 is used.
Integration order for reference tetrahedronThe integration order for each sub-tetrahedron. It is active when an element order greater than 4 is used.
Arbitrary or Custom elementInput node coordinatesA table where the user can input the nodal distribution of the desired element and cartesian coordinates (x, y, z) for each node.
Input interpolation functionA table where the user can input F i x , y , z from Equation (3), where i = 1   d and d is the number of nodes.
Integration quadratureIf the software detects an arbitrary element from the isoparametric hexahedron family, it will determine the selected integration quadrature from one of the selected options: (1) Gauss–Legendre and (2) Gauss–Lobatto.
Integration order for reference tetrahedronIf the element is not from an isoparametric hexahedron family, the integration quadrature is determined following the procedure presented in Section 2.2 with the integration order selected in this option
Check interelement compatibility Used to illustrate two consecutively generated elements
Table 4. Output files to Matlab workspace.
Table 4. Output files to Matlab workspace.
Workspace Filename DescriptionData Structure
Interpolation_FunctionsStores interpolation in symbolic format F 1 F 2 . F d
F i : Function I of Equation 1 in symbolic format
Node_CoordinatesStores node coordinates n x 1 n y 1 n z 1 n x 2 n y 2 n z 2 . . . n x d n y d n z d
n j ( n x i , n y i , n z i ) where n x i x coordinate of node i .
Shape_FunctionsStores shape functions in symbolic format for the corresponding nodes N 1 N 2 . N d
N i : Shape function i in symbolic format.
Surface_Nodes_and_vectorsStores nodes on surface and surface normal vector pointing outward of the domain for all surfaces a n x a n y a n z a b n x b n y b n z b . . . . d n x d n y d n z d
a , b , d are node numbers and integers. n j ( n x j , n y j , n z j ) is the normal vector pointing outward of the domain on the surface containing node j .
Integration_Points_Coordinates_WeightsStores integration points and weights inside the element g x 1 g y 1 g z 1 w 1 g x 2 g y 2 g z 2 w 2 . . . . g x d g y d g z d w d
g j ( g x j , g y j , g z j ) where g x j :   x coordinate of integration point j . w j : weight of integration point j .
Integration_Points_Coordinates_Weights_Vectors on_SurfaceStores integration points and weights on surfaces and surface normal vector pointing outward of the domain for all surfaces g x 1 g y 1 g z 1 w 1 g x 2 g y 2 g z 2 w 2 . . . . g x d g y d g z d w d n x 1 n y 1 n z 1 n x 2 n y 2 n z 2 . . . n x d n y d n z d
g j ( g x j , g y j , g z j ) where g x j x coordinate of integration point j . w j : weight of integration point. j .   n j ( n x j , n y j , n z j ) is the normal unit vector pointing outward of the domain on the surface at integration point j .
Parametric_CoordinatesStores parametric coordinates for each surface of the element n x 1 n y 1 n x 2 n y 2 n x 3 n y 3 S
n x j and n y j are the parametric x and y coordinates, respectively. S represents the surface number.
Shape_MatrixStores the value of each shape function evaluated at each integration point N 1 g 1 N 2 g 1 . N n g d N 1 g 2 N 2 g 2 . N n g d . . . . N 1 g n N 2 g d . N n g d
N i g j : shape function i evaluated at integration point j .
dx_Shape_MatrixStores the value of the first derivative of each shape function evaluated at each integration point N 1 x g 1 N 2 x g 1 . N n x g 1 N 1 x g 2 N 2 x g 2 . N n x g 2 . . . . N 1 x g n N 2 x g n . N n x g n
N i x g j : shape function derivative i evaluated at integration point j .
Table 5. Factors of interpolation function of 75 and 43 node elements.
Table 5. Factors of interpolation function of 75 and 43 node elements.
Coefficient No.75 Node Element Factors43 Node Element Factors
Factors with,
m x < 3 m y < 3 m z < 3
Factors of f n 20 Factors of f n 20
x 2 y 2 x 2 y 2
x 2 y 2 z x 2 y 2 z
x 2 y z 2 x 2 y z 2
x y 2 z 2 x y 2 z 2
x 2 y 2 z 2 x 2 y 2 z 2
x 2 z 2 x 2 z 2
y 2 z 2 y 2 z 2
Factors with m z = 1 x 3 z x 3 z   +   1
y 3 z y 3 z   +   1
x 4 z x 4 z   +   1
x 3 y z x 3 y z   +   1
y 3 z y 3 z   +   1
y 4 z y 4 z   +   1
x 4 y z x 4 y z   +   1
x 3 y 2 z x 3 y 2 z   +   1
x 2 y 3 z x 2 y 3 z   +   1
x y 4 z x y 4 z   +   1
x 4 y 2 z x 4 y 2 z   +   1
x 2 y 4 z x 2 y 4 z   +   1
x 4 y 3 z x 4 y 3 z   +   1
x 3 y 4 z x 3 y 4 z   +   1
x 3 y 3 z x 3 y 3 z   +   1
x 4 y 4 z x 4 y 4 z   +   1
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Shahriar, A.; Majlesi, A.; Montoya, A. A General Procedure to Formulate 3D Elements for Finite Element Applications. Computation 2023, 11, 197. https://doi.org/10.3390/computation11100197

AMA Style

Shahriar A, Majlesi A, Montoya A. A General Procedure to Formulate 3D Elements for Finite Element Applications. Computation. 2023; 11(10):197. https://doi.org/10.3390/computation11100197

Chicago/Turabian Style

Shahriar, Adnan, Arsalan Majlesi, and Arturo Montoya. 2023. "A General Procedure to Formulate 3D Elements for Finite Element Applications" Computation 11, no. 10: 197. https://doi.org/10.3390/computation11100197

APA Style

Shahriar, A., Majlesi, A., & Montoya, A. (2023). A General Procedure to Formulate 3D Elements for Finite Element Applications. Computation, 11(10), 197. https://doi.org/10.3390/computation11100197

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop