## Abstract

Code verification against analytical solutions is a prerequisite to code validation against experimental data. Though solid-mechanics codes have established basic verification standards such as patch tests and convergence tests, few (if any) similar standards exist for testing solid-mechanics constitutive models under nontrivial massive deformations. Increasingly complicated verification tests for solid mechanics are presented, starting with simple patch tests of frame-indifference and traction boundary conditions under affine deformations, followed by two large-deformation problems that might serve as standardized verification tests suitable to quantify accuracy, robustness, and convergence of momentum solvers used in solid-mechanics codes. These problems use an accepted standard of verification testing, the method of manufactured solutions (MMS), which is rarely applied in solid mechanics. Body forces inducing a specified deformation are found analytically by treating the constitutive model abstractly, with a specific model introduced only at the last step in examples. One nonaffine MMS problem subjects the momentum solver and constitutive model to large shears comparable to those in penetration, while ensuring natural boundary conditions to accommodate codes lacking support for applied tractions. Two additional MMS problems, one affine and one nonaffine, include nontrivial traction boundary conditions.

This is a preview of subscription content, access via your institution.

## Notes

While we here consider the superimposed rotation to be applied after the stretching, it is equally important to test for appropriate predictions when the stretching and rotation are applied simultaneously, including at various accelerations.

To help with code debugging, the table also lists the components

*N*_{ ij }of the unit normal to the linear Drucker-Prager cone in stress space, while*P*_{ ij }is the correct projection direction to use in a return algorithm, given by the elastic stiffness acting on*N*_{ ij }.\( \text {Namely, }\frac{E\nu}{(1+\nu)(1-2\nu)} \text { and } \mu=\frac{E}{2(1+\nu)} \)

## References

Appelo D, Anders PN (2009) A stable finite difference method for the elastic wave equation on complex geometries with free surfaces. Commun Comput Phys 5:84–107

Babuska I, Tinsley OJ (2004) Verification and validation in computational engineering and science: basic concepts. Comput Methods Appl Mech Eng 193:(10)4057–4066

Banerjee B (2006) Method of manufactured solutions. http://imechanica.org/node/1357

Bardenhagen SG, Kober EM (2004) The generalized interpolation material point method. CMES Comput Model Eng Sci 5:477–495

Batra RC, Liang XQ (1997) Finite dynamic deformations of smart structures. Comput Mech 20:427–438

Benes M, Matous K (2010) Asynchronous multi-domain variational integrators for nonlinear hyperelastic solids. Comput Methods Appl Mech Eng 199:1992–2013

Brannon RM, Leelavanichkul S (2010) A multi-stage return algorithm for solving the classical damage component of constitutive models for rocks, ceramics, and other rock-like media. Int J Fract 163:133–149

Brannon RM, Kamojjala K, Sadeghirad A (2011) Establishing credibility of particle methods through verification testing. In: II international conference on particle-based methods—fundamentals and applications

Brannon RM, Fossum AF, Strack OE (2009) Kayenta: theory and user’s guide. Technical Report SAND2009-2282, USDOE

Brunner TA (2006) Development of a grey nonlinear thermal radiation diffusion verification problem. Trans Am Nuclear Soc 95:876–878

Foster CD, Regueiro RA, Fossum AF, Borja RI (2005) Implicit numerical integration of a three-invariant, isotropic/kinematic hardening cap plasticity model for geomaterials. Comput Methods Appl Mech Eng 194:5109–5138

Guilkey J, Harman T, Luitjens J, Schmidt J, Thornock J, de St Germain JD, Shankar S, Peterson J, Brownlee C (2009) Uintah User guide. SCI Institute Technical Report

Johnson GR, Cook WH (1983) A constitutive model and data for metals subjected to large strains, high strain rates and high temperatures. In: Proceedings of the 7th international symposium on ballistics, The Netherlands, pp 541–547

Kamojjala K, Brannon RM (2011) Verification of frame indifference for complicated numerical constitutive models. In: ASME early career technical conference

Knupp P, Salari K (2003) Verification of computer codes in computational science and engineering. Chapman and Hall/CRC, London

Kossa A, Szabó L (2009) Exact integration of the von Mises elastoplasticity model with combined linear isotropic-kinematic hardening. Int J Plasticity 25:1083–1106

Kozdon JE, Dunham EM, Nordstrom J (2013) Simulation of dynamic earthquake ruptures in complex geometries using high-order finite difference method. J Sci Comput 55:92–124

Krieg RD, Krieg DB (1977) Accuracies of numerical solution methods for the elastic-perfectly plastic model. J Pressure Vessel Technol 99:510–515

Kuo C-S, Hu H-T, Lin R-M, Huang K-Y, Lin P-C, Zhong Z-C, Hseih M-L (2010) Biomechanical analysis of the lumbar spine on facet joint force and intradiscal pressure—a finite element study. BMC Musculoskelet Disord 151:11

Love E, Sulsky DL (2006) An unconditionally stable, energy-momentum consistent implementation of the material-point method. Comput Methods Appl Mech Eng 195:33–36

Malverin LE (1969) Introduction to the mechanics of a continuous medium. Prentice-Hall Inc., New Jersey

Monaghan JJ (1988) Introduction to sph. Comput Phys Commun 48:89–96

Oberkampf WL, Roy CJ (2010) Verification and validation in scientific computing. Cambridge University Press, Cambridge

Oberkampf WL, Trucano TG, Hirsh C (2002) Verification and validation of modeling and simulation in computer ccience and engineering applications. In: Foundations of verification and validation in 21st century workshop

Oberkampf WL, Trucano TG (2002) Verification and validation in computational fluid dynamics. Progress Aerospace Sci 38:209–272

Pautz SD (2001) Verification of transport codes by the method of manufactured solutions: the attila experience. In: Proceedings of ANS international meeting on mathematical methods for nuclear applications, Salt Lake City

Rashid MM (1993) Incremental kinematics for finite element applications. Int J Numer Methods Eng 36:(23)3937–3956

Rieben R, White DA (2005) Verification of high-order mixed fem solution of transient magnetic diffusion problems. Technical report, Lawrence Livermore National Laboratory

Roache Patrick J (1999) Fundamentals of Verification and Validation, volume 41. SIAM, Editor: Mark Anisworth

Roache Patrick J (2009) Fundamentals of verification and validation. Hermosa Publishers, Socorro

Roy CJ, Nelson CC, Smith TM, Ober CC (2004) Verification of euler/navier stokes codes using the method of manufactured solutions. Int J Numer Methods Fluids 44:599–620

Roy CJ, Oberkampf WL (2011) A comprehensive framework for verification, validation, and uncertainty quantification in scientific computing. Comput Methods Appl Mech Eng 200:2131–2144

Sadeghirad A, Brannon RM, Burghardt J (2011) A convected particle domain interpolation technique to extend applicability of the material point method for problems involving massive deformations. Int J Numer Methods Eng 86(22):1435–1456

Sadeghirad A, Brannon RM, Guilkey JE (2013) Second-order convected particle domain interpolation (CPDI2) with enrichment for weak discontinuities at material interfaces. Int J Numer Methods Eng 95:928–952

Schwer LE (2006) Guide for verification and validation in computational solid mechanics. In: The American Society of Mechanical Engineers

Simo JC, Hughes TJR (1998) Computational inelasticity. Interdisciplinary applied mathematics: mechanics and materials. Springer, New York

Steffen M, Wallstedt PC, Guilkey JE, Kirby RM, Berzins M (2008) Examination and analysis of implementation choices within the material point method (mpm). Comput Model Eng Sci 2:107–127

Tremblay D, Etienne S, Pelletier D (2006) Code verification and the method of manufactured solutions for fluid-structure interaction problems. In: 36th AIAA fluid dynamics conference, vol 2, pp 882–892

Wallstedt PC, Guilkey JE (2008) An evaluation of explicit time integration schemes for use with the generalized interpolation material point method. J Comput Phys 227:9628–9642

## Acknowledgments

The support of Schlumberger Technology Corporation, SURVICE Engineering and Sandia National Laboratories is gratefully acknowledged. The authors would also like to acknowledge the constructive feedback given by the reviewers which helped to improve the manuscript.

## Author information

### Authors and Affiliations

### Corresponding author

## Appendices

### Appendix 1: Derivation of analytical forcing functions for the generalized vortex problem

Though the derivation of the analytical forcing functions for generalized vortex and bending bar are documented separately [8, 14], but because of the relevance, these derivation are repeated here.

The dynamic equation of motion is:

where **a** is the acceleration, **b** is the body force, **P** is the first-Piola Kirchhoff (PK1) stress,* ρ*
_{
o
} is the initial density, and DIV(**P**) is the backwards reference divergence of **T**, defined with respect to the Cartesian basis (**E**
_{1}, **E**
_{2}, **E**
_{3}) by

where “: ” is the second-order tensor inner product, and **I** is the second-order identity tensor. The problem domain is a ring of inner radius *a* and outer radius *b*, as shown in Fig. 27. The upcoming manufactured solution will have zero displacements and (to achieve traction-free boundaries) zero displacement gradients at the inner and outer radii. Thus, since material motion will occur only in the interior of the ring, this problem may be also regarded to apply on a square domain for which material outside the ring is prescribed to be stationary. This problem involves pure circular motion of all particles. The angular displacement varies with the radial coordinate, thus inducing simple shear with superimposed rotation at all times and at all spatial locations. For plane strain circular particle motion, the mapping from the initial position **X** to the current position **x** is given by

Here, **Q** is the orthogonal tensor with components

where* α* is the rotation angle, which varies with time and radial coordinate *R* but not with angular coordinate \(\Uptheta\). Specifically,

where, *g*(*t*) controls the amplitude of the deformation, and *h*(*R*) is a function (having a peak amplitude of unity) that defines the relative radial variation of the rotation angle. The *h*(*R*) function is selected in a way to ensure that material motion occurs only between the inner and outer radii, *a* and *b*. Thus, *h*(*R*) = 0 for *R* < *a* and *R* > *b*. For continuous displacements, this implies that *h*(*a*) = *h*(*b*) = 0. Moreover, choosing *h*′(*a*) = *h*′(*b*) = 0 ensures zero strain (and hence zero traction) at the boundaries, which is termed a “natural” boundary condition because it is the default boundary condition in most momentum solvers (requiring no special handling in the algorithm). The goal of the ensuing analysis is to find the spatially varying body force field \({\bf b}(R,\Uptheta)\) necessary to produce this motion.

To begin the analysis, the following lemmas are useful: for any scalar *s*,

where **A** is the axial tensor associated with the rotation axis. Namely,

The axial tensor has the property that, for any vector **w**,

where **E**
_{
z
} is the unit cylindrical base vector along the axis of rotation. Thus, for example, noting that the position vector is **X** = *R*
**E**
_{
R
},

The following sections provide steps for determining the deformation gradient **F**, divergence of the PK1 stress DIV(**T**), and acceleration **a** required to ultimately solve (23) for the body force.

### 1.1 Deformation gradient and divergence of PK1 stress

Differentiating (27), the gradient of the rotation angle is given by

The deformation gradient is found by taking the derivative of (25)

Using (28), (31), (32), and the fact that \({{\bf Q}^{\rm T}}\cdot{\bf A}\cdot{\bf Q} = {\bf A}\), we have

The terms in the brackets represent a state of simple shear in the \(\Uptheta\) direction with the shear plane tangent to the circumference. The multiplication by **Q** represents additional superimposed rotation into the current configuration. Let

Then the shear strain is given by

The deformation gradient in (34) may be written as

where

Note that \({\bf F} = {\bf r}\cdot{{\fancyscript{F}}}\cdot{{\bf q}^{\rm T}}\), where

Here, \(\theta = \Uptheta + \alpha = \Uptheta + g(t)h(R)\), which is the angular coordinate of the particle in the deformed configuration. Note that \({{\fancyscript{F}}}\) is an angle-independent “baseline” deformation representing simple shear without superimposed rotation. Further note that \({\frac{{\rm d}{\fancyscript{F}}}{{\rm d}{R}} = 2g(t)\xi'(R){{\bf E}_{2}}{{\bf E}_{1}}}\). Also, **q** is independent of* R*, and \(\frac{{\rm d}{\bf q}}{{\rm d}{\Uptheta}} = {\bf A}\cdot{\bf q}\). The tensor **r** depends only on the deformed angular coordinate, but (since the deformed angle varies with radial coordinate), this tensor implicitly depends on both angular and radial coordinates. Thus, applying the chain rule,

where subscripts are used to indicate what is held constant in partial derivatives. Let *S* denote the second-Piola Kirchhoff (PK2) stress associated with the deformation \({{\fancyscript{F}}}\). Then, for an isotropic material, it follows that the PK2 stress **S** associated with **F** must be

The first Piola-Kirchhoff (PK1) stress associated with deformation **F** is then

where \({{\varvec{\tau}} = {\fancyscript{F}}\cdot S}\) is the PK1 stress associated with the baseline deformation \({{\fancyscript{F}}}\), which depends on *R* indirectly through dependence of the shear strain on *R*, but this baseline PK1 stress is not dependent on the angular coordinate. Thus

The reference gradient of PK1 stress is a third-order tensor given by

where the terms on the right-hand side are multiplied dyadically. Using (40), (42), and the chain rule, this equation becomes

Referring to (24), recognizing that \({{\bf q}^{\rm T}}\cdot{{\bf E}_{R}}={\bf E}_{1}\), and using (30) to note that \({\bf A}^{\rm T}\cdot{\bf E}_{\Uptheta}={\bf E}_{R}\), the reference divergence of PK1 stress is given by

In terms of the deformed angular coordinate* θ*, the spatial cylindrical base vectors are

Dotting (46) by these spatial cylindrical base vectors, the spatial cylindrical components of the divergence of PK1 stress are given by

The key advantage of the above result is that it is expressed in terms of Cartesian components of the PK1 stress corresponding to a baseline homogeneous simple shear, thus requiring the constitutive model to be evaluated only for that special case. The introduction of a specific constitutive model is avoided (for now) so that this result applies to any elastic model or for an inelastic model if no unloading is applied.

### 1.2 Velocity and acceleration

Using (25), (27) and (28), the velocity and acceleration of any given material particle are

where

### 1.3 Body force

The body force vector is given by

Using (48), (49), (51), and (52), the spatial cylindrical components of the body force are

The Cartesian components are obtained by substituting (47) into (53).

### Appendix 2: Derivation of analytical forcing functions for the bending bar problem

The equation of motion is

where **a** is the acceleration, **b** is the body force, \({\varvec{\sigma}}\) is the Cauchy stress,* ρ*
_{o} is the initial density, and \(\hbox{div}{(\varvec{\sigma})}\) is the backward spatial divergence of \({\varvec\sigma}\), having its *i*
^{th} component given by *∂σ*
_{
ij
}/*∂*
*x*
_{
j
}.

From Fig. 28, the corresponding mapping from an initial position **X** to deformed position **x** is

As can be confirmed by direct substitution, the following sequence of calculations decomposes the deformation gradient into rotation and stretch \(\bf F = {\bf R} \cdot {\bf U}\), where **R** is the rotation tensor and **U** is the stretch tensor:

Here,* α* is the angle of rotation at the material point of interest,* λ* is the amount of stretch in the 2-direction. For uniaxial strain in the 2-direction, the rotation is **R** = **I**, and therefore the deformation gradient is **F** = **U**, and the Jacobian is* λ*.

In the MMS, we assume that we have all the information in (56) except the body force. It is possible (e.g. by running a single-element model driver) to obtain all stress components as a function of uniaxial strain in the 2-direction *without rotation*. To apply this manufactured solution to an arbitrary, potentially anisotropic and even more nonlinear, elastic constitutive model, the upcoming analysis presumes only that the response functions for all components of stress under uniaxial strain in the 2-direction are known; i.e.,

Then the Cauchy stress \(\varvec{\sigma}\) is computed using

where **R** is the rotation tensor. The indicial form for (60) is given by

By the product rule,

Recalling from (59) that \({\bar{\varvec{\sigma}}}\) depends only on* λ*, and noting that (58a, 58b) shows that the polar rotation **R** depends only on the rotation angle* α*, using the chain rule

Using (63b), (63c) and substituting in (63a),

This implies that

Using (64) and (65) , (62) can be reduced to

Multiplying both sides of (66) using *R*
_{
iq
} and simplifying using the fact that **R** is orthogonal

Recalling from (59) that \(\varvec{\sigma}\) depends only on* λ*, and from (58a, 58b) that* λ* depends only on \({\user2{X}}\)

Using the definitions of* λ*, **U** and **A** and substituting (68) in (67), we have

Thus, the unrotated force components are

These are the unrotated force components. To apply these in a calculation of the body force for the manufactured solution, the actual force vector can be computed by recalling that \({\user2{f}} = {\bf R}\cdot{\bar{\varvec{f}}}\). In general, this comes out to be in the form

The force contribution from the material acceleration is relatively easy because we already have the relation between \({\user2{x}}\) and \({\user2{X}}\). Acceleration is simply

where the derivatives with respect to* β* are found by differentiating (58a, 58b). The result gives the cartesian components of acceleration which must be converted to polar components to give a final acceleration of the form

Density is

Substituting (71), (74), and (73) in (56) after choosing the material model and material constants, the total body force required for this deformation is:

where

## Rights and permissions

## About this article

### Cite this article

Kamojjala, K., Brannon, R., Sadeghirad, A. *et al.* Verification tests in solid mechanics.
*Engineering with Computers* **31**, 193–213 (2015). https://doi.org/10.1007/s00366-013-0342-x

Received:

Accepted:

Published:

Issue Date:

DOI: https://doi.org/10.1007/s00366-013-0342-x

### Keywords

- Verification testing
- Solid mechanics
- Method of manufactured solutions
- MMS
- Generalized vortex
- Bending bar
- Frame indifference