JAM Journal of Applied Mathematics 1687-0042 1110-757X Hindawi Publishing Corporation 10.1155/2014/932314 932314 Research Article Fast Stiffness Matrix Calculation for Nonlinear Finite Element Method Gülümser Emir 1 Güdükbay Uğur 1 Filiz Sinan 2 Zhang Henggui 1 Department of Computer Engineering Bilkent University 06800 Ankara Turkey bilkent.edu.tr 2 Department of Mechanical Engineering Bilkent University 06800 Ankara Turkey bilkent.edu.tr 2014 2882014 2014 29 05 2014 24 07 2014 06 08 2014 28 8 2014 2014 Copyright © 2014 Emir Gülümser et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

We propose a fast stiffness matrix calculation technique for nonlinear finite element method (FEM). Nonlinear stiffness matrices are constructed using Green-Lagrange strains, which are derived from infinitesimal strains by adding the nonlinear terms discarded from small deformations. We implemented a linear and a nonlinear finite element method with the same material properties to examine the differences between them. We verified our nonlinear formulation with different applications and achieved considerable speedups in solving the system of equations using our nonlinear FEM compared to a state-of-the-art nonlinear FEM.

1. Introduction

Mesh deformations have widespread usage areas, such as computer games, computer animations, fluid flow, heat transfer, surgical simulations, cloth simulations, and crash test simulations. The major goal in mesh deformations is to establish a good balance between the accuracy of the simulation and the computational cost; achieving this balance depends on the application. The speed of the simulation is far more important than the accuracy in computer games. The simulation needs to be real-time in order to be used in games so free-form deformation or fast linear FEM solvers can be used. However, high computation cost gives much more accurate results when we are working with life-critical applications such as car crash tests, surgical simulators, and concrete analysis of buildings; even linear FEM solvers are not adequate enough for these types of applications in terms of the accuracy.

For realistic and highly accurate deformations, one can use the finite element method (FEM), a numerical technique to find approximate solutions to engineering and mathematical physics problems. FEM could be used to solve problems in areas such as structural analysis, heat transfer, fluid flow, mass transport, and electromagnetics [1, 2].

We propose a fast stiffness matrix calculation technique for nonlinear FEM. We derive nonlinear stiffness matrices using Green-Lagrange strains, themselves derived from infinitesimal strains by adding the nonlinear terms discarded from infinitesimal strain theory.

We mainly focus on the construction of the stiffness matrices because change in material parameters and change in boundary conditions can be directly represented and applied without choosing a proper FEM . Joldes et al.  and Taylor et al.  achieve real-time computations of soft tissue deformations for nonlinear FEM using GPUs; however, they do not describe how they compute stiffness matrices; thus, we cannot implement their methods and compare them with our proposed method. Cerrolaza and Osorio describe a simple and efficient method to reduce the integration time of nonlinear FEM for dynamic problems using hexahedral 8-noded finite elements . We compare our stiffness matrix calculations with Pedersen’s method  to measure performance and verify correctness. We achieve a 142% speedup in calculating the stiffness matrices and a 15% speedup in solving the whole system on average, compared to Pedersen’s method.

2. The Nonlinear FEM with Green-Lagrange Strains

We use tetrahedral elements for modeling meshes in the experiments. Overall, there are 12 unknown nodal displacements in a tetrahedral element. They are given by  (1){d}={u(x,y,z)}={u1v1w1u4v4w4}. In global coordinates, we represent displacements by linear function by (2)ue(x,y,z)=c1+c2x+c3y+c4z.

For all 4 vertices, (2) is extended as (3)[1x1y1z11x2y2z21x3y3z31x4y4z4]{c1c2c3c4}={u1u2u3u4}. Constants cn can be found as (4)cn=v-1un, where v-1 is given by (5)v-1=1det(v)[α1α2α3α4β1β2β3β4γ1γ2γ3γ4δ1δ2δ3δ4].det(v) is 6V, where V is the volume of the tetrahedron. If we substitute (4) into (2), we obtain (6)ue(x,y,z)=16Ve[1xyz][α1α2α3α4β1β2β3β4γ1γ2γ3γ4δ1δ2δ3δ4]{u1u2u3u4}.α, β, γ, δ, and the volume V are calculated by (7)α1=|x2y2z2x3y3z3x4y4z4|,α2=-|x1y1z1x3y3z3x4y4z4|,α3=|x1y1z1x2y2z2x4y4z4|,α4=-|x1y1z1x2y2z2x3y3z3|,β1=-|1y2z21y3z31y4z4|,β2=|1y1z11y3z31y4z4|,β3=-|1y1z11y2z21y4z4|,β4=|1y1z11y2z21y3z3|,γ1=|1x2z21x3z31x4z4|,γ2=-|1x1z11x3z31x4z4|,γ3=|1x1z11x2z21x4z4|,γ4=-|1x1z11x2z21x3z3|,δ1=-|1x2y21x3y31x4y4|,δ2=|1x1y11x3y31x4y4|,δ3=-|1x1y11x2y21x4y4|,δ4=|1x1y11x2y21x3y3|,6V=|1xiyizi1xjyjzj1xkykzk1xlylzl|. Because of the differentials in strain calculation, α is not used in the following stages. If we expand (6), we obtain (8)ue(x,y,z)=16Ve[α1+β1x+γ1y+δ1zα2+β2x+γ2y+δ2zα3+β3x+γ3y+δ3zα4+β4x+γ4y+δ4z]×[u(x,y,z)1u(x,y,z)2u(x,y,z)3u(x,y,z)4]. For tetrahedral elements, to express displacements in simpler form, shape functions are introduced (ψ1,ψ2,ψ3,ψ4). They are given by (9)ψ1=16V(α1+β1x+γ1y+δ1z)u(x,y,z)1,ψ2=16V(α2+β2x+γ2y+δ2z)u(x,y,z)2,ψ3=16V(α3+β3x+γ3y+δ3z)u(x,y,z)3,ψ4=16V(α4+β4x+γ4y+δ4z)u(x,y,z)4.

In our method, nonlinear stiffness matrices are derived using Green-Lagrange strains (large deformations), which themselves are derived directly from infinitesimal strains (small deformations), by adding the nonlinear terms discarded in infinitesimal strain theory. The proposed nonlinear FEM uses the linear FEM framework but it does not require the explicit use of weight functions and differential equations. Hence, numerical integration is not needed for the solution of the proposed nonlinear FEM. Instead of using weight functions and integrals, we use displacement gradients and strains to make the elemental stiffness matrices space-independent in order to discard the integral. We extend the linear FEM to the nonlinear FEM by extending the linear strains to the Green-Lagrange strains.

We constructed our linear FEM by extending Logan’s 2D linear FEM to 3D . To understand Green-Lagrange strains, we must first see how they differ from the infinitesimal strains used to calculate the global stiffness matrices in a linear FEM. Figure 1 shows a 2D element before and after deformation, where the element edge AB with initial length dx becomes AB. The engineering normal strain is calculated as the change in the length of the line (10)εx=|AB|-|AB||AB|. The final length of the elemental edge can be calculated using (11)|AB|2=(dx+uxxdx)2+(uyxdx)2,|AB|2=dx2[1+2(uxx)+(uxx)2+(uyx)2]. By neglecting the higher-order terms in (11), 2D infinitesimal strains are defined by (12)εxx=uxx,εyy=uyy,εxy=12(uxy+uyx).

2D element before and after deformation.

By the definition, the nonlinear FEM differs from the linear FEM because of the nonlinearity that arises from the higher-order term neglected in calculation of strains. The strain vector used in the linear FEM relies on the assumption that the displacements at the x-axis, y-axis, and z-axis are very small. The initial and final positions of a given particle are practically the same; thus, the higher-order terms are neglected . When the displacements are large, however, this is no longer the case and one must distinguish between the initial and final coordinates of the particles; thus the higher-order terms are added into the strain equations. By adding these high-order terms, 3D strains are defined as  (13)ηxx=uxx+12[(uxxuxx)+(uyxuyx)+(uzxuzx)],ηyy=uyy+12[(uxyuxy)+(uyyuyy)+(uzyuzy)],ηzz=uzz+12[(uxzuxz)+(uyzuyz)+(uzzuzz)],ηxy=12(uxy+uyx)11111+12[(uxxuxy)+(uyxuyy)+(uzxuzy)],ηzx=12(uzx+uxz)11111+12[(uxzuxx)+(uyzuyx)+(uzzuzx)],ηyz=12(uyz+uzy)11111+12[(uxyuxz)+(uyyuyz)+(uzyuzz)], which leads to (14){n}={ηxxηyyηzz2(ηxy+ηyx)2(ηxz+ηzx)2(ηyz+ηzy)}={ηxxηyyηzz2ηxy2ηzx2ηyz}. The Green-Lagrange strain tensor is represented in matrix notation as (15){η}=[BLT]{d}+12{d}T[BNL]{d}, where {d} is the nodal displacement, [BL] is the linear, and [BNL] is the nonlinear part of the [B0] matrix . For a specific element, [BL] and [BNL] are constant, as with the [B] matrix in the linear FEM. With the variation of {d} , (15) becomes (16){η¯}=[BLT]{d}+{d}T[BNL]{d}.

Gathering the strain components together, we can rewrite (15) and (16) as (17){η}=([BL]+12{dT}[BNL]){d}=[B0]{d},{η¯}=([BL]+{dT}[BNL]){d}=[B0¯]{d}.

The linear part of the [B0] matrix ([BL]) is the same as the [B] matrix in the linear FEM. Calculating [B0] becomes more complex with the introduction of the nonlinear terms. After finding the nonlinear strains, these equations are combined with the shape functions to find matrix [B0]: (18){η¯}=[B0¯]{d}. The most frequently used terms, which are the nine displacement gradients for calculating the nonlinear strains, are ux/x, ux/y, ux/z, uy/x, uy/y, uy/x, uz/x, uz/y, and uz/z. Using (8) for displacements, we can construct the displacement gradients using the partial derivatives of the shape functions. They are represented by (19)uxx=16V(β1u1+β2u2+β3u3+β4u4),uyx=16V(β1v1+β2v2+β3v3+β4v4),uzx=16V(β1w1+β2w2+β3w3+β4w4),uxy=16V(γ1u1+γ2u2+γ3u3+γ4u4),uyy=16V(γ1v1+γ2v2+γ3v3+γ4v4),uzy=16V(γ1w1+γ2w2+γ3w3+γ4w4),uxz=16V(δ1u1+δ2u2+δ3u3+δ4u4),uyz=16V(δ1v1+δ2v2+δ3v3+δ4v4),uzz=16V(δ1w1+δ2w2+δ3w3+δ4w4), where uxx represents ux/x.

We can evaluate the partial derivatives of the shape functions as follows (for the 1st node of [BNL]): (20)[(uxxuxx)+(uyxuyx)+(uzxuzx)]=16V(β1(uxx+uyx+uzx)),[(uxyuxy)+(uyyuyy)+(uzyuzy)]=16V(γ1(uxy+uyy+uzy)),[(uxzuxz)+(uyzuyz)+(uzzuzz)]=16V(δ1(uxz+uyz+uzz)),[(uxxuxy)+(uyxuyy)+(uzxuzy)]=16V(γ1(uxx+uyx+uzx))+16V(β1(uxy+uyy+uzy)),[(uxzuxx)+(uyzuyx)+(uzzuzx)]  =16V(δ1(uxx+uyx+uzx))+16V(β1(uxz+uyz+uzz)),[(uxyuxz)+(uyyuyz)+(uzyuzz)]=16V(γ1(uxz+uyz+uzz))+16V(δ1(uxy+uyy+uzy)). Using (17) and (20), we obtain [B0¯] for the 1st node (21). Similarly, using (17) and (20), we obtain [B0] for the 1st node (22).

Consider (21)[B01¯]=[β1+β1(uxx)β1(uyx)β1(uzx)γ1(uxy)γ1+γ1(uyy)γ1(uzy)δ1(uxz)δ1(uyz)δ1+δ1(uzz)γ1+γ1(uxx)+β1(uxy)γ1(uyx)+β1+β1(uyy)γ1(uzx)+β1(uzy)δ1+δ1(uxx)+β1(uxz)δ1(uyx)+β1(uyz)δ1(uzx)+β1+β1(uzz)γ1(uxz)+δ1(uxy)γ1+γ1(uyz)+δ1(uyy)γ1(uzz)+δ1+δ1(uzy)]{u1v1w1},(22)[B01]=[β1+12β1(uxx)12β1(uyx)12β1(uzx)12γ1(uxy)γ1+12γ1(uyy)12γ1(uzy)12δ1(uxz)12δ1(uyz)δ1+12δ1(uzz)γ1+12γ1(uxx)+12β1(uxy)12γ1(uyx)+β1+12β1(uyy)12γ1(uzx)+12β1(uzy)δ1+12δ1(uxx)+12β1(uxz)12δ1(uyx)+12β1(uyz)12δ1(uzx)+β1+12β1(uzz)12γ1(uxz)+12δ1(uxy)γ1+12γ1(uyz)+12δ1(uyy)12γ1(uzz)+δ1+12δ1(uzy)]{u1v1w1}.

The FEM is derived from conservation of the potential energy, which is defined by (23)π=Estrain+W, where Estrain is the strain energy of the linear element and W is the work potential. They are given by (24)Estrain=12ΩeεTσdx,W=fedT, where the engineering strain vector {ɛ} is (25){ɛ}=[B]{d}. From (24), the engineering stress vector τ is related to the strain vector by (26)τ=[E]{η¯}=[E][B0¯]{d}. The secant relations are described by the matrix [E]. We substitute (15) and (26) into (24), obtaining the element stiffness matrix (27)[k(u)]={d}T[B0]T[E][B0¯]{d}dxdydz. We can discard the integrals as we did for the linear FEM. [B0], [E], and [B0¯] are constant for the four-node tetrahedral element, so (27) is rewritten as (28)[k(u)]={d}T[B0]T[E][B0¯]V. The secant stiffness matrix which is [ks(d)T]=[B0]T[E][B0¯] is nonsymmetric because of the fact that [B0]T[B0¯].

Introducing nodal forces, we obtain (29){f}={f1xf1yf1zf4xf4yf4z}{d}T. With the equilibrium equation and cancelling {d}T, the whole system for one element reduces to (30)ks(d)e{d}e=fe. By substituting {d} with u, we obtain (31)ks(u)eue=fe. Finally, only nonlinear displacement functions remain, which are solved with Newton-Raphson to find the unknown displacements u .

Element residuals are necessary for the iterative Newton-Raphson method. The element residual is a 12×1 vector for a specific element. The residual for a specific element is defined as (32)re=ks(u)e-fe. Having determined re, we can now express (32) in expanded vector form as(33){r1r2r3r12}=[ks(u)(1,1)+ks(u)(1,2)+ks(u)(1,3)++ks(u)(1,12)ks(u)(2,1)+ks(u)(2,2)+ks(u)(2,3)++ks(u)(2,12)ks(u)(3,1)+ks(u)(3,2)+ks(u)(3,3)++ks(u)(3,12)ks(u)(12,1)+ks(u)(12,2)+ks(u)(12,3)++ks(u)(12,12)]-{f1f2f3f12}.

The tangent stiffness matrix [K]Te(re) is also necessary for the iterative Newton-Raphson method. The tangent stiffness matrix is also 12×12 matrix, like the elemental stiffness matrix. However, the tangent stiffness matrix depends on residuals, unlike the elemental stiffness matrix. Elemental stiffness matrices are used to construct residuals and the derivatives of the residuals are used to construct the elemental tangent stiffness matrices. We can express the elemental tangent stiffness matrix for a specific element as(34)re=[K]Te=[u1r1v1r1w1r1u4r1v4r1w4r1u1r2v1r2w1r2u4r2v4r2w4r2u1r3v1r3w1r3u4r3v4r3w4r3u1r12v1r12w1r12u4r12v4r12w4r12].

Newton-Raphson method is a fast and popular numerical method for solving nonlinear equations , as compared to the other methods, such as direct iteration. In principle, the method works by applying the following two steps (cf. Algorithm 1): (i) check if the equilibrium is reached within the desired accuracy; (ii) if not, make a suitable adjustment to the state of the deformation . An initial guess for displacements is needed to start the iterations. The displacements are updated according to (35)xk+1=xk-fxkfxk.

<bold>Algorithm 1: </bold>Newton-Raphson method.

Make initial guess f(x)

while   | f ( x ) | δ   do

Compute p=-f(x)f(x)

Update x=x+p

Calculate f(x)

end while

In the proposed nonlinear FEM, u is the vector that keeps the information of the nodal displacements. Instead of making only one assumption, we make whole u vector initial guess in order to start the iteration.

Consider (36)u1=u0-ru0ru0, where r is residual of the global stiffness matrix [K] calculated in (33) and r is the tangent stiffness matrix calculated in (34).

At every step, the vector r and the matrix r are updated for every element with the new ui values. Then, r and r are assembled as we did with for the global stiffness matrix K and the global force vector F in linear FEM. Boundary conditions are applied to the global r vector and the global r matrix. Using the global r vector and the global r matrix, we have (37)r(ui)p=-r(ui),p=-(r(ui))-1r(ui).ui is updated with the solution of (37). Consider (38)ui+1=ui+p. Then, we check if the equilibrium is reached within the desired accuracy defined by δ as (39)|r(ui)|δ. After the desired accuracy is reached, the unknown nodal displacements are found.

3. Experimental Results

The proposed nonlinear FEM and Pedersen’s nonlinear FEM were implemented using MATLAB programming language. The visualizer was implemented with C++ language and connected to the solver using the MATLAB engine , which allows users to call the MATLAB solver from C/C++ or Fortran programs. The simulation results, interaction with the 3D model, and the 3D models themselves were visualized using OpenGL, and the nose experiment was visualized using 3ds Max . To speed up the nonlinear FEM, we used MAPLE’s symbolic solver , which is integrated into MATLAB. We conducted all the experiments on a desktop computer with a Core i7 3930 K processor overclocked at 4.2 GHz with 32 GB of RAM. We used linear material properties for the models in the experiments. We used 1 GPa for Young’s modulus (ϵ) because polypropylene has Young’s modulus between 1.5 and 2 GPa and polyethylene HDPE has Young’s modulus 0.8 GPa, which shows plastic properties and they are close to 1 GPa. Because most steels and plastic materials undergo plastic deformation near the value of 0.3, we used 0.25 for Poisson’s ratio (ν). Our simulation is static so we used a single load step in all experiments. Multiple load steps are used when the load forces are time-dependent or the simulation is dynamic .

We conducted four experiments, each having different number of elements to observe the speedup for both stiffness matrix calculation and for the solution of the system. As expected, the proposed method and Pedersen’s method produced same amount of nodal displacements in all experiments.

The first experiment was conducted for a cube mesh with eight nodes and six tetrahedral elements. Figure 2 shows that the cube is constrained at the upper four nodes and pulled downwards with a small amount of force (one unit force for each of the upper four nodes). This experiment was conducted with a small mesh in order to carefully examine the nodal displacements and strains for each element. Figure 3 shows the initial and final positions of the nodes for the linear and nonlinear FEMs, respectively. As seen in Figure 3, the linear and nonlinear methods produce similar displacements when the force magnitude is small. Tables 1 and 2 show the displacements at force applied nodes (first, second, third, and fourth) using the linear and nonlinear FEMs, respectively. Figure 4 shows that displacement increases linearly with force magnitude. However, as expected, the nonlinear FEM behaves quadratically due to the nonlinear strain definitions. Figure 5 depicts the convergence of the Newton-Raphson method for the nonlinear FEM.

The displacements (in m) at nodes 1, 2, 3, and 4 using the linear FEM for the first experiment. The displacements of nodes 5 to 8 for all axes are zero.

Node Displacement-x Displacement-y Displacement-z
1 0.027234 0.011064 −0.289965
2 0.004306 −0.109719 −0.440739
3 −0.066065 −0.056547 −0.343519
4 −0.107536 0.070143 −0.514524

The displacements (in m) at nodes 1, 2, 3, and 4 using the nonlinear FEM for the first experiment. The displacements of nodes 5 to 8 for all axes are zero.

Node Displacement-x Displacement-y Displacement-z
1 0.029911 0.012665 −0.278365
2 0.008606 −0.103350 −0.415594
3 −0.058835 −0.051901 −0.324126
4 −0.098945 0.068928 −0.478495

A 10×10×10 m cube mesh with eight nodes and six tetrahedra is constrained at the blue nodes and pulled downwards from the green nodes.

(a) The initial and final positions of the nodes for the linear FEM. (b) The initial and final positions of the nodes for the nonlinear FEM.

Force displacements (in m) at node 4 for the linear and nonlinear FEMs.

Newton-Raphson convergence graphics for the nonlinear FEM. The graph is plotted using the logarithmic scale.

The second experiment was conducted on a beam with 90 nodes and 216 tetrahedral elements. Figures 6(a) and 6(b) show that the beam is constrained at the blue nodes and twisted at both ends. Figure 7 shows the final shape of the beam mesh for both the proposed and Pedersen’s methods. Tables 3 and 4 show the displacements at force applied nodes (green nodes) for the second experiment using the linear and nonlinear FEMs, respectively.

The displacements (in m) at green nodes using the linear FEM for the second experiment. The displacements at blue nodes are zero.

Node Displacement-x Displacement-y Displacement-z
0 −3.717 4.208 −0.0394
1 4.738 4.208 −0.04947
2 4.737 −4.245 0.03777
3 −3.716 −4.246 0.04902
20 3.01 −3.547 −0.05429
21 −4.117 −3.548 −0.06143
22 −4.117 3.581 0.04348
23 3.01 3.581 0.05155

The displacements (in m) at green nodes using the nonlinear FEM for the second experiment. The displacements at blue nodes are zero.

Node Displacement-x Displacement-y Displacement-z
0 −2.083 4.102 0.3798
1 4.72 2.298 0.3588
2 2.913 −4.501 0.4586
3 −3.884 −2.699 0.4809
20 3.28 −2.561 −0.424
21 −2.842 −3.931 −0.4032
22 −4.217 2.194 −0.3018
23 1.911 3.565 −0.3212

The beam mesh is constrained at the blue nodes and twisted at the green nodes. (a) Front view; (b) side view, which shows the force directions applied on each green node.

Nonlinear FEM results for the both the proposed and Pedersen’s methods ((a) wireframe tetrahedra and nodes; (b) nodes only; (c) wireframe surface mesh; and (d) shaded mesh).

The third experiment was conducted with a cross mesh of 159 nodes and 244 tetrahedral elements. We aimed to observe if there is a root jump occurring when solving the system for a high amount of force (50 N units), and its effect on the computation times for both methods. Figure 8 shows that the cross shape is constrained at the blue nodes and pushed towards the green nodes. Figure 9 shows the final shape of the beam mesh for both the proposed and Pedersen’s methods. Tables 5 and 6 show the displacements at force applied nodes (green nodes) using the linear and nonlinear FEMs, respectively.

The displacements (in m) at green nodes using the linear FEM for the third experiment. The displacements at blue nodes are zero.

Node Displacement-x Displacement-y Displacement-z
5 5.004 230.5 7.241
6 −0.4613 239.9 0.01444
9 −2.3 231.8 6.271
10 −4.602 237.5 −0.1437
41 0.5991 234.5 −0.17

The displacements (in m) at green nodes using the nonlinear FEM for the third experiment. The displacements at blue nodes are zero.

Node Displacement-x Displacement-y Displacement-z
5 6.439 69.34 5.014
6 −0.2123 79.96 1.458
9 −3.372 44.71 −4.788
10 0.5483 77.37 0.06587
41 1.196 82.84 0.1512

The cross mesh is constrained at the blue nodes and pushed towards the green nodes.

Nonlinear FEM results for the both proposed and Pedersen’s methods: (a) initial and final wireframe meshes are overlaid; (b) initial and final shaded meshes are overlaid.

We conducted fourth experiment with a liver mesh of 465 nodes and 1560 tetrahedral elements. Figure 10 shows that the mesh is constrained at the blue nodes and pulled from the green node (30 N units) in the direction of the arrow. We aimed to observe the similar amount of speedup like previous experiments for a high density mesh. Figure 11 shows the final shape of the beam mesh for both the proposed and Pedersen’s methods. Tables 7 and 8 show the displacements at force applied node (node number 271) using the linear and nonlinear FEMs, respectively.

The displacements (in m) at green nodes using the linear FEM for the fourth experiment. The displacements at blue nodes are zero.

Node Displacement-x Displacement-y Displacement-z
271 1.086 −0.5297 11.88

The displacements (in m) at green nodes using the nonlinear FEM for the fourth experiment. The displacements at blue nodes are zero.

Node Displacement-x Displacement-y Displacement-z
271 0.6538 −0.1851 4.22

The liver mesh is constrained at the blue nodes and pulled from the green node ((a) initial nodes; (b) initial shaded mesh and nodes).

Nonlinear FEM results for both the proposed and Pedersen’s methods: (a) left: wireframe surface mesh; right: wireframe surface mesh with nodes; (b) left: shaded mesh; right: shaded mesh with nodes.

Computation times of the finite element experiments are required to compare how much faster our proposed method is than Pedersen’s. When comparing nonlinear FEMs, we calculated the computation times to construct the stiffness matrices as well as the computation times of the nonlinear FEM solutions to determine how different calculations affect them. Table 9 depicts the computation times for the stiffness matrix calculation and Table 10 depicts the computation times for the system solution. Table 11 shows the iteration counts to solve the system using the Newton-Raphson procedure.

Computation times (in seconds) of stiffness matrices (Pedersen: Pedersen’s nonlinear FEM; Proposed: proposed nonlinear FEM; and Speed-up: relative performance comparison of the stiffness matrix calculation of the proposed nonlinear FEM method with Pedersen’s nonlinear FEM method using single thread).

Exp. Elements Pedersen Proposed Speed-up
1st 6 0.7322 0.3308 221.3422
2nd 216 28.1624 11.1542 252.4825
3rd 224 30.1094 12.2725 245.3404
4th 1580 239.8753 96.7840 247.8460

Computation times (s) of system solutions (Pedersen: Pedersen’s nonlinear FEM; Proposed: proposed nonlinear FEM; and Speed-up: relative performance comparison of the proposed nonlinear FEM method with Pedersen’s nonlinear FEM method using single thread).

Exp. Elements Pedersen Proposed Speed-up
1st 6 3.0144 2.4427 123.4044
2nd 216 192.5288 159.6241 120.6139
3rd 224 586.2708 612.5911 95.7034
4th 1580 2840.7558 2401.0994 118.3106

Newton-Raphson iteration count to reach desired accuracy (Pedersen: Pedersen’s nonlinear FEM; Proposed: proposed nonlinear FEM).

Exp. Elements Pedersen Proposed
1st 6 5 5
2nd 216 7 7
3rd 224 26 32
4th 1580 8 8

The speed-up columns of Tables 9 and 10 depict the speedups of the proposed method compared to Pedersen’s method for the stiffness matrix calculation and the system solution using a single thread, respectively. The speedup is calculated as follows: (40)Speedup=Runtime(Pedersen'smethod)Runtime(Theproposedmethod).

Our proposed method outperforms Pedersen’s method. On the average, it is 142% faster at computing stiffness matrices because Pedersen’s method uses more symbolic terms. However, both methods use Newton-Raphson to solve nonlinear equations, which takes approximately 90% of the computation time. Thus, the overall speedup decreases to 15% on average. In experiment 3, because of more iterations due to root jumps, there was a performance loss against Pedersen’s method.

We also applied our method for corrective operation on the misshapen nose of a head mesh. The head mesh is composed of 6709 nodes and 25722 tetrahedral elements (see Figure 12(a)); all the operations were performed in the nose area of only 1458 tetrahedral elements. Figure 12(b) shows that the head mesh is constrained at the blue nodes and pushed upwards at the green nodes and Figure 12(c) shows the result of the nonlinear FEM.

(a) Initial misshapen nose. (b) The head mesh is constrained at the blue nodes and pushed upwards at the green nodes. (c) The result of the nonlinear FEM: left: wireframe surface mesh with nodes; right: shaded mesh with texture.

4. Conclusions and Future Work

We propose a new stiffness matrix calculation method for nonlinear FEM that is easier to analyze in terms of constructing elemental stiffness matrices and is faster than Pedersen’s method. The proposed method is approximately 2.4 times faster, on average, at computing stiffness matrices and 15% faster at computing the whole system than Pedersen’s method.

Although the proposed nonlinear FEM has significant advantages over Pedersen’s nonlinear FEM, there is still room for the following development.

Heuristics could be applied to avoid root jumps.

Although we decreased system memory usage by simplifying the solution process for the nonlinear FEM, a significant amount of system memory is still used. The solution process could be further optimized to decrease memory usage.

Conflict of Interests

The authors declare that there is no conflict of interests regarding the publication of this paper.

Bathe K.-J. Finite Element Procedures 1996 Englewood Cliffs, NJ, USA Prentice-Hall Logan D. L. A First Course in the Finite Element Method 2012 5th Cengage Learning Pedersen P. Analytical stiffness matrices for tetrahedral elements Computer Methods in Applied Mechanics and Engineering 2006 196 1-3 261 278 10.1016/j.cma.2006.04.001 ZBL1120.74832 2-s2.0-33846479941 Joldes G. R. Wittek A. Miller K. Real-time nonlinear finite element computations on GPU: application to neurosurgical simulation Computer Methods in Applied Mechanics and Engineering 2010 199 49–52 3305 3314 10.1016/j.cma.2010.06.037 2-s2.0-78249270335 Taylor Z. A. Cheng M. Ourselin S. High-speed nonlinear finite element analysis for surgical simulation using graphics processing units IEEE Transactions on Medical Imaging 2008 27 5 650 663 10.1109/TMI.2007.913112 2-s2.0-43049153024 Cerrolaza M. Osorio J. C. Relations among stiffness coefficients of hexahedral 8-noded finite elements: a simple and efficient way to reduce the integration time Finite Elements in Analysis and Design 2012 55 1 6 10.1016/j.finel.2012.02.004 MR2909468 2-s2.0-84857600887 Bonet J. Wood R. D. Nonlinear Continu um Mechanics for Finite Element Analysis 1997 1st Cambridge, UK Cambridge University Press MR1483068 Felippa C. A. Lecture notes in nonlinear fin ite element methods 1996 CUCSSC-96-16 Department of Aerospace Engineering Sciences and Center for Aerospace Structures, University of Colorado Pedersen P. The Basic Matrix Approach for Three Simple Finite Elements 2008 http://www.topopt.dtu.dk/files/PauliBooks/BasicMatrixApproachInFE.pdf Kelley C. T. Iterative Methods for Linear and Nonlinear Equations 1987 1st Society for Industrial Mathematics Frontiers in Applied Mathematics Krenk S. Non-linear Modeling and Analysi s of Solids and Structures 2009 1st Cambridge University Press 10.1017/CBO9780511812163 MR2549830 The Mathworks Calling MATLAB Engine from C/C++ and Fortran Programs 2014, http://www.mathworks.com/help/matlab/matlab_external/_f38569.html Autodesk 3ds Max—3D Modeling, Ani mation, and Rendering Software 2012, http://www.autodesk.com/products/autodesk-3ds-max/ Maplesoft MATLAB Connectivity—Maple Features 2012, http://www.maplesoft.com/products/maple/features/matlabconnectivity.aspx Madenci E. Guven I. The Finite Element Method and Applications in Engineering Using ANSYS 2006 1st Berlin, Germany Springer