Code verification examples based on the method of manufactured solutions for Kirchhoff–Love and Reissner–Mindlin shell analysis
 886 Downloads
 1 Citations
Abstract
We propose code verification examples based on the method of manufactured solutions (MMS) for Kirchhoff–Love and Reissner–Mindlin shell analysis. In order to ensure the credibility of numerical simulations reliable software has to be provided. Code verification is the process of ensuring that there are no coding mistakes in the implementation and that the algorithms work properly. The MMS is an elegant method to derive exact solutions to boundary value problems which can be used for rigorous order of accuracy tests within the code verification process. We apply the proposed tests to an inhouse developed finite element research code implementing elements for Kirchhoff–Love and Reissner–Mindlin shell analysis.
Keywords
Code verification Method of manufactured solutions Shell analysis Kirchhoff–Love Reissner–Mindlin1 Introduction
In order to ensure the reliability of complex computational models, verification and validation (\(V \& V\)) are unavoidable tasks [1, 2]. In the present paper, we follow the concepts on \(V \& V\)of The American Society of Mechanical Engineers guideline [3]. The process of validation determines how accurate the model represents the real situation. The aim of verification is to show that the simulation results are able to represent accurately the solution of the underlying mathematical model. Thus, one is interested in the numerical error, which is the difference between the simulation results and the exact solution of the mathematical model. The comparison of simulation results with experimental data is only feasible if the results are not significantly influenced by the numerical error. Therefore, the process of verification has to precede the validation process. Verification activities can be split into code verification and calculation verification. Code verification represents the process of demonstrating that the governing equations, as implemented in the code, are solved consistently. Calculation verification is the assessment (estimation) of the numerical error in situations where no exact solution is known [4].
According to [5], the most rigorous tests for code verification are the orderofaccuracy tests. For any discretization method, we expect that the discretization error decreases as the mesh is refined. Within an orderofaccuracy test, the observed rate of decrease in the discretization error is compared with the theoretical rate. In order to evaluate the discretization error exact solutions are needed. These exact solutions can be constructed by the method of manufactured solutions (MMS) [1, 5, 6, 7, 8]. Its central idea is to prescribe a solution and to determine an artificial source term which is added to the governing equations, such that the modified equations are fulfilled for the prescribed solution. The MMS can be applied to a wide range of problems. It has been applied to Reynoldsaveraged Navier–Stokes solvers [9], nonlinear membrane elements [10], within fluid structure interaction [11, 12], conjugate heat transfer solvers [13], Cahn–Hilliard equation [14], and others.
Within shell analysis, the task is to predict the mechanical response of a thin curved structure. A structure is characterized as thin if one space dimension has a much smaller extension than the other two. Within this geometric setting, a direct solution of the threedimensional problem is difficult. Therefore, many different shell models exist (see [15] for an overview). In a number of recent papers [16, 17, 18, 19, 20, 21] advanced numerical approaches for shell analysis have been developed. In these contributions, orderofaccuracy tests were presented only for special cases. For more general cases, benchmark examples from the shell obstacle course [22] were used. This set of problems consists of the ScordelisLo roof problem, the pinched cylinder with a diaphragm, and the hemispherical shell problem. This problem set was introduced in order to compare the performance of different finite elements with respect to locking and accurate representation of rigid body motions. Using this set for code verification one shortcoming is the lack of generality in geometry, since only cylindrical and spherical geometries are taken into consideration. Another drawback is that there are only reference displacement values available, which are obtained by numerical simulation. Therefore, no orderofaccuracy tests are possible.
In the present paper, we investigate code verification of finite element codes for shell analysis based on the MMS. Thus, an exact solution is available and an order of accuracy test can be applied. We propose a series of verification examples with increasing complexity. We apply each test to a research code, which implements high order finite elements for Kirchhoff–Love and Reissner–Mindlin shells.
2 Shell models and finite element method
In this section, the Kirchhoff–Love and the Reissner–Mindlin shell theory is recalled and the finite element formulation is given briefly.
2.1 The 3D shell problem
We start with the statement of the 3D shell problem, which is a 3D problem of linearized elasticity on special domains \(\varOmega\).
2.2 Kirchhoff–Love model
2.3 Reissner–Mindlin model
2.4 Finite element method
In this section, we describe the used finite element approach briefly. We have the following variational formulation of (1):
In order to discretize the sought field \({\mathbf u}\) we apply two steps. First, we resolve the troughthethickness variation (the dependency on \(\theta ^3\)) of \({\mathbf u}\) either by the Kirchhoff–Love kinematics (9) or the Reissner–Mindlin kinematics (7). The model decision has great impact on the subsequent discretization done in a second step. In the case of the Reissner–Mindlin shell only first order derivatives appear in (12). Therefore, we can use \(H^1\) hierarchical shape functions on quadrilaterals [23] for the discretization of the five components \(u^i\) and \(v^\alpha\). Due to the second derivatives in (10) this approach is not feasible for the Kirchhoff–Love model. In order to have a \(H^2\) conforming method we use the Bogner–Fox–Schmidt quadrilateral [24] to discretize the three components \(u^i\). Dirichlet boundary conditions are incorporated in the ansatz space in the case of the Reissner–Mindlin model or enforced by a penalty technique in the case of the Kirchhoff–Love model (cf. [25]).
3 Code verification
 1.
Choose the form of the problem domain, i.e. specify the surface parametrization (2) and the thickness t
 2.
Choose the form of the manufactured solution \({\mathbf u}^M\), i.e. specify the independent parameters in (7)
 3.
Derive the modified governing equations, i.e. compute an artificial source term \({\mathbf b}^M =  \nabla \cdot (\mathbb {C}: \epsilon ( {\mathbf u}^M))\) and derive the boundary conditions
 4.
Solve the discrete form of the modified governing equations on multiple meshes, i.e. solve (13) with \({\mathbf b}= {\mathbf b}^M\)
 5.
 6.
Apply the order of convergence test

strain tensor \(\epsilon _{ij}\),

derivatives of the strain tensor \(\epsilon _{ij,k}\),

covariant base vectors \(\mathbf {G}_{i}\),

derivatives of the covariant base vectors \(\mathbf {G}_{i,j}\).
4 Verification examples
In the following, we provide a set of verification examples with increasing complexity. In principle, it would be sufficient to consider only the most general case in order to verify the code, since the special cases are included in the general case [30]. However, in order to have confirmation exercises, we suggest special cases where parts of the code can be tested.
Prescribed displacement parameters for the Reissner–Mindlin model
Field A  Field B  

\(u^1 =\)  \(\theta ^1\)  \(\sin (\pi \theta ^1) \cos (\pi \theta ^2)\) 
\(u^2 =\)  \(\theta ^2\)  \(\cos (\pi \theta ^1) \sin (\pi \theta ^2)\) 
\(u^3 =\)  \(\theta ^1\theta ^2\)  \(\sin (\pi \theta ^1 \theta ^2)\) 
\(v^1 =\)  \(\theta ^1\theta ^2\)  \(\sin (\pi \theta ^1 \theta ^2)\) 
\(v^2 =\)  \(\theta ^1\theta ^2\)  \(\sin (\pi \theta ^1 \theta ^2)\) 
Prescribed displacement parameters for the Kirchhoff–Love model, where \(f(x,y) = \frac{64}{y^6} (yx)^3 x^3\)
Field A  Field B  Field C  

\(u^1 =\)  \(\theta ^1\)  \(f(\theta ^1,0.56) f(\theta ^2,0.65)\)  \(\sin (\pi \theta ^1) \cos (\pi \theta ^2)\) 
\(u^2 =\)  \(\theta ^2\)  \(f(\theta ^1,0.56) f(\theta ^2,0.65)\)  \(\sin (\pi \theta ^1) \cos (\pi \theta ^2)\) 
\(u^3 =\)  \(\theta ^1\theta ^2\)  \(f(\theta ^1,0.56) f(\theta ^2,0.65)\)  \(\sin (\pi \theta ^1) \cos (\pi \theta ^2)\) 
Surface parametrizations (The coordinates in physical space \((x_1,x_2,x_3)\) are given as functions of \(\theta ^1\) and \(\theta ^2\))
\(\overline{\mathfrak {g}}_1\)  \(\overline{\mathfrak {g}}_2\)  \(\overline{\mathfrak {g}}_3\)  \(\overline{\mathfrak {g}}_4\)  

\(x_1 =\)  \(\theta ^1\)  \(\theta ^1+(\theta ^2)^2\)  \(\cos (\theta ^1)\)  \(\frac{2\theta ^1\theta ^2+2\theta ^1\theta ^2}{3}\) 
\(x_2 =\)  \(\theta ^2\)  \(\theta ^2+(\theta ^1)^2\)  \(\theta ^2\)  \(\frac{\theta ^1\theta ^2+2\theta ^1+2\theta ^2}{3}\) 
\(x_3 =\)  0  0  \(\sin (\theta ^1)\)  \(\frac{2\theta ^1\theta ^2 \theta ^1+2\theta ^2}{3}\) 
In all examples, we consider all lateral sides as Dirichlet boundary and the top and bottom surfaces as Neumann boundary.
4.1 Results for the Reissner–Mindlin model
Example 1
Plane geometry, exact representation of solution. The goal of the first example is to determine the influence of roundoff errors. To this end, we have chosen the plane geometry given by the parametrization \(\overline{\mathfrak {g}}_1\) from Table 3 and displacement field A from Table 1. In Fig. 2a the reference surface with the body force is depicted. The displacement field can be exactly represented in the discrete system. Therefore, the remaining error is due to roundoff errors. We have executed the code for ansatz orders up to order three for single precision, as well as for double precision. The distribution of the error for a coarse and a fine mesh over the parameter domain is depicted in Fig. 2b, c, respectively. In Fig. 3, the errors for different discretization levels are shown. We observe constant error levels around \(10^{15}\) for double precision. This agrees with the expected accuracy. The errors for single precision arithmetics are as expected about \(10^{7}\). However, using more elements raises the error. The conditioning of the discrete system might be the reason for this.
Example 2
Plane geometry, general solution. In the second example, the discretization error at a plane geometry is assessed. Therefore, we use the parametrization \(\overline{\mathfrak {g}}_1\) with displacement field B. The obtained distribution of the body force at the reference surface is shown in Fig. 4a. For ansatz order \(p=3\) the distributions of the errors is displayed in Fig. 4b, c. We observe oscillations in the errors. Such phenomena were also observed in [20] for a benchmark example in the case of elements showing locking. Since in the present element formulation no special method to alleviate locking has been applied, the present oscillations are expected. However, the locking does not deteriorate the convergence of the method. The development of the errors and the eoc for ansatz orders up to order six are shown in Fig. 5. For the ansatz orders one to four the eoc tends to the respective formal order of convergence. However, for ansatz orders five and six, the eoc does not agree with the formal order of convergence. In these cases, the numerical error is dominated by the error introduced due to roundoff and not by the discretization error. This effect is also visible in the subsequent examples. The results verify the tested capabilities of the code.
Example 3
General geometry, exact representation of solution. In the third example, a general geometry with displacement field A is considered. For the reference surface parametrization \(\overline{\mathfrak {g}}_4\) from Table 3 is taken. The necessary body force for equilibrium is depicted in Fig. 6a at the reference surface. The distribution of the numerical error obtained with a coarse and a fine mesh is shown in Fig. 6b, c. Again, we observe strong oscillations in the numerical error in case of the fine mesh. The development of the errors and the eoc for ansatz orders up to order six are shown in Fig. 7. The numerical error present in the example stems from the numerical integration of the integrals in (13) and roundoff since displacement field A can be exactly discretized. We have set the number of quadrature points in both inplane directions to the ansatz order. However, as long as the numerical error is dominated by the integration error, the eoc is higher or equal as the formal order of convergence regarding the discretization of the displacement field. Therefore, the integration error will not hamper the overall convergence rate. Note, with more quadrature points the eoc can be increased in this example.
Example 4
General geometry, general solution. The fourth example consists of the general surface parametrization \(\overline{\mathfrak {g}}_4\) and the general displacement field B. Thus, this example assesses all features of the code. The reference surface and the body force are illustrated in Fig. 8a. In Fig. 8b, c, the distribution of the numerical error is depicted for a coarse and a fine mesh. Again, we observe oscillations of the error. However, the eoc is not deteriorated due to this effects. The development of the errors and the eoc for ansatz orders up to order six are shown in Fig. 9. Again, the error corresponding to ansatz orders five and six is limited by the roundoff error. Thus, the eoc drops. For all other ansatz orders the eoc tend to the formal order of convergence. Thus, the code passes this verification example.
4.2 Results for the Kirchhoff–Love model
Example 5
Plane geometry, exact representation of solution. The goal of this example is to determine the influence of roundoff errors for the implementation of the FEM for the Kirchhoff–Love model. To this end, we have chosen the plane geometry given by the parametrization \(\overline{\mathfrak {g}}_1\) from Table 3 and displacement field A from Table 2, which can be exactly represented in the discrete system. Due to this setting the body force vanishes for the Kirchhoff–Love model. The distribution of the numerical error for a coarse and a fine mesh is given in Fig. 10. For the coarse mesh we observe that the error is concentrated at the boundary. Due to the use of a penalty method this is reasonable. In contrast to this, for the fine mesh the error is concentrated in the interior. This is in agreement with the results obtained in Example 1. In Fig. 11, the error and eoc for different discretization levels and single as well as double precision arithmetics are shown. From Fig. 11a it can be seen that the error increases with refinement. Furthermore, in Fig. 11b the eoc is at around minus four for single and double precision arithmetics. This is in agreement with the estimated condition number of the stiffness matrix, which raises at the same rate. Thus, we conclude that the numerical error is due to roundoff errors and the penalty method used.
Example 6
General geometry, general solution. In this last example we use the parametrization \(\overline{\mathfrak {g}}_4\) and displacement field C from Table 2. The reference surface and the body force obtained by the MMS is depicted in Fig. 12a. The distribution of the numerical error for a coarse and a fine mesh are illustrated in Fig. 12b, c. For the coarse mesh we observe oscillations as in the examples for the Reissner–Mindlin model. The results of the performed convergence study are shown in Fig. 13. In Fig. 13a, we observe the convergence of the method up to an error level of about \(10^{8}\). This final error level is in accordance with the results from Example 5. The eoc given in Fig. 13b tends to 4 apart for the last considered mesh refinement. Due to the use of thirdorder ansatz functions this convergence rate is optimal. Based on these results, we conclude that the code passes this general verification example.
5 Conclusion
Code verification of simulation tools is a necessary procedure in order to ensure the reliability. Especially in shell analysis complicated expressions arise which have to be coded. Thus, the errorproneness is high. During the preparation of the present paper, we found that performing order of accuracy tests is a code verification procedure with high rigor.
In order to derive exact solutions we applied the MMS to the strong form of the 3D elasticity equations in curvilinear coordinates. We have used the computer algebra system Mathematica\(^{\text {TM}}\) for the derivation of the source term function. In order to avoid long codes for this function we compute only the necessary derivatives analytically.
For code verification in the context of shell analysis we proposed different verification examples. We apply the proposed tests to an inhouse developed finite element research code for Kirchhoff–Love and Reissner–Mindlin shell analysis. The examples are designed such that in some examples some parts of the code are not assessed consciously. This can help to identify coding faults. Furthermore, we have seen that not in all cases the optimal order of convergence has to show up. In cases where the discretization error is zero we observe the error due to roundoff errors or if existing due to numerical integration.
Notes
Acknowledgements
Open access funding provided by Graz University of Technology.
References
 1.Oberkampf WL, Roy CJ (2010) Verification and validation in scientific computing. Cambridge University Press, CambridgeCrossRefzbMATHGoogle Scholar
 2.Oden JT, Belytschko T, Fish J, Hughes T, Johnson C, Keyes D, Laub A, Petzold L, Srolovitz D, Yip S (2006) Revolutionizing engineering science through simulation. National Science Foundation Blue Ribbon Panel Report 65Google Scholar
 3.ASME V&V 102006 (2006) Guide for verification and validation in computational solid mechanics. The American Society of Mechanical Engineers, New YorkGoogle Scholar
 4.Oberkampf WL, Trucano TG, Hirsch C (2004) Verification, validation, and predictive capability in computational engineering and physics. Appl Mech Rev 57(5):345–384CrossRefGoogle Scholar
 5.Roy CJ, Nelson C, Smith T, Ober C (2004) Verification of Euler/Navier–Stokes codes using the method of manufactured solutions. Int J Numer Methods Fluids 44(6):599–620CrossRefzbMATHGoogle Scholar
 6.Steinberg S, Roache PJ (1985) Symbolic manipulation and computational fluid dynamics. J Comput Phys 57(2):251–284MathSciNetCrossRefzbMATHGoogle Scholar
 7.Shih T (1985) A procedure to debug computer programs. Int J Numer Methods Eng 21(6):1027–1037CrossRefzbMATHGoogle Scholar
 8.Roache PJ (1998) Verification and validation in computational science and engineering. Hermosa, AlbuquerqueGoogle Scholar
 9.Eça L, Hoekstra M, Hay A, Pelletier D (2007) Verification of RANS solvers with manufactured solutions. Eng Comput 23(4):253–270CrossRefzbMATHGoogle Scholar
 10.Fisch R, Franke J, Wüchner R, Bletzinger KU (2013) Code verification examples of a fully geometrical nonlinear membrane element using the method of manufactured solutions. In: Bletzinger KU, Kröplin B, Oñate E (eds) Proceedings structural membranes, MunichGoogle Scholar
 11.Fisch R, Franke J, Wüchner R, Bletzinger KU (2014) Code verification of a partitioned FSI environment for wind engineering applications using the method of manufactured solutions. In: Oñate E, Oliver J, Huerta A (eds) 5th European conference on computational mechanics (ECCM V), BarcelonaGoogle Scholar
 12.Fisch R (2014) Code verification of partitioned FSI environments for lightweight structures, Schriftenreihe des Lehrstuhls für Statik der Technischen Universität München, vol 23. Lehrstuhl für Statik, Technische Universität MünchenGoogle Scholar
 13.Veeraragavan A, Beri J, Gollan R (2016) Use of the method of manufactured solutions for the verification of conjugate heat transfer solvers. J Comput Phys 307:308–320MathSciNetCrossRefzbMATHGoogle Scholar
 14.Kästner M, Metsch P, De Borst R (2016) Isogeometric analysis of the Cahn–Hilliard equation—a convergence study. J Comput Phys 305:360–371MathSciNetCrossRefzbMATHGoogle Scholar
 15.Bischoff M, Bletzinger KU, Wall W, Ramm E (2004) Models and finite elements for thinwalled structures. In: Stein E, de Borst R, Hughes T (eds) Encyclopedia of computational mechanics, vol 2. Wiley, Amsterdam, pp 59–137Google Scholar
 16.Benson D, Bazilevs Y, Hsu MC, Hughes T (2010) Isogeometric shell analysis: the Reissner–Mindlin shell. Comput Methods Appl Mech Eng 199(5):276–289MathSciNetCrossRefzbMATHGoogle Scholar
 17.Dornisch W, Müller R, Klinkel S (2016) An efficient and robust rotational formulation for isogeometric Reissner–Mindlin shell elements. Comput Methods Appl Mech Eng 303:1–34MathSciNetCrossRefGoogle Scholar
 18.Hosseini S, Remmers JJ, Verhoosel CV, De Borst R (2014) An isogeometric continuum shell element for nonlinear analysis. Comput Methods Appl Mech Eng 271:1–22MathSciNetCrossRefzbMATHGoogle Scholar
 19.Kiendl J, Bletzinger KU, Linhard J, Wüchner R (2009) Isogeometric shell analysis with Kirchhoff–Love elements. Comput Methods Appl Mech Eng 198(49):3902–3914MathSciNetCrossRefzbMATHGoogle Scholar
 20.Oesterle B, Ramm E, Bischoff M (2016) A shear deformable, rotationfree isogeometric shell formulation. Comput Methods Appl Mech Eng 307:235–255MathSciNetCrossRefGoogle Scholar
 21.Guo Y, Ruess M (2015) Nitsches method for a coupling of isogeometric thin shells and blended shell structures. Comput Methods Appl Mech Eng 284:881–905MathSciNetCrossRefGoogle Scholar
 22.Belytschko T, Stolarski H, Liu WK, Carpenter N, Ong JS (1985) Stress projection for membrane and shear locking in shell finite elements. Comput Methods Appl Mech Eng 51(1):221–258MathSciNetCrossRefzbMATHGoogle Scholar
 23.Szabo BA, Babuška I (1991) Finite element analysis. Wiley, AmsterdamzbMATHGoogle Scholar
 24.Bogner F, Fox R, Schmit L (1965) The generation of interelementcompatible stiffness and mass matrices by the use of interpolation formulas. In: Proceedings of the conference on matrix methods in structural mechanics, WrightPatterson Air Force Base, OhioGoogle Scholar
 25.Barrett JW, Elliott CM (1986) Finite element approximation of the dirichlet problem using the boundary penalty method. Numer Math 49(4):343–366MathSciNetCrossRefzbMATHGoogle Scholar
 26.Roy CJ (2005) Review of code and solution verification procedures for computational simulation. J Comput Phys 205(1):131–156CrossRefzbMATHGoogle Scholar
 27.Malaya N, EstacioHiroms KC, Stogner RH, Schulz KW, Bauman PT, Carey GF (2013) Masa: a library for verification using manufactured and analytical solutions. Eng Comput 29(4):487–496CrossRefGoogle Scholar
 28.Wolfram Research Inc (2017) Mathematica, Version 11.1. Champaign, IlliniosGoogle Scholar
 29.Strang G, Fix GJ (1973) An analysis of the finite element method, vol 212. PrenticeHall, Englewood CliffszbMATHGoogle Scholar
 30.Roache PJ (2002) Code verification by the method of manufactured solutions. J Fluids Eng 124(1):4–10CrossRefGoogle Scholar
Copyright information
Open AccessThis article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.