Elementi Finiti e Matlab

Download as pdf or txt
Download as pdf or txt
You are on page 1of 196

A Pragmatic Introduction to the

Finite Element Method


for Thermal and Stress Analysis
With the Matlab toolbox SOFEA
Petr Krysl
2
Copyright (c) December 31, 2005 Petr Krysl.
[email protected]
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Doc-
umentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant
Sections, with Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the Appendix A
entitled GNU Free Documentation License.
To my family.
Published by the Pressure Cooker Press.
Library of Congress Cataloging-in-Publication Data
Krysl, Petr
A Pragmatic Introduction to the Finite Element Method for Thermal and Stress Analysis.
With the Matlab toolbox SOFEA./ Petr Krysl
Includes bibliographical references and index.
Manufactured in the United States of America
San Diego, California
Contents
I Introducing the Galerkin method 1
1 Model of a Taut Wire 3
1.1 Deriving the PDE model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Balance equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Boundary conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Boundary conditions (in space) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5 Initial conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6 Anything else? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 The method of Mr. Galerkin 7
2.1 Residual of the balance equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Integral test of the residual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Test function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 Trial function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.5 Manipulation of the residuals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.6 Stiness and mass matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.7 Piecewise linear basis functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.8 Numerical quadrature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.9 Putting it together: system of ODEs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3 Introducing the Matlab code 17
3.1 Statics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2 Statics: uniform load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3 Free vibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4 Integration of transient motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4.1 Using built-in Matlab solver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4.2 Using the Trapezoidal integrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4 The boundary conditions for the model of a taut wire 25
4.1 Essential and natural boundary conditions at separate end-points . . . . . . . . . . . . . . . . 25
4.2 Essential boundary conditions only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.3 Natural boundary conditions only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.4 Overspecied boundary conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
II Thermal analysis 31
5 Model of Heat Diusion 33
5.1 Balance equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2 Constitutive equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.3 Boundary conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.4 Initial condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.5 Summary of the PDE model of heat conduction . . . . . . . . . . . . . . . . . . . . . . . . . . 37
i
ii CONTENTS
6 Galerkin method for the model of heat conduction 39
6.1 Weighted residual formulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.2 Reducing the model dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.3 Test and trial functions: basis functions on triangulations . . . . . . . . . . . . . . . . . . . . 41
6.4 Basis functions on the standard triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.5 Discretizing the weighted residual equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.6 Derivatives of the basis functions; Jacobian . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.7 Numerical integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.8 Conductivity matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6.9 Surface heat transfer matrix and load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7 Steady-state heat diusion solutions 59
7.1 Steady-state diusion equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
7.2 Thick-walled tube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
7.3 Orthotropic insert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
7.4 The T4 NAFEMS Benchmark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8 Transient heat diusion solutions 67
8.1 Discretization in time for transient heat diusion . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.2 Transient diusion: The T3 NAFEMS Benchmark . . . . . . . . . . . . . . . . . . . . . . . . 68
8.3 Transient cooling in a shrink-tting application . . . . . . . . . . . . . . . . . . . . . . . . . . 71
9 Expanding the library of element types 75
9.1 Quadratic triangle T6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
9.2 Quadratic 1-D element L3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
9.3 Point element P1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
9.4 Measuring (integrating) over domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
9.5 Tetrahedron T4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
9.5.1 Example: helical geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
9.6 On the simplex elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
9.7 Quadrilateral Q4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
9.8 Hexahedron H8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
9.9 Extracting the mesh boundary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
10 Convergence and error control 85
10.1 Interpolation errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
10.1.1 Interpolation error for temperature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
10.1.2 Interpolation error for temperature gradient . . . . . . . . . . . . . . . . . . . . . . . . 87
10.1.3 Controlling the error; Convergence rate . . . . . . . . . . . . . . . . . . . . . . . . . . 88
10.2 Richardson extrapolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
10.3 The T4 NAFEMS Benchmark revisited . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
10.4 Shrink tting revisited . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
III Stress analysis 95
11 Model of elastodynamics 97
11.1 Balance of linear momentum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
11.2 Stress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
11.3 Local equilibrium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
11.3.1 Change of linear momentum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
11.3.2 Stress divergence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
11.3.3 All together now . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
11.4 Strains and displacements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
11.5 Constitutive equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
CONTENTS iii
11.6 Initial conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
11.7 Boundary conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
11.7.1 Example: concrete dam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
11.7.2 Example: rigid punch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
11.7.3 Formal denition of boundary conditions . . . . . . . . . . . . . . . . . . . . . . . . . 109
11.7.4 Inadmissible concentrated boundary conditions . . . . . . . . . . . . . . . . . . . . . 110
11.7.5 Symmetry and anti-symmetry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
11.7.6 Example: pure-traction problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
11.7.7 Example: shaft under torsion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
11.7.8 Example: overspecied boundary conditions . . . . . . . . . . . . . . . . . . . . . . . . 115
11.8 Comparing the Thermal and Deformation models . . . . . . . . . . . . . . . . . . . . . . . . . 115
12 Galerkin formulation for elastodynamics 117
12.1 Manipulation of the residuals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
12.1.1 The rst two steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
12.1.2 Step 3: Preliminaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
12.1.3 Step 3: The glorious conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
12.2 Method of weighted residuals as the Principle of Virtual Work . . . . . . . . . . . . . . . . . 119
12.3 Discretizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
12.3.1 The trial function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
12.3.2 The test function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
12.3.3 Producing the requisite equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
12.4 The discrete equations: system of ODEs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
12.4.1 Inertial term: Mass matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
12.4.2 Body loads and traction loads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
12.4.3 Resisting forces: Stiness matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
12.4.4 Summary of the elastodynamics ODEs . . . . . . . . . . . . . . . . . . . . . . . . . . 124
12.5 Constitutive equations of linearly elastic materials . . . . . . . . . . . . . . . . . . . . . . . . 125
12.5.1 Orthotropic material. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
12.5.2 Transversely isotropic material. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
12.5.3 Isotropic material. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
12.6 Imposed (thermal) strains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
12.7 Strain-displacement matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
12.7.1 Transformation of basis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
12.8 Stiness matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
13 Finite elements for true 3-D problems 133
13.1 Modal analysis with the tetrahedron T4: the drum . . . . . . . . . . . . . . . . . . . . . . . . 133
13.2 Modal analysis with the tetrahedron T4: the composite rod . . . . . . . . . . . . . . . . . . . 135
13.3 Tetrahedron T10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
13.3.1 Example: the drum revisited . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
13.4 The composite rod with the tetrahedron T10 . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
13.5 Static analysis with hexahedra H8 and H20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
13.5.1 Hexahedron H8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
13.5.2 Dilatational locking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
13.5.3 Shear locking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
13.5.4 Thin clamped square plate with concentrated load . . . . . . . . . . . . . . . . . . . . 142
13.5.5 Quadratic element H20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
13.5.6 Quadratic element Q8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
13.5.7 Pinched cylinder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
13.5.8 Pinched sphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
13.5.9 Beam deection revisited . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
iv CONTENTS
14 Analyzing the stresses 151
14.1 Singularities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
14.2 Interpretation of stresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
14.3 Stress concentrations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
15 Reduced-dimension models: plane strain, plane stress, axisymmetric 157
15.1 Plane strain model reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
15.1.1 Discretization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
15.2 Plane stress model reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
15.3 Model reduction for axial symmetry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
15.4 Material stiness for two-dimensional models . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
15.5 Strain-displacement matrices for two-dimensional models . . . . . . . . . . . . . . . . . . . . . 163
15.6 Integration for two-dimensional models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
15.7 Thermal strains in two-dimensional models . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
15.8 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
15.8.1 Thermal strains in a bimetallic assembly . . . . . . . . . . . . . . . . . . . . . . . . . . 166
15.8.2 Orthotropic balloon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
15.9 Transient dynamic analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
15.9.1 Centered dierence time stepping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
15.9.2 Example: stress wave propagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
16 Convergence 175
16.1 Consistency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
16.1.1 Completeness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
16.1.2 Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
16.2 Stability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
16.2.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
A Appendix: GNU Free Documentation License 179
Part I
Introducing the Galerkin method
1
Chapter 1
Model of a Taut Wire
This chapter will formulate a relatively simple model of a taut string. In the next chapter, we will seek
approximate solutions to this model that are obtained with the Galerkin method.
1.1 Deriving the PDE model
Figure 1.1 illustrates an idealization of a taught wire. The wire is under prestressing force, P, assumed to be
uniform along the length of the wire. The left hand end is immovably xed, while the right hand side end is
held in a xture which can slide perpendicularly to the axis of the wire. A transverse force F
L
is applied at
the movable end. In addition, there may be some distributed force q acting along the length (but we shall
ignore gravity). The transverse displacement is a function of both the axial coordinate x and the time t,
w = w(x, t) . The transverse displacement is assumed to be very small compared to the length of the wire.
1.2 Balance equation
Taking a section of length x of the wire (see Figure 1.2, collecting all the forces, and equating them to the
inertial force (Newtons law), leads to a balance equation for the taut wire
P

2
w
x
2
+q = w , (1.1)
where w =

2
w
t
2
is the acceleration.
1.3 Boundary conditions
The function w that describes the transverse deection takes two arguments, x, and t. It is dened on a
rectangle shown in Figure 1.3: 0 x L, and 0 t

t. It needs to be determined to satisfy the balance
Figure 1.1: Schematic of taut wire
3
4 CHAPTER 1. MODEL OF A TAUT WIRE
Figure 1.2: The forces acting on a segment of the taut wire
Figure 1.3: The domain of the deection function w
equation (1.1), but that would not completely nail the answer down. We also know something about the
solution, namely at the boundaries of the domain rectangle.
How many pieces of information do we need to know? A reasonable answer is, Enough to make the
solution unique. To nd the deection w is going to involve integration, because the balance equation refers
to space and time derivatives of w. Using the denitions
v =
w
t
=
w
x
we may rewrite all the balance equation that involves the second derivatives of the function w as a system
of rst order dierential equations

t
=
v
x
P

x
+q
v
t
= 0
For each derivative
v
x
,

x
, one boundary condition (integration constant) will be needed. Similarly, for each
of the time derivatives
v
t
, and

t
one boundary condition along the time axis will be required.
1.4 Boundary conditions (in space)
The conditions on w along the edges of the domain rectangle parallel to the time axis are known (for historical
reasons) as the boundary conditions. (Perhaps also because they are applied along the physical boundaries
of the structure.)
It needs to be realized that the domain of the wire, that is the interval 0 x L, has only one boundary,
namely the two endpoints. Since these two points are disjoint, the boundary of the interval consists of two
disjoint sets. As discussed in more detail in Chapter 4, we are really prescribing a single boundary condition.
1.5. INITIAL CONDITIONS 5
Figure 1.4: The forces acting on a right hand side segment of the taut wire
Since it happens to be applied at two disjoint points, we talk loosely of boundary conditions, even the though
we should be saying boundary condition specications.
For the sake of deniteness and this example, at the left-hand side end of the wire we are prescribing in
general nonzero displacement,
w(0, t) = w
0
.and (1.2)
As we shall nd out, there is a good reason why this kind of condition is commonly called the essential
boundary condition.
At the other end the boundary condition is of a dierent nature. It is also a bit more interesting, as we
have to derive it. Again, we take a short section of the wire of length x (see Figure 1.4). This time there
are terms that are multiplied by x, but there are also others which are not. Only the latter survive when
we make x go to zero.
P
w
x
(L, t) +F
L
(t) = 0 . (1.3)
This boundary condition is simply the balance of forces at the end of the wire. Boundary conditions of this
kind are called natural boundary conditions, and well nd out presently why.
1.5 Initial conditions
Along the edges of the domain rectangle that are parallel to the space axis we also apply two conditions.
However, as we all are aware, the time direction is special. Therefore, it will probably come to us naturally
to expect to know something about the deection at one point in time, typically at t = 0. Because this is
the initial point along the time axis, these conditions are known as the initial conditions (and we need
two of them):
w(x, 0) =

W(x),
w
t
(x, 0) =

V (x) , (1.4)
where

W(x) (the initial deection) and

V (x) (the initial velocity) are known functions.
1.6 Anything else?
The balance equation (1.1), the boundary conditions (1.2) and (1.3), and the initial conditions (1.4) are all
we need to fully dene what model it is we are trying to nd solutions to. It is an initial boundary value
problem, and as such it is quite typical of the models with which structural engineers have to deal. In what
follows, we shall nd out how to formulate an algorithm, the so-called Galerkin nite element method, which
will supply an approximate solution to this problem.
6 CHAPTER 1. MODEL OF A TAUT WIRE
Chapter 2
The method of Mr. Galerkin
We will have to come to grips with the impossibility of satisfying the governing equation exactly with an
approximate method. Theres going to be an error in the balance equation (which we shall call a residual;
another appropriate label might be imbalance). Similarly, the natural (force) boundary condition may not
be satised exactly, and there is going to be a residual there too.
1
2.1 Residual of the balance equation
The balance equation (1.1) may be written in the residual form as
P

2
w
x
2
+q w = r
B
(x, t) , (2.1)
by simply moving the inertial force on the other side of the equals sign. The residual r
B
is identically zero
if w is the exact solution. For an approximate solution, the residual r
B
varies from point to point, and from
time to time, and is in general nonzero.
Checking that the balance residual is identically zero at each point x and each time t does not provide
us with anything we can use to talk about approximate solutions: the residual is either zero or it isnt, but
how do we measure whether the approximate solution for which the residual is not zero is good?
2.2 Integral test of the residual
One possible choice of a quality measure is to integrate the residual over the domain (length of the wire).
We could think of the integral
_
L
0
r
B
(x, t) dx . (2.2)
as a test: if the residual is identically zero, this integral will also come out zero. However, (2.2) may be
zero even when the residual is not identically zero. In other words, if we wanted to prove that the residual
Figure 2.1: Residual that integrates to zero, but is not identically zero
1
Boris Grigoryevich Galerkin became a teacher of structural mechanics in St. Petersburg Polytechnical Institute in in 1908.
Among his contemporaries, also active in St. Petersburg, were I. G. Bubnov, A. N. Krylov, and S. P. Timoshenko, well-known
names in the profession. In 1915 Galerkin published an article, in which he put forward an idea of an approximate method to
solve dierential boundary value problems (he was working on plate and shell models at that time). Around that time Bubnov
developed similar variational approach, hence this method is also known as the Bubnov-Galerkin method.
7
8 CHAPTER 2. THE METHOD OF MR. GALERKIN
Figure 2.2: Nonzero a residual which is detected in the integral (2.3)
Figure 2.3: Stung a balloon into a box
corresponds to an exact solution, this would be an incomplete and awed test. Consider Figure 2.1: the
integral (2.2) is zero, but the residual itself may be very large (for instance, when r
B
= Asin(2nx/L), with
n = 1, 2, ...).
2.3 Test function
A remedy that addresses this blindness of (2.2) to the shape of the residual may be to use a window (test)
function (x)
_
L
0
(x)r
B
(x, t) dx . (2.3)
Note that (x) is an arbitrary function. In particular, it could be a function of the shape shown in Figure 2.2,
which is certainly going to give a nonzero value for (2.3) (the hatched area at the bottom). Therefore, it
correctly indicates that the residual does not correspond to the exact solution. Equation (2.3) is known as the
weighted residual statement. Approximate approaches that start from the weighted residual statement
are known as weighted residual methods.
Equation (2.3) is a reliable way of testing the residual, but computationally it seems hardly less dicult
than testing the residual at each point of the domain: equation (2.3) needs to be evaluated for an innite
number of functions in order to make sure there are no bumps in the residual. The job will still take an
innite time.
Let us contemplate a tangible analogy of what were trying to do in equation (2.3). Imagine our job is
to hold an inatable balloon in a box, so that it does not jut out anywhere. Use the ngers of one hand to
press down on the balloon, so that the balloon is at the top of the box in the spot where it is being held by
the nger. If we put down all ve ngers, the situation is as shown on the left in Figure 2.3. Each of the
ngers may be thought of as a single test function that pushes down the residual in some spots.
Evidently, the balloon bulges out a little bit in between the ngers, and a lot everywhere else. However,
we have the option of pressing down on the balloon with the ngers of our other hand, and if we enrol our
friends and relatives, and the chance passersby, we will manage to do a better and better job of stung the
balloon into the box and holding it so that it does not protrude very much. Indeed, with an innite number
of ngers, we can hold the balloon so that it does not protrude at all.
2.4. TRIAL FUNCTION 9
Figure 2.4: Piecewise linear trial function
In this way, we may begin to see how an trial-and-test approximate method may be formulated. Selecting
a nite number of suitable functions
j
(ngers), we may be able to keep the residual small (but in general
nonzero). By applying larger numbers of test functions, we may hope to be able to reduce the error in the
residual. Also, for each
j
, j = 1, ..., N , we will make the integral (2.3) vanish
_
L
0

j
(x)r
B
(x, t) dx = 0 , (2.4)
which provides us with the means of calculating N coecients (numbers) from these N equations.
2.4 Trial function
The task of formulating the approximate solution consists really of describing the shape of the deection
w. This can be done in a variety of ways, but for reasons that we shall give later, a piecewise linear
representation is a good choice. Figure 2.4 illustrates this concept by showing how the shape may be dened
by the N coecients w
j
. The attentive reader will at this point dget: the piecewise linear shape of the
deection curve is not going to allow us to express the second order derivatives
2
w/x
2
. At the corners, the
rst derivatives will be discontinuous, and hence the second derivative will be a spike (so-called Dirac delta
function). We can choose either to abandon the piecewise linear shape, and pass a smooth curve through the
lled-circle points, or, we could change the rules of the game by getting rid of the second-order derivatives.
As we shall presently see, the latter choice is commonly preferred.
In any case, the equations (2.4) may be used to calculate the values of w
j
, j = 1, ..., N. The function
that describes the shape of the approximate solution (with the N free parameters) is known as the trial
function. It describes a possible (candidate, trial) shape of the approximate solution; which becomes the
solution once the values of the free parameters are known.
2.5 Manipulation of the residuals
We will seek the approximate solution w to satisfy the balance equation in the residual form (2.4), and well
incorporate the boundary conditions and residual form too. The displacement boundary condition (1.2) will
be included in the form of the residual
r
w
(t) = w(0, t) w
0
(t). (2.5)
and the natural boundary condition (1.3) will be included as the residual
r
F
(t) = P
w
x
(L, 0) +F
L
. (2.6)
Therefore, the approximate solution will be sought from the conditions
_
L
0

j
(x)r
B
(x, t) dx = 0

w
r
w
(t) = 0

F
r
F
(t) = 0
(2.7)
10 CHAPTER 2. THE METHOD OF MR. GALERKIN
There are no conditions at this point on the trial function w other than smoothness that will guarantee the
existence of the integrals in the rst equation (2.7).
To reduce the complexity of (2.7), we may immediately realize that at the left-hand side end of the wire,
we can quite simply design the trial function to make the residual (2.5) identically zero. This will put another
condition on w, and (2.7) may be cast as
_
L
0

j
(x)r
B
(x, t) dx = 0

F
r
F
(t) = 0
(2.8)
where w(0, t) = w
0
(t), and w(x, t) suciently smooth in x.
In this way we managed to reduce the number of residuals, but we will do even better now. By applying
integration by parts to the rst equation in (2.8), we will be able to reduce the number of residuals further,
and furthermore, we will be able to make it much easier to design a trial function by allowing for less smooth
functions.
Substituting for the balance residual, we get three terms
_
L
0

j
(x)r
B
(x, t) dx =
_
L
0

j
(x)P

2
w
x
2
(x) dx +
_
L
0

j
(x)q(x) dx
_
L
0

j
(x)(x) w(x, t) dx
(2.9)
Integration per partes will not aect the second and third term on the right hand side, but for the rst term
we obtain
_
L
0

j
P

2
w
x
2
dx =
_

j
P
w
x
_
L
0

_
L
0

j
x
P
w
x
dx (2.10)
The bracketed term is fraught with possibilities. Number one, we may recognize part of the bracket in
equation (2.6). In fact, if we propose to satisfy r
F
= 0 at the right hand side end of the wire (x = L)
identically, we may simply replace P
w
x
(which is known there) with F
L
. That takes care of the force
residual (2.6). Number two, at the left-hand side end of the wire the value of P
w
x
is unknown, but we have
the option of making
j
vanish at x = 0. This will burden all the
j
s with a condition,
j
(x = 0) = 0, but
that is something we can aord.
We are in a position to summarize: We have been able to avoid the need to carry the displacement
residual (2.5) [eliminated by design of the trial function] and the force residual (2.6) [incorporated into the
balance residual hence, natural boundary condition]. Therefore, we will try to nd the approximate
solution w to satisfy the balance equation in the residual form

j
(L)F
L

_
L
0

j
x
P
w
x
dx +
_
L
0

j
q dx
_
L
0

j
w dx = 0, j = 1, ..., N (2.11)
where

j
(x = 0) = 0,
j
C
0
, j = 1, ..., N
w(x = 0, t) = w
0
(t), w C
0
,
w(x, t = 0)

W(x),
w
t
(x, t = 0)

V (x).
(2.12)
We write for the trial function w C
0
and similarly for the test functions. This literally means that the
functions are continuous, which is a substitute here for a more precise mathematical statement, but which
nevertheless ensures that the integrals in (2.11) exist.
The initial conditions need to be suitably approximated, in general we will not be able to satisfy them
exactly (which is why we write ). Typically, interpolation is used.
2.6 Stiness and mass matrix
It is time to come back to the choice of the test and trial functions. As advertised in Section 2.4, we have
been able to change the requirements on the test and trial function: Their derivatives are now balanced
2.7. PIECEWISE LINEAR BASIS FUNCTIONS 11
only the rst-order derivatives are needed for both. Therefore, the piecewise linear interpolation function of
Figure 2.4 is now an possibility. However, we can still forge ahead while keeping our options open.
Let us make the assumption that the time is xed t =

t (

t some given number). To describe the trial


function, we will resort to a common technique in interpolation which is to write the interpolant as a linear
combination of basis functions. Therefore, let us assume that the trial function is written as
w(x,

t) =
N

i=1
N
i
(x)w
i
(

t) (2.13)
where by w
i
(

t) we simply mean that the coecients of the linear combination w


i
are actually functions of
time, evaluated at the particular time

t. Substituting into (2.12), we obtain

j
(L)F
L

_
L
0

j
x
P
N

i=1
N
i
x
w
i
(

t) dx+
_
L
0

j
q dx
_
L
0

i=1
N
i
w
i
(

t) dx = 0, j = 1, ..., N ,
(2.14)
which may be simplied to

j
(L)F
L

i=1
_
_
L
0

j
x
P
N
i
x
dx
_
w
i
(

t)+
_
L
0

j
q dx
N

i=1
_
_
L
0

j
N
i
dx
_
w
i
(

t) = 0, j = 1, ..., N ,
(2.15)
With the denitions
K
ji
=
_
L
0

j
x
P
N
i
x
dx , (2.16)
where K
ji
is usually referred to as the stiness matrix, and
M
ji
=
_
L
0

j
N
i
dx , (2.17)
where M
ji
is the (consistent) mass matrix, we may write (2.15) as

j
(L)F
L

i=1
K
ji
w
i
(

t) +
_
L
0

j
q dx
N

i=1
M
ji
w
i
(

t) = 0, j = 1, ..., N , (2.18)
The matrix equation (2.29) is a system of coupled ordinary dierential equations (evaluated at time

t), where
the coupling is eected by the matrices K
ji
and M
ji
. The linear algebra is going to be much more ecient
if the two matrices are symmetric and sparse.
The rst property will follow if we take as the test functions
j
the basis functions themselves,
j
N
i
.
The second property may be achieved if the basis functions N
i
are nonzero only on a small subset of the
interval 0 x L.
2.7 Piecewise linear basis functions
Lets us get back to the piecewise linear approximation we advertised for the trial function in Section 2.4. The
broken line cannot be represented as a linear combination of linear functions that are all dened on the whole
interval 0 x L (only two such functions are linearly independent, and these functions cannot represent
the corners in the broken line). Therefore, we have to describe the piecewise linear curve interval-by-interval.
A common technique in interpolation is to write the interpolant as a linear combination of basis functions.
In one dimension, the piecewise linear basis function is called the hat functions. The six functions that
12 CHAPTER 2. THE METHOD OF MR. GALERKIN
Figure 2.5: Piecewise linear basis functions
are shown in Figure 2.5, all are examples of hat functions. For reasons that will be discussed later, we
would want the hat functions as the constituent parts of a linear combination to be able to reproduce an
arbitrary linear function over the whole interval. Because of the way in which we construct the hat functions
in Figure 2.5, this property is automatically available.
Let us describe the construction of the piecewise linear basis functions. (In this book, the one-dimensional
elements with two nodes at the end points are going to be referred to as L2.) First, the length of the wire
is divided into disjoint subintervals. These subintervals are the nite elements for the one-dimensional
problem. The end-points of the nite elements are called nodes. Together, the nite elements and the nodes
are known as the nite element mesh: see Figure 2.6 (the element numbers are in the boxes; nodes are
indicated by lled circles). Since all basis functions are constructed in the same way, we show the procedure
for basis function N
3
: as shown in the Figure 2.5, it is nonzero over two elements, 2 and 3; zero everywhere
else. To be able to write it down over the two adjacent elements, we have to agree on the value of N
3
at
node 3 (i.e. N
3
(x
3
)), which is shared by elements 2 and 3. Choosing N
3
(x
3
) = 1 has certain advantages,
which will be introduced momentarily. Using the concept of Lagrange interpolation polynomials, we may
write the function N
3
within element 2 as
N
3
(x) =
x x
2
x
3
x
2
, x
2
x x
3
and within element 3 as
N
3
(x) =
x x
4
x
3
x
4
, x
3
x x
4
.
All the other functions are expressed analogously. Putting them together in a linear combination for the
trial function, we write
w(x) =
N

i=1
N
i
(x)w
i
(for simplicity, we omit the time argument). Evaluating w(x) at node k, we obtain
w(x
k
) =
N

i=1
N
i
(x
k
)w
i
where the crucial expression is N
i
(x
k
): by denition, the basis function N
k
has value +1 at x
k
, while all
other functions N
i
, i ,= k are zero at x
k
. This property is usually expressed mathematically as
N
i
(x
k
) =
ik
, (2.19)
2.8. NUMERICAL QUADRATURE 13
Figure 2.6: The nite element mesh
Figure 2.7: Two dierent views on how to evaluate basis functions in the nite element mesh: top compute
a single basis function over the whole mesh; bottom compute all nonzero basis functions over a single
element.
where the symbol
ik
is known as the Kronecker delta

ik
=
_
1, if i = k;
0, otherwise.
Because of this property, the value of w(x
k
) is
w(x
k
) =
N

i=1
N
i
(x
k
)w
i
=
N

i=1

ik
w
i
= w
k
,
and the parameters w
i
have the physical meaning of the value of the interpolated function at the node i.
The w
i
s are usually called the degrees of freedom, since being the control parameters of the trial function,
they determine the shape of the actual solution from all the possible shapes of the trial function. They are
the objects that our numerical method solves for.
2.8 Numerical quadrature
While in the preceding section we described how to compute the basis function N
3
by visiting the adjacent
nite elements on which the function was nonzero, the task in an actual nite element program is dierent.
The algorithm there is designed to facilitate numerical evaluation of the integrals in the residual equations.
The integrals are calculated element-by-element (the integrands are in general discontinuous from element to
element). Therefore, instead of being interested in a single basis function at any point within the mesh, we
will rather be striving to calculate the values (and their derivatives) of all the nonzero basis functions at a
particular point (the quadrature point) within a single nite element; see Figure 2.7. In the element-centric
view, we would evaluate the functions associated with the nodes at the endpoints of the element. Say for
element connecting nodes i, and j, the functions N
i
and N
j
would be expressed as
N
i
(x) =
x x
j
x
i
x
j
, N
j
(x) =
x x
i
x
j
x
i
(2.20)
It is common practice to develop numerical integration rules on standard intervals. Often that will
be 1 +1 (line elements in one dimension, quadrilaterals in two dimensions, and bricks in three
dimensions all use this interval denition in so-called tensor-product forms). For instance, Simpsons 1/3
rule is given on this interval as
_
+1
1
f()d
1
3
f( = 1) +
4
3
f( = 0) +
1
3
f( = +1)
14 CHAPTER 2. THE METHOD OF MR. GALERKIN
In general, a numerical quadrature rule would be written on the standard interval 1 +1 as
_
+1
1
f()d
M

k=1
f(
k
)W
k
(2.21)
where
k
are the locations of the integration points, and W
k
are their weights. Integrating numerically
arbitrary functions over arbitrary intervals is then made possible by a map from the standard interval
1 +1 to the arbitrary interval a x b
x =
1
2
(a +b) +
1
2
(b a) (2.22)
(the rst part is the midpoint of the interval a x b, the second part is the departure from the midpoint
to either side). Because this map is linear, the relationship between the dierentials is constant,
dx =
1
2
(b a)d
where the factor
1
2
(b a) is called the Jacobian determinant. The Simpsons 1/3 rule is for an arbitrary
interval a x b expressed as
_
b
a
f(x)dx
1
2
(b a)
_
1
3
f( = 1) +
4
3
f( = 0) +
1
3
f( = +1)
_
In general, if the map is
x = g() (2.23)
and the numerical quadrature over an arbitrary interval may be written as
_
b
a
f(x)dx
M

k=1
f(
k
)
g

(
k
)W
k
(2.24)
where
g

(
k
) is the Jacobian determinant evaluated at the quadrature point
k
.
Lets us now look at the integrals in the mass matrix (2.17). The integral will be evaluated over each
element individually, and these contributions will be summed together. Therefore, let us consider the inte-
gral (2.17)over a single element, connecting nodes i and j
_
x
j
x
i
N
j
(x)(x)N
i
(x) dx .
Notice that we are not getting the indexes mixed up: N
j
and N
i
are the only two basis functions which are
nonzero over the interval x
i
x x
j
. Clearly, the function f(x) in equation (2.24) is
N
j
(x)(x)N
i
(x)
which means that we have to express the basis functions in terms of ((x) is typically constant over an
element). However, we have the map (2.22), which upon substitution into (2.20) yields
N
i
() =
1
2
, N
j
() =
+ 1
+2
(2.25)
Basis functions expressed on the standard interval (2.25) are sometimes referred to as being expressed in the
parametric coordinates. It is noteworthy that (2.25) are just the Lagrange interpolation polynomials on the
standard interval. As we shall see later, writing down the basis functions over a standard shape a square
for general quadrilaterals, a cube for general brick elements, standards triangles or standard tetrahedra for
general triangles or general tetrahedra, and so on is not only convenient, but also highly advisable from the
point of view of computer implementation: most of the code for dierent element shapes and types is then
2.9. PUTTING IT TOGETHER: SYSTEM OF ODES 15
shared, and does not have to be repeated. However, it does mean that we have to express the derivative of
the basis functions using a chain rule:
N
i
()
x
=
N
i
()

x
(2.26)
The partial derivative

x
is readily available from (2.22), and may be identied as the inverse of the Jacobian.
To state the integral of the term corresponding to the mass matrix
_
xj
xi
N
j
(x)(x)N
i
(x) dx
1
2
(x
j
x
i
)
M

k=1
N
j
x
(
k
)
N
i
x
(
k
)W
k
.
where (2.26) is used to evaluate the derivatives of the basis functions.
At a rst sight, the integrals in the stiness matrix (2.16), and in the mass matrix (2.17), the latter will
seem to require a more accurate numerical quadrature rule: the stiness matrix involves products of the
derivatives of the basis functions, which for linear basis functions are constants; the mass matrix, on the
other hand, requires products of the basis functions themselves, which are linear functions of x. Therefore,
the stiness matrix will result from integrals of constants, while the mass matrix is the result of integrals of
quadratic functions. However, at times increased eciency and even accuracy may be achieved if the mass
matrix is not integrated exactly, in particular diagonal mass matrices are often used to achieve both benets.
The numerical quadratures that are in common use with polynomial nite elements are the Gaussian
rules. They are well described in a number of textbooks, see for instance Reference [CC2005], and we are
going to introduce them later.
2.9 Putting it together: system of ODEs
Applying the piecewise linear basis functions derived in Section 2.7 to equation (2.29) is a straightforward.
The unknown degrees of freedom are w
2
(t), w
3
(t), ..., w
N
(t); the function w
1
(t) is given by the boundary
conditions: the condition w(x = 0, t) = w
0
(t) becomes, as a result of the Kronecker delta property, w
1
(t) =
w
0
(t).
The stiness and mass matrices will be symmetric, tri-diagonal, i.e.
K
ji
=
_
L
0
N
j
x
P
N
i
x
dx
_
,= 0, if [i j[ 1;
= 0, otherwise.
, (2.27)
and
M
ji
=
_
L
0
N
j
N
i
dx
_
,= 0, if [i j[ 1;
= 0, otherwise.
, (2.28)
Equation (2.15) is trivially modied to read
N
j
(L)F
L

i=1
K
ji
w
i
(t) +
_
L
0
N
j
q dx
N

i=1
M
ji
w
i
(t) = 0, j = 2, ..., N , (2.29)
Note that j runs from 2 to N (as explained above), but i ranges over all nodes, i.e. also the rst degree
of freedom is included, even though it is determined from the boundary condition. In eect, nonzero
displacement w
1
(t) generates an external force with the jth component
K
j1
w
1
(t) M
j1
w
1
(t) .
The second order dierential equations (2.29) may be integrated for instance by converting them to rst
order form and using an o-the-shelf Matlab integrator. However, because of their special form, there are
excellent custom-tailored algorithms for this purpose: for example the Newmark explicit algorithm.
16 CHAPTER 2. THE METHOD OF MR. GALERKIN
Chapter 3
Introducing the Matlab code
In this chapter we will introduce a nite element library (or toolbox, if you prefer), SOFEA
1
. It will be
used to produce nite element solutions using the results of the previous chapter for the Galerkin method.
SOFEA implementation is in Matlab, and its design is based on the object oriented support in Matlab (release
14 and later). In particular, all the methods and algorithms are present in the library as classes, or methods
dened for classes.
3.1 Statics
When the inertial forces may be neglected in the balance equation, we have the case of statics (static
equilibrium). The Galerkin formulation simply drops the terms with the accelerations, and reads
N
j
(L)F
L

i=1
K
ji
w
i
+
_
L
0
N
j
q dx = 0, j = 2, ..., N , (3.1)
which may be arranged in matrix form as
Kd = L (3.2)
where K is a square (N1)(N1) matrix collecting K
ji
, i, j = 2, ..., N. The column matrix d collects the
degrees of freedom d
k
= w
k+1
, k = 1, ..., N 1. The column matrix L is the load vector, with components
L
k
= N
k+1
(L)F
L
K
k+1,1
w
1
+
_
L
0
N
k+1
q dx = 0, k = 1, ..., N 1 , (3.3)
3.2 Statics: uniform load
Furthermore, we assume the transverse load q is uniform, and the transverse force is absent, F
L
= 0. The
Matlab script implementing the solution is w1
2
. It starts with the denition of the variables.
0001 disp(Taut wire: example 1-- statics, uniform load);
0002 L=6;
0003 P=4;
0004 q =-0.1;
Next, the mesh is dened: an array of nodes is created, with node 1 at x = 0 and so on. The function fenode
is the constructor of the class fenode, and the attributes are being passed as elds of a struct, as pairs
name, value (for instance, id,j): this approach is uniformly adopted for all constructors. The array
gcells collects nite elements of the type gcell L2. The attribute conn is the connectivity: the numbers
1
SOFEA is c 2005, Petr Krysl
2
Folder: SOFEA/examples/taut wire
17
18 CHAPTER 3. INTRODUCING THE MATLAB CODE
of nodes that are connected by the element. The nite elements are referred to as geometric cells. The
main reason is that the nite elements have rather limited responsibilities in SOFEA, namely calculation of
the basis functions (and their derivatives), and drawing of the shape of the cell are essentially all that is
required.
0005 n=2; % number of elements
0006 % Mesh
0007 x=0;
0008 fens=[];
0009 for j= 1:n+1
0010 fens=[fens fenode(struct (id,j,xyz,[x]));];
0011 x = x+(L/n);
0012 end
0013 gcells = [];
0014 for j= 1:n
0015 gcells = [gcells gcell l2(struct(id,j,conn,[j j+1]))];
0016 end
The operations on the mesh that reect the particular problem that is being solved are encapsulated in
the class descended from the nite element block, feblock. In particular, the prestressed wire stiness and
mass matrix, the eect of the distributed load, q, and the eect of the nonzero displacement at x = 0, are
computed by the methods of the class feblock defor taut wire. Note that Simpsons 1/3 rule is being
used for the numerical quadrature. The nite element block consists of all the nite elements.
0017 % Finite element block
0018 feb = feblock defor taut wire(struct (mater,mater defor,...
0019 gcells,gcells,...
0020 integration rule,simpson 1 3 rule,...
0021 P,P));
The quantities that are interpolated on the nite element mesh, such as the transverse displacement of
the wire, w, or the geometry of the mesh, are represented in SOFEA as instances of the class field. The
eld geom records the geometry of the mesh. The constructor on line 0023 retrieves this information from
the array of the nodes. The dimension of the eld is 1 because each degree of freedom is just a single
displacement. On line 0025 we dene the eld of the transverse displacements, w. For convenience, it is
dened by cloning the geom eld, and then zeroing out all the degrees of freedom.
0022 % Geometry
0023 geom = field(struct (name,[geom], dim, 1, fens,fens));
0024 % Define the displacement field
0025 w = 0*clone(geom,w);
Next, the displacement (essential) boundary conditions are dened, and applied to the displacement eld.
The method set ebc simply records which components of the degrees of freedom, at which node, are being
prescribed (or released), and to which value are they being prescribed. The method apply ebc is then used
to transfer this information to the actual degrees of freedom. Finally, the method numbereqns numbers the
degrees of freedom that are not being prescribed, eectively assigning each one a global equation number.
An important remark should be made here: Lines 0028, 0029, and 0030 illustrate a design feature of
Matlab, where all arguments are passed by value . Therefore, no matter what we do with the arguments
inside the functions, the values that were passed by the caller into those functions do not change at all. The
functions work with copies, not the actual variables that the caller passed. If the caller wishes to change the
variables, the method must return the changed value, and the caller must assign this value. Example: on
line 0031 the method numbereqns will number the equations in a copy of the eld w, and then will return
the copy. Since we assign back to the eld w, the computed numbering of the equations will be now available
in w; if we did not assign back to w, all the work done by the method numbereqns would be forgotten.
3.3. FREE VIBRATION 19
0026 % Apply EBCs
0027 fenids=[1]; prescribed=[1]; component=[1]; val=0;
0028 w = set ebc(w, fenids, prescribed, component, val);
0029 w = apply ebc (w);
0030 % Number equations
0031 w = numbereqns (w);
Next we create the global system of equations. The stiness matrix is an object, K, which gets created in line
0033, and initialized to represent a dense neqnsneqns matrix. In line 0034, the stiness matrices calculated
for each nite element by the block feb are assembled into the global matrix K (class dense sysmat). The
number of equations is being retrieved from the displacement eld (the globally equation numbers have been
placed there above) using the get method. The get method is available for all SOFEA objects, and just typing
w at the command line produces a list of all the properties that can be obtained from the object. A great
way in which objects may be explored is the graphical user interface of the object browser, OBgui (part of
SOFEA). Its operation is supported by the output of get(w) (notice that only the object itself is passed as
argument): using get in this way returns a cell array, with the name and the description of each attribute.
0032 % Assemble the system matrix
0033 K = start (dense sysmat, get(w, neqns));
0034 K = assemble (K, stiffness(feb, geom, w));
The load q is in this case represented by the body load class. The global load object sysvec is assembled
from element load vectors computed by the nite element block.
0035 % Load
0036 bl = body load(struct (magn,inline(num2str(q))));
0037 F = start (sysvec, get(w, neqns));
0038 F = assemble (F, body loads(feb, geom, w, bl));
Finally, the global stiness object is asked to produce the actual stiness array, and the global load object is
asked to supply the actual load vector. The standard backslash Matlab operator than produces the solution,
which is then stored in the proper places in the displacement eld w. The method scatter sysvec distributes
the system vector (the solution of the system of linear equations) to the proper degrees of freedom, and we
should note that again the result is assigned to w.
0039 % Solve
0040 w = scatter sysvec(w, get(K,mat)get(F,vec));
A graphical representation is generated by plotting the linear coordinate (gathered from the geometry eld
geom) versus the linear interpolation of the approximate displacements (gathered from w). The analytical
solution is also plotted (line 0043). It is noteworthy that the approximate solution interpolates the analytical
solution.
0041 % Plot
0042 xs= (0:0.01:L);
0043 plot (xs, -q/P*xs.*(xs/2-L),r-,linewidth, 3);
0044 hold on
0045 plot (gather (geom, (1:n+ 1),values), ...
0046 gather (w, (1:n+ 1),values),bo-,linewidth, 3);
0047 figure (gcf)
3.3 Free vibration
If we remove all external loads, and prescribe homogeneous (zero) displacements, the Galerkin formulation
reads

N
i=2
K
ji
w
i
(t)

N
i=2
M
ji
w
i
(t) = 0, j = 2, ..., N , (3.4)
20 CHAPTER 3. INTRODUCING THE MATLAB CODE
0 1 2 3 4 5 6
0.5
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
Figure 3.1: The displacements of the taut wire
which may be arranged in matrix form as
Kw +M w = 0 (3.5)
where K is a square (N 1) (N 1) matrix collecting K
ji
, i, j = 2, ..., N, and analogously for the
mass matrix. The column matrix w collects the degrees of freedom w
i
(t). Equations (3.5) represent the
so-called free vibration response. The solution is sought in the form w(t) = exp(t), which leads to the
generalized eigenvalue problem
K
2
M = 0 (3.6)
where is the circular frequency, and is the eigenmode.
As an example, the present model will be used to calculate the rst ve natural frequencies of a simply-
supported taut string of constant mass density. The Matlab script wvib
3
obtains the solution for a series of
progressively ner and ner meshes (from 8 elements to 1024 elements). The mass matrix is either computed
from the formula (2.17) (this is the so-called consistent mass matrix ), or or it is diagonalized (lumped)
by assigning each node half the mass of the adjacent nite elements
M
ji
= h
ji
, (3.7)
which results in the so-called lumped mass matrix.
The analytical formula for the natural frequency [Gra91]

2
=
P

_
n
L
_
2
, n = 1, 2, 3, ...
produces reference values which are compared with the frequencies solved for from (3.6). The results are
summarized in Figure 3.2. The progressive reduction of error due to the use of more and more elements is
called convergence. It may be observed that the two mass matrix formulations leads to convergence from
dierent sides: consistent mass matrix overestimates the natural frequencies, while the lumped mass matrix
underestimates them. Concerning accuracy: clearly, for quite reasonable engineering tolerance of 5% error,
it takes 32 elements for either formulation of the mass matrix to compute all ve natural frequencies within
the tolerance.
3.4 Integration of transient motion
In addition to analytical approaches, the system of ordinary dierential equations (2.29) may be integrated
numerically. In this section, we will apply an o-the-shelf Matlab integrator.
3
Folder: SOFEA/examples/taut wire
3.4. INTEGRATION OF TRANSIENT MOTION 21
Figure 3.2: Convergence of the rst ve natural frequencies of vibration; left: consistent mass matrix, right:
lumped mass matrix. Vertical axis: normalized error (
h
)/.
The Matlab integrators work with a system of rst order dierential equations. Therefore, (2.29) will be
rst converted to this form. For convenience, equation (2.29) will be cast in matrix form
M w +Kw = F (3.8)
The stiness matrix entries are dened in (2.16). The mass matrix may be either of the consistent vari-
ety (2.17), or a special-purpose matrix such as the lumped mass (3.7). Note that w is the vector function of
time-dependent deections.
Dening v = w, the rst order system may be written as
_
1 0
0 M
_ _
w
v
_
=
_
v
Kw +F
_
, (3.9)
which is in the mass matrix form

M y = f(t, y) . (3.10)
In what follows we will consider a particular example of transient vibrations: unforced oscillation due to
a particular set of initial conditions. In this example we consider initial zero deection, and initial velocity
which corresponds to a singular perturbation: a single node at the midspan is given a nonzero velocity. This
is representative of a physical situation in which a stationary taut string is rapped sharply with a hammer.
Waves propagate away from the midpoint, hit the xed end-points, and complex interference pattern develops
(see Figure 3.3).
3.4.1 Using built-in Matlab solver
The Matlab script wtransient1
4
computes the solution to the transient vibration problem using a built-in
Matlab solver.
As expected, the initial conditions need to be supplied.
0024 w0 = gather sysvec (w);
0025 v0 = w0; v0(round(n/2)) = 1;
0027 K = start (dense sysmat, get(w, neqns));
0028 K = assemble (K, stiffness(feb, geom, w));
0029 Kmat =get(K,mat);
0030 % Assemble the consistent mass matrix
0031 M = start (dense sysmat, get(w, neqns));
0032 % Assemble the lumped mass matrix
4
Folder: SOFEA/examples/taut wire
22 CHAPTER 3. INTRODUCING THE MATLAB CODE
Figure 3.3: Amplitude of the vertical deection as a function of the coordinate x and the time.
0033 M = assemble(M, elemat( struct(eqnums,...
(1:n-1),mat, eye(n-1) * mu*L/n)));
0034 Mmat=get(M,mat);
0035 Mattilda= [eye(get(w, neqns)),zeros(get(w, neqns));...
0036 zeros(get(w, neqns)),Mmat];
Matlab provides a suite of several ODE solvers. ode23 is an implementation of an explicit Runge-Kutta
(2,3) pair of Bogacki and Shampine [BS89]. These solvers use a standard argument list.
0037 % Solve
0038 function rhs =f(t,y)
0039 neq=length(y)/2;
0040 w=y(1:neq); v=y(neq+1:end);
0041 rhs= [v;-Kmat*w];
0042 end
The invocation of the solver is unremarkable, except that we use odeset to supply the mass matrix,

M.
The output arguments collect an array of output times, and an array of calculated deections at all internal
nodes.
0043 [ts,ys]=ode23(@f,[0, 1500],[w0;v0],...
odeset(Mass,Mattilda,RelTol,1e-3));
3.4.2 Using the Trapezoidal integrator
The Runge-Kutta of the previous section seems to be doing an adequate job. However, integrating the rst
order system is sub-optimal for the taut string problem in the rst place: The dimension of the ODE system
is doubled. Secondly, the Runge-Kutta ode23 integrator is not actually doing very well.
Energy conservation is a very important indicator of the quality of the numerical solution, since energy
should be conserved in the exact solution to this particular problem. For the taut string problem, the total
energy may be dened as
TE =
1
2
( w M w +w K w) .
It may be observed that the solution produced by the ode23 integrator does not conserve this quantity (refer
to Figure 3.4), and that provides motivation for the development of algorithms specialized to mechanical
systems.
The algorithm we are going to develop next is a special form of the well-known Newmark integrator
which is very popular and well-respected in the computational mechanics community for a number of rea-
sons [Hug00]. The starting point is the rst order system (3.10). Integrating in time
_
t
t
0

M y d =
_
t
t
0
f(, y) d , (3.11)
3.4. INTEGRATION OF TRANSIENT MOTION 23
yields

M(y
t
y
t
0
) =
_
t
t
0
f(, y) d . (3.12)
The right hand side may be integrated in time using the trapezoidal rule, which leads to the algorithm

M(y
t
y
t0
) =
t t
0
2
_
f(t, y
t
) +f(t
0
, y
t0
)
_
. (3.13)
Instead of the rst-order form, we may multiply through (3.13), obtaining a coupled system
w
t
= w
t
0
+
t t
0
2
(v
t
+v
t
0
) (3.14)
Mv
t
= Mv
t
0

t t
0
2
K(w
t
+w
t
0
) +
t t
0
2
(F
t
+F
t
0
) , (3.15)
which may be marched forward by substituting the rst equation into the second, solving for v
t
, and
then updating w
t
from the rst equation. The integrator obtained in this way is a special case of the
general Newmark integrator [Hug00]. The Newmark algorithm has two free parameters, and for the special
choice = 1/2 and = 1/4 (the so-called average acceleration method ) one obtains the trapezoidal
integrator (3.14).
The Matlab script wtransient2
5
computes the solution to the transient vibration problem using a trape-
zoidal integrator (Newmark average-acceleration integrator). Note that the integrator algorithm is imple-
mented as a nested function, which has access to variables dened in the dening environment, the stiness
matrix Kmat and the mass matrix Mmat.
0033 Mmat=get(M,mat);
0034 % Solve
0035 function [ts,ys] = trapezoidal(nsteps,tspan,w0,v0)
0036 ts= zeros(nsteps, 1);
0037 nu =length(w0);
0038 ys = zeros(2*nu,nsteps);
0039 dt = (tspan(2)-tspan(1))/nsteps;
0040 t =tspan(1);
0041 for i=1:nsteps
0042 ts(i) =t;
0043 ys(1:nu,i) =w0; ys(nu+1:end,i) =v0;
0044 v1=(Mmat+((dt/2)^2)*Kmat)...
((Mmat-((dt/2)^2)*Kmat)*v0-dt*Kmat*w0);
0045 w1=w0+dt/2*(v0+v1);
0046 w0=w1;v0=v1;
0047 t=t+dt;
0048 end
0049 ys=ys;
0050 end
0051 % Now call the integrator
0052 [ts,ys]=trapezoidal(3000,[0, 1500],w0,v0);
Figure 3.4 compares the computed total energy for the two integrators introduced in this section. Evi-
dently, the nominally less accurate trapezoidal (Newmark average acceleration) integrator does a much better
job than the Runge-Kutta ode23 integrator.
5
Folder: SOFEA/examples/taut wire
24 CHAPTER 3. INTRODUCING THE MATLAB CODE
Figure 3.4: Total energy obtained with two dierent time integrators.
Chapter 4
The boundary conditions for the
model of a taut wire
In this chapter we will explore the eect the boundary conditions have on the solution, both its existence
and its computability with the Galerkin model.
We will consider only statics, so that the balance equation (1.1) drops the inertial term
P

2
w
x
2
+q = 0 , (4.1)
and furthermore we will assume that the transverse load q is a constant. With a denition k = q/P, the
task is to integrate

2
w
x
2
= k = constant , (4.2)
which is easily accomplished as
w(x) = k
x
2
2
+Cx +D , (4.3)
where C and D are integration constants to be determined from the boundary condition.
As already mentioned (Section 1.4), there is only one condition on the boundary (which for the problem
of the wire consists of two disjoint sets, each consisting of a single point at the either end) that we can use to
determine the solution. Since the balance equation is of second order, and the unknown is a single function,
a single boundary condition is all that is needed (with caveats, however). A simple explanation for this need
in one dimension is that a second order equation needs two integration constants; we will talk about this
issue in higher dimensional domains when we deal with the heat conduction equation and also, in a lot more
detail, in the part dedicated to the elasticity problem.
The boundary condition may be of two distinct types, either one of the two we introduced earlier: either
prescribed deection (essential boundary condition), or prescribed slope (derivative of the deection, which
is a natural boundary condition). Since we may prescribe only one boundary condition, but the boundary
consists of two disjoint sets, we may in fact prescribe one or the other type at either of the two endpoints.
It does matter which type of boundary condition is applied, and the details are discussed in this chapter.
4.1 Essential and natural boundary conditions at separate end-
points
This selection of boundary condition specications has been treated in the previous few chapters. The
natural condition may be expressed in terms of end-point forces. At x = L the relation is equation (1.3),
and it may be derived in the same way at x = 0 as
P
w
x
(0) +F
0
= 0 . (4.4)
25
26 CHAPTER 4. THE BOUNDARY CONDITIONS FOR THE MODEL OF A TAUT WIRE
The Galerkin algebraic equations for an essential boundary condition at x = 0 and a natural boundary
condition at x = L is given by equation (2.29), with proper allowance made for vanishing accelerations, and
when the points of application of these boundary conditions are switched, the changes are limited to the
boundary term and the conditions for the test and trial functions only
N
j
(0)F
0

i=1
K
ji
w
i
+
_
L
0
N
j
q dx = 0, j = 1, ..., N 1 , (4.5)
where
N
j
(x = L) = 0, N
j
C
0
, j = 1, ..., N 1
w
N
= w
L
.
(4.6)
After the solution for the deection has been obtained, the slope at the end with the essential boundary
condition may be computed, yielding the associated reaction force. For instance, for the problem (4.5),
(4.6), the analytical solution of (4.3), with the boundary conditions
w
x
(0) =
F
0
P
= w

0
, w(L) = w
L
,
is
w(x) =
k
2
(x
2
L
2
) + w

0
(x L) + w
L
.
This yields the reaction force F
L
= P(kL + w

0
).
4.2 Essential boundary conditions only
The boundary conditions are in this case the deections given at both ends,
w(0) = w
0
, w(L) = w
L
,
which may be substituted into (4.3) for x = 0 and x = L to yield two equations for C and D. Upon
substitution, the slopes at the end points are available as
w
x
(0) =
w
L
w
0
L
k
L
2
,
w
x
(L) =
w
L
w
0
L
+k
L
2
.
From the slopes, the forces F
0
and F
L
are available from (4.4) and (1.3). The physical meaning of these two
forces is that of reactions at the supports.
The algebraic equation for this type of boundary conditions becomes

i=1
K
ji
w
i
+
_
L
0
N
j
q dx = 0, j = 2, ..., N 1 , (4.7)
where
N
j
(x = 0) = 0, N
j
(x = L) = 0, N
j
C
0
, j = 1, ..., N 1
w
1
= w
0
, w
N
= w
L
.
(4.8)
Note that the degrees of freedom to be computed are only at the interior nodes.
4.3 Natural boundary conditions only
The boundary conditions are in this case the slopes given at both ends,
w
x
(0) = w

0
, ,
w
x
(L) = w

L
, ,
4.4. OVERSPECIFIED BOUNDARY CONDITIONS 27
Integrating (4.2) once yields for the slope
w
x
(x) = kx +C ,
which may be used in conjunction with the boundary conditions to express the constant C as either of the
two expressions
C = w

0
, or C = w

L
kL .
But clearly, this is only possible if
w

0
= w

L
kL ,
which may be interpreted as a condition under which a solution exists: if the two slopes are linked by
the previous equation, solution exists; otherwise no solution exists, because the boundary conditions are
contradictory.
If the solution exists, and the two slopes are not independent, the boundary conditions are really not
going to be sucient to determine two constants of integration, but only one. Correspondingly, the deection
of the wire is then
w(x) = k
x
2
2
+ w

0
x +D ,
where the constant D remains undetermined.
An initial boundary value problem with natural boundary conditions only is called pure-traction prob-
lem, or Neumann problem. We could see that the solution would exist only under certain conditions. In
this case, the condition is one of static equilibrium: the end-point forces must balance the transverse load.
Provided equilibrium may be established, the solution still remains non-unique, as it is possible to translate
the wire perpendicularly to its axis without aecting the equilibrium. In terms of the linear algebra of the
solution this is manifested by a singular stiness matrix. An obvious computational treatment is to force the
displacement at one node to be some known a value, for instance zero. Adding this superuous boundary
condition makes the problem solvable uniquely. (We might wish to consider that one boundary condition
specication was in fact missing because of the linear dependence between the slopes; so in this way we are
really just lling a void.) Another possibility is to add an articial spring at one node.
4.4 Overspecied boundary conditions
The boundary condition application consisted so far of one and only one condition specication at each of
the two endpoints (i.e. at the boundary). In this section we will attempt to apply two boundary conditions
at one end and none at the other. Since this will turn out to be too much prescribed information at one
point, will call this the case of over-specied boundary conditions.
For instance, we could prescribe two pieces of information at x = 0
w(0) = w
0
,
w
x
(0) = w

0
, (4.9)
Integrating (4.2) once yields for the slope
w
x
(x) = kx +C ,
which may be used in conjunction with the natural boundary condition to express the constant C as
C = w

0
.
Integrating again yields
w(x) = k
x
2
2
+ w

0
x +w
0
,
where all the constants are determined from the two boundary conditions at a single endpoint. Using this
expression, we can calculate the deection and slope at x = L. The interesting thing is that the slope is in
general nonzero
w
x
(L) = kL + w

0
,= 0 ,
28 CHAPTER 4. THE BOUNDARY CONDITIONS FOR THE MODEL OF A TAUT WIRE
which means that even though we did not assume this, there must be an applied force F
L
at the end where
no boundary conditions have been specied. For the same reasons, it is not possible to prescribe either
deection or slope at x = L while the boundary condition (4.9) is in force. Any mismatch between the
prescribed values and the calculated values would make the existence of the solution an impossibility (the
solution must satisfy the balance equation and all boundary conditions).
But the preceding discussion was based on the analytical integration of the balance equation. Is this
way of prescribing boundary conditions compatible with the Galerkin technique? For the moment, we will
go back all the way to the weighted residual equation (2.11), but we will keep all the boundary terms (and
drop the inertial terms statics)

j
(L)F
L

j
(0)F
0

_
L
0

j
x
P
w
x
dx +
_
L
0

j
q dx = 0, j = 1, ..., N . (4.10)
The functions
j
and w need to be just suciently smooth to make the integrals exist. But now we introduce
the boundary condition (4.9). As discussed below equation (2.10), the condition w(x = 0) = w
0
could be
used to eliminate the associated reaction, F
0
, by setting
j
(0) for all j. The resulting weighted residual
formulation is

j
(L)F
L

_
L
0

j
x
P
w
x
dx +
_
L
0

j
q dx = 0, j = 1, ..., N . (4.11)
where we must place one condition on w
w(x = 0) = w
0
, w C
0
. (4.12)
However, we realize that the prescribed force F
0
now no longer aects the solution! Another diculty is
that F
L
is not known, and hence there is not enough equations to solve for w
i
, i = 2, ..., N and F
L
. What is
needed is an additional equation that would link together F
0
and F
L
. The equation of global equilibrium is
such an equation
F
L
= F
0
qL ,
and may be added to the equations resulting from (4.11). The global equations are then of a blocked nature.
The Matlab script woverspec
1
generates a numerical solution for the denition of boundary conditions
discussed above. The code snippet below illustrates the system matrix, A, in line 0034, which clearly
displays how it is composed of distinct blocks
A =
_

_
K
_

_
0
0
.
.
.
1
_

_
_
0 0

1
_

_
.
0028 K = start (dense sysmat, get(w, neqns));
0029 K = assemble (K, stiffness(feb, geom, w));
0030 % and now the special terms due to the boundary conditions
0032 z = zeros(N-1, 1); zt=z;
0033 z(end) = 1;
0034 A = [get(K,mat),z;zt,1];
The right hand side of the system equations is correspondingly expanded by a single element at the bottom.
0036 fi = force intensity(struct (magn,inline(num2str(q))));
0037 F = start (sysvec, get(w, neqns));
0038 F = assemble (F, body loads(feb, geom, w, fi));
0039 F = assemble (F, nz ebc loads(feb, geom, w));
0040 % and now the special terms
0041 b=get(F,vec);
0042 b = [b; -(F 0-q*L)];
1
Folder: SOFEA/examples/taut wire
4.4. OVERSPECIFIED BOUNDARY CONDITIONS 29
Figure 4.1: The wire problem with overspecied boundary conditions.
Figure 4.1 illustrates the correct solution versus an incorrect solution obtained when the F
L
term is
simply dropped from (4.11): the denotation natural is then fully operational, since that means that the
natural boundary condition F
L
= 0 is in eect. That can be veried visually as the slope at the right hand
side is apparently approaching zero.
Clearly, we can see that overspecication of boundary conditions does not t the framework of the
Galerkin method very well. Special treatment is required. However, there is worse news: the existence of
the solution has to be demonstrated case-by-case, it does not follow automatically. The situation is much
worse in higher dimensional problems.
30 CHAPTER 4. THE BOUNDARY CONDITIONS FOR THE MODEL OF A TAUT WIRE
Part II
Thermal analysis
31
Chapter 5
Model of Heat Diusion
In this chapter we will develop a nite element model for heat conduction problems. The excellent textbook
by Lienhard and Lienhard [LL05] has all the details one might require to supplement the treatment that
follows.
5.1 Balance equation
In this section, our goal is to derive the balance equation that governs heat conduction in solids as a partial
dierential expression. It will be converted to a residual form, which will then be treated with the Galerkin
method.
To begin, we pick a control volume, and we keep track of the heat energy within that volume. The control
volume may be the whole structure, part of the structure, or just a very small chunk of material surrounding
a given point in space (Figure 5.1). The amount of heat energy in the control volume U is expressed in terms
of volume density of heat energy, u
U =
_
V
u dV (5.1)
As the means of change of the heat energy within the control volume we consider outow (inow) of
heat energy via the boundaries, and heat generation (or loss) within the volume. These quantities will be
expressed in terms of rates. Therefore, the amount of energy owing out of the control volume through its
bounding surface S per unit time is
_
S
n q dS , (5.2)
where n is the outer normal to the surface S, and q is the heat ux (amount of heat owing through a unit
area per unit time). The amount of energy generated within the control volume per unit time is
_
V
Q dV . (5.3)
Figure 5.1: The domain for the heat conduction problem
33
34 CHAPTER 5. MODEL OF HEAT DIFFUSION
where Q is the rate of heat generation per unit volume; for example, heat is released or consumed by various
deformation and chemical processes (as work of viscous stresses, reaction product of curing concrete or
polymer resins, and so on).
Collecting the terms, we can write for the change of the heat energy within the control volume the rate
equation
dU
dt
=
_
S
n q dS +
_
V
Q dV . (5.4)
Finally, dierentiating U with respect to time will be possible if we assume that U = U(T), i.e. if U is a
function of the absolute temperature T. Holding the control volume xed in time, the time dierentiation
may be taken inside the integral over the volume
dU
dt
=
d
dt
_
V
u dV =
_
V
du
dt
dV , (5.5)
and with the application of the chain rule, the relationship (5.5) is expressed as
dU
dt
=
_
V
du
dt
dV =
_
V
du
dT
T
t
dV , (5.6)
The quantity c
V
= du/dT is a characteristic property of a solid material (called specic heat at constant
volume), and needs to be measured. It is typically dependent on temperature, but we will assume that it is
a constant; otherwise it leads to nonlinear models.
Substituting, we write
_
V
c
V
T
t
dV =
_
S
n q dS +
_
V
Q dV . (5.7)
This equation consists of volume integrals and a surface integral. If all the integrals were volume integrals,
over the same volume of course, we could proclaim that the integral statement (sometimes called a global
balance equation) would hold provided the integrands satised a so-called local balance equation (recall that
to get the local balance equation is our goal). For instance, from the integral statement
_
V

M
t
dV =
_
V
dV , (5.8)
where , M, and are some functions, one could conclude that

M
t
= , (5.9)
which is a local version of (5.8). An argument along these lines could for instance invoke the assumption
that the volume V was arbitrary, and that it could be shrunk around a given point, which in the limit would
allow the volume to be canceled on both sides of the equation.
To execute this program for equation (5.7), we have to convert the surface integral to a volume integral.
We have the needed tool in the celebrated divergence theorem
_
V
divq dV =
_
S
n q dS , (5.10)
where the divergence of the ux vector is dened in Cartesian coordinates as
divq =
q
x
x
+
q
y
y
+
q
z
z
.
Consequently, equation (5.7) may be rewritten
_
V
c
V
T
t
dV =
_
V
divq dV +
_
V
Q dV . (5.11)
5.2. CONSTITUTIVE EQUATION 35
and grouping the terms as
_
V
_
c
V
T
t
+ divq Q
_
dV = 0 . (5.12)
we may conclude that the inside of the bracket has to vanish since the volume could be entirely arbitrary.
Therefore, we arrive at the local balance equation
c
V
T
t
+ divq Q = 0 . (5.13)
5.2 Constitutive equation
Equation (5.13) contains too many variables: both temperature and heat ux. Since it is a scalar equation,
the logical next step is to express the heat ux in terms of temperature. That is the contents of the Fourier
model: heat ows opposite to the gradient of the temperature (downhill). In matrix form
q = (gradT)
T
. (5.14)
The matrix is the conductivity matrix of the material. The most common forms of are
= 1 (5.15)
for the so-called thermally isotropic material, and
=
_
_

x
0 0
0
y
0
0 0
z
_
_
(5.16)
for materials that have three orthogonal directions of dierent thermal conductivities (orthotropic material);
is the isotropic thermal conductivity coecient, 1 is the identity matrix, and
x
,
y
, and
z
are the
orthotropic thermal conductivities. (Some materials have preferred directions in which heat would like to
ow, for instance along the bers in a composite. Visually, we can imagine a corrugated steel roof, with the
channels running not directly downhill, but tilted away from the slope the water would run preferentially
in the channels, but generally downhill.)
The funny looking transpose of the temperature gradient follows from the denition: the gradient of the
scalar is a row matrix
gradT =
_
T
x
,
T
y
,
T
z
_
(5.17)
With the constitutive equation, the balance equation (5.13) is now purely in terms of the absolute
temperature,
c
V
T
t
div
_
(gradT)
T

Q = 0 . (5.18)
5.3 Boundary conditions
From now on, V is going to be the volume of the whole solid of interest. The most important fact about
the boundary conditions is that we need to have a boundary condition at each point of the surface S. As we
expect by now, the model is about temperature. Correspondingly, the boundary conditions are an expression
of our knowledge of the temperature distribution in the solid.
The simplest boundary condition results if we know the surface temperature along one part of S at all
times. This part of the surface will be called S
1
(see Figure 5.2).Therefore,
T(x, t) T(x, t) = 0, x on S
1
. (5.19)
where by x we mean the position vector. This type of condition is known as the primary, or essential ,
boundary condition.
36 CHAPTER 5. MODEL OF HEAT DIFFUSION
Figure 5.2: The subdivision of the surface for the purpose of the boundary condition application
Figure 5.3: The square domain with partially undened boundary condition
The heat ux entering or leaving the solid may also be known (measured by a heat ux gauge). Generally,
we do not know the heat ux along the surface, only the normal component, which is obtainable from the
normal and the heat ux as q
n
= n q. Therefore, along the part of the surface S
2
the normal component
of the heat ux may be prescribed
n q q
n
= 0, on S
2
. (5.20)
All quantities are given at a particular point on the boundary as functions of time, similarly to the rst
boundary condition. This type of condition is known as the natural (or ux) boundary condition.
In the last example of a boundary condition, we will mention the heat transfer driven by a temperature
dierence at surface. The normal component of the heat ux is given as
n q h(T T
a
) = 0, on S
3
. (5.21)
where T
a
is the known temperature of the surrounding medium (ambient temperature), and h is the heat
transfer coecient.
On the suciency of boundary conditions. As pointed out earlier in this section, one boundary
condition is needed at each point on the boundary. The precise mathematical statement of the necessity of
having one boundary condition in place is somewhat involved, but we can build on intuition fairly easily.
Would it be possible to specify one boundary condition at only a subset of the complete boundary, leaving
the behavior of the solution along part of the boundary unspecied? As a thought experiment, we consider
a square domain, shown in Figure 5.3, with no source of heat generation, and zero temperature prescribed
on the S
1
subset of the boundary. On the

S part of the boundary we assume nothing is known about
the temperature distribution. Is it possible that the temperature eld is completely determined by these
boundary conditions?
If this was true, the variation of temperature along

S wouldnt aect the solution in the domain. However,
if zero temperature was prescribed all around the circumference of the square, the solution to this problem
would be zero temperature everywhere. Consequently, also the normal component of the ux (in fact all
components of the ux) would vanish everywhere. Evidently, if the temperature along

S was nonzero, it
5.4. INITIAL CONDITION 37
Figure 5.4: The square with variable heat ux along part of its boundary
would require transitioning to zero temperature on S
1
(and elsewhere within the domain), hence the solution
within the domain would depend on the temperature along

S; alternatively, if there was nonzero heat ux
along

S, the temperature distribution within the square domain would be aected. This is illustrated in
Figure 5.4: varying the heat ux along

S (here shown for two dierent uniform distributions, positive
and negative) changes the distribution of temperature. Therefore, we must conclude that prescribing one
boundary condition along the entire boundary of the domain is a necessary condition to make the solution
unique.
Is not a sucient condition, however. In the so-called Neumann problem only ux is being prescribed
along the entire boundary. This is equivalent to the pure-traction problem of Section 4.3. The solution
is not unique, because any temperature distribution of the form T(x, y) +

T, where T(x, y) satises the
balance equation and the natural boundary conditions, and

T is a constant, is also a solution (the constant
term disappears with dierentiation). Typically, the Neumann boundary conditions are supplemented with
temperature being prescribed at one point to remove the constant

T from consideration.
5.4 Initial condition
The primary variable in our problem is the temperature, T, and it is present in the balance equation (5.18)
with the rst order time derivative. Therefore, we will need one initial condition,
T(x, 0) = T
0
(x) in V . (5.22)
The initial condition must be match with boundary conditions on S
1
at time t = 0:
T
0
(x) = T(x, 0), x on S
1
. (5.23)
5.5 Summary of the PDE model of heat conduction
Figure 5.5 gives a diagrammatic overview of the terminology and the various equations of the model of heat
conduction.
38 CHAPTER 5. MODEL OF HEAT DIFFUSION
Figure 5.5: Diagram of the heat conduction model
Chapter 6
Galerkin method for the model of
heat conduction
6.1 Weighted residual formulation
The balance equation (5.18) denes the balance residual as
r
B
= c
V
T
t
div
_
(gradT)
T

Q . (6.1)
As explained in Chapter 2, the rst step is to decide to satisfy the essential boundary condition by the
restricting possible trial functions to only those that satisfy the essential boundary conditions a priori
T(x, t) T(x, t) = 0, x on S
1
. (6.2)
and to write the weighted residual equation for the local balance residual
_
V
(x)r
B
(x, t) dV = 0 . (6.3)
The rst and the third term are kept as they are, but the second term reminds us of a similar term in equa-
tion (2.3): the test function multiplies an expression that contains the second derivatives of temperature
(the div
_
(gradT)
T

term), which was why Section 2.5 was needed. Balancing the order of dierentiation
by shifting one derivative from the temperature to the test function will be benecial here too: similarly
to Section 2.5, we will be able to satisfy the natural boundary conditions without having to include them as
a residual (naturally!). As before, the price to pay is the need to place some restrictions on the test function.
Integration by parts was used in Section 2.5, and just a little bit more general tool will work here too.
For the moment, it will be convenient to work with the expression
div
_
(gradT)
T

= divq ,
that is, with the ux variable replacing (gradT)
T
.
The integration by parts in the case of a multidimensional integral is generalized in the divergence
theorem (5.10). We may anticipate that divq is the result of the chain rule applied to the vector q. That
is indeed the case
div ( q) = divq + (grad) q (6.4)
which is easily veried in components.
Therefore, we may start working on the integral
_
V
divq dV
39
40 CHAPTER 6. GALERKIN METHOD FOR THE MODEL OF HEAT CONDUCTION
Figure 6.1: Slice of a long cylindrical structure
where we substitute from (6.4)
_
V
divq dV =
_
V
div ( q) dV
_
V
(grad) q dV (6.5)
The divergence theorem may be applied to the rst integral on the right
_
V
divq dV =
_
S
q n dS
_
V
(grad) q dV (6.6)
But q n is known on parts of the boundary see equations (5.20) and (5.21). Therefore, we may split the
surface integral into one for each sub-surface,
_
V
divq dV =
_
S1
q n dS +
_
S2
q
n
dS +
_
S3
h(T T
a
) dS
_
V
(grad) q dV (6.7)
We see that the situation is analogous to the one discussed below equation (2.10): The integral over the part
of the surface S
1
is troublesome, because q n is unknown there. However, we have the option of making
vanish along S
1
. In this way, we obtain
_
V
divq dV =
_
S
2
q
n
dS +
_
S
3
h(T T
a
) dS
_
V
(grad) q dV (6.8)
where (x) = 0 for x S
1
.
Expanding the weighted residual equation (6.3) yields
_
V
r
B
dV =
_
V
c
V
T
t
dV +
_
V
(grad) (gradT)
T
dV
_
V
Q dV
+
_
S
2
q
n
dS +
_
S
3
h(T T
a
) dS = 0, (x) = 0 for x S
1
(6.9)
6.2 Reducing the model dimension
In this Section we show how the original three-dimensional model can be reduced to just two active di-
mensions. For some structures we can make the observation that the temperature does not vary along one
coordinate direction, say along the z direction. Figure 6.1 shows a disk of thickness z. It is a slice of a
structure of an unchanging cross-section which is very along in the z direction compared to the transverse
dimensions. If we can neglect what is happening near the end sections, and if the component of the temper-
ature gradient along the z direction is be negligible, T/z 0, a necessary condition for the formulation of
a simplied model is met. However, it is not a sucient condition as it does not necessarily mean that the
6.3. TEST AND TRIAL FUNCTIONS: BASIS FUNCTIONS ON TRIANGULATIONS 41
Figure 6.2: Diagram of the heat conduction model
z component of the heat ux is also zero: the partial derivatives T/x, and T/y multiply the rst two
columns in row three of (5.14) to yield
q
z
=
zx
T/x +
zy
T/y .
However, for the two classes of materials (5.15) and (5.16) the two coecients
zx
and
zy
are identically zero,
which means that if the temperature gradient T/z is zero, the heat ux in that direction also vanishes.
Going back to the Figure 6.1: the heat ux through the cross sections is zero, and the temperature
through the thickness of the disk is uniform (i.e. the temperature does not vary with z). The surface of the
three-dimensional solid consists of the two cross sections, and of the cylindrical surfaces, the inner and the
outer. The two cylindrical surfaces may be associated with boundary condition of any type. The two cross
sections are associated with the boundary condition of zero heat ux, q
n
= 0 (type S
2
, equation (5.20))
n q = q
z
= 0, on the cross sections . (6.10)
Since the temperature does not vary with z, the integrals (6.8) may be simplied by pre-integrating in
the thickness direction, dV = z dS. The volume integrals are then evaluated over the cross-sectional area,
S
c
, (see Figure 6.2); provided q
n
and h are independent of z, the surface integrals are computed as integrals
over the contour of the cross-section, C
c
.
_
Sc
c
V
T
t
z dS +
_
Sc
(grad) (gradT)
T
z dS
_
Sc
Q z dS
+
_
Cc,2
q
n
z dC +
_
Cc,3
h(T T
a
) z dC = 0, (x) = 0 for x C
c,1
(6.11)
Note that the thickness z is a constant and could cancel without any eect on the solution. Nevertheless,
equation (6.11) still applies to a fully three-dimensional body. To maintain this notion throughout the book,
we shall not cancel the thickness.
Note that (6.11) does not refer to z, except in the term ./z. We know that the temperature does not
depend on z, and concerning the gradient of : we simply assume that does not depend on z: = (x, y).
The last assumption completes the reduction of the problem to two dimensions: all the functions depend on
x and y only.
6.3 Test and trial functions: basis functions on triangulations
It is time to talk about the test and trial function. They are both functions of x and y only, = (x, y)
and T = T(x, y, t) (and for the trial function, time). The only dierence between them is the value they
assume on part of the boundary (part of the cross-section contour, for our two-dimensional disk) where the
temperature is being prescribed, C
c,1
:
T(x, t) = T(x, t), (x) = 0 x on C
c,1
.
42 CHAPTER 6. GALERKIN METHOD FOR THE MODEL OF HEAT CONDUCTION
Figure 6.3: Mesh of the disk domain
Figure 6.4: Visual representation of one basis function on the mesh of the disk
Let us consider rst the test function. It needs to be dened as a function of x and y over arbitrarily
shaped domains. The concept of piecewise linear functions dened over tilings of arbitrary domains into
triangles is quite ancient (at least in terms of the development of computational mechanics)
1
. The domain
of the disk with a hole (shown in Figure 6.2) is approximated as a collection of triangles (in other words, it
is tiled with triangles, or triangulated), see Figure 6.3. The mesh consisting of triangles is typically called
triangulation, even though sometimes any mesh is called that. The vertices of the triangulation are called
nodes (compare with Section 2.7), while the line segments connecting the nodes are called edges. Evidently,
the triangles are the nite elements.
Interpolation on the triangle mesh will be treated as a linear combination of tents. Each individual
tent is formed by grabbing one of the nodes (say J) and raising it out of the plane of the triangulation
(traditionally to a unit height). The tent canvas is stretched over the edges that connect at the node J, and
are clamped down by the ring of the edges that surround node J. The cartoon of one particular basis function
tent is shown in Figure 6.4. For those who do not like tents, the term hat function may be preferable.
All the triangles that are connected in the node J support the function N
J
, which is another way of
saying that the function N
J
is nonzero in these triangles; evidently, it is dened to be zero everywhere else.
(If you are inside the tent, you are standing on the support of the function.)
It remains to write down the equations that dene the function N
J
at any point within its support.
That means writing an expression for each triangle separately. As discussed in Section 2.8, the alternative
viewpoint would rather express all the nonzero pieces of all the basis functions over a single triangle (element).
Referring to Figure 6.4, there are only three such functions: the three basis functions associated with the
nodes at the corners of the element; all the other basis functions in the mesh are identically zero over this
element. Thus, we stand before the task of writing down the expressions for the three basis functions on a
single triangle.
1
The so-called linear triangle made its rst appearance in a lecture by Courant in 1943, applied to Poissons equation,
which is a time-independent version of the heat conduction equation of this chapter. It was then picked up as a structural
element in aerospace engineering to model Delta wing skin panels, as described in the 1956 paper by Turner, Clough, Martin and
Topp. Clough then applied the triangle to problems in civil engineering, and he also coined the terminology nite element.
6.4. BASIS FUNCTIONS ON THE STANDARD TRIANGLE 43
Figure 6.5: Standard triangle
6.4 Basis functions on the standard triangle
Each of the three basis functions is zero along one edge of the triangle: again, refer to Figure 6.4. The task
is accomplished most readily when the triangle is in a special position with respect to the coordinates: the
standard triangle; see Figure 6.5. The basis functions associated with nodes _2 and _3 are simply
N
2
(, ) = , (6.12)
and
N
3
(, ) = . (6.13)
As is easily veried, N
2
is zero along the edge _1_3, and assumes value +1 at node _2; analogous properties
hold for N
3
. If N
1
should be equal to +1 at the origin, it must be written as
N
1
(, ) = 1 . (6.14)
Clearly, N
1
vanishes at the edge opposite node _1. Thus, we see that the three functions we just formulated
satisfy the Kronecker delta property, equation (2.19). As in Section 2.7 this means the degree of freedom at
each node of the triangle is the value of the interpolated function at the node.
Also, we have the following property of the partition of unity
3

k=1
N
k
(, ) = 1 , (6.15)
which should be interpreted as: the basis functions partition +1 at any point within the triangle, and in
fact we will make use of this property for all the elements discussed in this textbook.
As the three functions satisfy the Kronecker delta property (2.19), the degree of freedom at each node of
the triangle is the value of the interpolated function at the node. Therefore, we may make the observation
that data that sit at the corners of the triangle are naturally interpolated. One particularly useful quantity
that one can interpolate on the standard triangle are the Cartesian coordinates of the corners in the physical
space,
x =
3

i=1
N
i
(, )x
i
, (6.16)
where the result of the interpolation is a point in the Cartesian coordinates
x =
_
x
y
_
,
and
x
i
=
_
x
i
y
i
_
i = 1, 2, 3 ,
are the coordinates of the three points that are being interpolated. Equation (6.16) is a mapping from the
pair , to the point x, y. Substituting for the basis functions, it may be written explicitly as
_
x
y
_
=
_
(x
2
x
1
) (x
3
x
1
)
(y
2
y
1
) (y
3
y
1
)
_ _

_
+
_
x
1
y
1
_
. (6.17)
44 CHAPTER 6. GALERKIN METHOD FOR THE MODEL OF HEAT CONDUCTION
Figure 6.6: Interpolating Cartesian coordinates on the standard triangle
This matrix equation is accompanied by the picture in Figure 6.6. The two vectors, v and w, are the two
columns of the square matrix in (6.17):
v =
_
(x
2
x
1
)
(y
2
y
1
)
_
,
and
w =
_
(x
3
x
1
)
(y
3
y
1
)
_
.
If both and vary between zero and one, equation (6.17) adds the two vectors, v and w to the vector
[x
1
, y
1
]
T
, and the result then covers the entire parallelogram; on the other hand, if and are conned
to the interior of the standard triangle, equation (6.17) produces points to cover the area of the hatched
triangle. To summarize, equation (6.17) is a map from the standard triangle to a triangle in the Cartesian
coordinates with corners in given locations.
Inverting (6.17) to express and , which could then be substituted into (6.12) (6.14) to produce
basis functions in terms of x and y, looks appealing but should be resisted. The reason is that numerical
quadrature is available on the standard triangle, but is much harder on general triangles. This will become
especially clear with quadratic elements later in the book.
However, since equation (6.17) is a invertible map from the standard triangle to a triangle in the Cartesian
coordinates (invertibility follows if the triangle does not have its corners in a single straight-line: why?), we
do get an approach to evaluating basis functions on a general triangle. Given a point x, y in the Cartesian
coordinates, and within the bounds of a triangle, we can use the inverse of the map (6.17) to obtain point

,
in the standard triangle (path 1 in Figure 6.7). Therefore, we may then evaluate N
i
(

, ), which is the value


N
i
( x, y) (path 2 in Figure 6.7). That seems awkward, but normally we would want to evaluate the basis
functions in order to perform numerical quadrature, that is at a particular point (quadrature point) within
the standard triangle. In that case,

, would be known (and x, y would be unknown), and calculation of
the function value is easy. Evaluation of the derivatives of the basis functions is a little bit more complex,
and will be discussed later in the section on numerical quadrature.
We understand now that each node in the mesh is associated with a single basis function. In the following,
whenever we will write
N
i
= N
i
(x, y) ,
it has to be understood that within each triangle in the mesh, x = x(, ), y = y(, ), where and are
coordinates on the standard triangle.
6.5 Discretizing the weighted residual equation
The trial function will be expressed using the basis functions as (compare with Section 2.7)
T(x, y, t) =
N

i=1
N
i
(x, y)T
i
(t)
6.5. DISCRETIZING THE WEIGHTED RESIDUAL EQUATION 45
Figure 6.7: Using the map from the standard triangle to evaluate basis functions over a general triangle
Figure 6.8: Interpolating Cartesian coordinates on the standard triangle
where the sum ranges over all the basis functions (i.e. over all the nodes in the mesh). Included are also
nodes on the boundary where the temperature is being prescribed, C
c,1
2
. These nodes are on the other hand
excluded from the set of possible test functions (which are expected to vanish along C
c,1
), so that we will
choose
(x, y) = N
i
(x, y), i excluded when node i C
c,1
The nodes whose basis functions are not part of the linear combination for the test function are shown as
empty circles in Figure 6.8.
To simplify, we shall adopt the following notation:
(x, y) = N
j
(x, y), free j,
where free j ranges over the nodes where the temperature is not being prescribed; and
T(x, y, t) =

all i
N
i
(x, y)T
i
(t)
where all i ranges over all the nodes, including those where the temperature is being prescribed.
As an aside, because the basis on the standard triangle satises the Kronecker delta property (2.19),
the values of the degrees of freedom T
i
(t) at the nodes prescribed i (the nodes with the empty circles in
Figure 6.8) are simply the values of the interpolated prescribed temperature at the nodes, T
i
(t) = T(x
i
, y
i
, t).
The nite element expansions for the trial and test functions are now substituted into the weighted
residual integral (6.11). For clarity, the substitution will be shown term-by-term (henceforth we will omit
the arguments):
_
Sc
c
V
T
t
z dS =
_
Sc
N
j
c
V

all i
N
i
T
i
t
z dS , free j ,
(6.18)
2
Apropos boundaries: Figure 6.8 clearly shows that with straight edges we are only approximating any boundaries that are
curved. Some error is involved, but fortunately we are able to control this error by reducing the length of the edges.
46 CHAPTER 6. GALERKIN METHOD FOR THE MODEL OF HEAT CONDUCTION
which simplies to

all i
__
S
c
N
j
c
V
N
i
z dS
_
T
i
t
, free j ,
(6.19)
The term in the bracket mixes together i and j from two dierent sets. However, some of the degrees of
freedom T
i
/t are known. Therefore, separating the known and unknown may be a good idea:

all i
__
S
c
N
j
c
V
N
i
z dS
_
T
i
t
=

free i
__
Sc
N
j
c
V
N
i
z dS
_
T
i
t
+

prescribed i
__
Sc
N
j
c
V
N
i
z dS
_
T
i
(t)
t
, free j ,
(6.20)
The rst integral on the right hand side of (6.20) suggests dening a matrix
C
ji
=
_
S
c
N
j
c
V
N
i
z dS , free j, i, (6.21)
the capacity matrix. The integral in the second term will be given a dierent symbol, since the meaning
is dierent from the rst (the latter is a load-like term)
C
ji
=
_
Sc
N
j
c
V
N
i
z dS , free j, prescribed i. (6.22)
Next, the second term in (6.11):
_
S
c
(grad) (gradT)
T
z dS =
_
S
c
(gradN
j
) (grad

all i
N
i
T
i
)
T
z dS =

free i
__
S
c
(gradN
j
) (gradN
i
)
T
z dS
_
T
i
+

prescribed i
__
Sc
(gradN
j
) (gradN
i
)
T
z dS
_
T
i
free j,
(6.23)
and the conductivity matrix may be dened
K
ij
=
_
Sc
(gradN
j
) (gradN
i
)
T
z dS , free j, i, (6.24)
and the elements to go with the load-like term
K
ij
=
_
S
c
(gradN
j
) (gradN
i
)
T
z dS , free j, prescribed i. (6.25)
Next, the load term corresponding to the internal heat generation:
L
Q,j
=
_
S
c
N
j
Q z dS , free j, (6.26)
Finally, the terms corresponding to natural boundary conditions. On the C
c,2
part of the boundary, only a
load term results.
L
q2,j
=
_
C
c,2
N
j
q
n
z dC (6.27)
On the other hand, on the C
c,3
part of the boundary, where the heat ux is proportional to the dierence
between the ambient temperature and the surface temperature, we get a load term
L
q3,j
=
_
Cc,3
N
j
hT
a
z dC , free j, (6.28)
6.6. DERIVATIVES OF THE BASIS FUNCTIONS; JACOBIAN 47
and a surface heat transfer matrix:
H
ji
=
_
Cc,3
N
j
hN
i
z dC , free j, i, (6.29)
To summarize, using the denitions of the various matrices and load terms, the system of ordinary
dierential equations that results from the nite element discretization in space reads

free i
C
ji
T
i
t
+

free i
K
ji
T
i
+

free i
H
ji
T
i
+

prescribed i
C
ji
T
i
(t)
t
+

prescribed i
K
ji
T
i
L
Q,j
L
q2,j
L
q3,j
= 0
free j, (6.30)
6.6 Derivatives of the basis functions; Jacobian
The results of this section are much more general than may be expected. While the formulas for the
derivatives of basis functions are derived for the linear triangles, the same formulas (and implementation) is
used for all the so-called isoparametric elements in the SOFEA toolbox.
To evaluate the conductivity matrix, we need to be able to calculate the derivatives of the basis functions
with respect to x and y. Equations (6.126.14) dene the functions over the standard triangle in terms of
and . Therefore, to express N
i
/x we use the chain rule
N
i
x
=
N
i

x
+
N
i

x
(6.31)
N
i
y
=
N
i

y
+
N
i

y
(6.32)
For the purpose of this discussion, the function that is being dierentiated does not really matter. We will
replace it with a , while we arrange the above equation into a matrix expression
_

x
,

y
_
=
_

_
_

y
_

_
. (6.33)
The derivatives are arranged in row matrices because these objects are gradients of the function [compare
with (5.17)]. The matrix
_

J
_
=
_

y
_

_
, (6.34)
is the Jacobian matrix of the mapping = (x, y), = (x, y), which is the inverse of the map x =
x(, ), y = y(, ) of equation (6.17). The question is how to evaluate the partial derivatives of the type
/x, since the inverse of the map (6.17) is not known (at least not in general). If we start the chain rule
from the other end (switching the role of the variables), we obtain
_

_
=
_

x
,

y
_
_

_
x

_
(6.35)
and inverting the Jacobian matrix in equation (6.33) we get
_

_
=
_

x
,

y
_
_

J
_
1
. (6.36)
48 CHAPTER 6. GALERKIN METHOD FOR THE MODEL OF HEAT CONDUCTION
Comparing (6.35) and (6.36) yields
[J] =
_

_
x

_
=
_

J
_
1
, (6.37)
where [J] is the Jacobian matrix of the map (6.17). The elements of [J] are directly available from the
matrix in (6.17). However, even more useful is to start from (6.16), and by denition the Jacobian matrix is
then
[J] =
_

_
3

i=1
N
i

x
i
,
3

i=1
N
i

x
i
3

i=1
N
i

y
i
,
3

i=1
N
i

y
i
_

_
, (6.38)
Note that the Jacobian matrix may be expressed as the product of two matrices:
[J] = [x]
T
[Nder] , (6.39)
where [x] collects the coordinates of the nodes (three nodes, for the triangle)
[x] =
_
_
x
1
, y
1
x
2
, y
2
x
3
, y
3
_
_
, (6.40)
and [Nder] collects in each row the gradient of the basis function with respect to the parametric coordinates
[Nder] =
_

_
N
1

,
N
1

N
2

,
N
2

N
3

,
N
3

_
, (6.41)
The calculation of the spatial derivatives by an isoparametric geometric cell (recall that nite elements in
SOFEA represent the calculation of basis functions and their derivatives in the gcell class) is a straightforward
rewrite of the above formulas. The method bfundsp takes three arguments: a descendent of the class gcell,
and the two arrays (6.41) and (6.40). The dimensions of the two arrays are (line 0013): nbfuns= number
of basis functions (= 3 for the triangle), and dim= number of space dimensions (= 2 for the triangle).
0013 function Ndersp = bfundsp
3
(self, Nder, x)
0014 [nbfuns,dim] = size(Nder);
0015 if (size(Nder) ~= size(x))
0016 error(Wrong dimensions of arguments!);
0017 end
The Matlab code on line 0018 reects literally the formula (6.39).
0018 J = x * Nder;% Compute the Jacobian matrix
0019 detJ = det(J);% Compute the Jacobian
The Jacobian (determinant of the Jacobian matrix) should be positive. An error is reported when the
Jacobian is non-positive; the generic case is treated in line 0023, which literally transcribes equation (6.33).
3
Folder: SOFEA/classes/gcell/@gcell
6.7. NUMERICAL INTEGRATION 49
0020 if (detJ <= 0) % trouble
0021 error(Non-positive Jacobian);
0022 end
0023 Ndersp = Nder * inv(J);
0024 end
To round o the discussion in this section, we need to present the code that evaluates the basis functions
(6.126.14) and the derivatives of the basis functions with respect to the parametric coordinates , . For
the linear triangle T3 (class gcell T3) the two methods are delightfully simple: method bfun computes a
column array of basis function values, N
j
in row j, given the parametric coordinates param coords(1),
param coords(2).
0008 function val = bfun
4
(self,param coords)
0009 val = [(1 - param coords(1) - param coords(2));...
0010 param coords(1); ...
0011 param coords(2)];
0012 return;
0013 end
The method bfundpar returns an array with three rows (one for each basis function), with the gradient of
the basis function j with respect to , in row j.
0010 function val = bfundpar
5
(self, param coords)
0011 val = [-1 -1; ...
0012 +1 0; ...
0013 0 +1];
0014 return;
0015 end
6.7 Numerical integration
Stepping closely along the lines of the discussion in Section 2.8, we formulate the numerical integration
procedure for the linear triangle. We begin by highlighting the role of the Jacobian matrix.
Consider a map from , to x, y: a slight generalization of (6.16) in that the map is not necessarily linear
(see Figure 6.9)
_
x
y
_
=
_
x(, )
y(, )
_
. (6.42)
The parallelogram (rectangle) generated by the vectors [d, 0]
T
and [0, d]
T
(given in components in the
Cartesian coordinate system , ), has the area of ( is the cross product symbol)
_
d
0
_

_
0
d
_
= dd .
Remember, this is happening in two dimensions: the cross product is a scalar.
The two vectors [d, 0]
T
and [0, d]
T
are mapped by the map (6.42) to vectors
_
d
0
_
d
_

_
x

_
,
_
0
d
_
d
_

_
x

_
, (6.43)
where the square brackets hold components in the standard Cartesian basis. Note that these vectors are
tangent to the coordinate curves, which consist of the points in the physical space x, y that are maps of the
4
Folder: SOFEA/classes/gcell/@gcell_T3
5
Folder: SOFEA/classes/gcell/@gcell_T3
50 CHAPTER 6. GALERKIN METHOD FOR THE MODEL OF HEAT CONDUCTION
Figure 6.9: Mapping of areas for a general map between coordinates
curves = const and = const. The area of the hatched parallelogram in Figure 6.9 is
d
_

_
x

_
d
_

_
x

_
= dd
_

_
x

_
x

_
. (6.44)
Compare this equation with (6.37): the two vectors in the cross product are the columns of the Jacobian
matrix from (6.37). In fact, the cross product of the columns is the determinant of the Jacobian matrix (or,
as the determinant is known, the Jacobian). Therefore, the map (6.42) maps areas as
dd dd det [J] . (6.45)
As a consequence of (6.45), we have the following change of coordinates in integrals:
_
S
[x,y]
f(x, y)dxdy =
_
S
[,]
f(, ) det [J(, )] dd . (6.46)
Numerical quadrature rules take advantage of the relative ease with which these rules may be formulated on
standard shapes, triangles, squares, cubes, etc. Thus, the integral on the left of (6.46) will be approximated
as
_
S
[x,y]
f(x, y)dxdy
M

k=1
f(
k
,
k
) det [J(
k
,
k
)] W
k
. (6.47)
In the SOFEA toolbox, the surface Jacobian det [J(, )] is computed for two-dimensional manifold geometric
cells by the method Jacobian surface; it is discussed in Section 9.4.
We will introduce three integration rules for the standard triangle, one-point, three-point, and six-point
quadrature, but many other rules are available: a number of authors have compiled tables, see for instance
Hughes book [Hug00]. The 1-point rule will be able to integrate linear polynomials in , exactly, and
the 3-point does the job for up to quadratic polynomials in , . The six-point rule is good for fourth
order polynomials, which may seem an overkill for applications with linear triangles, but its worth may be
appreciated later. Table 6.1 gives the coordinates of the integration points, and their weights.
6.8 Conductivity matrix
As discussed already in Chapter 3, all the problem dependent code is concentrated in a descendent of the
feblock class. In particular, the two-dimensional heat diusion model of this chapter is implemented in the
6.8. CONDUCTIVITY MATRIX 51
Rule Coordinates
j
,
j
Weights W
j
Integrates exactly
1-point 1/3, 1/3 1/2 linear polynomial
3-point
2/3, 1/6
1/6, 2/3
1/6, 1/6
1/6
1/6
1/6
quadratic polyn.
6-point
0.816847572980459, 0.091576213509771
0.091576213509771, 0.816847572980459
0.091576213509771, 0.091576213509771
0.108103018168070, 0.445948490915965
0.445948490915965, 0.108103018168070
0.108103018168070, 0.108103018168070
0.109951743655322
0.109951743655322
0.109951743655322
0.223381589678011
0.223381589678011
0.223381589678011
quartic polyn.
Table 6.1: Numerical integration rules on the standard triangle
Figure 6.10: Assembly of the element conductivity matrix
feblock diffusion nite element block class.
The conductivity (6.24) and other matrices are computed by evaluating the contributions from each
element separately, storing these contributions element-by-element in a cell array, and then nally assembling
all the element contributions into the overall system matrix. Therefore, the conductivity matrix would be
computed element-by-element as
K
ij
=

e
_
e
(gradN
j
) (gradN
i
)
T
z dS . (6.48)
The procedure is illustrated in Figure 6.10: Only the gradients of the basis functions A, B, C are nonzero over
the triangle e. The conductivity matrix of this element is calculated as if there were only three nodes in the
whole mesh, all with free degrees of freedom (temperatures). It is therefore a 33 matrix K
e
. However, only
the unknown degrees of freedom are given equation numbers on the global level. In this example, we assume
that node A carries the unknown number 13, node C carries the unknown 61, and node B is associated with
prescribed temperature, and correspondingly a zero (0) indicates that there is no equation for node B. The
K
e
matrix should be added to the global matrix as indicated in the sum (6.48), and the arrows pointing
towards the appropriate elements ((13, 13), (13, 61), (61, 13), (61, 61)) of the global conductivity matrix K
indicate the so-called assembly of the element matrix. This assembly process is executed in the assemble
6
method of the classes dense sysmat and sparse sysmat.
The method conductivity returns the array ems of element matrix objects (class elemat), each of which
represents the conductivity matrix of a single element. The method begins by retrieving some information
from the parent class, such as gcells (cell array of the geometric cells), integration rule, and the material
mat.
0009 function ems = conductivity
7
(self, geom, theta)
6
Folder: SOFEA/classes/sysmat/@dense sysmat
7
Folder: SOFEA/classes/feblock/@feblock_diffusion
52 CHAPTER 6. GALERKIN METHOD FOR THE MODEL OF HEAT CONDUCTION
Figure 6.11: Directions of material orthotropy
0010 gcells = get(self.feblock,gcells);
0011 ngcells = length(gcells);
0012 nfens = get(gcells(1),nfens);
0013 dim = get(geom,dim);
0014 % Pre-allocate the element matrices
0015 ems(1:ngcells) = deal(elemat);
0016 % Integration rule
0017 integration rule = get(self.feblock, integration rule);
0018 pc = get(integration rule, param coords);
0019 w = get(integration rule, weights);
0020 npts per gcell = get(integration rule, npts);
0021 % Material
0022 mat = get(self.feblock, mater);
0023 kappa = get(get(mat,property),conductivity);
The loop over all the geometric cells starts with the retrieval of the connectivity (i.e. the numbers of the nodes
which are connected together by the cell), and of the array of the node coordinates, x (compare with (6.40)).
Then, the element conductivity matrix Ke is initialized to zero, and the loop over all the quadrature points
may begin.
0024 % Now loop over all gcells in the block
0025 for i=1:ngcells
0026 conn = get(gcells(i), conn); % connectivity
0027 x = gather(geom,conn,values,noreshape);% node coord
0028 Ke = zeros(nfens); % element matrix
The loop over the integration points starts with calculation of the gradients of the basis functions with
respect to the parametric coordinates, see array (6.41). Then compute the spatial derivatives of the basis
functions, Nspder, and the Jacobian, detJ. Note that the method used, Jacobian volume, computes a
volume Jacobian: even though the method works with representation of temperatures as functions of two
variables, x, y, the problem that is being solved is still the heat conduction through a three-dimensional solid
(there is no such thing as a two-dimensional body for an engineer; only mathematicians seem to know where
to nd them).
0029 % Loop over all integration points
0030 for j=1:npts per gcell
0031 N = bfun (gcells(i), pc(j,:));
0032 Nder = bfundpar (gcells(i), pc(j,:));
0033 Nspder = bfundsp(gcells(i), Nder, x);
0034 detJ = Jacobian volume(gcells(i),pc(j,:),x);
Often for orthotropic materials the axes of orthotropy vary from point-to-point. In that case it makes sense
to describe the material properties in local Cartesian coordinates, and then allow the nite element block to
6.9. SURFACE HEAT TRANSFER MATRIX AND LOAD 53
dene a transformation matrix between the local coordinate directions and the global Cartesian basis: refer
to Figure 6.11. The attribute of a material parameter is thus the material conductivity in the rotated basis,
e
x
, e
y
[] =
_

x
0
0
y
_
(6.49)
which is rotated using the transformation matrix (rotation matrix)
[R
m
] =
_
[e
x
] [e
y
]

(6.50)
whose columns are the components of the basis vectors e
x
, e
y
in the global Cartesian coordinates. in The
material conductivity matrix in the global basis is then expressed using the ordinary transformation rule
[] = [R
m
][][R
m
]
T
(6.51)
Compute the local material directions.
0035 Rm = material directions(self,gcells(i),pc(j,:),x);
Now exercise the integration rule. Note that the element conductivity matrix may be computed as a whole,
as opposed to element-by-element, since the gradients of the basis functions are arranged as rows of the
Nspder matrix.
0036 Ke = Ke + Nspder*Rm*kappa*Rm*Nspder * detJ * w(j);
Finally, the computed element conductivity matrix Ke is stored in the ems(i) object of class elemat, both the
matrix itself and the equation numbers that go with each column and each row (compare with Figure 6.10:
13, 0, 61; zero means no equation).
0037 end
0038 ems(i)=set(ems(i), mat, Ke);
0039 ems(i)=set(ems(i), eqnums,gather(temp,conn,eqnums));
0040 end
0041 return;
0042 end
Since the topic of the Jacobians has been brought up, we point out how the volume Jacobian is computed
for the triangle element. We ignore everything that does not pertain to the present case, and we focus on
line 0021: the volume Jacobian is computed as the product of the surface Jacobian (determinant of (6.37))
and the other dimension (thickness).
0015 function detJ = Jacobian volume
8
(self, pc, x)
0016 ...
0021 detJ=Jacobian surface(self,pc,x)*other dimension(self,pc,x);
0022 end
0023 end
6.9 Surface heat transfer matrix and load
While in the preceding section the required integrals were over the volume of the domain and executed over
the area S
c
(which together with a thickness gives volume), the surface heat transfer matrix (6.29) and the
surface heats transfer load (6.28) (and also the prescribed heat ux load (6.27)) require integration over the
bounding surface, evaluated over the curves, C
c,3
(or C
c,2
), which together with a thickness gives a surface
area. Since the volume integrals are being performed over the area of the triangles in the mesh, the surface
integrals will be evaluated over the edges of these triangles.
8
Folder: SOFEA/classes/gcell/@gcell 2 manifold
54 CHAPTER 6. GALERKIN METHOD FOR THE MODEL OF HEAT CONDUCTION
Figure 6.12: Mapping of the standard interval to a Cartesian space
Evaluating the basis functions (6.126.14) along the edges of the standard triangle, we may observe that
the basis function associated with the opposite vertex is identically zero, and the other two at the end-points
of the edge vary linearly along the edge. In fact, completely in agreement with the basis functions (2.20)
dened on the line element L2. Therefore, integrating an expression along the edge of the triangle T3 that
connects nodes i, j yields exactly the same result as integrating along the line element L2 that connects
nodes i, j. However, the two approaches are not the same thing: if, for the purpose of numerical integration,
we use the element L2, the design of the numerical integration code will be reusable: the same piece of
code may be used to integrate quantities along a curve which is tiled with nite element edges with linear
variation of basis functions the triangle T3, the quadrilateral Q4, the hexahedron H8, the tetrahedron T4.
Let us take for instance equation (6.27). The goal is to evaluate an integral of the form
_
C
f(p) dC (6.52)
where we will assume that the curve C may be embedded in a three-dimensional, two-dimensional, or
one-dimensional Euclidean space (i.e. it may be a spatial curve, plane curve, or just an interval on the real
line). Correspondingly, the point on the curve p will have appropriate number of components. To perform
the integral, the elementary length dC is needed.
The point p on the curve will be assumed to be the result of the mapping the standard interval 1
+1 (compare with the 1-D map (2.23), and refer to Figure 6.12, where the map is two-dimensional)
p = g() . (6.53)
For two closely spaced points on the curve, p() and p( + ), where is the distance between the two
points in the standard interval, the second point may be obtained from the rst using the rst two terms of
the Taylor series as
p( + ) = p() +
p( +)

0 1. (6.54)
The two points may be connected with a vector approximately tracking the curve (see Figure 6.13),
p( + ) p() =
p( +)

,
whose length (squared) is
(C)
2
=
_
p( +)

_
p( +)


_
=

p( +)

2
()
2
.
6.9. SURFACE HEAT TRANSFER MATRIX AND LOAD 55
Figure 6.13: Length of a curve
Skipping over the details, we may conclude that for innitesimally short intervals, d, the following
relationship is obtained
dC =

p()

d , (6.55)
where
p()

is the vector tangent to the curve at , and

p()

is the Jacobian to be used in the change-


of-variables device for the curve integral.
Let us now specialize these developments to the L2 element: the map (6.53) reads
p = g() =
2

i=1
N
i
()x
i
. (6.56)
where N
i
are given by (2.25). Therefore, the tangent vector (see (6.55)) reads
p()

=
x
2
x
1
2
and the Jacobian is h/2, where h = [[x
2
x
1
[[ is the length of the element.
Of course, for general elements with n nodes, the implementation computes the tangent as
p()

= x*Nder , (6.57)
using the following two matrices ,
[x] =
_

_
x
1
, y
1
x
2
, y
2
..., ...
x
n
, y
n
_

_
, (6.58)
where the number of columns is equal to the number of spatial dimensions, 1, 2 (which is assumed in (6.58)),
or 3, and [Nder] collects in each row the gradient of the basis function with respect to the parametric
coordinate
[Nder] =
_

_
N
1

N
2

...
N
n

_
, (6.59)
These matrices should be compared with those dened for the triangle T3, equations (6.40) and (6.41).
The only dierence is the number of space dimensions, the number of basis functions, and the number of
56 CHAPTER 6. GALERKIN METHOD FOR THE MODEL OF HEAT CONDUCTION
parametric dimensions; all of these are taken account of by the Matlab code automatically. For the one-
dimensional manifold geometric cells, this computation is implemented in the method Jacobian curve of
the class gcell 1 manifold. Compare formula (6.57) with line 0015.
0013 function detJ = Jacobian curve
9
(self, pc, x)
0014 Nder = bfundpar (self, pc);
0015 tangents =x*Nder;
0016 [sdim, ntan] = size(tangents);
0017 if ntan==1 % 1-D gcell
0018 detJ = norm(tangents);
0019 else
0020 error(Got an incorrect size of tangents);
0021 end
0022 end
The method surface transfer computes the heat transfer matrix (6.29) by integrating over the appro-
priate part of the surface. Note that the surface needs to be discretized by compatible geometric cells: when
the domain (volume) is covered by three-node triangles, the boundary (surface) is covered by two-node line
segments, and so on. Most of the preparation steps are straightforward, and are therefore omitted. The loop
over the geometric cells computes the heat transfer matrix for each element. The Jacobian is computed in
a way that is appropriate for the geometric cells (yet another example of dynamic method dispatch): the
method Jacobian surface.
0009 function ems = surface transfer
10
(self, geom, temp)
...
0021 h = self.surface transfer;
0022 % Now loop over all gcells in the block
0023 for i=1:ngcells
0024 conn = get(gcells(i), conn); % connectivity
0025 x = gather(geom, conn, values, noreshape); % coord
0026 He = zeros(nfens); % element matrix
0027 for j=1:npts per gcell % Loop over integration points
0028 N = bfun(gcells(i), pc(j,:));
0029 detJ = Jacobian surface(gcells(i),pc(j,:),x);
0030 He = He + h*N*N * detJ * w(j);
0031 end
0032 ems(i)=set(ems(i),mat, He);
0033 ems(i)=set(ems(i),eqnums,gather(temp,conn,eqnums));
0034 end
0035 return;
0036 end
The surface Jacobian is computed for the L2 (line) element following the same principle as before for
the volume Jacobian for the element T3. Focusing just on this case, we see that the surface Jacobian is
computed as the product of the curve Jacobian and the other dimension (thickness).
0015 function detJ = Jacobian surface
11
(self, pc, x)
0016 ...
0021 detJ=Jacobian curve(self,pc,x)*other dimension(self,pc,x);
0022 end
0023 end
Computation of the surface transfer loads could duplicate the work done in the previous method (the
same kind of integral), but in order to avoid this duplication, we use the following trick: compute an array of
9
Folder: SOFEA/classes/gcell/@gcell 1 manifold
10
Folder: SOFEA/classes/feblock/@feblock diffusion
11
Folder: SOFEA/classes/gcell/@gcell 1 manifold
6.9. SURFACE HEAT TRANSFER MATRIX AND LOAD 57
the element heat surface transfer matrices, and multiply by the vector of ambient temperatures (whenever
they are nonzero). The method surface transfer loads is therefore quite straightforward: compute the
element surface heat transfer matrices (line 0010), then loop over the geometric cells and retrieve the ambient
temperatures from the eld amb. Provided this vector is nonzero, the product He*pT is stored in the element
vector object.
0009 function evs = surface transfer loads
12
(self, geom, temp, amb)
0010 ems = surface transfer(self, geom, temp);
0011 gcells = get(self.feblock,gcells);
0012 % Pre-allocate the element matrices
0013 evs(1:length(gcells)) = deal(elevec);
0014 % Now loop over all gcells in the block
0015 for i=1:length(gcells)
0016 conn = get(gcells(i), conn); % connectivity
0017 pT = gather(amb, conn, prescribed values);
0018 if norm (pT) ~= 0
0019 He = get(ems(i),mat); % element matrix
0020 evs(i) = set(evs(i), vec, He*pT);
0021 evs(i) = set(evs(i), eqnums, ...
0022 gather(temp, conn, eqnums));
0023 end
0024 end
0025 return;
0026 end
12
Folder: SOFEA/classes/feblock/@feblock diffusion
58 CHAPTER 6. GALERKIN METHOD FOR THE MODEL OF HEAT CONDUCTION
Chapter 7
Steady-state heat diusion solutions
7.1 Steady-state diusion equation
The ordinary dierential equations that result from discretization in space, equations (6.30), lead to steady-
state solutions when T
i
(t)/t = 0, and T
i
(t)/t = 0. The latter are a sine qua non condition, while
the former follows when all the transients in the solution decay (in innite time, in general). Substituting
into (6.30), we obtain

free i
K
ji
T
i
+

free i
H
ji
T
i
=

prescribed i
K
ji
T
i
+L
Q,j
+L
q2,j
+L
q3,j
free j, (7.1)
which is a system of linear equations for the unknown nodal temperatures. The nodal temperatures are now
just numbers, not functions.
7.2 Thick-walled tube
The rst example is a thick-walled rectangular tube, with the outside temperature being prescribed as zero,
and the interior surface (perfectly) insulated. The material is isotropic. As shown in Figure 7.1, the planes
of symmetry may be used to reduce the size of the problem. Therefore, only one quarter is discretized, and
perfect insulation is applied at the symmetry planes (no heat ow through the symmetry planes). There is
a distributed heat source in the material (for instance, heat released by curing cement paste).
The Matlab script is lshape1
1
. The rst few lines dene some ancillary variables, and then the two-
dimensional mesh generator of triangle meshes is invoked. The generator is thoroughly described in the users
Figure 7.1: Heat diusion in a thick-walled rectangular tube
1
Folder: SOFEA/examples/heat diffusion
59
60 CHAPTER 7. STEADY-STATE HEAT DIFFUSION SOLUTIONS
guide targe2 users guide.pdf
2
, but we will describe a little bit the Matlab interface. The rst argument
is a cell array, each element a string (character array), with one command for the mesh generator. Thus,
the rst six strings dene curves that bound the domain (straight-line segments), the line 0011 denes a
subregion (chunk of area to be covered with triangles), and the last line denes the mesh size. The second
argument to targe2 mesher is the thickness of the slab (default value of 1.0).
0001 kappa=[0.2 0; 0 0.2]; % conductivity matrix
0002 Q=0.01100; % uniform heat source
0003 num integ pts=1; % 1-point quadrature
0004 [fens,gcells] = targe2 mesher(...textcolorcomment
0005 [curve 1 line 20 0 48 0],...
0006 [curve 2 line 48 0 48 48],...
0007 [curve 3 line 48 48 0 48],...
0008 [curve 4 line 0 48 0 13],...
0009 [curve 5 line 0 13 20 13],...
0010 [curve 6 line 20 13 20 0],...
0011 subregion 1 property 1 boundary 1 2 3 4 5 6,...
0012 [m-ctl-point constant 3.5]
0013 , 1.0);
Next, the property object appropriate for heat diusion is created, property diffusion, and supplied the
material conductivity matrix , and the heat source Q. The material object acts as a mediator between the
property object in the nite element block. The nite element block of class feblock diffusion is created,
with attributes: the material, the array of geometric cells, and an integration rule (class tri rule is used
for triangles).
0014 prop=property diffusion(struct(conductivity,kappa,source,Q));
0015 mater=mater diffusion (struct(property,prop));
0016 feb = feblock diffusion (struct (mater,mater,...
0017 gcells,gcells,...
0018 integration rule,tri rule(num integ pts)));
Two elds are created: geom represents the geometry (i.e. the locations of the nodes), and it is therefore
initialized from the nite element node array, fens; and theta represents the temperatures at the nodes,
and it is initially undened, except for the number of nodes nfens.
0019 geom = field(struct(name,[geom], dim, 2, fens,fens));
0020 theta=field(struct(name,[theta], dim, 1, nfens,...
0021 get(geom,nfens)));
The essential boundary conditions are next applied to the temperature eld. The utility function fenode select
is used to select nodes from the fens array based on their location: nodes which fall into given bounding
boxes are selected ([x
lo
x
hi
y
lo
y
hi
] =[48 48 0 48] and so on for the other box); to avoid problems with
precision, the boxes are for the purpose of the in-test inated by 0.01. The array prescribed is lled
with ones to indicate that all degrees of freedom are to be prescribed, the components to be prescribed are
passed as an empty array (line 0026), which simply means all components are meant. The values to which
the temperatures are being prescribed are all zeros. The data dening the essential boundary conditions are
set in the eld, and then applied (line 0029). The free node parameters are then assigned global equation
numbers.
0022 fenids=[fenode select(fens,struct(box,[48 48 0 48],...
0023 inflate, 0.01)),...
0024 fenode select(fens,struct(box,[0 48 48 48],...
0025 inflate, 0.01))];
2
Folder: SOFEA/meshes/targe2
7.2. THICK-WALLED TUBE 61
Figure 7.2: Heat diusion in a thick-walled rectangular tube: graphic presentation of results
0026 prescribed=ones(length(fenids),1);
0027 comp=[];
0028 val=zeros(length(fenids),1);
0029 theta = set ebc(theta, fenids, prescribed, comp, val);
0030 theta = apply ebc (theta);
0031 theta = numbereqns (theta);
The conductivity matrix is sparse (the linear system to be solved is going to be moderately large, and the
eciency aorded by a sparse matrix is not to be sneezed at), and it is assembled from element conductivity
matrices in line 0032. The heat load vector is assembled from element load vectors, and the solution of the
linear system of equations is scattered into the theta eld.
0032 K = start (sparse sysmat, get(theta, neqns));
0033 K = assemble (K, conductivity(feb, geom, theta));
0034 F = start (sysvec, get(theta, neqns));
0035 F = assemble (F, source loads(feb, geom, theta));
0036 theta = scatter sysvec(theta, get(K,mat)get(F,vec));
The last fragment of code takes care of the graphic presentation of the results. The eld colorfield holds
one color (a triple of oating-point numbers) per node, and those colors are obtained from the temperature
eld by mapping node temperatures to colors (line 0042). The geometric cells of individual nite elements
are plotted twice. Once as a raised colored surface (line 0047), and the second time as a wireframe in the
x, y plane (line 0049). The resulting graphic is shown in Figure 7.2.
0038 gv=graphic viewer;
0039 gv=reset (gv,[]);
0040 T=get(theta,values);
0041 dcm=data colormap(struct(range,[min(T),max(T)],colormap,jet));
0042 colorfield=field(struct (name, [colorfield], data,...
0043 map data(dcm, T)));
0044 geomT=field(struct (name, [geomT], ...
0045 data,[get(geom,values), get(theta,values)]));
0046 for i=1:length (gcells)
0047 draw(gcells(i), gv, struct (x,geomT, u,0*geomT,...
0048 colorfield,colorfield, shrink,0.9));
0049 draw(gcells(i), gv, struct (x,geom, u,0*geom, ...
0050 facecolor,none));
0051 end
62 CHAPTER 7. STEADY-STATE HEAT DIFFUSION SOLUTIONS
Figure 7.3: Heat diusion in inhomogeneous domain with orthotropic material properties
7.3 Orthotropic insert
The next example introduces nonzero essential boundary conditions, and orthotropic material properties.
A square block of isotropic material is insulated on the vertical edges, and two dierent temperatures our
applied on the horizontal edges. There is a square insert of orthotropic material within the larger square. The
orientation of the material axes is indicated in Figure 7.3. Physically the insert could be made of parallel bers
(for instance carbon), embedded in a polymer matrix. The bers conduct heat well, while in the transverse
direction the polymer matrix hampers heat conduction. The problem is solved with script squareinsquare
3
.
The domain consists of two materials, and consequently we dene two material conductivity matrices: the
inner material has strongly orthotropic properties; the outer material is isotropic. The rotation matrix that
denes the local material properties of the insert is setup in line 0005.
0001 kappainner=[2.25 0; 0 0.06]; % orthotropic conductivity matrix
0002 kappaouter=[0.25 0; 0 0.25]; % isotropic conductivity matrix
0003 alpha =-45;% local material orientation angle
0004 ca=cos(2*pi/360*alpha); sa=sin(2*pi/360*alpha);
0005 Rm = [ca, -sa;sa, ca];% local material directions
The mesh generator denes the eight boundary segments, and then sets up two subregions: note that the
two subregions are assigned dierent numerical identiers (1 and 2) to distinguish elements belonging to
dierent subregions.
0007 [fens,gcells, groups] = targe2 mesher(...
0008 [curve 1 line -48 -48 48 -48],...
0009 [curve 2 line 48 -48 48 48],...
0010 [curve 3 line 48 48 -48 48],...
0011 [curve 4 line -48 48 -48 -48],...
0012 [curve 5 line 0 -31 31 0],...
0013 [curve 6 line 31 0 0 31],...
0014 [curve 7 line 0 31 -31 0],...
0015 [curve 8 line -31 0 0 -31],...
0016 [subregion 1 property 1 ...
0017 boundary 1 2 3 4 -8 -7 -6 -5],...
0018 [subregion 2 property 2 ...
0019 boundary 5 6 7 8],...
0020 [m-ctl-point constant 4.75]
0021 , 1.0);
The inner subregion consists of the geometric cells gcells(groups2) (groups2 is a list of indexes of
the cells that belong to the subregion 2). Note that the local material directions matrix is being supplied to
the nite element block constructor (line 0027).
3
Folder: SOFEA/examples/heat diffusion
7.3. ORTHOTROPIC INSERT 63
Figure 7.4: Heat diusion in inhomogeneous domain with orthotropic material properties: temperature
distribution. Notice the distorting eect of the insert
0022 propinner=property diffusion(struct(conductivity,kappainner,...
0023 source,0));
0024 materinner=mater diffusion(struct(property,propinner));
0025 febinner = feblock diffusion(struct (mater,materinner,...
0026 gcells,gcells(groups2),...
0027 integration rule,tri rule(num integ pts),Rm,Rm));
0028 propouter=property diffusion(struct(conductivity,kappaouter,...
0029 source,0));
0030 materouter=mater diffusion(struct(property,propouter));
0031 febouter = feblock diffusion(struct (mater,materouter,...
0032 gcells,gcells(groups1),...
0033 integration rule,tri rule(num integ pts)));
The boundary conditions are straightforward, but notice that the two horizontal edges are being assigned
dierent, nonzero, temperatures.
0036 fenids=[fenode select(fens,struct(box,[-48 48 -48 -48],...
0037 inflate, 0.01))];
0038 prescribed=ones(length(fenids),1);
0039 comp=[];
0040 val=zeros(length(fenids),1)+20;% ambient temperature
0041 theta = set ebc(theta, fenids, prescribed, comp, val);
0042 fenids=[fenode select(fens,struct(box,[-48 48 48 48],...
0043 inflate, 0.01))];
0044 prescribed=ones(length(fenids),1);
0045 comp=[];
0046 val=zeros(length(fenids),1)+57;% hot inner surface
0047 theta = set ebc(theta, fenids, prescribed, comp, val);
0048 theta = apply ebc (theta);
When assembling the conductivity matrix, the contributions from the two blocks are assembled separately.
The thermal loads corresponding to nonzero essential boundary conditions (conductivity only: recall that
this is steady-state) are assembled only for the outer subregion block, since there are no boundary conditions
on the boundary of the inner block.
0050 K = start (sparse sysmat, get(theta, neqns));
0051 K = assemble (K, conductivity(febinner, geom, theta));
0052 K = assemble (K, conductivity(febouter, geom, theta));
0053 F = start (sysvec, get(theta, neqns));
0054 F = assemble (F, nz ebc loads conductivity(febouter, geom, theta));
64 CHAPTER 7. STEADY-STATE HEAT DIFFUSION SOLUTIONS
Figure 7.5: The T4 NAFEMS benchmark geometry and boundary conditions.
The results are presented in Figure 7.4. The distorting eect of the insert is noteworthy: in one direction
the insert acts as a heat sink/source, in the perpendicular direction it is an insulator.
7.4 The T4 NAFEMS Benchmark
This problem is one of the NAFEMS (National Agency for Finite Element Methods and Standards (UK))
benchmark tests for thermal analyses. It consists of 2d region 0.6 meter wide by 1 meter high, with a
xed temperature of 100

C100 on the lower boundary, perfect insulator on the left boundary, and a heat
transfer at 750W/m
2

C on the other two boundaries (see Figure 7.5). The material in the region has a
thermal conductivity of 52W/m

C. The problem is to calculate the steady-state temperature distribution.


A complete description of this problem is given in the paper by Cameron, Casey, and Simpson [CCS].
The SOFEA solution is in the Matlab script t4nafems
4
. Note that also
0001 kappa=[52 0; 0 52]; % conductivity matrix
0002 Q=0.0; % uniform heat source
0003 h=750;
0004 num integ pts=1; % 1-point quadrature
0005 [fens,gcells,groups,edge gcells,edge groups]=targe2 mesher(...
0006 [curve 1 line 0 0 0.6 0],...
0007 [curve 2 line 0.6 0 0.6 0.2],...
0008 [curve 3 line 0.6 0.2 0.6 1.0],...
0009 [curve 4 line 0.6 1.0 0 1.0],...
0010 [curve 5 line 0 1.0 0 0],...
0011 subregion 1 property 1 boundary 1 2 3 4 5,...
0012 [m-ctl-point constant 0.05]
0013 , 1.0);
...
Nota bene that two blocks are being created: the rst for the triangular elements in the interior of the
domain, and the second, edgefeb, for the edge elements (line segment elements with two nodes) along the
two boundary edges of the domain with the convective boundary condition.
0019 edgefeb = feblock diffusion (struct (mater,mater,...
0020 gcells,edge gcells([edge groups[2, 3, 4]]),...
0021 integration rule,gauss rule(1,num integ pts),...
0022 surface transfer, h));
...
4
Folder: SOFEA/examples/heat diffusion
7.4. THE T4 NAFEMS BENCHMARK 65
Create a eld to represent the prescribed ambient temperature along the boundary. The interior values are
never used, only the ones on the boundary. They happen to be all equal to zero, but we will not ignore them
in the interest of clarity.
0026 amb = clone(theta, [amb]);
0027 fenids=[
0028 fenode select(fens,struct(box,[0.6 0.6 0 1],...
0029 inflate, 0.01)),...
0030 fenode select(fens,struct(box,[0 1 1 1],...
0031 inflate, 0.01))] ;
0032 prescribed=ones(length(fenids),1);
0033 comp=[];
0034 val=zeros(length(fenids),1)+0.0;
0035 amb = set ebc(amb, fenids, prescribed, comp, val);
0036 amb = apply ebc (amb);
The essential boundary condition on the temperature eld is applied.
0037 fenids=[
0038 fenode select(fens,struct(box,[0. 0.6 0 0],...
0039 inflate, 0.01))] ;
0040 prescribed=ones(length(fenids),1);
0041 comp=[];
0042 val=zeros(length(fenids),1)+100.0;
0043 theta = set ebc(theta, fenids, prescribed, comp, val);
0044 theta = apply ebc (theta);
The system matrix and the system load vector are assembled, including the surface heats transfer contribution
(line 0047), and the surface heat transfer load (line 0051). Note that these are computed on the edge element
block edgefeb. The contribution of the nonzero prescribed temperature is also added in.
0046 K = start (sparse sysmat, get(theta, neqns));
0047 K = assemble (K, conductivity(feb, geom, theta));
0048 K = assemble (K, surface transfer(edgefeb, geom, theta));
0049 F = start (sysvec, get(theta, neqns));
0050 F = assemble(F, source loads(feb, geom, theta));
0051 F = assemble(F, nz ebc loads conductivity(feb, geom, theta));
0052 F = assemble(F, surface transfer loads(edgefeb,geom,theta,amb));
After the solution, the temperature at the node x = 0.6, y = 0.2 (label A in Figure 7.6), is retrieved with
gather and printed. The calculated value of 18.2481

C agrees well with the reference solution of 18.3

C.
The singularity near the corner where the two kinds of boundary conditions meet (prescribed temperature
with convective surface heat transfer) is clearly visible.
0053 theta = scatter sysvec(theta, get(K,mat)get(F,vec));
0054 gather(theta,fenode select(fens,...
0055 struct(box,[0.6 0.6 0.2 0.2],inflate, 0.01)),values)
66 CHAPTER 7. STEADY-STATE HEAT DIFFUSION SOLUTIONS
Figure 7.6: Temperature distribution for the T4 NAFEMS benchmark.
Chapter 8
Transient heat diusion solutions
8.1 Discretization in time for transient heat diusion
The ordinary dierential equations (6.30) need to be numerically integrated in time as analytical solutions
are not possible in general. Hughes (2000) describes a nite dierence method, the generalized trapezoidal
method , including its accuracy and stability properties (Chapter 8, Reference [Hug00]). To unclutter the
equations, we will use a matrix notation, with the following denitions:

K = [K
ji
+H
ji
], free j, i, (8.1)
for the eective conductivity matrix, which bundles the bulk conductivity with the surface heat transfer
matrix,
K = [K
ji
], free j, prescribed i, (8.2)
for the rectangular conductivity matrix that relates the prescribed temperatures to the heat uxes,
C = [C
ji
], free j, i, (8.3)
for the capacity matrix,
C = [C
ji
], free j, prescribed i, (8.4)
for the rectangular capacity matrix that relates the prescribed temperature rates to the heat uxes, and
L = [L
Q,j
+L
q2,j
+L
q3,j
], free j . (8.5)
The free temperatures and their rates are collected in column matrices
T = [T
j
],

T =
_
T
i
t
_
, free j . (8.6)
and the prescribed temperatures and their rates
T = [T
j
],

T =
_
T
i
t
_
, prescribed j . (8.7)
Therefore, equation (6.30) may be recast as
C

T +

KT +C

T +KT L = 0 .
(8.8)
The generalized trapezoidal method proposes to express the relationship between the temperatures and the
rates of temperatures at two dierent time instants, t
n
and t
n+1
, as


T
n+1
+ (1 )

T
n
=
T
n+1
T
n
t
, (8.9)
67
68 CHAPTER 8. TRANSIENT HEAT DIFFUSION SOLUTIONS
where a quantity expressed at time t
n
is given a subscript n, and t = t
n+1
t
n
. The free parameter is
used to control accuracy and stability of the scheme.
Equation (8.9) is applied to the time stepping of (8.8) by writing (8.8) at the two time instants, t
n
and
t
n+1
, and then mixing together these two equations. Thus, we add together

_
C

T
n+1
+

KT
n+1
+C

T
n+1
+KT
n+1
L
n+1
_
= 0 , (8.10)
and
(1 )
_
C

T
n
+

KT
n
+C

T
n
+KT
n
L
n
_
= 0 , (8.11)
and if we assume that equation (8.9) applies not only to the free temperatures, but also to the prescribed
temperatures, the mixture of rates (left-hand side of (8.9)) may be replaced with the dierence of the
temperatures (right hand side of (8.9)). The resulting equation refers only to temperatures at two times,
and may be solved to yield T
n+1
, provided T
n
is known.
_
1
t
C +

K
_
T
n+1
=
_
1
t
C (1 )

K
_
T
n
+L
n+1
+ (1 )L
n

_
1
t
C +K
_
T
n+1
+
_
1
t
C (1 )K
_
T
n
(8.12)
The form of equation (8.12) is pleasingly symmetric, fully reective of the blocked nature of these equations.
However, for implementation the following form is going to be more protable:
_
1
t
C +

K
_
T
n+1
=
_
1
t
C (1 )

K
_
T
n
+L
n+1
+ (1 )L
n
C
T
n+1
T
n
t
K
_
T
n+1
+ (1 )T
n

(8.13)
The last line in this equation indicates how the contributions from prescribed temperatures (and hence also
prescribed temperature rates) may be calculated: the term
C
T
n+1
T
n
t
introduces the contributions of the temperature rates, since the fraction on the right is an approximation of
the temperature rate, and the term
K
_
T
n+1
+ (1 )T
n

contributes the eect of prescribed temperatures (in the form of a mixture of temperatures at time n and
n + 1).
Now to the question of how to choose the value of : upon closer inspection of equation (8.9) we may
conclude that the two choices, = 0 and = 1, will lead to Euler methods the forward (explicit) Euler
for the former, and the backward (implicit) Euler for the latter. The value of = 1/2 is known as the
Crank-Nicholson method. The explicit Euler method has the limitation of conditional stability, which
leads to severe restrictions on the time step. On the other hand, the backward Euler and the Crank-Nicholson
are for equations (8.13) unconditionally stable. While the Crank-Nicholson is nominally more accurate than
the backward Euler, the latter is often given preference because it tends to eliminate oscillations in the
solution.
8.2 Transient diusion: The T3 NAFEMS Benchmark
This test is recommended by the National Agency for Finite Element Methods and Standards (UK), and it
is surprisingly exacting. The domain shown in Figure 8.1. One face is held at 0

C, the other face experiences


sinusoidal variations in temperature. The temperature at t = 32 seconds 0.02 m under the heated face is
sought. It is assumed that the plate is very large compared to its thickness, and the problem may therefore
be reduced to one dimension, along the thickness. The implementation of transient heat conduction in SOFEA
8.2. TRANSIENT DIFFUSION: THE T3 NAFEMS BENCHMARK 69
Figure 8.1: Heat diusion through a plate (one-dimensional problem), with time-dependent boundary con-
ditions
is in fact dimension independent, and we simply take care to dene the various objects properly for a 1-D
problem and the rest follows.
The solution is presented in the Matlab script t3nafems
1
. First, the various parameters are dened.
Note that the backward Euler method ( = 1) is selected for the time discretization.
0001 kappa=[35.0]; % conductivity matrix
0002 cm = 440.5;% specific heat per unit mass
0003 rho=7200;% mass density
0004 cv =cm* rho;% specific heat per unit volume
0005 Q=0; % uniform heat source
0006 Tampl=100;
0007 Tamb=0;
0008 Tbar =@(t)(Tampl*sin(pi*t/40)+ Tamb);%hot face temperature
0009 num integ pts=2; % quadrature
0010 L=0.1;% thickness
0011 dt=0.5; % time step
0012 tend= 32; % length of the time interval
0013 t=0;
0014 theta = 1.0; % generalized trapezoidal method
0015 online graphics= ~true;% plot the solution as it is computed?
0016 n=3*5;% needs to be multiple of five
The mesh is created by block1d
2
, a simple utility which produces a uniformly spaced mesh on the interval
0 x L. Note that not only the essential boundary conditions are applied to the temperature eld, but
also the initial condition (which happens to be 0

C).
0017 [fens,gcells] = block1d(L,n,1.0); % Mesh
0018 prop=property diffusion(struct(conductivity,kappa,...
0019 specific heat,cv,rho,rho,source,Q));
0020 mater=mater diffusion (struct(property,prop));
0021 feb = feblock diffusion (struct (...
0022 mater,mater,...
0023 gcells,gcells,...
0024 integration rule,gauss rule(1,num integ pts)));
0025 geom = field(struct (name,[geom], dim, 1, fens,fens));
0026 tempn = field(struct (name,[temp], dim, 1,...
0027 nfens,get(geom,nfens)));
0028 tempn = set ebc(tempn, 1, 1, 1, Tbar(t));
0029 tempn = set ebc(tempn, n+1, 1, 1, Tamb);
1
Folder: SOFEA/examples/diffusion
2
Folder: SOFEA/meshes
70 CHAPTER 8. TRANSIENT HEAT DIFFUSION SOLUTIONS
0030 tempn = apply ebc (tempn);
0031 tempn = numbereqns (tempn);
0032 tempn = scatter sysvec(tempn,gather sysvec(tempn)*0+Tamb);
The conductivity and capacity matrix are time independent; we compute them once, and henceforth work
only with the arrays Km and Cm.
0033 K = start (dense sysmat, get(tempn, neqns));
0034 K = assemble (K, conductivity(feb, geom, tempn));
0035 Km = get(K,mat);
0036 C = start (dense sysmat, get(tempn, neqns));
0037 C = assemble (C, capacity(feb, geom, tempn));
0038 Cm = get(C,mat);
The time stepping begins. First, the temperature boundary conditions are time-dependent, which means
they have to be set for each pass through the time loop (i.e. for each time instant).
0039 Tfifth = [];
0040 while t<tend+0.1*dt % Time stepping
0041 if online graphics
0042 plot([0, 0],[0,Tampl],.); hold on
0043 plot(get(geom,values),get(tempn,values));
0044 figure(gcf);
0045 title ([Time = num2str(t)]); hold off; pause(0.1);
0046 end
0047 tempn1 = tempn;
0048 tempn1 = set ebc(tempn1, 1, 1, 1, Tbar(t+dt));
0049 tempn1 = set ebc(tempn1, n+1, 1, 1, Tamb);
0050 tempn1 = apply ebc (tempn1);
The thermal loads corresponding to nonzero temperatures and temperature rates are applied next. We may
compare the elds that are being passed on lines 0052 and 0054 with (8.13) and the discussion below that
equation: The Matlab code is a literal transcription of the formulas. Note that we are directly working with
objects of the class field, using operator overload (adding and multiplying elds).
0051 F = start (sysvec, get(tempn, neqns));
0052 F = assemble (F, nz ebc loads conductivity(feb, geom, ...
0053 theta*tempn1 + (1-theta)*tempn));
0054 F = assemble (F, nz ebc loads capacity(feb, geom, ...
0055 (tempn1-tempn)*(1/dt)));
0056 Tn=gather sysvec(tempn);
0057 Tfifth = [Tfifth Tn(n/5+1)];
The individual objects in this system of linear equations for Tn1 are again directly recognizable in for-
mula (8.13).
0058 Tn1 = (1/dt*Cm+theta*Km) ((1/dt*Cm-(1-theta)*Km)*Tn+...
0059 get(F,vec));
0060 tempn = scatter sysvec(tempn1,Tn1);
0061 t=t+dt;
0062 end
The results are summarized in Figure 8.2. The reference solution is 36.6

C at the time t = 32 seconds, and


the curve shown in the gure has been obtained with 500 elements through the thickness (yielding 36.16

C).
The solution with 15 elements is seen to be in considerable error. This is somewhat surprising, but a
closer look at the behavior of the solution during the time interval of interest shows signicant temperature
gradients near the hot surface, which perhaps explains why it is so expensive to get an accurate solution.
8.3. TRANSIENT COOLING IN A SHRINK-FITTING APPLICATION 71
Figure 8.2: Heat diusion through a plate (one-dimensional problem): temperature 0.02 m under the heated
face
Figure 8.3: Transient cooling of a shrink-tted assembly: schematic
8.3 Transient cooling in a shrink-tting application
Shrink tting is a common manufacturing process used to assemble two parts: Figure 8.3. In our case, the
cold part is maintained at 10

C prior to the assembly, while the hot part is at 84

C. The temperature of
the ambient air is 17

C. The task is to determine how long it will take before the temperature of the hot
part drops below 70

C (which is given as a manufacturing constraint).


The problem is solved by the script shrinkfit
3
. Let us jump directly into the mesh generation: Figure 8.3
shows the two regions, and the boundary edges (note the numbers next to the edges). The mesh is relatively
coarse considering the thickness of some of the geometry only around three elements through the thickness
of the hot part. Even so the mesh has almost 2300 triangular elements, and the transient solution takes a
couple of minutes.
0017 [fens,gcells,groups,edge gcells,edge groups]=targe2 mesher(...
0018 curve 1 line 0 0 50 0,...
0019 curve 2 arc 50 0 80 0 center 65 -0.001 ,...
0020 curve 3 line 80 0 110 0,...
0021 curve 4 line 110 0 110 50,...
0022 curve 5 line 110 50 65 50 ,...
0023 curve 6 arc 65 50 65 70 center 65.001 60 ,...
0024 curve 7 line 65 70 110 70,...
0025 curve 8 line 110 70 110 85,...
0026 curve 9 arc 110 85 65 120 center 110 120 ,...
0027 curve 10 line 65 120 0 120,...
0028 curve 11 line 0 120 0 85,...
3
Folder: SOFEA/examples/diffusion
72 CHAPTER 8. TRANSIENT HEAT DIFFUSION SOLUTIONS
0029 curve 12 arc 0 85 0 35 center -0.001 60 rev,...
0030 curve 13 line 0 35 0 0,...
0031 curve 14 line 110, 50, 160, 50,...
0032 curve 15 line 160, 50, 160, 70,...
0033 curve 16 line 160, 70, 110, 70,...
0034 [subregion 1 property 1 boundary ...
0035 1 2 3 4 5 6 7 8 9 10 11 12 13],...
0036 [subregion 2 property 2 boundary ...
0037 -5 -6 -7 14 15 16],...
0038 [m-ctl-point constant 3]
0039 , 1.0);
For the edges that separate the metal from the air, elements to be used in the surface heat transfer needs to
be generated (nite element block efeb). Note that the interior edges are omitted.
0040 prop steel=...
0041 property diffusion (struct(conductivity,kappa steel,...
0042 specific heat,cv steel,source,0.0));
0043 mater steel=mater diffusion (struct(property,prop steel));
0044 feb steel = feblock diffusion (struct (mater,mater steel,...
0045 gcells,gcells(groups1),...
0046 integration rule,tri rule(num integ pts)));
0047 prop tungsten=...
0048 property diffusion (struct(conductivity,kappa tungsten,...
0049 specific heat,cv tungsten,source,0.0));
0050 mater tungsten=mater diffusion (struct(property,prop tungsten));
0051 feb tungsten = feblock diffusion (struct (mater,mater tungsten,...
0052 gcells,gcells(groups2),...
0053 integration rule,tri rule(num integ pts)));
The ambient temperature is dened in the eld amb. The temperature is applied at the nodes associated
with the boundary edges in the loop (line 0063).
0062 amb = clone(tempn, [amb]);
0063 for i= 1:length(edge gcells)
0064 conn = get(edge gcells(i),conn);
0065 amb = set ebc(amb, conn, conn*0+1, [], conn*0+Ta);
0066 end
0067 amb = apply ebc (amb);
The time stepping loop is almost identical to the example in Section 8.2, except the thermal load vector is
based on the convective surface heat transfer.
0115 F=assemble(F, surface transfer loads(efeb,geom,tempn,amb));
The evolution of the lowest and highest temperature in the entire assembly is shown in Figure 8.4: the
highest temperature drops below 70

C after around 13 seconds. Obviously, we are not addressing the issue


of accuracy, neither in the resolution aorded by the mesh, nor in the selection of the time step. However,
the time measurements in an actual manufacturing process are not likely to be accurate to more than half
a second.
8.3. TRANSIENT COOLING IN A SHRINK-FITTING APPLICATION 73
Figure 8.4: Transient cooling of a shrink-tted assembly: time evolution of the lowest and highest tempera-
ture in the assembly
74 CHAPTER 8. TRANSIENT HEAT DIFFUSION SOLUTIONS
Chapter 9
Expanding the library of element
types
The linear triangle T3 is not particularly accurate, but for the linear heat diusion problem it is quite ade-
quate. Nevertheless, we will introduce another couple of elements to expand the scope of the approximation
methods discussed so far. This is desirable from a couple of dierent viewpoints. Firstly, with the linear
triangle we have been able to construct basis functions which allow for linear variations in temperature to
be represented exactly. Hence, if the exact solution is a constant gradient of temperature, the approximate
solution does not involve any discretization error. Unfortunately, the usefulness of this is limited, since
constant gradients of temperature are not commonly encountered in applications. If the basis functions can
represent higher-order polynomials, for instance quadratic, the resulting method will be able to represent
more complex gradients of temperature: linear, in the case of the quadratic variation of temperature. To
oversimplify a little bit, the more complex the temperature variations that are reproduced without error, the
higher the overall accuracy of the scheme.
Secondly, introducing dierent element types may enable us to play games with dierent quadrature
schemes. One view of the nite element method could put the basis function above all: the elements are
there only to integrate all the expressions that involved the basis functions and their derivatives as accurately
as possible (exactly?). However,
9.1 Quadratic triangle T6
The triangle T6 makes it possible to design basis functions that can reproduce quadratic variations of the
temperature. More precisely, it will do that in the terms of the coordinates on the standard triangle. As
we shall see, the map from the standard triangle will also allow for quadratic temperature variation in the
physical space, but more generally it will lead to rational expressions.
The rst task will be to formulate the basis functions on the standard triangle, Figure 9.1. To be
able to write down a polynomial for a particular basis function that is quadratic in , , six coecients
Figure 9.1: Standard quadratic triangle.
75
76 CHAPTER 9. EXPANDING THE LIBRARY OF ELEMENT TYPES
Figure 9.2: Standard quadratic triangle: one-dimensional view of basis function N
2
.
Coordinate Node 1 Node 2 Node 3 Node 4 Node 5 Node 6
0 1 0 1/2 1/2 0
0 0 1 0 1/2 1/2
Table 9.1: Standard quadratic triangle: locations of the nodes
will be needed. To determine these coecients, we will make use of the common device of equipping
the basis functions with the Kronecker delta property (2.19). Let us start with the basis function N
2
=
a
0
+a
1
+a
2
+a
3
+a
4

2
+a
5

2
: writing
N
2
(
k
,
k
) =
2k
, for k = 1, , 6
at all six nodes (see Table 9.1), provides us with six equations from which the six coecients may be
determined. That is however tedious and boring: let us use commonsense and guesswork instead. Drawing
the standard triangle plane while looking along the axis we see that three and two nodes respectively align,
which obviously makes it possible to make the function N
2
equal to zero in these two locations, and equal
to one at node 2 with a Lagrange polynomial
N
2
=
( 0)( 1/2)
(1 0)(1 1/2)
= (2 1)
Similarly, in the other direction we have for N
3
= (2 1).
To approach the construction of the other basis functions, we note that both N
2
and N
3
may be written
as the normalized product of planes: for N
2
the two planes are p
2
(, ) = and p
2
(, ) = 1/2, and N
2
is written as
N
2
=
p
2
(, ) p
2
(, )
p
2
(1, 0) p
2
(1, 0)
= (2 1) .
Similarly for N
3
and N
1
: the recipe is to nd two planes that go through three nodes and two nodes
respectively (but not through the node at which the function is supposed to be equal to one), and normalize
their product. For N
1
the planes are p
1
(, ) = 1 (this is the same N
1
as in (6.14) ) and p
1
(, ) =
1 2 2 (compare with Figure 9.3)
N
1
= (1 )(1 2 2) .
For the mid-edge nodes, 4, 5, 6, we nd planes that pass through two triples of nodes. For instance, for
node 6 (see Figure 9.3), the two planes are p
6
(, ) = 1 and p
6
(, ) = (same as N
3
as in (6.13)
N
6
= 4(1 ) .
9.2. QUADRATIC 1-D ELEMENT L3 77
Figure 9.3: Standard quadratic triangle: Basis functions N
2
, N
1
, and N
6
.
Figure 9.4: Quadratic basis functions on the standard interval
9.2 Quadratic 1-D element L3
The basis functions for this element are simply the Lagrange interpolation functions on the standard interval.
In fact, along each edge of the quadratic triangle T6 we have a set of functions which look quite like what we
want already. However, the parameters on the standard triangle vary between zero and one; the standard
interval is dierent. Therefore, the basis functions N
1
, N
2
, and N
3
on the standard interval will read
(Figure 9.4)
N
1
() =
( 1)
2
, N
2
() =
( + 1)
2
, N
3
() = (1
2
) . (9.1)
9.3 Point element P1
Browsing the classes/gcell folder, one may notice the gcell X manifold class folders with X= 0, 1, 2, 3.
All SOFEA geometric cells are of certain so-called manifold dimension: solids are of manifold dimension 3,
surfaces are of dimension 2, while curves and points are of dimensions 1 and 0. Since we commonly solve heat
diusion (and other problems) in domains that are solids, surfaces, and curves, we also have to deal with
integration over the boundaries of these domains; these are, correspondingly, surfaces, curves, and points.
When the heat diusion problem was being formulated in two-dimensional domains in Section 6, the
discrete domain consisted of triangles (elements T3), and the discrete boundary consisted of line segments
(elements L2). Analogously, when the heat diusion is solved in a one-dimensional domain (interval of the
real line) which is covered by elements L2, the boundary consists of two points: hence the need for elements
of type P1.
Evaluating the integrals of the surface heat transfer matrix (6.29) and the surface heats transfer load (6.28)
(and also the prescribed heat ux load (6.27)) over the boundary on interval on the real line simply means
taking the values of the integrants at the end points. In terms of a quadrature formula applied at the
boundary point a (analogous to (2.24)),
f(a) f(
1
)J(
1
)W
1
which is going to give the expected results with
1
= 0, f(
1
) = f(a), W
1
= 1, and the Jacobian J(
1
) = 1.
The quadrature rule with these properties is point rule, and a sample script to use this type of evaluation
78 CHAPTER 9. EXPANDING THE LIBRARY OF ELEMENT TYPES
Figure 9.5: Geometry of a cylinder.
of boundary integrals for one-dimensional heat diusion problems is transcool
1
.
Programming remark: With the introduction of the element P1, a closure is achieved: the same code will
now work for heat diusion problems solved on one-dimensional, two-dimensional, and three-dimensional
domains. The programming principles of object-oriented design that are in action here are polymorphism
(the methods operate on objects in dierent types uniformly), and dynamic dispatch (an appropriate method
is selected based on the class of the object on which it is invoked).
9.4 Measuring (integrating) over domains
The uniform treatment of the manifold dimension of the domain allows us to produce dimension-independent
code. Therefore, integration of any scalar function over any domain or subdomain is carried out by a single
method of the class feblock. Consider as an example the geometry of a cylinder, the volume tiled with
tetrahedra, the bounding surface covered with triangles, the edges of the cylindrical faces approximated with
straight two-node segments, and one node at each vertex of the mesh. We may integrate over the volume
of the 3-D mesh to nd and approximation of the volume of the original cylinder; or over the length of a
single edge to approximate the circumference; or over the area of one circular face to nd an approximation
of the cross-sectional area; or to count all the nodes on the cylindrical surface when we integrate over all the
vertices of the triangles on that surface.
The method measure of the class feblock evaluates the integral
_
V
n
f(x) dV
n
, (9.2)
where V
n
is the volume of an n-dimensional manifold (n = 0, 1, 2, 3). The method takes as arguments the
geometry eld (evidently, the volume of any discrete manifold is going to depend on the locations of its
vertices), and a function handle.
0013 function result = measure
2
(self, geom, varargin)
0014 gcells =self.gcells;
0015 ngcells = length(self.gcells);
0016 % Integration rule
0017 integration rule = get(self, integration rule);
0018 pc = get(integration rule, param coords);
0019 w = get(integration rule, weights);
0020 npts per gcell = get(integration rule, npts);
When the function handle is not supplied, it is assumed that the function to be integrated over the manifold
is f(x) = +1; otherwise, it can be for instance the location-dependent mass density. There are a number
1
Folder: SOFEA/examples/diffusion
2
Folder: SOFEA/classes/feblock/@feblock
9.4. MEASURING (INTEGRATING) OVER DOMAINS 79
of uses to which this method could be applied: as an example consider the calculation of the moments of
inertia, or calculation of the centroid.
0021 if nargin >=3
0022 fh =varargin1;
0023 else
0024 fh =@(x) (1);
0025 end
Loop over all geometric cells: collect the geometry from the supplied eld.
0026 result = 0;
0027 % Now loop over all gcells in the block
0028 for i=1:ngcells
0029 conn = get(gcells(i), conn); % connectivity
0030 x = gather(geom, conn, values, noreshape);
Each type of a geometric cell must provide functions for calculating the basis functions and the derivatives
of the basis functions with respect to the parametric coordinates in order to evaluate the Jacobian. It
needs to be realized that again the method Jacobian is dispatched dynamically, to be treated dierently in
dependence on the dimension of the manifold. The result of Jacobian may depend on the location of the
point in the parametric or spatial coordinates.
0031 % Loop over all integration points
0032 for j=1:npts per gcell
0033 detJ = Jacobian(gcells(i),pc(j,:),x);
The array of basis functions is computed so that the spatial location may be evaluated, and supplied to the
function fh. The result is accumulated with numerical quadrature.
0034 N = bfun(gcells(i), pc(j,:));
0035 result = result + fh(N*x)*detJ*w(j);
0036 end
0037 end
0038 end
except that
As an example, here is the Jacobian method for a two-dimensional manifold (a surface), which in this
case invokes the method Jacobian surface to do the work. The number of space dimensions of the space
sdim in which the manifold is embedded could be 2 (the manifold is just a piece of the Euclidean plane), or
3 (the manifold is then a piece of surface). The number of tangents must be 2 (compare with (6.43), and
refer to Figure 9.6): they are
x(, )

, and
x(, )

, .
The Jacobian is the length of the cross product of the two tangents (refer to the Figure 6.9). Here, the cross
product is expressed through a skew-symmetric matrix.
0013 function detJ = Jacobian surface
3
(self, pc, x)
0014 Nder = bfundpar (self, pc);
0015 tangents =x*Nder;
0016 [sdim, ntan] = size(tangents);
0017 if ntan==2 % 2-D gcell
0018 if sdim==ntan
0019 detJ = det(tangents);% Compute the Jacobian
0020 else
3
Folder: SOFEA/classes/gcell/@gcell 2_manifold
80 CHAPTER 9. EXPANDING THE LIBRARY OF ELEMENT TYPES
Figure 9.6: Surface with the coordinate curves and tangents
0021 detJ = norm(skewmat(tangents(:,1))*tangents(:,2));
0022 end
0023 else
0024 error(Got an incorrect size of tangents);
0025 end
0026 end
Finally, we give an example of the use of the measure method: The Matlab script test measure
4
measures
the volume and the surface area of a rectangular block tiled with tetrahedra T4.
0001 a=2.5*pi;
0002 b=2.95;
0003 c=6.1313;
0004 [fens,gcells] = t4block(a,b,c, 5, 4, 7);
0005 bg=mesh bdry(gcells);
0006 geom = field(struct (name,[geom], dim, 3, fens,fens));
0007 feb = feblock (struct (mater,[], gcells,gcells,...
0008 integration rule, tet rule (1)));
0009 disp([ The volume is = num2str(measure(feb,geom,1))
, to be compared with num2str(a*b*c)])
0010 feb = feblock (struct (mater,[], gcells,bg,...
0011 integration rule, tri rule (1)));
0012 disp([ The surface is = num2str(measure(feb,geom,1))
, to be compared with num2str(2*(a*b+a*c+b*c))])
0013 drawmesh(fens,bg,gcells,facecolor,red,shrink, 0.8);
It might seem tempting to evaluate all the objects of the computational methods used in this book,
the conductivity matrix, the mass matrix, the load terms, with a generalization of the measure method.
Unfortunately, Matlab passes arguments by value, which means that to accumulate as the result, for instance,
a 20000 20000 stiness matrix would be prohibitively expensive and wasteful. (The correct result would
be produced, if thats any consolation.)
9.5 Tetrahedron T4
The tetrahedron with four nodes at the corners (element T4) is a straightforward extension of the triangle
T3. The standard tetrahedron is shown in Figure 9.7. The basis functions in the parametric coordinates
are designed to be linear functions of , , , and there are four corners at which to use the Kronecker delta
4
Folder: SOFEA/examples/miscellaneous
9.5. TETRAHEDRON T4 81
Figure 9.7: Standard tetrahedron
Rule Coordinates
j
,
j
,
j
Weights W
j
Integrates exactly
1-point 1/4, 1/4, 1/4 1/6 linear polynomial
4-point
0.1381966, 0.1381966, 0.1381966
0.5854102, 0.1381966, 0.1381966
0.1381966, 0.5854102, 0.1381966
0.1381966, 0.1381966, 0.5854102
1/24
1/24
1/24
1/24
quadratic polynomial
Table 9.2: Numerical integration rules on the standard tetrahedron
property. It is straightforward to deduce that
N
1
(, , ) = 1 , N
2
(, , ) = , N
3
(, , ) = , N
4
(, , ) = . (9.3)
Table 9.2 denes two integration rules for tetrahedra [Hug00]. The one-point rule is adequate for con-
ductivity matrix evaluation, while the four-point rule could handle the capacity matrix terms.
The four basis functions of the tetrahedron each vanish along the opposite face (basis function N
i
on the
face opposite node i and so on). The remaining three vary along this face exactly as if it was a triangle T3.
The situation is entirely analogous to the one discussed in Section 6.9 for the triangle T3 and the line segment
L2. Therefore, evaluation of the surface heat transfer contributions is simply performed using geometric cells
of type T3.
9.5.1 Example: helical geometry
The script helixcooled
5
illustrates a solution with a full 3-D geometry discretized with the T4 tetrahedra.
The problem is to determine steady state surface temperature for a helical spring, with variable cross-section
see Figure 9.8. The thick end is maintained at constant temperature, and on the rest of the surface theres
convection cooling.
The mesh is a simple regular block tiled with tetrahedra, but it is then shaped by moving nodes to dierent
locations using the utility transform apply, rst by changing its cross-section, and then by shifting all nodes
in the y-direction. Finally, the shape is twisted into a helix using transform 2 helix.
0008 [fens,gcells] = t4block(Angle,Width,Height, 50, 6, 4);
0009 Radius = 1.2;
0010 fens=transform apply(fens,...
@(x,data)(x.*[1,(1-x(1)/Angle/1.2),1]),[]);
0011 fens=transform apply(fens,@(x,data)(x+ [0,Radius,0]),[]);
5
Folder: SOFEA/examples/diffusion
82 CHAPTER 9. EXPANDING THE LIBRARY OF ELEMENT TYPES
Figure 9.8: The cooling of a helical spring.
0012 climbPerRevolution= 1.3;
0013 fens = transform 2 helix(fens,climbPerRevolution);
The surface mesh consists of triangles T3, and is extracted from the tetrahedral mesh using the utility
mesh bdry. The surface mesh is immediately drawn with drawmesh.
0014 bgcells=mesh bdry(gcells);
0015 drawmesh(fens,bgcells,gcells,facecolor,red)
Next, the nite element blocks for the tetrahedral elements in the volume and the triangular elements on the
surface are created. Note that the two blocks use dierent quadrature rules, tet rule for the tetrahedra,
and tri rule for the triangles; both use just one integration point.
0017 feb = feblock diffusion (struct (mater,mater,...
0018 gcells,gcells,...
0019 integration rule,tet rule(num integ pts)));
0020 bfeb = feblock diffusion (struct (mater,mater,...
0021 gcells,bgcells,...
0022 integration rule,tri rule(num integ pts),...
0023 surface transfer, h));
From this point on, the script does not depend on the element types, be it the calculation of the system
matrices, or graphics output.
9.6 On the simplex elements
The point P1, the segment L2, the triangle T3, and the tetrahedron T4, are all examples of the so-called
simplex elements. By denition, an n-dimensional simplex is the convex hull of n+1 points (vertices) in the
n-dimensional space. Tiling domains with simplex elements is attractive, because a number of mathematical
properties guarantees the success of automatic tools for mesh generation. This is to be contrasted with the
generation of quadrilaterals in two dimensions, and of bricks (shapes bounded by six quadrilateral faces) in
three dimensions: not an easy task, where mesh generators often fail to produce good-quality meshes, or
where they often just fail.
While the simplex elements perform adequately in the heat conduction models, in other types of analyses
their inherent simplicity tends to work against them. For instance, as we shall see in linear elasticity the
response of meshes composed of simplex elements is quite poorly represented they are too sti.
9.7 Quadrilateral Q4
Quadrilateral elements address the excessive stiness of simplex elements by coupling together a larger
number of nodes, which in the end leads to basis functions which are more than just linear polynomials.
9.8. HEXAHEDRON H8 83
Figure 9.9: Mapping the standard square to a general quadrilateral
The element Q4 has four nodes, and its standard shape is a square. This square is to be understood
as the Cartesian product of two standard intervals (Figure 6.12). Therefore, the basis functions may also
be formed as products of basis functions on the standard interval. Assuming the numbering of the nodes
as shown in Figure 9.9, the basis function N
1
may be written as the product of the basis function on the
interval 1 +1 and the basis function on the interval 1 +1 where both functions correspond
to the left-hand side endpoint
N
1
(, ) =
1
1 1

1
1 1
=
( 1)( 1)
4
. (9.4)
Similarly, for the remaining three functions we have
N
2
(, ) =
( + 1)( 1)
4
, N
3
(, ) =
( + 1)( + 1)
4
, N
4
(, ) =
( 1)( + 1)
4
. (9.5)
As all basis functions are linear in and , the shape that they represent above the standard square is a
hyperbolic paraboloid.
Since the standard square is a Cartesian product of standard intervals, Gaussian integration rule which
consists of a Cartesian product of one-dimensional rules is quite ecacious. The class gauss rule implements
two-dimensional (and three-dimensional) rules which are products of one-dimensional tables. Thanks to the
utility gaussquad by Peter J. Acklam, one-dimensional tables of any order may be calculated on demand
and used for higher dimensions. For the four-node quadrilateral, a 2 2 Gaussian quadrature is appropriate
for conductivity matrices; a one-point rule is insucient to build up the proper rank of the element matrices,
while higher-order rules are a waste of time.
9.8 Hexahedron H8
To extend the quadrilateral to three dimensions is quite straightforward, as instead of a Cartesian product
of two intervals on the standard square, we simply consider the Cartesian product of three intervals on the
standard cube (Figure 9.10). This element is discussed in more detail later, in Section 13.5.
9.9 Extracting the mesh boundary
The shapes of the geometric cells in the SOFEA toolbox are linked together through the taking the boundary
operation (symbol in Figure 9.11). This capability is crucial because some operations need to be performed
over the volume of the mesh, while others should be evaluated over the surface. Also, the volume and surface
integrals may need to be computed for models of dierent number of space dimensions. The general utility
mesh bdry may be used to extract the boundary from a mesh or a mesh subset. To support these operations,
the geometric cells have the responsibility of computing the connectivity of their boundary and supplying
the handle of the constructor of the appropriate boundary geometric cell with their get method.
Figure 9.11 summarizes how the various types of geometric cells t together. Some of these types have
been discussed already, some make their appearance later in the book.
84 CHAPTER 9. EXPANDING THE LIBRARY OF ELEMENT TYPES
Figure 9.10: Numbering of the nodes of the hexahedron H8
Figure 9.11: Extracting the boundary from the geometric cells
Chapter 10
Convergence and error control
In this chapter we will address the issues of error, both in the sense of describing the errors, and also with
the view of controlling them.
We begin by outlining how to estimate interpolation errors. The nite element solution in general does
not interpolate the exact solution, but it turns out that the interpolation errors are related to the actual
errors in the numerical solution. Even though we will not address this relationship, it will prove benecial
to understand the behavior of the dierence types of errors on the simpler case of the interpolation errors.
10.1 Interpolation errors
We will estimate the dierence between the exact distribution of temperature, T(x), and an interpolation
of this function on a nite element mesh,
h
T(x). Here h means the mesh size, or characteristic dimension.
10.1.1 Interpolation error for temperature
The interpolating function is dened as

h
T(x) =

k
N
k
(x)T(x
k
) , (10.1)
where x
k
is the location of the node k, and T(x
k
) is the value of the temperature at the location of the node
k. For interpolation on a mesh consisting of three-node triangles, when x is in the interior of the element

e
, only three basis functions N
k
are nonzero at x.
Expand the temperature into a Taylor series at x
T(y) = T(x) + gradT(x) (y x) +R
1
(y, x) , (10.2)
where the remainder is written as
R
1
(y, x) =
1
2
(y x) H(T)(y x) . (10.3)
Figure 10.1: Interpolating the temperature function on a mesh
85
86 CHAPTER 10. CONVERGENCE AND ERROR CONTROL
The matrix of second derivatives (Hessian) is evaluated somewhere between the points y and x
[H(T)] =
_

2
T()
x
1
x
1

2
T()
x
1
x
2

2
T()
x
2
x
1

2
T()
x
2
x
2
_

_
The Taylor series (10.2) may be used to express the value of the temperature at the nodes plug in x
k
for
y which maybe then substituted into the interpolation (10.1) to yield

h
T(x) =

k
N
k
(x)T(x
k
) =

k
N
k
(x) [T(x) + gradT(x) (x
k
x) +R
1
(x
k
, x)] =

k
N
k
(x)T(x) +

k
N
k
(x)gradT(x) (x
k
x) +

k
N
k
(x)R
1
(x
k
, x) =
T(x)

k
N
k
(x) + gradT(x)

k
N
k
(x)(x
k
x) +

k
N
k
(x)R
1
(x
k
, x) .
(10.4)
Due to the construction of the basis functions, we have these important equalities

k
N
k
(x) = 1 ,

k
N
k
(x)x
k
= x . (10.5)
Substituting into (10.4) gives

h
T(x) = T(x) +

k
N
k
(x)R
1
(x
k
, x) ,
(10.6)
or, reshuing,
T(x)
h
T(x) =

k
N
k
(x)R
1
(x
k
, x) . (10.7)
(10.8)
To estimate the magnitude of the dierence, [T(x)
h
T(x)[, we compute
[

k
N
k
(x)R
1
(x
k
, x)[ max[R
1
(x
k
, x)[ [

k
N
k
(x)[ = max[R
1
(x
k
, x)[ ,
and make use of standard norm inequalities
[v Av[ |v||Av| |A||v|
2
,
which may be applied to the denition of the remainder (10.3) together with (see Figure 10.2)
|x
k
x| h ,
and an estimate of the norm of the matrix of second derivatives of the temperature H(T) to give
[T(x)
h
T(x)[ Ch
2
|H(T)| . (10.9)
Here C is a generic constant with respect to h. If we wrap the norm of the matrix of the second derivatives
into the constant, we may write
[T(x)
h
T(x)[ C
_

2
T
_
h
2
, (10.10)
10.1. INTERPOLATION ERRORS 87
Figure 10.2: Mesh size h as a diameter of an element
where we agree to mean by C
_

2
T
_
some constant whose magnitude depends on the magnitudes of the
curvatures of the function T. Importantly, C
_

2
T
_
may also be understood as measuring the rate of change
of the heat ux in the immediate neighborhood of x.
The value of equation (10.10) is twofold: rstly, it states that the errors of interpolation will get bigger
the higher the curvature of the function of the exact temperature T and the bigger the elements (i.e. the
error will increase with h
2
); secondly, if we are interested in the interpolation error at a particular location,
we may consider the curvatures at that location as given, and the equation (10.10) then says that the error
will decrease as O(h
2
) as h 0 (order-of estimate: reduce h with a factor of two, and the error will decrease
with a factor of four).
10.1.2 Interpolation error for temperature gradient
To estimate errors for the gradient of temperature, we start with the interpolation (10.4), of which we take
the gradient
grad
h
T(x) =

k
gradN
k
(x)T(x
k
) =

k
gradN
k
(x) [T(x) + gradT(x) (x
k
x) +R
1
(x
k
, x)] =

k
gradN
k
(x)T(x) +

k
gradN
k
(x)gradT(x) (x
k
x) +

k
gradN
k
(x)R
1
(x
k
, x) =
T(x)

k
gradN
k
(x) + gradT(x)

k
gradN
k
(x)(x
k
x) +

k
gradN
k
(x)R
1
(x
k
, x) .
(10.11)
Dierentiating (10.5) we obtain

k
gradN
k
(x) = 0 ,

k
x
k
gradN
k
(x) = 1 , (10.12)
which upon substitution into (10.11) yields
grad
h
T(x) = gradT(x) +

k
gradN
k
(x)R
1
(x
k
, x) .
(10.13)
Again, an estimate of the magnitude is desired,
[gradT(x) grad
h
T(x)[ = [

k
gradN
k
(x)R
1
(x
k
, x)[
max[R
1
(x
k
, x)[

k
[gradN
k
(x)[ .
88 CHAPTER 10. CONVERGENCE AND ERROR CONTROL
Figure 10.3: Triangle quality measures using the radius of the inscribed circle and the diameter of the
circumscribed circle. Good (almost equilateral) triangle on the left; bad triangles (obtuse, needle-like) on
the right.
To estimate the magnitude of the gradient of the basis function, we invoke the picture of the basis function
as a plane that assumes value one at one node and drops o to zero along the opposite edge. Therefore,
the largest magnitude of the gradient will be produced by the smallest height. The shortest height in the
triangle d
min
may be estimated from the common quality measure
=
h

,
as d
min
O(
1
)h.
The magnitude of the basis function gradient maybe then estimated as
max gradN
k
(x) =
1
d
min


h
.
Putting everything together
[gradT(x) grad
h
T(x)[ Ch
2

h
|H(T)| = C
_

2
T
_
h . (10.14)
The value of equation (10.14) is again twofold: rstly, it states that the errors of interpolation for the
gradient of temperature will get bigger the higher the curvature of the function of the exact temperature
T, the larger the elements (i.e. the error will increase with h), and the larger the quality measure (i.e.
the worse the shape of the triangle); secondly, considering the curvatures at a xed location as given, the
equation (10.14) states that the error will decrease as O(h) as h 0 (note that this is one order lower than
for the temperatures themselves: reduce h with a factor of two, and the error will decrease with the same
factor).
Importantly, equation (10.14) allows us to make a general observation: the computed quantity is the
temperature, the gradient (or, as the matter may be, the heat ux) is obtained by dierentiation, which
immediately results in any reduction of the order of dependence on the mesh size.
10.1.3 Controlling the error; Convergence rate
The fact that the error depends on the mesh size is very important. The mesh size is in fact one of the things
we can use to control the error. If we set up the nite element procedure to solve the problem repeatedly,
changing the mesh size to reect the distribution of error (large error small elements), we obtain the so-
called adaptive renement technique, or hadaptive renement method. The h stands for the mesh
size as the control of the error. On the other hand, we could try to reduce the error by increasing the number
of terms matched in the Taylor series (10.2). This could be achieved by using higher order polynomials as
basis functions. The resulting procedure would be called the padaptive renement method, where the
p stands for the polynomial order as the control of the error.
In this book, we will use an increase in polynomial order of the elements only to increase the approximation
capacity of the nite element method in one shot (by selecting element type, linear or quadratic), not
10.1. INTERPOLATION ERRORS 89
Figure 10.4: The eect of a reentrant corner on the ux. Matlab script lshape2.
Figure 10.5: The eect of a reentrant corner on the ux: overall view and close-up. Matlab script lshape3.
adaptively (which would involve increasing the polynomial order in a targeted fashion, locally, and too much
higher order than just quadratic).
Therefore, let us discuss the errors and how to control them from the point of view of the hadaptive
renement method. The error must be dependent on a positive (but not necessarily integral) power of h.
Only then decreasing h will lead to a reduction of the error, for instance for quantity q, we require for the
error as h 0
E
q
(h) = [q
ex
q
h
[ Ch

, > 0 .
The exponent of the mesh size is called the convergence rate (or rate of convergence).
Equation (10.14) tells us how to control the error. Consider that at a given location, C
_

2
T
_
cannot be
controlled (it is determined by the behavior of the exact solution). What we can control is the shape of the
elements (), and the mesh size h. Now let the point x range across the computational domain. At some
locations C
_

2
T
_
is small, and others it is large. As an illustration, let us contemplate Figure 10.4 (and the
close-up in Figure 10.5). The constant C
_

2
T
_
will be large where the heat ux changes a lot; therefore,
where the red arrows which indicate the magnitude and direction of the heat ux suddenly change direction
or magnitude, the error constant C
_

2
T
_
should be expected to be large. Intuitively, those are the locations
where reducing the error will make a dierence. In these locations, the elements should be made smaller.
How much? The answer to that question is somewhat elusive: as much as required to reduce the error below
desired level, but the precise size to eect this reduction is not known in general. Automatic procedures to
estimate the relative desired mesh size are becoming available in commercial softwares.
A very good indication of large errors are the so-called reentrant corners (concave corners), where the
solution typically displays singularities in the form of innite curvature of the temperature directly in the
corner. Figure 10.6 shows an appropriately rened mesh around the reentrant corner for the problem from
Figures 10.5
90 CHAPTER 10. CONVERGENCE AND ERROR CONTROL
Figure 10.6: The eect of a reentrant corner on the ux: adaptively rened mesh. Matlab script lshape3ad.
10.2 Richardson extrapolation
The second important use of the fact that the error decreases with the mesh size is a procedure to improve
the estimate of the exact answer based on a series of calculated solutions: in other words, mesh-size-based
extrapolation.
Richardson extrapolation is a way of extracting an asymptotic estimate of some quantity of interest from
a series of computed values for it. If we assume that the error in the quantity q may be expanded in a Taylor
series at mesh size h = 0, we may write
E
q
(h) = [q
ex
q
h
[ Ch

, (10.15)
where q
ex
is the unknown true value of the quantity, q
h
is the approximate value for nonzero h, C is an
unknown constant of the leading term h

, with , again, unknown. Provided C, and do not depend on


h for small mesh sizes (this is presumed to hold in the so-called asymptotic range), we might be able to
compute all three q
ex
, C, and if three numerical solutions are obtained for three dierent mesh sizes, q
hi
.
Remarkably, the estimate of the exact solution is available from a single linear equation on the condition
h
1
h
2
=
h
2
h
3
,
holds, as we may then combine
q
ex
q
h
1
q
ex
q
h
2
=
h

1
h

2
and
q
ex
q
h
2
q
ex
q
h
3
=
h

2
h

3
,
to yield
q
ex
=
q
2
h
2
q
h1
q
h3
2q
h
2
q
h
1
q
h
3
. (10.16)
It is then straightforward to solve for the other two quantities. The constant C is of limited value, but the
exponent is the rate of convergence. The computation is implemented in the toolbox SOFEA in the utility
function richextrapol.
10.3 The T4 NAFEMS Benchmark revisited
This problem has been discussed in Section 7.4. Cameron, Casey, and Simpson [CCS] cite the reference value
for the temperature at the point indicated in Figure 7.5 of 18.3

C. However, more recent investigations of


this benchmark indicate that value of 18.25

C should be expected [IL05]. Let us check these numbers.


Two models will be used, the rst using elements T3, and the second using the more accurate quadratic
elements T6. The Matlab script t4nafems conv runs the simulation (the initial and nal adaptive meshes are
10.4. SHRINK FITTING REVISITED 91
Figure 10.7: T4 NAFEMS Benchmark: solution with quadratic elements, initial and nal mesh.
Figure 10.8: T4 NAFEMS Benchmark: convergence in terms of an estimated error for linear and quadratic
triangles
shown in Figure 10.7), with the following results: For the quadratic elements, the Richardson extrapolation
produces an estimate of the exact temperature 18.25396

C and the rate of convergence 2.2945. On the other


hand, the element T3 performs erratically, and no asymptotic estimate is possible. That is clearly visible
in Figure 10.8: it should be possible to pass a straight line through the estimates of the error if the data is
indeed in the asymptotic range, as taking a logarithm of (10.15) yields
log [E
q
(h)[ = log [q
ex
q
h
[ log C + log h ,
which is a straight line on a log-log scale (Figure 10.8). That is out of the question for the element T3.
A word on the meaning of the mesh size in adaptively rened meshes is in order. The mesh size varies
from point-to-point. However, if we take one given adaptively rened mesh M
0
, and produce a series of
meshes from M
0
by scaling the mesh size as a function of x by the same number everywhere in the domain,
we may take as the mesh size the scaling factor (the absolute values do not matter, only the relative changes
h
1
/h
2
= h
2
/h
3
). For instance, mesh M
1
would be produced with mesh size h
1
(x) = h
0
(x), mesh M
2
with
mesh size h
2
(x) = h
1
(x) =
2
h
0
(x), and so on.
10.4 Shrink tting revisited
Figure 10.9 shows the temperature distribution at three time instants. The extremely high gradient at the
beginning is evident, but in fact high temperature gradients exist even at the end of the process.
As you recall, the heat ux is derived from the temperature (equation (5.14)). The nite element
approximation with the triangles (T3) and with the line elements (L2) will be able to reproduce linearly
varying temperatures, hence constant temperature gradients (i.e. heat ux). Therefore, we will conclude
92 CHAPTER 10. CONVERGENCE AND ERROR CONTROL
Figure 10.9: Transient cooling of a shrink-tted assembly; left to right: temperature distribution for time
t = 0, 2, 13
Figure 10.10: Transient cooling of a shrink-tted assembly; left: coarse mesh, right: adaptive mesh. Heat
ux for time t = 2
that where the heat ux changes, the nite element approximation will be in error. To control the error, we
can reduce the element dimensions. Doing so in areas of steep changes in the heat ux, while keeping areas
with approximately uniform heat ux tiled with coarse elements, is known as adaptive mesh control .
Figure 10.10 shows the heat ux on two meshes as arrows centered at the barycenters of the ele-
ments (barycenter here means average of the vertex locations). The rst mesh is quite coarse (script
shrinkfitad1
1
), but it is possible to identify regions in which the gradient changes strongly (next to the
tungsten inset); the adaptive mesh is generated to reect the demand for ner (smaller) elements (script
shrinkfitad2
2
).
The temperature evolution obtained with the two meshes, the coarse one, and the adaptively rened
one, is illustrated in Figure 10.11, and the higher-quality of the adaptive results should be noted: especially
striking is the spurious oscillation of the lowest temperature for the coarse mesh.
1
Folder: SOFEA/examples/diffusion
2
Folder: SOFEA/examples/diffusion
10.4. SHRINK FITTING REVISITED 93
Figure 10.11: Transient cooling of a shrink-tted assembly: time evolution of the lowest and highest tem-
perature in the assembly. Comparing temperatures obtained with a coarse model (dashed lines) and with
an adaptively rened model (solid lines).
94 CHAPTER 10. CONVERGENCE AND ERROR CONTROL
Part III
Stress analysis
95
Chapter 11
Model of elastodynamics
11.1 Balance of linear momentum
From elementary dynamics we can apply Newtons equation of motion for a particle, v = mF, where v is
the particle acceleration, m is the particle mass, and F is the applied force. The complicating circumstance
is that a deformable body can be thought of as a collection (of innitely many) particles, all interacting
through contact. Evidently, our goal is to formulate a continuum model rather than deal with the discrete
collection of particles.
Let us consider a body with some distributed force on parts of the boundary (the reactions must be
included) and distributed force in the volume (for instance, gravity-induced load). For simplicity, we draw a
sketch in two dimensions, but obviously we are thinking of a three-dimensional body; see Figure 11.1. The
distributed force on the boundary is therefore in units force/length
2
, and units of the distributed force in
the volume are force/length
3
. The distributed force on the boundary is customarily called the traction.
The continuous body will be now divided into many very small (innitesimally small) volumes, which
we may consider particles. The interaction between the particles is occurring through contact forces
(tractions) along the cuts between the particles. Assuming we know these forces, the Newtons equation
may be applied to each separately. However, we will apply this equation in the form of the change of linear
momentum
d
dt
(mv) = F ,
from which the previous form of the equation of motion may be obtained provided m does not change. In our
case, this will be true because each small volume holds a certain amount of material and does not exchange
material with any other volume, so of the mass of each volume is conserved.
As a consequence of the above, we may write for each small particle volume j the change of its linear
Figure 11.1: A continuous body with applied distributed force on the boundary, and within the volume (on
the left). The same body cut up into many small volumes (particles), with their interaction represented by
distributed forces along the cuts (on the right).
97
98 CHAPTER 11. MODEL OF ELASTODYNAMICS
Figure 11.2: Isolated particle volume.
momentum
d
dt
(m
j
v
j
) = F
j
(11.1)
where we may write for the mass of the particle m
j
= V
j
, with V
j
the volume of the particle, and the mass
density, x
j
the velocity, all at some point within the volume of the particle (we are using the mean-value
theorem to express integrals over the volume of the particle!). The force F
j
includes the body force b and
the tractions t on the surface of the particle volume
F
j
= bV
j
+
_
S
int
tdS +
_
S
ext
tdS (11.2)
where the surface integral is split into two parts (see Figure 11.2): the interior surfaces S
int
, where two
particle volumes are separated, and the exterior surfaces S
ext
.
Now we will collect the contributions of equation (11.1) by summing over all the particles
N

j=1
d
dt
(m
j
v
j
) =
N

j=1
F
j
(11.3)
which may be rewritten of the limit of innitely many particles as integrals
d
dt
_
m
vdm =
_
V
bdV +
_
S
ext
tdS +

j=1
_
S
int,j
tdS , (11.4)
where the last term (the sum) is over all the shared surfaces that separate the particle volumes. Using
Newtons third law of action and reaction, we may conclude that whenever two particle volumes share a
piece of their boundary, the traction at the material point A on the surface of particle 1 is equal in magnitude
but opposite to the traction at the same material point (the one that has been split by the cut separating
the two particles) at the corresponding point A on the surface of particle 2. Since the sum is over all the
pairs of such surfaces, the last term in the equation (11.5) cancels, and the nal statement of the balance
of linear momentum of the material in the volume V reads
d
dt
_
m
v dm =
_
V
b dV +
_
S
t dS , (11.5)
where m is the total mass of the material inside the volume V , and S is the bounding surface of the volume
V . While the surface S and the volume V change with deformation, and hence are time-dependent, the total
mass of the material m does not change (the same particles that were inside the volume before deformation
are there during the deformation).
11.2. STRESS 99
Figure 11.3: Components of traction.
Figure 11.4: Relating the components of traction to stress.
11.2 Stress
The traction vector t may be written in terms of components in a surface-aligned Cartesian basis as t =
t
n
n+t
1
e
1
+t
2
e
2
, where t
n
is the normal component, and t
k
are the shear components. The Cartesian basis
is dened at the given point on the surface by rst taking the (outer, unit) surface normal as the third basis
vector, and then picking arbitrary orthogonal directions in the tangent plane see Figure 11.3. The normal
component is obtained as
t
n
= n t . (11.6)
The shear part of the traction t
s
is obtained by subtracting the normal part of the traction from the traction
vector t
t
s
= t t
n
n . (11.7)
The task before us now is to relate the traction on the surface to the deformation of the material just below
the surface. The deformation will be measured by strains, and the response of the material to the strains
will be related to to the tractions on the surface (and any body loads, if present) through the mathematical
device of the stress.
First, inspect Figure 11.4: it is possible to dene such a Cartesian coordinate system in the vicinity of a
given point that the coordinate planes will cut out a (curvilinear) tetrahedron from the solid. Our plan is
to make this tetrahedron very small indeed, but still containing the given point on the surface. An enlarged
image of such a tetrahedron is shown on the right, and we see how the curved edges may be approximated
by straight lines in the limit of very small tetrahedron. The goal is to relate the traction at the given point
to the tractions on the internal cut planes, because these tractions are representative of the deformation of
the material in the volume.
In anticipation of the denition of stress, the traction components on the three at cut planes, with
normals pointing against the three Cartesian basis vectors, are called
x
,
y
,
z
(the normal components),
100 CHAPTER 11. MODEL OF ELASTODYNAMICS
Figure 11.5: Components of traction.
and
xy
,
yx
,
xz
,
zx
,
yz
,
zy
, for the shear components on all three planes. The areas of the triangular
faces of the tetrahedron are related as A
x
= n
x
A, and so forth, where n
x
, n
y
, n
z
are the components of the
unit normal, and A
x
is the area perpendicular to the x-axis and so on; this can be deduced from the volume
of the tetrahedron in Figure 11.5.
When we write the conditions of equilibrium in all three directions (the volume forces do not play a role;
why?), the following three equations result
t
x
=
x
n
x
+
xy
n
y
+
xz
n
z
t
y
=
yx
n
x
+
y
n
y
+
yz
n
z
(11.8)
t
z
=
zx
n
x
+
zy
n
y
+
z
n
z
This equation relates the components of the traction on the surface with the components of the traction on
the special surfaces coordinate planes inside the volume. The components of the traction on the internal
surfaces are called normal stresses (
x
,
y
,
z
), and shear stresses (
xy
,
yx
,
xz
,
zx
,
yz
,
zy
). The
form of equation (11.8) suggests the matrix expression
_
_
t
x
t
y
t
z
_
_
=
_
_

x

xy

xz

yx

y

yz

zx

zy

z
_
_
_
_
n
x
n
y
n
z
_
_
, (11.9)
where all matrices hold components in the Cartesian basis. A component-free version would read
t = n ,
where would be dened as a Cartesian tensor, the Cauchy stress tensor. The traction vector and the
normal would then also become tensors. However, in this book the tensor notation is avoided, and with a
few exceptions tensors will not be needed. The two exceptions that may be mentioned here, are coordinate
transformations and the calculation of the principal stresses which are the eigenvalues of the matrix of
the stress components. The principal direction components and the principle stress are solved for from
the two equations
_
_

x

xy

xz

yx

y

yz

zx

zy

z
_
_
_
_
n
x
n
y
n
z
_
_
=
_
_
n
x
n
y
n
z
_
_
, (11.10)
and
det
_
_
_
_

x

xy

xz

yx

y

yz

zx

zy

z
_
_

_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
= 0 . (11.11)
Balance of angular momentum and stress symmetry. It would appear that there are nine compo-
nents of the stress that need to be related to the deformation, but it is straightforward to show that in the
11.3. LOCAL EQUILIBRIUM 101
Figure 11.6: Components of traction.
matrix (11.9) the o-diagonal elements must be equal: Consider a rectangular volume of material (again,
for convenience the drawing in Figure 11.6 is of a two-dimensional nature, but the argument applies to three
dimensions). When the balance of angular momentum is written for the rotation about the axis per-
pendicular to the plane of the paper, the normal stresses and any body forces will turn out to be negligible
compared to to the eect of the shear stresses, and from the resultant equation we obtain the symmetries

xy
=
yx
,
xz
=
zx
,
yz
=
zy
. (11.12)
Consequently, there is only six components of the stress that are independent. It will be convenient to
manipulate these six components as a vector (as opposed to a tensor)
[] = [
x
,
y
,
z
,
xy
,
xz
,
yz
]
T
. (11.13)
Equation (11.8) may be rewritten in terms of the stress vector as
t = T
n
, (11.14)
where the matrix vector-stress vector dot product operator is dened as
T
n
=
_
_
n
x
0 0 n
y
n
z
0
0 n
y
0 n
x
0 n
z
0 0 n
z
0 n
x
n
y
_
_
. (11.15)
Equation (11.14) may be used in a variety of ways: any of the three quantities may be given, which would
then for another quantity being xed produce the third as the result. Most useful are the two possibilities:
t given, produce the stress vector in dependence on the normal; and given, produce the surface tractions
for various normals.
11.3 Local equilibrium
In complete analogy to the model of heat conduction, the global balance equation (11.5) (in this case, balance
of linear momentum, for the heat conduction it was balance of heat energy (5.4)) needs to be converted to
a local form. The local form would express dynamic equilibrium of an innitesimal particle as an equation
that holds at a point.
11.3.1 Change of linear momentum
There are three terms in the global balance (11.5), and to produce the local form well have to convert all
three integrals to volume integrals. The rst one involves the time derivative of the integral
d
dt
_
m
v dm
102 CHAPTER 11. MODEL OF ELASTODYNAMICS
Figure 11.7: Components of traction.
However, that causes no diculties since the mass m inside the volume V does not change with time.
Therefore,
d
dt
_
m
v dm =
_
m
dv
dt
dm . (11.16)
Introducing the mass density (which as mass per unit volume depends on the deformation, and hence
varies with time), we may write dm = dV and
_
m
dv
dt
dm =
_
V
dv
dt
dV . (11.17)
11.3.2 Stress divergence
The divergence theorem may be now applied to the third term in (11.5), that is to the surface integral.
However, introducing the abstract symbol for the divergence of stress generates more questions than answers.
We will get to the form of the divergence theorem that will work for us in this book in a roundabout way.
Consider a small volume (parallelepiped) with faces parallel to coordinate planes of the global Cartesian
basis (Figure 11.7, and refer also to Figure 11.1); for simplicity, the box is drawn as two-dimensional, and it
is drawn twice so that we can display the normal and the shear stresses separately. The center of the box is
at x, y, z, and the stress components may be expanded into a truncated Taylor series. For instance,

x
(x +x, y +y, z +z)
x
(x, y, z) +

x
(x, y, z)
x
x
+

x
(x, y, z)
y
y +

x
(x, y, z)
z
z
where 1 +1, 1 +1, and 1 +1.
As you can see, the box is loaded only by the tractions on its boundary, there are no body loads.
Equilibrium in the x-direction requires integration of the stress
x
over the particle sides of the box,
xy
over
the horizontal sides, and
xz
over the faces parallel to the plane of the paper. For instance, integrating
x
11.3. LOCAL EQUILIBRIUM 103
over the side at = 1 leads to
yz
_
+1
1
_
+1
1

x
(x + x, y +y, z +z) dd
yz
_
+1
1
_
+1
1
_

x
(x, y, z) +

x
(x, y, z)
x
x
+

x
(x, y, z)
y
y +

x
(x, y, z)
z
z
_
dd
The terms with and integrate to zero, and the result is
4yz
_

x
(x, y, z) +

x
(x, y, z)
x
x
_
Next, integrating
x
over the side at = 1 leads to
yz
_
+1
1
_
+1
1

x
(x + x, y +y, z +z) dd
yz
_
+1
1
_
+1
1
_

x
(x, y, z) +

x
(x, y, z)
x
x

x
(x, y, z)
y
y

x
(x, y, z)
z
z
_
dd
The terms with and integrate to zero, and the result is
4yz
_

x
(x, y, z) +

x
(x, y, z)
x
x
_
Adding together gives the total contribution of the stress
x
as
8xyz

x
(x, y, z)
x
= V

x
(x, y, z)
x
,
with the elementary volume V = 8xyz. The same exercise is now repeated for the stress components

xy
and
xz
, giving the total force on the elementary volume in the x-direction
b

x
= V
_

x
(x, y, z)
x
+

xy
(x, y, z)
y
+

xz
(x, y, z)
z
_
, (11.18)
and analogously in the other two directions
b

y
= V
_

yx
(x, y, z)
x
+

y
(x, y, z)
y
+

yz
(x, y, z)
z
_
, (11.19)
and
b

z
= V
_

zx
(x, y, z)
x
+

zy
(x, y, z)
y
+

z
(x, y, z)
z
_
. (11.20)
Now the same argument that was established around equation (11.2) will be pursued: put together the total
force on the body by collecting the contributions from all the elementary volumes. This can be done in two
ways:
1. Add up all the tractions on the bounding faces of the elementary volumes. The tractions on the shared
faces (internal surfaces) will cancel; only the tractions on the exterior surface will be left:
_
S
t dS
104 CHAPTER 11. MODEL OF ELASTODYNAMICS
2. Add up all the resultant forces (11.18-11.20), which in the limit will become a volume integral
_
V
b

dV
where the imaginary force b

has components on the Cartesian basis


[b

] =
_

x
(x, y, z)
x
+

xy
(x, y, z)
y
+

xz
(x, y, z)
z

yx
(x, y, z)
x
+

y
(x, y, z)
y
+

yz
(x, y, z)
z

zx
(x, y, z)
x
+

zy
(x, y, z)
y
+

z
(x, y, z)
z
_

_
(11.21)
and may be recognized as the stress divergence.
These two forces must be equal, and we have the following form of the divergence theorem
_
V
b

dV =
_
S
t dS .
Using the template of the vector-stress vector dot product operator (11.15), we may write the stress
divergence as
b

= B
T
(11.22)
where the stress-divergence operator B
T
is dened as
B
T
=
_
_
/x 0 0 /y /z 0
0 /y 0 /x 0 /z
0 0 /z 0 /x /y
_
_
. (11.23)
This operator (un-transposed) will make its appearance shortly yet again as the symmetric gradient operator
to produce strains out of displacements. Using the denitions of these useful operators, the divergence
theorem may be written in terms of stress as
_
V
B
T
dV =
_
S
T
n
dS . (11.24)
11.3.3 All together now
Putting the three integrals from (11.5) into the volume-integral form leads to a pointwise expression of local
equilibrium (following exactly the same argument as in Section 5.1):
_
V

dv
dt
dV =
_
V
b dV +
_
V
B
T
dV
dv
dt
= b +B
T
. (11.25)
This is a statement of dynamic equilibrium of a point particle: On the left-hand side we have the inertial
force (mass times acceleration), on the right hand side is the body load and the force generated by a stress
gradient across the particle. Analogously to the heat conduction problem, this local balance equation contains
too many variables. The stress plays the role of the heat ux, and it also will be replaced by reference to
measurable variables the strains.
11.4 Strains and displacements
The measurable quantities in this problem are the strains (the relative deformation). The strains are divided
into two groups, based on the eect the strains display when expressed in Cartesian coordinates: the normal
strains (stretches), and the shear strains.
11.4. STRAINS AND DISPLACEMENTS 105
Figure 11.8: Material curves, and tangents to material curves. Left: before deformation, right: after defor-
mation.
The strains are an expression of local variations in the positions of points after deformation. The deforma-
tion (motion) is expressed as displacements. The displacement u is expressed in the Cartesian coordinates
by components, and connects the locations of a given material point (particle) A before deformation and
after deformation
[u(A, t)] =
_
_
x(A, t)
y(A, t)
z(A, t)
_
_

_
_
x(A, 0)
y(A, 0)
z(A, 0)
_
_
.E (11.26)
It will be useful to approach the meaning of strains from the point of view of what happens to tangents to
material curves. A material curve consists of the same material points (particles) during the deformation
of the material. A visual picture may be useful: recall that some specimens have a grid etched upon them
before they are being mechanically tested (deformed). The etching curves that go in one direction may be
thought of as points whose one coordinate changes and the other is being held xed. Figure 11.8 shows a
blob of material with two material curves before and after deformation. Before deformation, the curve that
is horizontal consists of points P such that the coordinates are
[P] =
_
x
y = constant
_
and the curve that is vertical consists of points M such that
[M] =
_
x = constant
y
_
The parameter that varies along the curve through the point P is x. Therefore, the tangent vector to this
curve is

x
[P] =
_
1
0
_
. (11.27)
The parameter that varies along the curve through the point M is y. Therefore, the tangent vector to this
curve is

y
[M] =
_
0
1
_
. (11.28)
The tangent vectors (11.27) and (11.30) are of course just the basis vectors of the Cartesian coordinates.
After deformation, the curve that used to be horizontal consists of points P such that
[P] =
_
x +u
x
(y = constant) +u
y
_
and the curve that is vertical consists of points M such that
[M] =
_
(x = constant) +u
x
y +u
y
_
106 CHAPTER 11. MODEL OF ELASTODYNAMICS
Since these are material curves, they are still parameterized by the same parameters as before deformation.
Consequently, for the originally horizontal curve we have the tangent vector after deformation

x
[P] =
_

_
1 +
u
x
x
u
y
x
_

_
. (11.29)
The parameter that varies along the curve through the point M is y. Therefore, the tangent vector to this
curve is

y
[M] =
_

_
u
x
y
1 +
u
y
y
_

_
. (11.30)
The stretches measure the relative change in length of the tangent vectors at the same point before
and after deformation. For instance, the tangent vector (11.27) is of unit length before deformation, and the
vector (11.29) is of length
_
(1 +
u
x
x
)
2
+ (
u
y
x
)
2
=
_
1 + 2
u
x
x
+ (
u
x
x
)
2
+ (
u
y
x
)
2
.
If we now make the assumption that the derivatives of the displacement components are very small in
magnitude,
[
u
k
j
[ 1, k, j = x, y, z , (11.31)
the length of the tangent vector may be expressed as
_
1 + 2
u
x
x
+ (
u
x
x
)
2
+ (
u
y
x
)
2
1 +
u
x
x
,
and the relative change in length (the stretch in the x direction) is
1 +
u
x
x
1
1
=
x
.
The shears measure the change in angle between originally perpendicular directions of pairs of the
Cartesian axes. Therefore, we could measure the change in the angle between the tangents of two intersecting
material curves before and after deformation. For the two curves in Figure 11.8, the initial angle is /2; the
cosine of the angle after the deformation is

x
[P]
T

y
[M] = (1 +
u
x
x
)
u
x
y
+
u
y
x
(1 +
u
y
y
)
which, again using the assumption (11.31), gives for the change of angle
u
x
y
+
u
y
x
=
xy
.
In this way we dene all six strain components: three stretches, and three shears. In fact, we could have
dened nine strains (components of the strain tensor), which would correspond to the nine components of
the Cauchy stress tensor. However, we will stick to the vector representation in this book.
The six strain components are a mixture of the derivatives of the displacement components, and may be
expressed in an operator equation, using the denition (11.22)
= Bu , (11.32)
where B is now called the symmetric gradient (or strain-displacement) operator.
11.5. CONSTITUTIVE EQUATION 107
11.5 Constitutive equation
The stress may now be replaced in the balance equation (11.25) by reference to the primary variable, the
displacement. However, rst we need to discuss the link between the measurable quantities, the strains,
and the mathematical device in the balance equation, the stress. As for the thermal model, this link is the
constitutive equation.
Since the angular momentum balance (11.12) reduces the number of stress components to six, corre-
spondingly there is six components of strain. Therefore, the energy of deformation may be dened as the
work of each stress component on the corresponding strain component. Let us consider some pre-existing
stressed state in a very small neighborhood of a given point. So that we dont have to specify the volume,
we will refer to energy density (the energy in a certain volume may be obtained by integrating the energy
density over this volume). The state of stress is described by the stress vector . Let us superimpose an
innitesimal strain variation d upon the extant strains. The density of the work of the current stress on
the strain change is expressed as
d
T
. (11.33)
The constitutive equation that will be of interest in this book is the model of linear elasticity. It is
expressed as a linear relationship between the strain and the stress, and since these are vectors, the linear
relationship,constitutive equation, is expressed as a matrix product
= D , (11.34)
where D is a constant 6 6 matrix of the elastic coecients (also known as the elasticities); D may be also
referred to as the material stiness matrix. Clearly, when there is no strain, the stress is zero. Let us
now increase strain from zero to its nal value, , by scaling with a number 0 1
= ,
and furthermore use the linear elasticity (11.34). The expression for the change of the energy of deformation
density (11.35) will become
d
T
= d
T
D = d
T
D . (11.35)
The deformation process starts at = 0 and reaches its nal stage at = 1. In this process, the total energy
density stored in the material is
() =
_
1
0
d
T
D =
1
2

T
D . (11.36)
Mathematically, the expression
1
2

T
D is known as a quadratic form. One interesting the property of the
quadratic form is that the unsymmetrical part of the matrix D does not contribute to the energy:
1
2

T
D =
_
1
2

T
D
_
T
=
1
2

T
D
T

1
2

T
(DD
T
) = 0 .
Because the energy of deformation is a fundamental quantity, from physical principles, and from the point
of view of mathematical modeling, this is a very good reason for postulating a priori the symmetry of the
material stiness, D = D
T
.
At the moment, we will leave the material stiness matrix unspecied, since a detailed discussion follows
in Section 12.5.
11.6 Initial conditions
11.7 Boundary conditions
Similarly to the heat conduction problem, at each point on the bounding surface a boundary condition
is required. The boundary conditions may be in terms of the primary variable, the displacement, or in
terms of the ux variable, the stress. For heat conduction, the boundary condition in terms of ux referred
108 CHAPTER 11. MODEL OF ELASTODYNAMICS
Figure 11.9: Example of boundary conditions: concrete dam with a tunnel.
to the normal ux only, since the ux parallel to the surface is essentially uncontrollable. Similarly, for
elasticity the ux boundary condition will not attempt to prescribe all six components of stress, but rather
the projection of stress, the traction.
A complicating circumstance is that the primary variable and the traction both have three components.
Therefore, the surface of the solid needs to be considered three times as to the appropriate boundary
condition, once for each component.
Selection of the appropriate boundary conditions is critical to successful modeling. Typically, the bound-
ary conditions that are applied to our models are only approximations of the physical reality. Thus, the rst
guidelines for the application of boundary conditions will be based on physical considerations.
11.7.1 Example: concrete dam
For instance, Figure 11.9 shows the cross-section of a dam, and of interest is the stress near point C in the
corner of the tunnel. Therefore, we could decide to neglect the deformation of the soil near the base of the
dam, and prescribe along the surface A zero magnitude for all displacement components. In reality, this
is not strictly true, and a so-called modeling error is being introduced by making this choice. In a careful
analysis, the inuence of this error would be assessed, for instance by varying the boundary condition, or
including the soil in the analysis.
On the surfaces exposed to the water behind the dam, including the one with point A, the structure is
loaded by water pressure, which is a special kind of traction: using an ad hoc Cartesian coordinate system
as indicated in the gure, the traction components are
t
x
= 0, t
y
= p, t
z
= 0
where p is the water pressure at the particular location.
All the other surfaces in the model that show up as curves, are assigned so-called traction-free boundary
condition: there are no known loads applied there. Assuming the model is two-dimensional, of the so-called
plane strain type, the remaining surfaces are parallel to the plane of the paper, and are assigned zero
displacement normal to the paper, and zero shear components of traction in the plane of the paper. This
type of model is discussed later in the textbook.
Let us now discuss the associated variable (so-called work-conjugate variable) traction along the
surfaces where we prescribed displacements, for instance at point A. The physical meaning of such tractions,
which are generated in the soil by the stress in the bulk of the dam near the surface, is clear: they are the
reactions. They are initially unknown, but as soon as the displacements are available from the solution,
the reactions may be calculated.
The work-conjugate variable along the traction-free surfaces is displacement, which is initially unknown,
but which will be produced during the solution process. Similarly, displacement is unknown on the surfaces
exposed to the water behind the dam.
11.7. BOUNDARY CONDITIONS 109
Figure 11.10: Example of boundary conditions: rigid punch.
11.7.2 Example: rigid punch
To model deformation under a sti punch which is vertically pushed against a block of material, we may
apply a set of approximate bilateral boundary conditions. (A further renement would be a unilateral,
contact, condition. But this is out of the range of this book.) Firstly, the punch may be assumed completely
rigid, and perfect contact of the punch with a material underneath may be assumed. Also, perfect sticking
or perfect slip under the punch may be assumed: the former when the surfaces on contact have a very high
coecient of friction, or perhaps theyre bonded, the latter when the surfaces are lubricated. For perfect
stick, we could prescribe the motion of the points on the conduct surface to be entirely driven by the punch:
only vertical displacement, zero horizontal displacement. For perfect slip, the vertical motion is prescribed
to be that of the punch, but a horizontal displacement under the punch is free. Therefore, for perfect slip
we would apply the condition of zero shear traction under the punch.
11.7.3 Formal denition of boundary conditions
At each point of the boundary we dene a Cartesian coordinate system. It could be the surface-aligned
system of Figure 11.3, it could be the global system, or an arbitrarily oriented system. For instance, refer
to Figure 11.11. Both the traction vector and the displacement vector at a given point may be written in
such a coordinate system in terms of the components as
[t] =
_
_
t
x
t
y
t
z
_
_
, [u] =
_
_
u
x
u
y
u
z
_
_
.
For each direction i = x, y, z we separate the surface S into two disjoint parts:
1. S
t,i
where the traction component t
i
is being prescribed;
2. S
u,i
where the displacement component u
i
is being prescribed.
It holds that S = S
t,i

S
u,i
, and it could be that either S
t,i
= or S
u,i
= .
The boundary conditions may now be expressed as
t
i
= (T
n
)
i
= t
i
on S
t,i
for i = x, y, z (11.37)
as the traction (natural) boundary condition, and
u
i
= u
i
on S
u,i
for i = x, y, z (11.38)
as the displacement (essential) boundary condition.
110 CHAPTER 11. MODEL OF ELASTODYNAMICS
Figure 11.11: Local coordinate systems used for boundary condition denitions.
Figure 11.12: Concentrated force as the limit of traction on innitesimally small area.
11.7.4 Inadmissible concentrated boundary conditions
Consider that a resultant force of magnitude F is to be applied along the z-direction, in other words per-
pendicularly to the surface shown in Figure 11.13, as traction t
z
applied to the area xy. As we need to
have
F = t
z
xy ,
if x 0, y 0, it must hold t
z
. However, since from the boundary conditions we have
z
= t
z
,
we must conclude that in the immediate vicinity of the innitesimal patch on the surface, at least some of
the stresses must approach innity as the traction component approaches innity. The problem of a force
applied to an innite half space has been solved analytically by Boussinesq and others [Sok], and perhaps
the most signicant conclusion is that the displacement under the force is innite. Consequently, for any
nite force, the energy in the system is innite. As a consequence, we should remember the following caveats
when using a concentrated force as a boundary condition:
1. Trying to obtain a converged solution for the displacement under the force or for the energy is pointless;
2. Displacements and stresses near the point of application of the force are most likely wrong for any
purpose;
3. Displacements or stresses removed from the point of application of the force may be useful, but we
have to always ask ourselves whether the concentrated force is truly needed or whether we use it only
because we are too lazy to think the problem through.
As a corollary, we must conclude that if we apply a displacement boundary condition at a point, the associated
reaction will be zero in the limit, which is most likely wrong, unless we can guarantee for instance from global
force equilibrium conditions that the reaction should be zero.
Very similar analysis may be performed for a distributed load along a curve: Figure 11.13. To maintain a
nite value of the distributed load (force per unit length) as y 0, the traction t
z
must approach innity.
The same list of caveats applies.
11.7. BOUNDARY CONDITIONS 111
Figure 11.13: Distributed load along a curve as the limit of traction on innitesimally small area.
To summarize, the following should be remembered for concentrated force boundary conditions:
Do not use the concentrated force or force along a curve boundary condition unless it is essential.
Remember the caveats.
Furthermore, this should be remembered for concentrated displacement boundary conditions (support at
a point, or support along a curve):
Do not use the concentrated support boundary condition unless the associated reaction is guaranteed
to be zero.
11.7.5 Symmetry and anti-symmetry
Considerable benets may be often derived when the solution is expected to possess either symmetry, or
anti-symmetry.
For the solution to be display symmetry with respect to reection in a symmetry plane, all the
ingredients that go into the denition of the problem must display the same kind of symmetry: the geometry,
the material, the boundary conditions, the initial conditions.
Let us rst look at the conditions that must hold for the displacements on the plane of symmetry:
Figure 11.14. By inspection, we see that the arrow representing displacement at point P is reected into
an arrow at point P

which is best described in components which are (i) in the plane of symmetry: these
are the same for both arrows; and (ii) perpendicular to the plane of symmetry: these have opposite signs.
Therefore, if P is made to approach the plane of symmetry, its mirror image merges with it when they both
reach the plane of symmetry (point M), and since the two displacements then must be the same, we may
conclude that the perpendicular component of displacement u

at a point on the plane of symmetry must


be zero
u

= 0 . (11.39)
Now for the tractions on the plane of symmetry. By the symmetry conditions, the shear part of the traction
at point M on the surface with normal n must be equal to the shear part of the traction on the surface with
the opposite normal n, i.e.
t
s(n)
= t
s(n)
.
On the other hand, using equation (11.7) we have
t
s(n)
= t
(n)

_
n t
(n)
_
n ,
and substituting from (11.15) with being the stress at the point M (which is the same irrespectively of
the normal)
t
s(n)
= T
n
(n T
n
) n ,
112 CHAPTER 11. MODEL OF ELASTODYNAMICS
Figure 11.14: Symmetric displacement pattern.
Figure 11.15: Anti-symmetric displacement pattern.
t
s(n)
= T
n
(n T
n
) (n) = T
n
+ (n T
n
) n = t
s(n)
.
In order for both requirements to be satised,
t
s(n)
= 0 , (11.40)
must hold.
The state of anti-symmetry with respect to reection in a plane is dened by the conditions that
specify it as the opposite of symmetry. The situation is illustrated in Figure 11.15. The arrow representing
displacement at point P is transformed into an arrow at point P

which in terms of components gives (i)


opposite sign parallel with the plane of anti-symmetry; and (ii) same sign in the direction perpendicular to
the plane of anti-symmetry. Therefore, when P is made to approach the plane of symmetry and its mirror
image merges with it at point M, we conclude that the two components of displacement u
,i
at a point on
the plane of symmetry must be zero
u
,i
= 0 for the two in-plane directions i . (11.41)
For the tractions, an analysis quite similar to that leading to equation (11.40) but applied to the normal
component of the traction leads to the condition
t

= 0 . (11.42)
Therefore, we can summarize the boundary conditions on the plane of symmetry or on the plane of anti-
symmetry with the delightfully simple Table 11.1. The boundary conditions that needs to be explicitly
11.7. BOUNDARY CONDITIONS 113
Quantity Symmetry Anti-symmetry
Tractions | 0 unknown
Displacements | unknown 0
Traction unknown 0
Displacement 0 unknown
Table 11.1: Boundary conditions on the plane of symmetry or anti-symmetry
Figure 11.16: Example of boundary conditions: dog bone specimen under tension.
prescribed in nite element analyses are boxed in the Table 11.1: zero tractions are incorporated automati-
cally (natural boundary conditions!) and need not be explicitly specied. Note that the unknown tractions
are the reactions.
11.7.6 Example: pure-traction problem
Often static problems are posed where initially only a statically equilibriated set of traction and/or body
loads is given. As an example, we consider the dog bone tensile specimen of Figure 11.16 (slice through the
axis of symmetry is shown). Uniform tractions are applied at the opposite cross-sections, equal in magnitude,
but of opposite sign, so that specimen is in static equilibrium: the so-called pure-traction problem. As
such, this set of boundary conditions does not allow for the nite element solution to be computed without
additional devices: the entire specimen may be translated or rotated as a rigid body without any change in
the stress state. Therefore, the stiness matrix would be singular.
The rigid body motion may be described by displacements of the form
_
_
u
x
u
y
u
z
_
_
=
_
_
0
z

y

z
0
x

y

x
0
_
_
_
_
x
y
z
_
_
+
_
_
a
x
a
y
a
z
_
_
, (11.43)
where
x
,
y
,
z
and a
x
, a
y
, a
z
are constants describing rotation (through the skew-symmetric matrix
another way of writing a cross product of two vectors), and translation of the points of a rigid body.
It doesnt take too much eort to verify that strains computed from displacements (11.43) are all identi-
cally zero. Therefore, also the deformation energy induced by the rigid body motion is zero. Using (11.36)
for the energy density, the energy of deformation produced by strains is
() =
_
V
() dV =

e
_
V
e
() dV =

e
1
2
U
T
e
_
V
e
B
eT
DB
e
dV U
e
=

e
1
2
U
T
e
K
e
U
e
=
1
2
U
T
KU . (11.44)
Therefore, since this energy vanishes for a nonzero displacement U ,= 0, the global matrix K must be
singular to produce a positive semi-denite quadratic form
1
2
U
T
KU 0. The stiness matrix falls short of
the full rank by the number of possible rigid body modes: six, when all three rotations and translations are
possible, or less.
To restore the full rank of the stiness matrix, all possible rigid body modes must be prevented by an
additional supports (displacement boundary conditions). Taking advantage of any symmetry conditions is
114 CHAPTER 11. MODEL OF ELASTODYNAMICS
Figure 11.17: Dog bone specimen under tension with two ways of using symmetry.
Figure 11.18: Dog bone specimen supported with point constraints as a rigid body.
a big help. Even though we may not be willing to actually solve the problem on a quarter of the geometry
in Figure 11.16 (producing a separate CAD model for each analysis is often not convenient), just inserting
features such as split lines to which symmetry conditions may be applied will do the trick. For instance,
Figure 11.17 illustrates these two possibilities: on the left, one-quarter model is extracted from the full
geometry, with zero normal displacement on the cut planes; on the right, split lines have been inserted, to
which zero displacement perpendicular to the corresponding symmetry plane will be applied. Note that this
complies with the modeling rule of Section 11.7.4: since the attractions applied at the end cross-sections are
self-balancing, we can prove that all reactions along the symmetry planes must be zero. Therefore, it is okay
to apply an inadmissible support.
Another possibility is to support the specimen by applying six point supports. These would be selected to
(i) prevent any rigid body motion, while (ii) ensuring all reactions at these points supports were identically
zero. This would be achieved by formulating six equilibrium conditions for the specimen as a rigid body,
while at the same time making sure that the distances between the point supports could change freely: while
we want to support the specimen as a rigid body, it is not rigid, it needs to freely deform. An example of
possible system of supports is shown in the Figure 11.18.
11.7.7 Example: shaft under torsion
Shear traction components are often generated by frictional contact between interacting bodies. However,
contact problems are well outside the scope of this textbook, they are nonlinear and involve inequality
constraints. The other situation in which we might wish to dene shear tractions is when we formulate
simplied models in which the eect of the omitted part of a structure is introduced as resultants into the
model, both pressure resultant, and shear resultant.
As an example, we will consider a shaft of circular cross-section, with two through-holes. Of interest is
the local stress concentration around the holes when the shaft is subjected to a known torque. As we do not
wish to model the actual transmission of the torque into the shaft, the geometry of the shaft is reduced to
just the midsection with the holes, and the torque is applied as prescribed shear tractions.
The way in which we distribute the shear tractions is only an approximation of the stress distribution that
would exist in the complete part. A guiding principle, based on experimental observations accompanied by
analysis of a few specic cases, the so-called Saint-Venants principle [TimH, Barber], may be invoked:
If a set of self-equilibriated tractions is applied on a limited subset of the boundary, its eect will essentially
11.8. COMPARING THE THERMAL AND DEFORMATION MODELS 115
Figure 11.19: Example of boundary conditions: shaft loaded by torque.
Figure 11.20: Illustration of Saint-Venants principle
not be felt beyond a certain range. By necessity, this principle is somewhat vague, and its applicability
needs to be assessed case-by-case. Figure 11.20 illustrates the meaning: consider a beam of solid section, to
which a traction t of nonzero resultant is applied. If the traction is perturbed by a self-equilibriated load

t, the stresses will change signicantly only in a region extending in all directions approximately by the
characteristic dimension of the beam d.
Coming back to the shaft: we simply apply the resultant torque by any convenient distribution of shear
tractions. Again, this is a pure-traction problem, so essential boundary conditions to prevent rigid body
motion should be added to make the solution unique. In this case, for instance a plane of anti-symmetry
exists, or point supports could be added at convenient locations (for instance on the axis of the shaft).
11.7.8 Example: overspecied boundary conditions
At each point of the boundary, for each component either displacement or traction must be known. In some
special circumstances, it might be of interest to prescribe both tractions and displacements, for one or more
components, and to compute the values of the boundary conditions elsewhere. Consider for instance the
thin plate of Figure 11.21. The deection could be measured at the top surface, and the observation that
it is traction free could be made. The question then is, could an elasticity problem be solved to determine
the unknown tractions on the surfaces with points A, B, C? The answer is yes, however the existence of a
solution is not guaranteed at all. In particular, the assumptions on the surface containing point D must be
such that the displacements and the tractions along the surface are consistent. In this book we shall not
attempt to solve problems of this nature, as special formulations are required.
11.8 Comparing the Thermal and Deformation models
d
dt
_
m
v dm =
_
V
b dV +
_
S
n dS . (11.45)
116 CHAPTER 11. MODEL OF ELASTODYNAMICS
Figure 11.21: Example of boundary conditions: plate with unknown boundary conditions.
d
dt
_
V
u dV =
_
V
Q dV
_
S
q n dS . (11.46)
Chapter 12
Galerkin formulation for
elastodynamics
12.1 Manipulation of the residuals
Rearranging the balance equation (11.25) into the residual form leads to
r
B
=
dv
dt
b B
T
(12.1)
which is a statement of imbalance when the force residual is nonzero. This is in complete analogy to the
model of taut wire, or the model of heat conduction. The plan of action is the same:
1. Formulate weighted residual equations for the balance, force boundary condition, and displacement
boundary condition.
2. Satisfy the displacement condition by design, which will place a condition on the form of the trial
functions.
3. Shift a derivative from the stress to the test function, which will incorporate the natural boundary
conditions in the balance residual equation (and eliminate the force boundary condition residual), and
which will place a condition on the form of the test functions.
12.1.1 The rst two steps
We begin with step 1: The natural boundary condition (11.37) leads to the residual
r
t,i
= (T
n
)
i
t
i
on S
t,i
for i = x, y, z (12.2)
which will be incorporated into the balance residual equation, and the displacement boundary condi-
tion (11.38)
r
u,i
= u
i
u
i
on S
u,i
for i = x, y, z (12.3)
which will be satised by the choice of the trial functions (which takes care of the step 2).
The weighted residual equations are simply integrals of the residuals over the corresponding surface. Since
the displacement boundary condition residual is identically zero, it may be ignored. The traction boundary
condition residual equation reads
_
S
t,i
r
t,i

i
dS = 0 ,
or, expanded,
_
St,i
r
t,i

i
dS =
_
St,i
_
(T
n
)
i
t
i

i
dS = 0
_
St,i
(T
n
)
i
dS =
_
St,i
t
i
dS (12.4)
117
118 CHAPTER 12. GALERKIN FORMULATION FOR ELASTODYNAMICS
The balance weighted residual equation reads
_
V
r
B
dV =
_
V
r
B
dV = 0 , (12.5)
where is a vector test function (with three components). At this point, we only require that the test
function be sucient to smooth for the integral to exist. The dot product of the residual and the vector
test function is written in the dot form; when the weighted residual equation is written in terms of the
components, transposes must be used as
_
V
[r
B
]
T
[] dV =
_
V
[]
T
[r
B
] dV = 0 .
12.1.2 Step 3: Preliminaries
While the rst two terms on the right hand side of (12.1) present no diculties, the stress term needs to be
treated similarly to the previous two models to move one dierentiation from the stress to the test function.
Therefore, in the next few paragraphs we focus on the term
_
V
B
T
dV
which will be sought as part of the chain rule formula (analogously to equation (6.4) for the heat conduction).
The product of and may be expressed using the vector-stress vector dot product operator (11.15) in
the form T

. Therefore, we need an identity for the chain rule applied to the divergence div
_
T

_
:
div
_
T

_
= (B) + B
T
. (12.6)
It may not be immediately clear why the right hand side has this form, but to verify this formula is straight-
forward, albeit tedious. Expressing the last piece of (12.6) in terms of the other two, we obtain
_
V
B
T
dV =
_
V
div
_
T

_
dV
_
V
(B) dV
The divergence theorem (5.10) may be applied to the rst term on the right to yield
_
V
B
T
dV =
_
S
_
T

_
n dS
_
V
(B) dV .
The traction boundary condition (11.37) references T
n
. To extricate this form from
_
T

_
n we notice
that the result is a scalar (number), indicating a double dot product: the stress vector with two vectors.
Indeed, it is easily veried by multiplying through that
_
T

_
n = (T
n
) ,
with the result
_
V
B
T
dV =
_
S
(T
n
) dS
_
V
(B) dV .
We are ready to write the balance residual equation (12.5) now as
_
V

dv
dt
dV
_
V
b dV

_
S
(T
n
) dS +
_
V
(B) dV = 0 (12.7)
12.2. METHOD OF WEIGHTED RESIDUALS AS THE PRINCIPLE OF VIRTUAL WORK 119
12.1.3 Step 3: The glorious conclusion
Closely paralleling Section (6.6), the surface will now be split, for each component, into the part where
traction is known, and the part where displacement is being prescribed
_
S
(T
n
) dS =

i=x,y,z
_
S
t,i
()
i
(T
n
)
i
dS +
_
S
u,i
()
i
(T
n
)
i
dS ,
where ()
i
is the i
th
component of the test function. On the S
t,i
subset the traction component i is known
from (11.37), but on the S
u,i
subset of the bounding surface the traction, the component i of the traction
is not known, it represents the reaction. The same trick as for the other PDE models may be resorted to,
namely to put in place a requirement
()
i
= 0 on S
u,i
.
Therefore, with the constraint on the trial function to satisfy the essential boundary conditions, and a
constraint on the test function to vanish on S
u,i
, we have the weighted balance residual equation
_
V

dv
dt
dV
_
V
b dV

i=x,y,z
_
St,i
()
i
(T
n
)
i
dS +
_
V
(B) dV = 0 (12.8)
and using the natural boundary condition (12.4) (and subsuming this condition in the balance residual
equation), we obtain the nal form of the weighted residual equation
_
V

dv
dt
dV
_
V
b dV

i=x,y,z
_
S
t,i
()
i
t
i
dS +
_
V
(B) dV = 0 (12.9)
u
i
= u
i
and ()
i
= 0 on S
u,i
for i = x, y, z
So far we have been using the velocity and the stress vector for convenience and brevity, but to produce
a displacement-based computational model these will have to be replaced by references to the displacement
eld. Using
v =
du
dt

dv
dt
=
d
2
v
dt
2
= u ,
and the constitutive equation (11.34) and the displacement-strain relation (11.32), the form that goes into
the discretization process reads
_
V
u dV
_
V
b dV

i=x,y,z
_
S
t,i
()
i
t
i
dS +
_
V
(B) DBu dV = 0 (12.10)
u
i
= u
i
and ()
i
= 0 on S
u,i
for i = x, y, z
12.2 Method of weighted residuals as the Principle of Virtual
Work
An alternative route to equation (12.9) is via the principle of virtual work. The validity of (12.5) is postulated
as a principle: the principle of virtual work. The test function is interpreted as virtual displacement.
The constraint on the test function is postulated a priori: virtual displacement is kinematically admissible.
The various terms in (12.9) are interpreted as the virtual work of the inertial forces, applied body load, applied
tractions, and internal forces.
This approach tends to seem completely arbitrary, since a number of concepts are postulated to be taken
on faith. In this book we therefore avoid this viewpoint. Nevertheless, it may be useful to be aware of these
possible interpretations of the various terms as virtual quantities (especially work).
120 CHAPTER 12. GALERKIN FORMULATION FOR ELASTODYNAMICS
Figure 12.1: A single element, with free degrees of freedom.
12.3 Discretizing
The primary variable, the displacement, is a vector quantity
u = u
x
e
x
+u
y
e
y
+u
z
e
z
,
where u
x
, ... are the components, and e
x
, ... are the basis vectors. All computer manipulations are performed
in terms of components, the basis vectors are necessary only when a transition needs to be made from one
basis to another. For simplicity, in this work and in the toolbox SOFEA, the basis in which the displacement
eld is expressed is the global Cartesian basis.
12.3.1 The trial function
Therefore, the trial displacement vector function will be expressed in terms of the components in the global
Cartesian basis (the basis is implied) as (compare with Sections 2.7 and 6.5)
[u(x, t)] =
_
_
u
x
(x, t)
u
y
(x, t)
u
z
(x, t)
_
_
=
N

i=1
N
i
(x)[u
i
(t)] =
N

i=1
N
i
(x)
_
_
u
ix
(t)
u
iy
(t)
u
iz
(t)
_
_
. (12.11)
Here N
i
(x) is a nite element basis function (at this point we assume it is dened on a three-dimensional
mesh), and u
ix
(t), ... are nodal degrees of freedom (displacements at nodes) as functions of time. As in
Section 6.5), it will be useful to separate the free degrees of freedom from the prescribed displacements.
However, this expression will be complicated by the fact that now we have three components, each of
which has dierent sets of the free degrees of freedom and the prescribed ones. As an illustration consider
Figure 12.1: for the x component, the free degrees of freedom are u
2x
, the prescribed (at zero value) are
u
1x
, u
3x
; for the y component, the free degrees of freedom are u
3y
, the prescribed (at zero value) are u
1y
, u
2y
.
One possibility is to write
_
_
u
x
(x, t)
u
y
(x, t)
u
z
(x, t)
_
_
=
_

free i
N
i
(x)u
ix
(t) +

prescribed i
N
i
(x)u
ix
(t)

free i
N
i
(x)u
iy
(t) +

prescribed i
N
i
(x)u
iy
(t)

free i
N
i
(x)u
iz
(t) +

prescribed i
N
i
(x)u
iz
(t)
_

_
, (12.12)
but a more convenient approach is the following trick:
_
_
u
x
(x, t)
u
y
(x, t)
u
z
(x, t)
_
_
=

all i
N
i
(x)
_
_
_
_
_
u
ix
(t)
u
iy
(t)
u
iz
(t)
_
_
+
_
_
u
ix
(t)
u
iy
(t)
u
iz
(t)
_
_
_
_
_
, (12.13)
where we dene
u
ix
(t) = 0 if the x degree of freedom at node i is prescribed;
u
iy
(t) = 0 if the y degree of freedom at node i is prescribed;
u
iz
(t) = 0 if the z degree of freedom at node i is prescribed,
12.3. DISCRETIZING 121
and
u
ix
(t) = 0 if the x degree of freedom at node i is free;
u
iy
(t) = 0 if the y degree of freedom at node i is free;
u
iz
(t) = 0 if the z degree of freedom at node i is free.
Thus, for the example of Figure 12.1 we have the following
_
u
1x
(t)
u
1y
(t)
_
=
_
0
0
_
,
_
u
1x
(t)
u
1y
(t)
_
=
_
as given
as given
_
,
for node 1,
_
u
2x
(t)
u
2y
(t)
_
=
_
u
2x
(t)
0
_
,
_
u
2x
(t)
u
2y
(t)
_
=
_
0
as given
_
,
for node 2, and nally,
_
u
3x
(t)
u
3y
(t)
_
=
_
0
u
3y
(t)
_
,
_
u
3x
(t)
u
3y
(t)
_
=
_
as given
0
_
,
for node 3. In the toolbox code, the free degrees of freedom may be distinguished from the prescribed ones
using the attributes of the field class. The free degrees of freedom get nonzero equation numbers (attribute
eqnums), and the magnitudes are stored in the attribute values; the prescribed degrees of freedom are
marked with the attribute is prescribed and the value to which these degrees of freedom are being set is
the prescribed value. The gather() method of the field class may be used to retrieve all these attributes.
12.3.2 The test function
Using the trick described below equation (12.13), we will write the test function as
_
_

x
(x)

y
(x)

z
(x)
_
_
=

all i
N
i
(x)
_
_

ix

iy

iz
_
_
, (12.14)
where we dene

ix
= 0 if the x degree of freedom at node i is prescribed;

iy
= 0 if the y degree of freedom at node i is prescribed;

iz
= 0 if the z degree of freedom at node i is prescribed.
Note that
ix
,
iy
,
iz
are arbitrary numbers (except when they are forced to be zero as shown above). We
will also use a more succinct version
_
_

x
(x)

y
(x)

z
(x)
_
_
= [(x)] =

all i
N
i
(x)
_

i

, (12.15)
where [
i
] stands for a column matrix holding the components [
i
]
k
of the vector of the degrees of freedom
at node i.
12.3.3 Producing the requisite equations
It may be easily veried that the denition of the test function gives us just enough equations to solve for
all the free degrees of freedom. Use (12.14) in equation (12.10) to obtain
_
V
[]
T
[ u] dV
_
V
[]
T
[b] dV

i=x,y,z
_
S
t,i
()
i
t
i
dS
+
_
V
(B[])
T
DB[u] dV = 0 (12.16)
u
i
= u
i
and ()
i
= 0 on S
u,i
for i = x, y, z
122 CHAPTER 12. GALERKIN FORMULATION FOR ELASTODYNAMICS
The key is to obtain []
T
in all the terms. The trickiest seems to be B[]. Substituting (12.14), we get
B[] = B

all j
N
j
(x)
_
_

jx

jy

jz
_
_
,
but since the
jx
,
jy
,
jz
s are just numbers, the symmetric gradient operator works with the basis functions,
as if we simply multiplied the matrix of the operator with a scalar
B[] =

all j
B (N
j
(x))
_
_

jx

jy

jz
_
_
.
We are ready to proceed: the test function is substituted as

all j
[
j
]
T
_
V
N
k
(x)[ u] dV

all j
[
j
]
T
_
V
N
j
(x)[b] dV

i=x,y,z

all j
([
j
])
i
_
S
t,i
N
j
(x)t
i
dS
+

all j
[
j
]
T
_
V
B
T
(N
j
(x)) DB[u] dV = 0 (12.17)
u
i
= u
i
and ()
i
= 0 on S
u,i
for i = x, y, z
The components are independent, hence (12.17) should hold for each component separately

all j
[
j
]
i
_
V
N
j
(x)[ u]
i
dV

all j
[
j
]
i
_
V
N
j
(x)[b]
i
dV

all j
[
j
]
i
_
St,i
N
j
(x)t
i
dS +

all j
[
j
]
i
_
V
_
B
T
(N
j
(x)) DB[u]

i
dV = 0 (12.18)
u
i
= u
i
and ()
i
= 0 on S
u,i
for i = x, y, z
Collecting all the sums yields nally

all j
[
j
]
i
_
_
_
_
V
N
j
(x)[ u]
i
dV
_
V
N
j
(x)[b]
i
dV

_
S
t,i
N
j
(x)t
i
dS +
_
V
_
B
T
(N
j
(x)) DB[u]

i
dV
_
_
_
= 0 (12.19)
u
i
= u
i
and ()
i
= 0 on S
u,i
for i = x, y, z
We are ready for the punchline: some of the [
j
]
i
components are zero. These components do not eld
any equations, they are simply ignored. The components [
j
]
i
that are not zero are completely arbitrary.
Therefore, the interiors of the braces have to vanish identically, yielding one equation for each free degree of
freedom.
_
V
N
j
(x)[ u]
i
dV
_
V
N
j
(x)[b]
i
dV

_
St,i
N
j
(x)t
i
dS +
_
V
_
B
T
(N
j
(x)) DB[u]

i
dV = 0 (12.20)
where u
i
= u
i
; for all j, and i = x, y, z, such that [
j
]
i
,= 0 .
Note that [
j
]
i
= 0 whenever node j is on the boundary S
u,i
. The meaning of these equations is dynamic
force equilibrium.
12.4. THE DISCRETE EQUATIONS: SYSTEM OF ODES 123
12.4 The discrete equations: system of ODEs
Finally, we substitute the trial function from (12.13). We will use the more streamlined version
_
_
u
x
(x, t)
u
y
(x, t)
u
z
(x, t)
_
_
= [u(x, t)] =

all k
N
k
(x)
__
u
k
(t)

+
_
u
k
(t)
_
, (12.21)
where [u
k
] stands for a column matrix holding the components [u
k
]
m
of the vector of the free degrees of
freedom at node k; analogously for the prescribed degrees of freedom. To satisfy the essential boundary
conditions by interpolation, we set for the prescribed m
th
component at node k
[u
k
(t)]
m
= [u(x
k
, t)]
m
where x
k
is the location of node k.
The trial function is substituted into (12.20). To keep things orderly and clear, we will substitute term
by term.
12.4.1 Inertial term: Mass matrix
Starting with the rst:
_
V
N
j
(x)[ u]
i
dV =
_
V
N
j
(x)

all k
N
k
(x)
__
u
k
(t)

i
+
_
u
k
(t)

i
_
dV =

all k
_
V
N
j
(x)N
k
(x) dV
__
u
k
(t)

i
+
_
u
k
(t)

i
_
=

all k
_
V
N
j
(x)N
k
(x) dV
_
u
k
(t)

i
+

all k
_
V
N
j
(x)N
k
(x) dV
_
u
k
(t)

i
(12.22)
Two terms emerge: rstly, the inertial force
F
a,(j,i)
=

all k
M
(j,i)(k,m)
_
u
k
(t)

m
, (12.23)
produced by the free accelerations which are coupled together by the consistent mass matrix
M
(j,i)(k,m)
=
__
V
N
j
(x)N
k
(x)[ 1
33
] dV
_
im
, (12.24)
where (j, i) means equation number corresponding to component i at node j (which is a free degree of
freedom).
Secondly, there is the inertial load produced by the acceleration of the supported nodes
F
a,(j,i)
=

all k
M
(j,i)(k,m)
_
u
k
(t)

m
, (12.25)
where the matrix elements M
(j,i)(k,m)
are calculated exactly as those of (12.24), but (k, m) corresponds to
component m at node k, which is prescribed.
12.4.2 Body loads and traction loads
The next two terms represent external loads. The body load vector component (j, i) corresponding to free
component i at node j is
F
b,(j,i)
=
_
V
N
j
(x)[b]
i
dV . (12.26)
124 CHAPTER 12. GALERKIN FORMULATION FOR ELASTODYNAMICS
The surface traction load vector component (j, i) corresponding to free component i at node j is
F
t,(j,i)
=
_
St,i
N
j
(x)t
i
dS . (12.27)
12.4.3 Resisting forces: Stiness matrix
Finally, the trial function (12.21) is substituted into the last term of (12.20).
_
V
_
B
T
(N
j
(x)) DB[u]

i
dV =
_
V
_
B
T
(N
j
(x)) DB

all k
N
k
(x)
__
u
k
(t)

+
_
u
k
(t)
_
_
i
dV =

all k
_
V
_
_
B
T
(N
j
(x)) DB(N
k
(x))
__
u
k
(t)

+
_
u
k
(t)
_
_
_
i
dV =

all k

m
_
_
_
V
B
T
(N
j
(x)) DB (N
k
(x)) dV
_
_
im
__
u
k
(t)

m
+
_
u
k
(t)

m
_
(12.28)
Two contributions result: the rst is the resisting force produced by the deformed material.
F
r,(j,i)
=

all k
K
(j,i)(k,m)
_
u
k
(t)

m
. (12.29)
The matrix generating the resisting force is the stiness matrix
K
(j,i)(k,m)
=
__
V
B
T
(N
j
(x)) DB(N
k
(x)) dV
_
im
. (12.30)
where (j, i) [(k, m)] means equation number corresponding to component i at node j (component m at node
k); both are free degrees of freedom.
The second is the nonzero-displacement load produced by the deformation induced by prescribed
essential boundary conditions. (Remark: In structural analysis, this kind of load is frequently associated
with the loading condition called the support settlement.)
F
r,(j,i)
=

all k
K
(j,i)(k,m)
_
u
k
(t)

m
. (12.31)
The elements K
(j,i)(k,m)
are computed exactly as in (12.30), but (k, m) corresponds to component m at node
k, which is prescribed.
12.4.4 Summary of the elastodynamics ODEs
Summing the forces (12.23), (12.25), (12.26), (12.27), (12.29), and (12.31) yields a system of second-order
ordinary dierential equations for the free displacements
_
u
k
(t)

m

all k
M
(j,i)(k,m)
_
u
k
(t)

m
+

all k
K
(j,i)(k,m)
_
u
k
(t)

m
=

all k
M
(j,i)(k,i)
_
u
k
(t)

i

all k
K
(j,i)(k,m)
_
u
k
(t)

m
+F
b,(j,i)
+F
t,(j,i)
. (12.32)
In the convenient matrix notation, we could write
M

U +KU = L , (12.33)
12.5. CONSTITUTIVE EQUATIONS OF LINEARLY ELASTIC MATERIALS 125
where U collects all the free degrees of freedom. These equations could be directly integrated using a Matlab
integrator as indicated in Section 3.4, or even more suitably with a specialized mechanical integrator such as
the Newmark average-acceleration integrator. Other approaches, such as integration of the harmonic modal
equations are often used.
12.5 Constitutive equations of linearly elastic materials
The strain displacement operator(symmetric gradient operator) (11.32) links displacements in terms of their
components in the global Cartesian basis to strains. The strains could be expressed in the same Cartesian
basis, but need not be. In fact, it will be most useful not to express the strains in the same global Cartesian
coordinate system. The motivating factor is the constitutive equation: For some materials it will be important
to keep track of the local orientation of the material volume. For instance, ber reinforced materials will
have very dierent stiness properties along the bers as opposed to perpendicularly to the bers.
The components of the material stiness matrix (or the material compliance matrix) are to be understood
as being expressed in the local coordinate systeme
x
, e
y
, e
z
attached to the material point in the form of (6.50)
(except that the transformation matrix has three columns).
General anisotropic material. Because of the symmetry of the material stiness, for the most general
elastic material the number of elastic coecients is only 21 out of the total of 36 elements of the material
stiness matrix: the general anisotropic material. Still, to identify all of these constants represents a
major experimental eort, and few engineering materials are characterized as fully anisotropic.
12.5.1 Orthotropic material.
If a material has only three planes of symmetry, it is known as an orthotropic material. For instance
wood is often characterized as such type of material, and ber-reinforced composites are in more sophisticated
analyses also treated as orthotropic. The compliance matrix
C = D
1
,
has a pleasingly simple appearance
C =
_

_
E
1
1
,

12
E
1
,

13
E
1
, 0 , 0 , 0

12
E
1
, E
2
1
,

23
E
2
, 0 , 0 , 0

13
E
1
,

23
E
2
, E
3
1
, 0 , 0 , 0
0 , 0 , 0 , G
12
1
, 0 , 0
0 , 0 , 0 , 0 , G
13
1
, 0
0 , 0 , 0 , 0 , 0 , G
23
1
_

_
.
All nine coecients are independent, and needs to be provided as input [?]. The material stiness matrix is
a bit of a mess. The nonzero elements are
D
11
=
C
22
C
33
C
23
C
23
C
, D
12
=
C
13
C
23
C
12
C
33
C
, D
13
=
C
12
C
23
C
13
C
22
C
,
D
22
=
C
33
C
11
C
13
C
13
C
, D
23
=
C
12
C
13
C
23
C
11
C
, D
33
=
C
11
C
22
C
12
C
12
C
,
D
44
= G
12
, D
55
= G
13
, D
66
= G
23
.
Here C = C
11
C
22
C
33
C
11
C
23
C
23
C
22
C
13
C
13
C
33
C
12
C
12
+ 2C
12
C
23
C
13
.
126 CHAPTER 12. GALERKIN FORMULATION FOR ELASTODYNAMICS
Figure 12.2: Transversely isotropic model is appropriate for layered or ber-reinforced materials
12.5.2 Transversely isotropic material.
If a material has an innite number of planes of symmetry passing through an axis (in this case, local
x-axis), and one plane of symmetry perpendicular to this axis, it is known as an transversely isotropic
material. Unidirectionally reinforced composites are of this type, as are for instance muscles. The direction
of the bers is special (oriented along the local x-axis), but the material behaves isotropically in the planes
perpendicular to the bers. Layered materials are also modeled as transversely isotropic: here the direction
perpendicular to the layers is special. Figure 12.2 oers an illustration of these two types.
The compliance matrix is obtained from the orthotropic compliance by setting E
2
= E
3
,
12
=
13
,
G
12
= G
13
, and importantly
G
23
=
E
2
2(1 +
23
)
,
requiring ve independent constants, E
1
, E
2
,
12
, G
12
, and
23
.
12.5.3 Isotropic material.
If a material has an innite number of planes of symmetry of all possible orientations, it is known as an
isotropic material. The compliance matrix of isotropic material is based on two material properties, for
instance the Youngs modulus E and Poissons ratio
C =
_

_
E
1
,

E
,

E
, 0 , 0 , 0

E
, E
1
,

E
, 0 , 0 , 0

E
,

E
, E
1
, 0 , 0 , 0
0 , 0 , 0 , G
1
, 0 , 0
0 , 0 , 0 , 0 , G
1
, 0
0 , 0 , 0 , 0 , 0 , G
1
_

_
.
The shear modulus G is not independent, but is expressed as G = E/2/(1 + ). The material stiness is
then
D =
_

_
+ 2G 0 0 0
+ 2G 0 0 0
+ 2G 0 0 0
0 0 0 G 0 0
0 0 0 0 G 0
0 0 0 0 0 G
_

_
,
where we introduce the Lame constant = E/(1 +)/(1 2) for convenience.
12.6 Imposed (thermal) strains
Often the material from which a structure is built up reacts to the environment by deformation. The
material around it experiences the environment in possibly dierent ways or dierent measures, and stresses
12.6. IMPOSED (THERMAL) STRAINS 127
are produced. To simplify matters, think about a very small piece of material that is exposed to the
environment so that we can assume that the resultant relative deformation is homogeneous and no stress is
produced. To x ideas, let us consider one particular environmental eect: thermal expansion. However,
similar eects may be produced by shrinkage, swelling, piezoelectric eects, and so on.
When the small sample of material is at a reference temperature it is unstressed, and we dene its
displacements and the associated strains to be zero in this state: the reference state. Then the temperature
is increased by T, and the material responds by displacement, and because by assumption the deformation
is homogeneous, the entire sample experiences uniform strains. Based on experimental evidence, the following
model is adopted for orthotropic materials to describe the strains in coordinates aligned with the material
directions
[

] =
_

xy

xz

yz
_

_
= T
_

z
0
0
0
_

_
. (12.34)
Evidently, the thermal expansion is assumed not to cause any shear strains. The factors
x
,
y
,
z
are the
so-called coecients of thermal expansion; dierent in dierent directions, in general.
Let us now consider a more general eect of environmentally-imposed strains on the small sample. In
addition to the imposed strain

, the sample is also exposed to stresses on its boundary, again such that
they result in a uniform strain. The total strains that the sample experiences consist of the imposed strains
to which the mechanical strains are added. Since the mechanical strains are available from the stresses
through the constitutive equation, we write
=
total
=

+C . (12.35)
Therefore, we have a modication of the constitutive equation
= D(

) . (12.36)
The total strain is related to the displacement via the strain-displacement relation (11.32), and thus we may
write
= D(Bu

) .
This is sometimes written as
= DBu +

,
where we introduce the so-called thermal stress

, but purely as a convenience; the primary quantity is


the measurable thermal strain.
As expected, the residual equation form that enters the discretization process needs to be augmented
with respect to (12.10) to become
_
V
u dV
_
V
b dV

i=x,y,z
_
S
t,i
()
i
t
i
dS (12.37)
+
_
V
(B) D(Bu

) dV = 0 (12.38)
u
i
= u
i
and ()
i
= 0 on S
u,i
for i = x, y, z
Clearly, there will be one more term to discretize

_
V
(B) D

dV , (12.39)
yielding the thermal strain load
F
,(j,i)
=
__
V
B
T
(N
j
(x)) D

dV
_
i
. (12.40)
128 CHAPTER 12. GALERKIN FORMULATION FOR ELASTODYNAMICS
Figure 12.3: Assembly of the element stiness matrix
Therefore, with the inclusion of the thermal strains, the system of ordinary dierential equations (12.32)
that describe the discrete problem becomes

all k
M
(j,i)(k,m)
_
u
k
(t)

m
+

all k
K
(j,i)(k,m)
_
u
k
(t)

m
=

all k
M
(j,i)(k,i)
_
u
k
(t)

i

all k
K
(j,i)(k,m)
_
u
k
(t)

m
+F
b,(j,i)
+F
t,(j,i)
+F
,(j,i)
. (12.41)
12.7 Strain-displacement matrix
The elements of the stiness matrix (12.30) are evaluated using numerical quadrature element-by-element
(explained in detail in Section 6.8 for the conductivity matrix). This operation produces element-level
stiness matrices that couple together the nite element nodes of each element. To simplify the notation,
we will tentatively dene the strain-displacement matrix (one further renement follows)
B
e
k
= B(N
k
(x)) for x element e , (12.42)
where k indicates the node number, and e identies the element (it bears emphasis that the strain-displacement
matrix of node k is dierent in each element that shares this node).
Consider now a structure that consists of a single element, say a tetrahedron with four nodes, A, B, C
and D (Figure 12.3). Let us also assume that all the degrees of freedom are free (hypothetically: if they
really were, the stiness matrix would be singular). The stiness matrix of such a structure (i. e. of this
single element) has 12 rows and columns.
K
(j,i)(k,m)
=
__
V
e
B
e
j
T
DB
e
k
dV
_
im
, j, i = A, B, C, D . (12.43)
For j, k xed, say j = B and k = D, the matrix
_
V
e
B
e
B
T
DB
e
D
dV , (12.44)
is a 3 3 submatrix of the element stiness matrix: compare with the illustration in Figure 12.3 (the o-
diagonal block). Similarly, for j = B and k = B we would obtain the diagonal block. Therefore, the whole
element stiness matrix may be computed in one shot as
K
e
=
_
V
e
B
eT
DB
e
dV , (12.45)
using the blocked matrix (the elementwise strain-displacement matrix)
B
e
= [B
e
A
, B
e
B
, B
e
C
, B
e
D
] . (12.46)
12.7. STRAIN-DISPLACEMENT MATRIX 129
Correspondingly, the displacements at the notes will be ordered into a column vector of displacement com-
ponents in the global Cartesian basis (with the Matlab syntax: semicolon means new line)
U
e
= [[u
A
]; [u
B
]; [u
C
]; [u
D
]] . (12.47)
12.7.1 Transformation of basis
It remains to discuss the issue of the choice of coordinate systems when evaluating the stiness matrix inte-
grals. As discussed in Section 12.5, the components of the material stiness matrix are expressed on the local
Cartesian basis of material orientation directions. Referring to the denition of the stiness matrix (12.30),
we see that there is a need to mediate between the local material directions and the global Cartesian ba-
sis. Drawing on the example of the element stiness matrix (12.45), the elements restoring force may be
expressed as
F
e
= K
e
U
e
=
_
V
e
B
eT
DB
e
dV U
e
, (12.48)
While the displacement components in U
e
and the force components in F
e
are in the global Cartesian
basis, the material stiness matrix is expressed on the basis of the local material directions. Evidently,
the linear algebra operations between the material matrix and displacements/forces must incorporate the
transformation from one basis to another.
There are several ways in which this transformation could be carried out. In the SOFEA toolbox the
following approach is used: the strain-displacement matrix is dened to produce strains in the local material
basis, while taking displacement components in the global basis. This can be accomplished writing
[]
(x)
= B
x
[u]
(x)
= B
(x)
_
[T][u]
(x)
_
=
_
B
(x)
[T]
_
[u]
(x)
= B
(x,x)
[u]
(x)
(12.49)
where we use the superscript (x) or (x) to indicate in which coordinate system the components are ex-
pressed. The strain-displacement operator B
(x,x)
= B
(x)
[T] incorporates the geometric transformation [T]
of the displacement vector components from the global basis into the local material directions basis. This
transformation may be derived from the equality
_
e
x
, e
y
, e
z

_
_
u
x
u
y
u
z
_
_
=
_
e
x
, e
y
, e
z

_
_
u
x
u
y
u
z
_
_
. (12.50)
Pre-multiplying with
_
_
e
x
e
y
e
z
_
_
leads to the transformation of vector components
[R
m
]
T
_
_
u
x
u
y
u
z
_
_
= [T]
_
_
u
x
u
y
u
z
_
_
=
_
_
u
x
u
y
u
z
_
_
. (12.51)
The transformation [T] is thus identied with an orthogonal (rotation) matrix
[R
m
] =
_
_
e
x
e
x
, e
y
e
x
, e
z
e
x
e
x
e
y
, e
y
e
y
, e
z
e
y
e
x
e
z
, e
y
e
z
, e
z
e
z
_
_
, (12.52)
which is just a three-dimensional analog of the two-dimensional transformation (6.50).
The global-to-local strain-displacement matrix is therefore dened as
B
e
k
= B
(x,x)
(N
k
(x)) = B
(x)
(N
k
(x)) [R
m
]
T
for x element e . (12.53)
The B
e
k
matrix is used to compose the element-wise strain-displacement matrix (12.46) In the SOFEA toolbox,
the strain-displacement matrix is computed for a three-dimensional solid geometric cell by the method Blmat:
0023 function B = Blmat
1
(self, pc, x, Rm)
1
Folder: SOFEA/classes/gcell/@gcell 3 manifold
130 CHAPTER 12. GALERKIN FORMULATION FOR ELASTODYNAMICS
0024 Nder = bfundpar (self, pc);
0025 Ndersp=bfundsp(self,Nder,x*Rm);
0026 nfens = size(Ndersp, 1);
0027 dim=3;
0028 B = zeros(6,nfens*dim);
0029 for i= 1:nfens
0030 B(:,dim*(i-1)+1:dim*i)...
0031 = [ Ndersp(i,1) 0 0 ; ...
0032 0 Ndersp(i,2) 0 ; ...
0033 0 0 Ndersp(i,3) ; ...
0034 Ndersp(i,2) Ndersp(i,1) 0 ; ...
0035 Ndersp(i,3) 0 Ndersp(i,1) ; ...
0036 0 Ndersp(i,3) Ndersp(i,2) ]*Rm;
0037 end
0038 return;
0039 end
The input arguments are the parametric coordinates pc, the array of nodal coordinates x (the 3-D version
of (6.40)), and the transformation matrix R
m
. Comparing with the denitions (12.53) and (12.46), the
Matlab code is an almost literal translation of the formulas. Note that the global location vectors for each
node x are transformed into the local Cartesian basis of material directions, x*Rm, as the matrix B
(x)
(N
k
(x))
in equation (12.53) requires derivatives with respect to the material basis.
It is of interest to note that the method Blmat is for solid elements dened for the gcell 3 manifold class.
Analogously, one-dimensional and two-dimensional elements have their versions dened by the gcell 1 manifold
and gcell 2 manifold classes; in other words, it is not specic to any particular element type or shape.
12.8 Stiness matrix
In Chapter 3 and further and Section 6.8, it was pointed out and discussed that all the problem dependent
code is concentrated in a descendent of the feblock class. The elastodynamics model of this chapter is
implemented in the feblock defor ss nite element block class.
The stiness matrix (12.30) is constructed from element-wise stiness matrices (12.45). These are calcu-
lated by the stiffness method, and returned in the ems array. The stiffness method takes as arguments
the geometry of the mesh (eld geom), in order to have access to the locations of the nodes, and the dis-
placement eld u to provide the global equation numbers of the unknowns.
0008 function ems = stiffness
2
(self, geom, u)
0009 gcells = get(self.feblock,gcells);
0010 nfens = get(gcells(1),nfens);
0011 ems(1:length(gcells)) = deal(elemat);% Pre-allocate
0012 % Integration rule
0013 integration rule = get(self.feblock, integration rule);
0014 pc = get(integration rule, param coords);
0015 w = get(integration rule, weights);
0016 npts per gcell = get(integration rule, npts);
0017 % Material
0018 mat = get(self.feblock, mater);
The material stiness matrix is pre-allocated, and the loop over all the geometric cells within the block
begins. The connectivity of the geometric cell is retrieved, and, based on the connectivity, the locations of
the nodes x are gathered from the geometry eld geom. Finally, the matrix Ke is zeroed out in preparation
for the numerical integration.
2
Folder: SOFEA/classes/feblock/@feblock defor ss
12.8. STIFFNESS MATRIX 131
0019 Ke = zeros(get(geom,dim)*nfens); % preallocate
0020 % Now loop over all gcells in the block
0021 for i=1:length(gcells)
0022 conn = get(gcells(i), conn); % connectivity
0023 x = gather(geom, conn, values, noreshape); % coord
0024 Ke = 0*Ke; % zero out element stiffness
The loop over the quadrature points begins by calculating the basis functions in order to be able to evaluate
the location of the current integration point.
0025 % Loop over all integration points
0026 for j=1:npts per gcell
0027 N = bfun(gcells(i),pc(j,:));
The matrix of the local material directions (material orientation matrix) is computed. It may depend
on the location of the quadrature point, xyz, and/or on the tangents to the parametric curves through
the quadrature point, x*Nder. If indeed required, these quantities would be calculated by the method
material directions from the supplied arguments.
0028 Rm = material directions(self,gcells(i),pc(j,:),x);
Compute the Jacobian associated with the integration point, and since the integration is to be performed
over the 3-D volume, the method Jacobian volume means to be used; for the solid elements it is identical
to the Jacobian method.
0029 detJ = Jacobian volume(gcells(i),pc(j,:),x);
The strain-displacement matrix for the element is calculated from the spatial gradients of the basis functions,
and the material directions matrix.
0030 B = Blmat(gcells(i), pc(j,:), x, Rm);
The material stiness matrix is calculated by the material object mat, and since it may change from point
to point, the location of the current integration point, xyz, is passed to the method.
0031 D = tangent moduli(mat,struct(xyz,N*x));
The product of the strain-displacement matrix and the tangent moduli (the material stiness matrix) is
accumulated.
0032 Ke = Ke + B*D*B * detJ * w(j);
0033 end
Finally, the computed element stiness matrix is stored in the ems(i) object of the elemat class. Note that
the equation numbers are gathered from the displacement eld.
0034 ems(i) = set(ems(i), mat, Ke);
0035 ems(i) = set(ems(i), eqnums, gather(u,conn,eqnums));
0036 end
0037 return;
0038 end
132 CHAPTER 12. GALERKIN FORMULATION FOR ELASTODYNAMICS
Chapter 13
Finite elements for true 3-D problems
With the formulation sketched out, it only remains to pick an element formulation to perform an analysis.
We begin with the tetrahedron T4. All the necessary formulas have been put into place in Section 9.5, and
we may immediately proceed to the rst example.
The equation of motion (12.33) stands for the so-called free vibration when there is no forcing, L = 0.
(Compare also with (3.5).) The built-in Matlab eigenvalue solver will be used to obtain the numerical
solution, and the task for the SOFEA is relatively simple: compute the stiness matrix and the mass matrix.
13.1 Modal analysis with the tetrahedron T4: the drum
As our rst example, we consider the vibration of a moderately thick circular plate as shown in Figure 13.2.
The cylindrical surface is fully clamped (all displacements zero). The material is isotropic. The analytical
solution has been worked out in dependence on the number of nodes (locations of approximately zero
displacement) radially and circumferentially [Blevins]. Therefore, this is a very good example with which to
test the nite element formulation, and the nite element T4 in particular.
The Matlab script drum t4
1
solves the vibration problem for the four lowest eigenvalues (shown in Fig-
ure 13.2). First, a few variables are dened and a mesh is produced using the mesh function t4cylinderdel.
The mesh is relatively coarse, with only two element edges through the thickness.
0001 E=0.1e6;% Pa
0002 nu=0.3;
0003 rho=1000;% kg
0004 R= 25.0e-3;% m
0005 t= 2.0e-3;% m
0006 rand(state,0);% try to comment out this line and compare
0007 % results for several subsequent runs
0008
0009 % Mesh
0010 [fens,gcells] = t4cylinderdel(t,R, 2,7);
Figure 13.1: Clamped circular plate drum.
1
Folder: SOFEA/examples/stress
133
134 CHAPTER 13. FINITE ELEMENTS FOR TRUE 3-D PROBLEMS
The material is small-strain (ss), linearly elastic (linel), isotropic (iso), and triaxial (triax). The property
class property linel iso supplies methods to compute the material stiness matrix for this type of material.
Each type of material has its own property class, and the material class mater defor ss linel triax
undertakes to insulate the methods of the nite element block from the details of the properties. Note that
the mass density needs also be supplied (dynamics!).
0012 prop = property linel iso (struct(E,E,nu,nu,rho,rho));
0013 mater = mater defor ss linel triax (struct(property,prop));
The nite element block is of class feblock defor ss. The integration rule is a one-point quadrature,
provided by the class tet rule.
0013 % Finite element block
0014 feb = feblock defor ss (struct (mater,mater, gcells,gcells,...
0015 integration rule,tet rule (1)));
The geometry eld and the displacement eld are set up as usual. The essential boundary condition is
applied to all nite element nodes on the cylindrical surface (line 0024).
0018 geom = field(struct (name,[geom], dim, 3, fens,fens));
0019 % Define the displacement field
0020 u = 0*geom; % zero out
0021 % Apply EBCs
0022 for i=1:length(fens)
0023 xyz = get(fens(i),xyz);
0024 if abs(R-norm(xyz(2:3))) <0.001*R
0025 u = set ebc(u, i, [1], [], 0.0);
0026 end
0027 end
0028 u = apply ebc (u);
0029 % Number equations
0030 u = numbereqns (u);
The two methods, stiffness and mass, discussed previously are invoked. Notice that this will lead to the
free vibration problem with a consistent mass matrix.
0032 K = start (sparse sysmat, get(u, neqns));
0033 K = assemble (K, stiffness(feb, geom, u));
0034 M = start (sparse sysmat, get(u, neqns));
0035 M = assemble (M, mass(feb, geom, u));
Finally, the built-in Matlab solver eigs is called. Four lowest eigenvalues are requested (the ag SM). The
returned eigenvalues needs to be sorted from the smallest to the largest (line 0039-0040).
0037 neigvs = 4;
0038 [W,Omega]=eigs(get(K,mat),get(M,mat),neigvs,SM);
0039 [Omegas,ix]=sort(diag(Omega));
0040 Omega= diag(Omegas);
The plotting section of the script is omitted, but the resulting shapes and the calculated frequencies are
summarized in Figure 13.2: taking the analytical solution as reference, it is clear that the errors are huge.
Evidently, a much more rened mesh would be required to obtain reasonable answers (recall: smaller ele-
ments, smaller error). A valuable observation: all the calculated values are above the reference frequencies.
This is called convergence from above, and it is an indication that the discrete model (in other words, the
T4 nite element) is too sti.
13.2. MODAL ANALYSIS WITH THE TETRAHEDRON T4: THE COMPOSITE ROD 135
Figure 13.2: Mode shapes of thick clamped plate. The analytical solution for the natural frequencies yields
for these modes
1
= 15.7511Hz,
2
=
3
= 32.7659Hz,
4
= 53.757Hz
Figure 13.3: The cantilever Rod.
13.2 Modal analysis with the tetrahedron T4: the composite rod
As the second example we will again consider a free vibration problem, but this time the material of the
structure is modeled as transversely isotropic. The structure is a straight rod of circular cross-section,
manufactured from carbon ber infused with polymer resin (Figure 13.3). The reinforcing bers are twisted,
and for lack of other information, we assume that the twist angle decreases from the outside surface (15

)
to zero along its axis. The rod is clamped at both ends. Of interest is the lowest natural frequency of the
structure.
The Matlab solution of the problem is in the form of a function, twist t4
2
, in order to allow for a
convergence analysis to be performed on a series of meshes. Therefore, an internal function will be run
repeatedly to solve for the rst natural frequency for dierent resolutions radially (number of element edges
nR) and longitudinally (number of element edgesnt).
0001 function twist t4
0002 nR = [2, 3, 4];
2
Folder: SOFEA/examples/stress
136 CHAPTER 13. FINITE ELEMENTS FOR TRUE 3-D PROBLEMS
0003 nt = [30, 40, 50, 60, 70, 80];
0004 fs =zeros(length(nR),length(nt));
0005 for i=1:length(nR)
0006 for j=1:length(nt)
0007 fs(i,j) =do twist t4(nR(i),nt(j))
0008 end
0009 save fs
0010 end
0011 end
0012
0013
0014 function frequency1 =do twist t4(nR,nt)
0015 ...
The transversely isotropic material from Section 12.5.2 requires the denition of the local material orientation
matrix (12.52) at each integration point. The axis x needs to be oriented along the bers; the orientation
of the remaining two basis vectors in the isotropy plane is arbitrary. In the function twist, the orientation
matrix is derived by rst turning a basis triad around the rst vector (line 0035-0037), and then twisting
the intermediate triad by an angle ramped up from 0

to 15

proportionally to the distance from the axis of


the rod (line 0038).
0031 function Rm = twist (XYZ, ts)
0032 r= norm(XYZ( 2:3));
0033 if r>0
0034 y=XYZ(2);z=XYZ(3);
0035 e2 = [0, y/r, z/r];
0036 e3 = skewmat([1, 0, 0])*e2;
0037 Rm= [[1, 0, 0],e2,e3];
0038 Rm=rotmat(r/R*twist angle*skewmat(e2))*Rm;
0039 else
0040 Rm= eye(3);
0041 end
0042 end
The property class property linel transv iso denes the material properties for the transversely isotropic
material model. Note that ve independent material constants need to be supplied.
0046 prop = property linel transv iso (...
0047 struct(E1,E1,
E2,E2,G12,G12,nu12,nu12,nu23,nu23,rho,rho));
0048 mater = mater defor ss linel triax (struct(property,prop));
It is noteworthy that the function twist that denes the directions of the local material basis is supplied
to the nite element block as a function handle. Call for Section 12.8 for details on the use of the material
orientation matrix.
0050 feb = feblock defor ss (struct (mater,mater,
gcells,gcells,...
0051 integration rule,tet rule (integration order),
Rm,@twist));
The rest of the function twist t4 is omitted. The shape of the composite rod for a relatively ne mesh is
shown in Figure 13.4: notice that the rod twists as well as bends due to the orientation of the reinforcing
bers in the form of a helix.
Let us now address the issue of convergence: The lowest frequency has been computed for a number
of meshes with varying number of elements radially, and along the length of the rod. The lowest natural
frequency is displayed for these dierent meshes in Figure 13.5. The frequency varies from approximately
13.3. TETRAHEDRON T10 137
Figure 13.4: The shape of the rst eigenmode.
Figure 13.5: Convergence of the lowest natural frequency with the T4 element.
2300Hz to slightly less than 1900Hz. It should be noted that the rst natural frequency decreases in magni-
tude with renement (convergence from above), but the resulting surface is not smooth. (The bad shapes of
some elements in the mesh have a profound eect on the accuracy.) The numerical answers are still changing
signicantly with the renement, and it is therefore not clear how far from the exact solution we might
be.
13.3 Tetrahedron T10
The quadratic tetrahedron is a simple extension of the quadratic triangle to three dimensions. The same
idea of constructing the basis functions as (normalized) products of planes will work, yielding for the basis
functions the quadratic expressions in the parametric coordinates , ,
N
1
= (1 )(2(1 ) 1) , N
2
= (2 1) ,
N
3
= (2 1) , N
4
= (2 1) , N
5
= 4(1 ) ,
N
6
= 4 , N
7
= 4(1 ) , N
8
= 4(1 ) ,
N
9
= 4 , N
10
= 4 . (13.1)
The basis functions are quadratic in the parametric coordinates. Therefore, their gradients with respect to
the parametric coordinates will be linear functions of , , . Provided the Jacobian matrix in equation (6.38)
is constant (independent of , , ), the gradients of the basis functions with respect to x, y, z as computed
from (6.33) are going to be linear in those coordinates. Hence, computing the elements of the stiness matrix
can be done exactly with the four-point rule from Table 9.2. On the other hand, for curved elements (when a
mid-edge node is moved from the mean of the locations of the corners) the four-point rule is not going to be
138 CHAPTER 13. FINITE ELEMENTS FOR TRUE 3-D PROBLEMS
Figure 13.6: The standard quadratic tetrahedron for the T10 element.
Figure 13.7: Comparison of the rst four natural frequencies of the drum computed with the two tetrahedral
elements, the T4 (dashed line) and the T10 (solid line). The analytical solution for the natural frequencies,

1
= 15.7511Hz,
2
=
3
= 32.7659Hz,
4
= 53.757Hz, is indicated with horizontal lines.
able to integrate the stiness matrix exactly. However, when the distortion of the element is not excessive,
the integration error is not signicant.
13.3.1 Example: the drum revisited
The Matlab script drum t10
3
is a variation on drum t4 which applies the quadratic element instead of T4.
The natural frequencies obtained for dierent meshes with the two elements, T4, and T10, are illustrated in
Figure 13.7. While increasing the number of unknowns by making the elements (uniformly) smaller leads
generally to more accurate answers, the element T4 is clearly not performing very well. Even for a fairly ne
mesh, the results are probably not of much use. On the other hand, the element T10 produces estimates
of the frequencies which are of good engineering accuracy. The rst frequency is estimated quite well even
with the coarsest mesh (only a single element through the thickness, and two elements radially).
The graph of Figure 13.7 may serve as a crude guide to the relative accuracy of the two tetrahedral
elements. Sometimes the linear tetrahedron will fare better than in this example, oftentimes much worse.
13.4 The composite rod with the tetrahedron T10
The problem from Section 13.2 is addressed here with the quadratic tetrahedron T10. Remarkably, the
Matlab function twist t10
4
diers from twist t4 in only two lines. Firstly, the mesh generated for the rod
3
Folder: SOFEA/examples/stress/3-D
4
Folder: SOFEA/examples/stress
13.5. STATIC ANALYSIS WITH HEXAHEDRA H8 AND H20 139
Figure 13.8: Convergence of the lowest natural frequency. Comparison of the two tetrahedral elements.
is converted from the type T4 to the type T10 by inserting additional nodes at the midpoints of the edges
with the utility T4 to T10.
0042 [fens,gcells] = t4cylinderdel(t,R, nt,nR);
0043 [fens,gcells] = T4 to T10(fens,gcells);
Secondly, the integration rule is boosted to a four-point formula.
0049 feb = feblock defor ss (struct (mater,mater,
gcells,gcells,...
0050 integration rule,tet rule (4),
Rm,@twist));
Otherwise, the two functions are identical. On the other hand, the results are very dierent. The higher order
tetrahedron converges very quickly and produces monotonically converging answer for the lowest frequency
(approximately 1766.6Hz). The convergence behavior with respect to the number of elements radially and
longitudinally is compared with the earlier analysis with T4 in Figure 13.8.
13.5 Static analysis with hexahedra H8 and H20
13.5.1 Hexahedron H8
This element is a straightforward extension of the Q4 quadrilateral to three dimensions. In fact, the Q4
quadrilateral is compatible with the discretization on the faces of the hexahedron, which is essential for the
implementation o integrals of the surface terms (heat ux or traction loads).
The numbering of nodes on the element is given in Figure 9.10. The basis function N
1
may be written
as the product of one one-dimensional Lagrange interpolation function on the interval 1 +1, one on
the interval 1 +1, and one the interval 1 +1; all functions correspond to the left-hand side
endpoint of the interval
N
1
(, , ) =
1
1 1

1
1 1

1
1 1
=
( 1)( 1)( 1)
8
. (13.2)
Analogously for the remaining functions: see the class method bfun
5
of the class gcell H8.
Gaussian integration at 2 2 2 is considered a full integration of the stiness (conductivity) matrix.
There are also other, more economical integration rules (for instance, six-point mid-face rule). One-point
integration at the centroid is not sucient, and leads to rank-decient element matrices.
5
Folder: SOFEA/classes/gcell/@gcell H8
140 CHAPTER 13. FINITE ELEMENTS FOR TRUE 3-D PROBLEMS
13.5.2 Dilatational locking
Consider the split of the strains into two groups: relative change of volume, and distortional strain. The
relative change in volume
v
(volumetric strain, also called dilatational strain) may be written as

v
= m
T
, (13.3)
where we use the notation of Reference [ZiTa1], namely the operator
[m]
T
=
_
1 1 1 0 0 0

.
The part of the strain that corresponds to volume change is therefore

v
=
1
3
mm
T
.
Correspondingly, the deviatoric (distortional) strain is

d
=
v
=
1
3
mm
T
= I
d
, (13.4)
where we use the deviatoric projector
I
d
= 1
1
3
mm
T
.
Applying the split of the strains in the constitutive equation, = D, leads for isotropic elastic materials
after some manipulations to the following constitutive equation
= D = Km
v
+ 2GI
0

d
= Kmm
T
+ 2GI
0
I
d
, (13.5)
where K = E/3/(1 2) is the bulk modulus, G = E/2/(1 +) is the shear modulus, and
I
0
= diag[1, 1, 1,
1
2
,
1
2
,
1
2
] .
As the Poissons ratio approaches 1/2, the elasticity model describes deformation which approaches the
state of zero volume change. In other words, most (in the limit = 1/2, all) of the deformation is occurring
by distortion. Materials behaving in this way are called incompressible.
The bulk modulus approaches innity for 1/2. Therefore, the rst part of the material stiness
matrix (13.5) grows without bounds as 1/2. The consequence for the nite element formulation is
that the large (and in the limit, innite) stiness Kmm
T
will penalize any and all deformations that result
in a non-zero relative volume change. Hence, unless the kinematics of deformation that a nite element
provides allows for zero volumetric deformation to occur with ,= 0, the magnitude of possible strains will
be severely limited, and in the worst case no deformation will be possible at all. Such a state of aairs is
called dilatational locking.
Figure 13.9 supplies a visual explanation. Consider the case K with the mesh shown as a collection
of triangles, but similar reasoning would apply to tetrahedra. The base in the triangle 152 is xed. To
conserve its volume, node 5 is allowed to move only vertically. Analogously for triangle 263, and to conserve
the volume of triangle 256, the two nodes 5 and 6 must move by the same amount. Similarly we prove
that node 9 must move only vertically. Compare these severe limitations on the deformation allowed by the
incompressibility constrains with the expected shape produced by a tensile load in the x direction: clearly
the results are not going to be very useful. In fact, it is easy to show situations where the incompressibility
would not allow any deformation at all.
The triangles T3 and tetrahedra T4 are in this way severely exposed to locking for almost incompressible
materials. The deformations that they can experience are very limited as soon as we require zero volumetric
change.
Let us look at an example to study the performance of the hexahedron H8. Figure 13.10 should be referred
to as to the geometry, but the important detail is that the material has a Poissons ratio of = 0.4999 (a
number representative of for instance some lled rubbers). Figure 13.11 shows the coarsest and the nest
mesh with a deected shape.
13.5. STATIC ANALYSIS WITH HEXAHEDRA H8 AND H20 141
Figure 13.9: Dilatational locking in a mesh composed of triangles
Figure 13.10: Beam of almost incompressible material with transverse load
Figure 13.11: Meshes for the clamped beam
142 CHAPTER 13. FINITE ELEMENTS FOR TRUE 3-D PROBLEMS
Figure 13.12: Convergence of the tip deection
Figure 13.13: Illustration of shear locking deformation
The lower curve in Figure 13.12 belongs to the regular H8, and it clearly illustrates that it also suers
severe dilatation locking (very slow convergence). However, in this case there is a remedy. The numerical
integration of the stiness matrix essentially imposes the constraint of (almost) zero volumetric strain at each
integration point. Since this is impossible to meet for H8, the element locks. However, the technique known
under the name of selective reduced integration [Hug00] may be applied to alleviate the symptoms.
Essentially, the two terms in (13.5) split the stiness matrix, and the two-part of the stiness matrix are
integrated using dierent Gaussian rules: the dilatational part is integrated with one-point rule, while a
222 rule is used on the deviatoric part. Reducing the number of constraints due to lack of compressibility
in this way leads to much improved performance. The upper curve in Figure 13.12 is obtained with this
formulation (H8 with selective reduced integration, SRI), and the results are much better compared to the
standard formulation.
Looking closely at the results for this problem for various aspect ratios (elements elongated along the axis
of the beam), we soon realize that while the problem of dilatation locking seems to have been solved, the
bending response of the H8 element deteriorates with the aspect ratio. There is yet another kind of locking
at play here.
13.5.3 Shear locking
The representation of bending by the brick element H8 (or the quadrilateral Q4 in two-dimensional models)
is notoriously poor due to excessive shear stiness being generated as a side eect of the element assuming
a bent conguration: refer to Figure 13.13 for an illustration. The result is known as shear locking.
13.5.4 Thin clamped square plate with concentrated load
The problem is illustrated in Figure 13.14, and the input data is fully specied in the Matlab script clsqconc.
This is one of the classic benchmarks for thin structures, see the Reference [TimWoi]. The thin-plate
analytical solution is typically quite challenging to match for plate nite elements. Here we will attempt to
compute this solution with solid elements. The essential boundary condition is trivial, but the concentrated
force should give us a pause, as it is not an admissible load for 3-D elasticity. However, since the plate is
13.5. STATIC ANALYSIS WITH HEXAHEDRA H8 AND H20 143
Figure 13.14: Clamped square plate with center load
Figure 13.15: Clamped square plate with center load. Very thin plate (thickness/span = 1/2000) and
moderately thin plate (thickness/span = 1/40); H20 and T10 meshes
thin, and since we are interested in the deection of the structure as a plate (we will studiously avoid
rening around the point of application of the load), committing this sin is not going to be fatal to the
solution. Due to the symmetry of the problem, we will discretize just one quarter of the geometry, and
apply symmetry boundary conditions. For a very thin plate (thickness/span = 1/2000), the deected shape
is shown in Figure 13.15. However, this shape cannot be computed with the H8 element. Even with many
thousands of elements, the normalized computed deection is just a fraction of a percent of the analytical
solution. The H8 element locks very badly: As the plate is so thin, most of the energy should be in bending,
but the element deformation mode puts most of it into shear and as a result the model is way too sti. Even
for thicker plates (up to the thickness/span ratio of 0.1, when the plate should be considered thick), the
element H8 delivers disappointing accuracy: see Figure 13.16. Compared with the quadratic tetrahedron
T10, the error is unacceptably large even for plates which are quite common in structures (thickness/span =
1/100). The tetrahedron T10 on the other hand is a solid performer, even for plates which are rather thin.
The mesh shown in Figure 13.15 gives decent results for the shown thickness to span ratio.
13.5.5 Quadratic element H20
Similarly to the pair T4 and T10, the quadratic hexahedron H20 cures most of the stiness in the joints of
the H8. Contrary to (likely) expectations, the quadratic element is not going to be derived by taking the
Cartesian product of the basis functions of the quadratic one-dimensional element L3 (Section 9.2). The
result would have been an element with 27 nodes: 3 3 3 = 27, the so-called quadratic Lagrangean
hexahedron.
The quadratic hexahedron H20 on the other hand is a member of the serendipity family. The nodes
associated with basis functions are located at the corners and the midpoints of the edges: see Figure 13.17;
eight corners plus the midpoints of 12 edges gives 20 basis functions. The derivation of the basis functions
144 CHAPTER 13. FINITE ELEMENTS FOR TRUE 3-D PROBLEMS
Figure 13.16: Clamped square plate with center load. Normalized deection under the load versus the
thickness/span ratio, with a single element through the thickness and 20x20 elements in the plane
Figure 13.17: Numbering of the nodes of the hexahedron H20
13.5. STATIC ANALYSIS WITH HEXAHEDRA H8 AND H20 145
Figure 13.18: Visualization of the three functions that give the basis function N
11
for the hexahedron H20
may proceed as follows: start with the basis functions of the hexahedron H8, and add in the quadratic
functions associated with the midpoints. Then modify the original linear functions so that all the basis
functions add up to one.
The functions that are being added for the midpoints are produced as products of one quadratic function
(in one variable) and two linear functions (in the remaining two variables). For instance, consider the basis
function N
11
: the variation of this function along the edge 3, 4 should be the quadratic (1
2
) (Figure 13.18).
Furthermore, N
11
should vanish at all the nodes except 11. The function (1
2
) is zero along the faces
2, 3, 7, 6 and 4, 1, 5, 8. To make it vanish also along the two faces 7, 8, 5, 6 and 1, 2, 6, 5, we multiply it with
the two functions ( + 1) and ( 1). Finally, this product is normalized to assume value +1 at the node
11. The result is
N
11
=
(1
2
)( + 1)( 1)
8
.
The basis functions for all the other mid-side nodes are obtained in the same fashion. The nal step is to
subtract half of each mid-side basis function from the two corner basis functions that are borrowed from H8
along that edge so that we recover the partition of unity property (6.15)
20

k=1
N
k
(, , ) = 1 .
Thus, for instance for N
1
we have
N
1
=
( 1)( 1)( 1)
8

N
11
2

N
10
2

N
19
2
.
Detailing all the other basis functions would take up too much space: see the class method bfun
6
of the class
gcell H20.
Gaussian integration at 3 3 3 is considered a full integration of the stiness (conductivity) matrix.
However, the theoretically insucient Gaussian scheme 222 often leads to much improved results, giving
a less constrained model with considerably improved exibility.
The clamped plate problem is revisited with the 20 node hexahedron: Figure 13.19 shows the results for
the normalized deection under the load for the very thin plate. The hexahedron H20 is used with the two
Gaussian quadratures. While the convergence is similar, the reduced 2 2 2 scheme has an edge. The
mesh shown on the left in Figure 13.15 is good for around 98% accuracy with the reduced integration, and a
few percent worse for the full integration. The quadratic tetrahedron T10 does not quite manage to produce
acceptable results for plate this thin.
The aspect ratios of the elements obviously improve for thicker plates. Figure 13.20 demonstrates that
accuracy improves, and Figure 13.21 shows that, given the change of the vertical scale, the results for the
6
Folder: SOFEA/classes/gcell/@gcell H20
146 CHAPTER 13. FINITE ELEMENTS FOR TRUE 3-D PROBLEMS
Figure 13.19: Clamped square plate with center load. Normalized deection under the load versus the
number of unknowns for the thickness/span ratio= 1/2000, with a single element through the thickness and
4, 5, ..., 18 elements along the in-plane directions
Figure 13.20: Clamped square plate with center load. Normalized deection under the load versus the
number of unknowns for the thickness/span ratio= 1/200, with a single element through the thickness and
4, 5, ..., 18 elements along the in-plane directions
moderately thick ight are quite satisfactory for all elements
7
. However, the tetrahedron will always be more
expensive than the hexahedron. For instance, for a given level of accuracy, more degrees of freedom needs
to be included in the model; conversely, given a xed budget of elements will lead to worse accuracy when
using tetrahedra.
13.5.6 Quadratic element Q8
The quadratic quadrilateral Q8 is compatible with the sides of the brick element H20 (compare Figure 13.17
with Figure 13.22). Therefore, to write down the basis functions for the quadrilateral, we may for instance
substitute = 1 into the basis functions N
j
, j = 1, 2, 3, 4 (corner functions), and N
j
, j = 9, 10, 11, 12
(mid-side functions) of the hexahedron.
13.5.7 Pinched cylinder
The problem is dened in Figure 13.23, and the input data is available in the Matlab script pinchcyl. This is
a widely used benchmark for shell structures. Due to symmetry, only 1/8 of the full structure is discretized,
with only a single element through the thickness (the resolution in the circumferential and longitudinal
direction is much more important).
7
The deections are normalized by the analytical solution obtained for a thin plate, i. e. without consideration of shear
deformations. That is why the numerical results apparently converge to a deection higher than that predicted analytically.
13.5. STATIC ANALYSIS WITH HEXAHEDRA H8 AND H20 147
Figure 13.21: Clamped square plate with center load. Normalized deection under the load versus the
number of unknowns for the thickness/span ratio= 1/40, with a single element through the thickness and
4, 5, ..., 18 elements along the in-plane directions
Figure 13.22: Numbering of the nodes of the quadrilateral Q8
Figure 13.23: Pinched cylinder: description of the problem
148 CHAPTER 13. FINITE ELEMENTS FOR TRUE 3-D PROBLEMS
Figure 13.24: Pinched cylinder. Normalized deection under the load with elements H20 and T10
Figure 13.25: Pinched sphere. Shape under the load magnied 10 times. Conguration of elements: at
(left), fully curved (right)
Of the two quadratic elements, H20 and T10, only the hexahedron performs well, and that only for the
reduced integration scheme 2 2 2; full integration produces response which is too sti. The results are
summarized in Figure 13.24. The shape of the structure under the load is displayed in Figure 13.27 and it
is possible to discern the interplay between membrane and bending action. Also note that the elements are
curved in their reference form.
13.5.8 Pinched sphere
This benchmark problem is dened in Figure 13.28: Note that the structure has no essential boundary
condition applied to it. The input data is fully described in the Matlab script pinchsphere. This benchmark
is used to measure the capability of nite elements to model inextensional bending in shell structures. Due
to symmetry, only 1/4 of the full structure is discretized with the hexahedron H20, with only a single element
through the thickness. The geometry of the spherical shell is captured in two ways: (i) at, where only
the corner nodes have been forced to lie on co-spherical surfaces; and (ii) fully curved, where the element
nodes have all been moved so that all nodes are on co-spherical surfaces.
The deformed shape of the structure is shown for the two element congurations in Figure 13.25. Clearly,
the fully curved elements aord better accuracy, which is not entirely surprising: when the elements are
assembled into a faceted surface, the structure is eectively stiened (corrugated). However, modeling
curved surfaces by faceting is routinely done, since in the limit the faceting becomes less important. Indeed,
we may observe in Figure 13.26 than both congurations lead to satisfactory convergence, and the curving
of the elements is important only for coarse meshes.
13.5. STATIC ANALYSIS WITH HEXAHEDRA H8 AND H20 149
Figure 13.26: Pinched sphere. Convergence of the deection under the load for the two dierent congura-
tions of the elements.
Figure 13.27: Pinched cylinder. Shape under the load magnied 100,000 times
Figure 13.28: Pinched sphere: description of the problem
150 CHAPTER 13. FINITE ELEMENTS FOR TRUE 3-D PROBLEMS
Figure 13.29: Meshes for the clamped beam with dierent aspect ratios
Figure 13.30: Comparison of normalized deections for the clamped beam with dierent aspect ratios. Left
to right: 1:2, 1:5, 1:10 (height:length).
13.5.9 Beam deection revisited
Finally, we return to the problem of the (almost) incompressible beam. We study a few models with the goal
of understanding their properties concerning both dilatational and shear locking. The meshes have dierent
aspect ratios, see Figure 13.29, and correspondingly we may expect to be able to test the bending response:
elements insensitive to aspect ratio are preferable to those that are sensitive. At the same time, we are able
to ascertain robustness with respect to dilatation locking since the Poissons ratio is close to 1/2.
The results are summarized in Figure 13.30 (note that the vertical scale is dierent in each graph). The
hexahedron H20 with the reduced quadrature 222 is a uniformly accurate element, apparently performing
well with respect to dilatation locking, and insensitive to aspect ratio. Full integration for H20 produces an
element with a slightly worse sensitivity to element elongation. The hexahedron H8 with selective reduced
integration (SRI) deals well with dilatational locking, but is very sensitive to element elongation: its bending
response is poor. The tetrahedron T10 is apparently well-behaved with respect to dilatation locking, but it
is quite sensitive to the aspect ratio.
Chapter 14
Analyzing the stresses
Stresses are often of primary interest when designing structures. However, there are some inherent limitations
to what is computable and how.
For example, some features in structures when modeled with elasticity generate stresses that are innite
at some points. Obviously, there is little merit to attempts aimed at computing the stress at such points.
Even away from these points, without special models the stress is often very inaccurate. Therefore, it
behooves us to understand which features lead to innite stresses so that we can formulate solution strategies
appropriately.
14.1 Singularities
A set of features leads to states of stress which can be analyzed with eectively two dimensional models.
The idealization of such geometries is the wedge as a locus of points where two bounding surfaces meet
at an angle. Figure 14.1 shows a geometry with a notch (even though displayed in cross-section, the notch
needs to be understood as an edge). Away from the locations where the notch edge runs out into the side
surfaces, the state of stress may be analyzed using the idealization shown on the right, the wedge [Barber].
The material surrounding the edge extends to innity in all directions, but the solution is of interest only
in the immediate vicinity of the edge. The analytical solution for symmetric and anti-symmetric loadings
displays for angles > 180

a singularity in the stress components of the form


r

, (14.1)
where r is the radial distance from the edge, and 0 measures the strength of the singularity. Figure 14.2
provides a sketch of the dependence of the exponent on the angle . For symmetric loads, even a very slight
notch will lead to singular stresses (at least in the model!), and the strongest singularity occurs for = 360

Figure 14.1: Notch and the idealized geometry of an innite wedge


151
152 CHAPTER 14. ANALYZING THE STRESSES
Figure 14.2: Strength of the singularity in the stress. Symmetric and anti-symmetric loading
Figure 14.3: Singularity at a multi-material interface
(innitely sharp crack). Similarly, anti-symmetric loading will produce the same strength of singularity for
a crack conguration. In the same gure on the right, the graph shows that the stronger the singularity, the
wider the general area around the wedge front where the stresses are high (they are innite at the edge for
all strengths).
Singular stresses often accompany edges along multi-material interfaces, as shown in Figure 14.3, or
in Figure 14.5.
Singular stresses may be also generated at sudden transitions from prescribed displacement to prescribed
traction (discontinuity in boundary conditions). Figure 14.4
We also pointed out that concentrated loads at points or along curves generate innite stresses in
Section 11.7.4. As discussed in detail there, the energy in the model is innite in the limit. Therefore, this
kind of singularity is even worse than the singular stresses near the tip of a wedge. Also, point supports
and supports along curves leads to innite stresses, with similar characteristics.
The most complex singularities to analyze are the true 3-D singularities at corners. Examples include
(call for Figure 14.5) the intersections of wedge fronts (crack fronts) with free surfaces (marked 1), corners
of multi-material wedges (2), corners on multi-material interfaces (3), or corners in homogeneous geometries
(4,6), conical points (marked 5), or corners in wedges (on crack fronts) (marked 7).
Figure 14.4: Singularities due to sudden change in displacement boundary conditions
14.2. INTERPRETATION OF STRESSES 153
Figure 14.5: 3-D singular points
Figure 14.6: Interpretations of the calculated stresses. Stress
yz
. Left: extrapolated, continuous eld; Right:
stress ellipsoids at integration points
14.2 Interpretation of stresses
Similarly to the problem of heat conduction where the heat ux is dened only through its relationship to
the temperature gradient, the stress distribution is detectable in elasticity nite element models by going
back to the strains. The strains are dened as the spatial derivatives of the displacements, and hence it
makes sense to talk of some degree of continuity. For instance, across an element the strains may be constant
(T4 tetrahedra), or vary linearly (T10 tetrahedra).
On the other hand, the stress does not have any such continuity. As the stress is related to the strain
through the constitutive equation, and as the constitutive equation is invoked only at quadrature points, the
stress is consistent with the solution obtained from a nite element model only at the quadrature points.
This is especially true when a more complex relationship exists between the strains and the stresses, for
instance in plasticity or viscoelasticity. In the present model of elasticity, it may seem attractive to use
the constitutive equation at any point within the element to compute the stresses. However, it needs to be
realized that such stresses are an interpretation of the solution, not the solution itself.
As an illustration, consider Figure 14.6: on the right, the stresses consistent with a nite elements solution
are displayed at the 2 2 2 quadrature points as ellipsoids that are visual representations of the principal
stresses and directions of the principal stresses. On the left, an interpretation of the distribution of stresses is
produced as a continuous map, where the stress magnitude is calculated at each node and then interpolated
using the element basis functions. The magnitude of stress at a node is computed by extrapolating from the
magnitude of stress at the quadrature points nearby; in this case, by taking an inverse-distance-weighted
average of the stresses at all the quadrature points in all the elements connected to the node. The usefulness
of such a visual representation of the stress distribution for the evaluation of the results is evident, but the
fact that such a continuous stress eld is an interpretation of the nite element results (often performed in a
154 CHAPTER 14. ANALYZING THE STRESSES
Figure 14.7: Stress raisers: elliptical hole, stiened hole
Figure 14.8: Stress raisers: through-hole in a shaft, mass-reduction holes in a ywheel
so-called postprocessing step) must be taken into account. In particular, the stresses are typically smoothed
in these postprocessing procedures and spikes in stress may get wiped out. On the other hand, extrapolating
the stress is also fraught with errors.
14.3 Stress concentrations
The nite element formulations in this book may be applied to the solution of the so-called stress concen-
tration problems. These are produced by stress raisers, which are features that local or global increases in
the stress, but which do not cause the stress to become singular. The book [Pete] is an extremely useful
resource; a mode of operation where the solution of a nite element model is cross-checked with this book,
or vice versa, is to be generally recommended.
To be aware of stress raisers is highly advisable for all modelers, since stress concentrations are generally
locations of high error in the nite element solution: compare with Section 10.1.3. Therefore, appropriately
constructed mesh will reect the presence of stress raisers by suitable renement (reduction in mesh size)
around the stress concentrations.
Figure 14.9: Stress raisers: depression in a plate, cross-section reduction in a shaft
14.3. STRESS CONCENTRATIONS 155
Figure 14.10: Stress raisers: snap-on ring groove, shoulder llet
Figure 14.11: Stress raisers: stress relief groove, T-head suspension bar
Figure 14.12: Stress raisers: clevis and lug joint, curved hook
156 CHAPTER 14. ANALYZING THE STRESSES
Chapter 15
Reduced-dimension models: plane
strain, plane stress, axisymmetric
In this chapter we will reduce the three-dimensional elastic dynamic model to just two dimensions. This
is possible by introducing assumptions for strains or stresses (and some restrictions on the form of the
constitutive equation and loads).
15.1 Plane strain model reduction
The starting point is the observation that for some solids of uniform cross-section (right angle cylinders),
such as the one shown in Figure 15.1, the set of assumptions that (i) u
z
(x, y, z) = 0, and u
x
= u
x
(x, y),
u
y
= u
y
(x, y) seems to approximate the deformation well. As examples consider a long pipe under internal
pressure (well removed from any valves or caps), or a straight concrete dam, or the midsection of a wall
panel. The reduction to two dimensions will be possible if the third balance equation is satised by design

zx
x
+

zy
y
+

z
z
+b
z
= u
z
.
Due to the assumptions on the displacements, we have for the shear strains

zx
= 0,
zy
= 0 .
Note that the identically vanishing u
z
also implies
z
= 0. Provided the constitutive equation allows, the
conjugate shear stresses may also vanish. The condition for
zx
is (ii)

zx
= [D]
5,(1:6)
[] = 0 ,
where [D]
5,(1:6)
is taken to mean columns 1 through 6 of row 5. This condition is satised provided the
coecients of the material stiness that multiply the nonzero strains are zero,
D
51
= D
52
= D
54
= 0 .
Figure 15.1: Right-angle cylinder
157
158CHAPTER 15. REDUCED-DIMENSIONMODELS: PLANE STRAIN, PLANE STRESS, AXISYMMETRIC
Figure 15.2: Entries of the material stiness matrix for plane strain
Symmetry also implies D
15
= D
25
= D
45
= 0. Analogously, for the stress
zy
the conditions on the material
stiness coecients applies to row 6 (column 6). The situation is illustrated in Figure 15.2: coecients
which could be nonzero are hatched, coecients which must be zero are marked as such, and coecients
which are probably best set to zero are blanks (those would couple
xy
and
z
).
The general orthotropic material of Section 12.5.1 complies with these conditions provided (iii) one of
the orthotropy axes is aligned with the zaxis. A more general material model could be devised, but for
practical purposes it is sucient to consider the orthotropic material.
As a consequence of the assumptions on the displacements, and of the constraints on the form of the
material stiness, the third equilibrium equation becomes

z
z
+b
z
= 0 .
But since we already have
x
=
x
(x, y) and
y
=
y
(x, y), we can write

z
= [D]
3,(1:2)
_

x

y
_
,
and we see that
z
=
z
(x, y) provided (iv) all the coecients [D]
3,(1:2)
and [D]
(1:2),3
are also functions of
x, y but not of z. Then, the equilibrium equation simply becomes a condition on the admissible loads (v)
b
z
= 0 .
The boundary conditions consistent with the modeling assumptions and constraints (i)-(v) are
top and bottom plane: u
z
= 0, t
x
= 0, t
y
= 0;
cylindrical surface: mixture of essential and natural boundary conditions, where none of the prescribed
components depend on z.
The initial conditions satisfy the modeling assumptions and constraints (i)-(v) provided the initial displace-
ments and velocities do not depend on z.
Since
z
= 0, the constitutive equation is written for the nonzero normal stresses and the shear stress as
_
_

xy
_
_
=
_
[D]
(1:2),(1:2)
0
0 D
44
_
_
_

xy
_
_
. (15.1)
The stress-divergence operator for plane strain with just two equations and three stresses assumes the
form
B
T
=
_
/x 0 /y
0 /y /x
_
. (15.2)
15.2. PLANE STRESS MODEL REDUCTION 159
Figure 15.3: Right-angle cylinder/thin slab/membrane
15.1.1 Discretization
The model for the fully three-dimensional elasticity resulted in the ODE system (12.32). In the present case,
at this point we are still dealing with the same three-dimensional problem. However, when we simply take
all the assumptions and constraints, and plug them into the equations (12.23), (12.25), (12.26), (12.27),
(12.29), and (12.31), the following observations are made. Firstly, the values of all the degrees of freedom
in the direction of the z-axis are known to be zero. Secondly, all the loads in this direction are also zero.
Consequently, the third equilibrium equation may be ignored, and the test and trial function will have only
two components, x and y. Thirdly, all the volume integrals may be precomputed in the z direction as all the
integrands are independent of z. Thus, for instance the stiness matrix integral (12.30) may be written as
K
(j,i)(k,m)
=
__
V
B
T
(N
j
(x)) DB (N
k
(x)) dV
_
im
= (15.3)
__
S
B
T
(N
j
(x)) DB(N
k
(x)) z dS
_
im
. (15.4)
Here z is the thickness of the slab in the z direction, S is the cross-sectional area of the cylinder. As
only
x
,
y
,
xy
(and correspondingly
x
,
y
,
xy
) matter, the strain-displacement matrix uses the transpose
of (15.2).
15.2 Plane stress model reduction
The plane stress model idealizes the following situation: imagine a thin slab of uniform thickness (the
technical term would be membrane) with both plane surfaces at the top and bottom (see Figure 15.3)
traction free, and the boundary conditions on the cylindrical surface independent of the z coordinate. Based
on energy considerations we may presume that only the in-plane stresses would play a major role.
Therefore, we formulate a model starting from (i) the assumptions u
x
= u
x
(x, y), u
y
= u
y
(x, y), and u
z
symmetric with a respect to the midplane of the membrane. To reduce the problem to two dimensions, we
have to try to get rid of the third equilibrium equation.

zx
x
+

zy
y
+

z
z
+b
z
= u
z
.
However, neither of the stresses in it will be exactly zero, since the corresponding strains are in general
nonzero. Nevertheless, inferring from the uniform, and small, thickness of the membrane, we may adopt yet
another assumption, (ii) [
zx
[ 1, [
zy
[ 1, and [
z
[ 1. Next, (iii) the through-the-thickness body load
component is assumed to be zero, b
z
= 0. Finally, in order for the third equilibrium equation to be truly
negligible, (iv) we invoke the symmetry with respect to the midplane, and establish that the integral of this
equation through the thickness of the membrane will vanish, i.e. the resultant perpendicular to the plane of
the membrane will vanish
_
h/2
h/2

zx
x
+

zy
y
+

z
z
+b
z
dz =
_
h/2
h/2
u
z
dz = 0 .
160CHAPTER 15. REDUCED-DIMENSIONMODELS: PLANE STRAIN, PLANE STRESS, AXISYMMETRIC
Figure 15.4: Entries of the material stiness matrix for plane stress
Furthermore, in order to comply with the symmetry requirement, we shall assume that (v) the material
is orthotropic, with one orthotropy axis perpendicular to the midplane. The material stiness matrix will
therefore have the appearance shown in Figure 15.4.
As the last step, the strain
z
is eliminated from the constitutive equation. Assuming
z
0, we have

z
= [D]
3,(1:3)
_
_

z
_
_
0 ,
which gives

z
= D
1
33
[D]
3,(1:2)
_

x

y
_
.
Therefore, we obtain
_

x

y
_
=
_
[D]
(1:2),(1:2)
, [D]
(1:2),3

_
_

z
_
_
=
_
[D]
(1:2),(1:2)
, D
1
33
[D]
(1:2),3
[D]
3,(1:2)
_
_

x

y
_
, (15.5)
which together with
xy
= D
44

xy
may be substituted into the rst two equilibrium equations, rendering
them functions of x, y only, provided (vi) the body load is b
x
= b
x
(x, y), b
y
= b
y
(x, y).
The boundary conditions consistent with the modeling assumptions and constraints (i)-(vi) are
top and bottom plane: t
z
= 0, t
x
= 0, t
y
= 0;
cylindrical surface: mixture of essential and natural boundary conditions, where none of the prescribed
components depend on z.
The initial conditions satisfy the modeling assumptions and constraints (i)-(vi) provided the initial displace-
ments and velocities do not depend on z.
15.3 Model reduction for axial symmetry
The last model reduction approach to be discussed in this chapter, is the case of torsionless axial symmetry
(Figure 15.5). The main assumption is that (i) all planes passing through the axis of symmetry are symmetry
planes. Therefore, points in any particular cross-section move only in the radial and axial direction, and do
not leave the plane of the cross-section (zero circumferential displacement). Furthermore, points on circles
in planes perpendicular to the axis of symmetry, with centers on the axis of symmetry, experience the same
radial and axial displacements.
Let us consider one particular cross-section, for instance as indicated in Figure 15.5. Since the displace-
ments in the plane of the cross-section are symmetric with respect to the axis of symmetry, we will consider
only the part to one side of the axis of symmetry (hatched in Figure 15.5). The reduction from three equa-
tions of equilibrium to two equations in the plane of the cross-section, where x is the radial direction, and
15.3. MODEL REDUCTION FOR AXIAL SYMMETRY 161
Figure 15.5: Axially symmetric geometry
Figure 15.6: Axially symmetric geometry: geometry of circles in planes perpendicular to the axis of symmetry
y is the axial direction, will succeed provided the equilibrium equation in the direction perpendicular to the
plane of the cross-section (z) is satised implicitly. Thus, we consider

zx
x
+

zy
y
+

z
z
+b
z
= u
z
,
where as the rst simplication we note u
z
= 0 u
z
= 0. Furthermore, we must have b
z
= 0.
Now for the stresses: As indicated in Figure 15.6, by assumption the circles in planes perpendicular to the
axis of symmetry are transformed by the deformation again into circles in planes perpendicular to the axis of
symmetry. Therefore, right angles between the plane of the cross-section and the tangent to the circle where
it intersects the cross-section will remain right angles, and the shear strains
zx
= 0, and
zy
= 0. If the
material is (ii) orthotropic, with one axis of orthotropy perpendicular to the cross-section, we may conclude
that
zx
= 0, and
zy
= 0. Finally, since the material on a given circle experiences the same stress in all
cross sections,
z
/z = 0 (while in general
z
,= 0). Conclusion: the equation of motion in the z direction
for each cross-section plane (and in particular the one in which the two-dimensional model is formulated) is
satised exactly.
It remains to express the circumferential strain in terms of the displacements in the plane of the cross-
section. By inspection of Figure 15.6, displacement of the circle in the y direction does not change its
circumference, while displacement radially means that the circle of radius x will experience strain

z
=
2(x +u
x
) 2x
2x
=
u
x
x
.
The strain-displacement operator for this model may be therefore written as
B =
_

_
/x 0
0 /y
1/x 0
/y /x
_

_
. (15.6)
162CHAPTER 15. REDUCED-DIMENSIONMODELS: PLANE STRAIN, PLANE STRESS, AXISYMMETRIC
The stress divergence operator (the transpose of (15.6)) gives the reduced form for the equations of equilib-
rium (11.25)

x
x
+

xy
y
+

z
x
+b
x
= u
x

xy
x
+

y
y
+b
y
= u
y
where the presence of
z
should be noted: recall that the equation of motion in the radial direction holds
for a wedge-shaped element, hence the contribution of the circumferential stress in the radial direction.
The constitutive equation is simply obtained from the full three-dimensional relationship by extracting
appropriate rows and columns
_

xy
_

_
=
_
[D]
(1:3),(1:3)
0
0 D
44
_
_

xy
_

_
. (15.7)
15.4 Material stiness for two-dimensional models
The material stiness matrices are (15.1) for plain strain, equation (15.5) for plain stress, and (15.7) for
axial symmetry. While all are for models reduced to two displacement components, the stiness matrices are
clearly dierent. The material class mater defor ss linel biax provides the tangent moduli by translating
the material stiness of a three-dimensional material for a particular reduced two-dimensional model. The
class method tangent moduli rst retrieves the three-dimensional material stiness from the property object
(line 0014), and then the switch statement implements the computation (or subsampling) expressed in the
three formulas.
0013 function D = tangent moduli
1
(self, context)
0014 D= get(self.property,D, context);
0015 switch self.reduction
0016 case axisymm
0017 D =D(1:4, 1:4);
0018 case strain
0019 D =D([1, 2, 4],[1, 2, 4]);
0020 case stress
0021 Dt =D(1:2, 1:2)-D(1:2,3)*D(3,1:2)/D(3,3);
0022 D =D([1, 2, 4],[1, 2, 4]);
0023 D(1:2, 1:2)= Dt;
0024 otherwise
0025 error([ Reduction self.reduction not recognized]);
0026 end
0027 end
Note well that there is no error checking concerning the assumptions in the three models. In particu-
lar, all three assume there is no coupling between normal stresses and the in-plane shear stress. If the
three-dimensional material stiness was retrieved from a property class which did not comply with these
requirements, unpredictable results may be expected.
1
Folder: SOFEA/classes/mater/@mater defor ss linel biax
15.5. STRAIN-DISPLACEMENT MATRICES FOR TWO-DIMENSIONAL MODELS 163
15.5 Strain-displacement matrices for two-dimensional models
The three models need dierent strain displacement matrices. The plane strain/ planes stress denes the
stress-displacement matrix as the transpose of (15.2)
B =
_
_
/x 0
0 /y
/y /x
_
_
. (15.8)
while the axially symmetric model relies on (15.6). Consider the discretization of a particular structure with
triangles T3. It is not possible in general to tell whether the model is axisymmetric, plain strain, or plain
stress just by looking at the mesh. The nite elements (geometric cells) need to be told which they are. For
instance, an axisymmetric triangle is created by the constructor being supplied with a ag:
gcell T3(struct(conn, [2, 4, 7],axisymm, true));
Based on this ag, the two-manifold class gcell 2 manifold decides which type of the strain-displacement
matrix should be produced by the method Blmat.
0024 function B = Blmat
2
(self, pc, x, Rm)
0025 Nder = bfundpar (self, pc);
0026 Ndersp=bfundsp(self,Nder,x*Rm);
0027 nfens = size(Ndersp, 1);
0028 dim=length (Rm(:,1));
0029 if self.axisymm
0030 N = bfun(self, pc);
0031 xyz =N*x;
0032 r=xyz(1);
0033 B = zeros(4,nfens*dim);
0034 for i= 1:nfens
0035 B(:,dim*(i-1)+1:dim*i)=...
0036 [Ndersp(i,1) 0; ...
0037 0 Ndersp(i,2); ...
0038 N(i)/r 0; ...
0039 Ndersp(i,2) Ndersp(i,1) ]*Rm(:,1:2);
0040 end
0041 else
0042 B = zeros(3,nfens*dim);
0043 for i= 1:nfens
0044 B(:,dim*(i-1)+1:dim*i)=...
0045 [Ndersp(i,1) 0; ...
0046 0 Ndersp(i,2); ...
0047 Ndersp(i,2) Ndersp(i,1) ]*Rm(:,1:2);
0048 end
0049 end
0050 return;
0051 end
0052
15.6 Integration for two-dimensional models
As discussed in Section 15.1.1, the volume integrals for plane strain, such as the one required for the stiness
matrix, incorporate the third dimension as a thickness. Integration through the thickness reduces to
multiplication.
2
Folder: SOFEA/classes/gcell/@gcell 2 manifold
164CHAPTER 15. REDUCED-DIMENSIONMODELS: PLANE STRAIN, PLANE STRESS, AXISYMMETRIC
Figure 15.7: Volume integration for axisymmetric analysis
The volume integrals for the axial-symmetry model reduction approach dier from plane stress or plane
strain in that the integration for free is performed along the circumference of the rotationally symmetric
body, not through the thickness. For instance, the stiness matrix integral (12.30) may be written as
K
(j,i)(k,m)
=
__
V
B
T
(N
j
(x)) DB(N
k
(x)) dV
_
im
=
__
S
B
T
(N
j
(x)) DB (N
k
(x)) 2x dS
_
im
, (15.9)
where 2x dS is the volume element of the ring generated by revolving the area dS around the axis of
symmetry y. Compare with Figure 15.7. The volume integration may be performed by numerical quadrature
over the area S but using a volume Jacobian
_
V
f dV =
_
S
f2x dS
M

k=1
f(
k
,
k
)J
vol
(
k
,
k
)W
k
,
where the volume Jacobian is dened as
J
vol
(
k
,
k
) = 2x(
k
,
k
) det [J(
k
,
k
)] . (15.10)
In this way, all volume integrals are performed in exactly the same way, be they dened over a three
dimensional manifold (solid), a two-dimensional manifold (surface equipped with a thickness, or swept
around an axis of symmetry), a one dimensional manifold (curve equipped with a cross-sectional area),
or a zero-dimensional manifold (point endowed with a chunk of volume). For the two-dimensional models
of this chapter, the volume Jacobian is computed by the method Jacobian volume dened for the class
gcell 2 manifold. The Matlab code closely mirrors the formulas; the method other dimension simply
computes the thickness at the given integration point pc (which in the plane-stress case could be variable).
0015 function detJ = Jacobian volume
3
(self, pc, x)
0016 if self.axisymm
0017 N = bfun(self,pc);
0018 xyz =N*x;
0019 detJ = Jacobian surface(self, pc, x)*2*pi*xyz(1);
0020 else
0021 detJ=Jacobian surface(self,pc,x)*other dimension(self,pc,x);
0022 end
0023 end
Traction loads, such as prescribed pressure on part of the bounding surface, needs to be evaluated with
surface integrals. Quite analogously to the volume integration, the surface integrals are numerically evaluated
along curves, but the Jacobians are surface Jacobians. Compare with Figures 15.3 and 15.8: for instance,
for axial symmetry the surface Jacobian is
J
surf
(
k
) = 2x(
k
) det [J(
k
)] . (15.11)
3
Folder: SOFEA/classes/gcell/@gcell 2 manifold
15.7. THERMAL STRAINS IN TWO-DIMENSIONAL MODELS 165
Figure 15.8: Surface integration for axisymmetric analysis
For the two-dimensional models, the surface Jacobian is computed by the method Jacobian surface dened
for the class gcell 1 manifold.
0015 function detJ = Jacobian surface
4
(self, pc, x)
0016 if self.axisymm
0017 N = bfun(self,pc);
0018 xyz =N*x;
0019 detJ = Jacobian curve(self, pc, x)*2*pi*xyz(1);
0020 else
0021 detJ = Jacobian curve(self,pc,x)*other dimension(self,pc,x);
0022 end
0023 end
15.7 Thermal strains in two-dimensional models
The thermal strains must be of the form (12.34) as the two-dimensional models are require properly aligned
orthotropic constitutive relations. In order to properly dene the thermal strain loads (12.40), three ingredi-
ents are needed: the strain-displacement matrix, the material stiness, and the thermal strains. The former
two have been discussed before, it remains to outline the calculation of the thermal strains when the model
is reduced.
The plane stress model and the axially symmetric model may refer directly to the denition (12.34) as
the stress in the former is independent of the strain in the third direction, while all strains are incorporated
in the latter. On the other hand, in the plane strain model the stress depends on the strain in the z direction
(it must be zero), and nonzero thermal strain in the z direction will therefore have an eect which needs to
be incorporated into the reduced constitutive equation.
The relationship between the normal stresses and the normal strains may be written for the plane strain
model as a subset of the full three-dimensional relation
_
_

z
_
_
= [D]
(1:3),(1:3)
_
_
_
_

z
= 0
_
_

_
_

z
_
_
_
_
. (15.12)
Since we are not interested directly in
z
and since
z
= 0, we may write
_

x

y
_
= [D]
(1:2),(1:2)
__

x

y
_

_

x

y
__
[D]
(1:2),3

z
. (15.13)
Grouping the strains with the same meaning leads to
_

x

y
_
= [D]
(1:2),(1:2)
__

x

y
_

_

x

y
_
[D]
1
(1:2),(1:2)
[D]
(1:2),3

z
_
, (15.14)
4
Folder: SOFEA/classes/gcell/@gcell 1 manifold
166CHAPTER 15. REDUCED-DIMENSIONMODELS: PLANE STRAIN, PLANE STRESS, AXISYMMETRIC
Figure 15.9: Bimetallic assembly with thermal strain load
where

_

x

y
_
[D]
1
(1:2),(1:2)
[D]
(1:2),3

z
,
represents an eective in-plane thermal strain.
15.8 Examples
15.8.1 Thermal strains in a bimetallic assembly
Consider an assembly of two thin metal slabs, the inset is of aluminum, while the outer plate is of steel: see
Figure 15.9. The assembly is exposed to an increase of 70

C from the stress-free reference state. Of interest


are the deformations produced by the unequal coecients of thermal expansion. Due to the thinness of the
plate, we consider plane stress an adequate approximation. Because of two-way symmetry, only a quarter of
the plate is discretized.
The Matlab script alusteel
5
solves the problem with triangular adaptive meshes. The initial phases are
omitted for brevity, we just mention that two sets of properties, materials, and nite element blocks need to
be created because the assembly consists of two distinct materials.
The calculation proceeds by assuming that the thermal strains are generated by temperature distribution
described by a eld. Therefore, such eld is created, and all its degrees of freedom are set to the prescribed
temperature.
0063 dT = field(struct (name,[dT], dim, 1, ...
0064 data,zeros(length(fens),1)+70));
Both nite element blocks contribute to the stiness matrix, and the assembly is performed on the concate-
nated arrays of element stiness matrices produced for these two blocks. The thermal strains loads are again
computed for each block separately, and assembled into the global load vector.
0066 K = start (sparse sysmat, get(u, neqns));
0067 K = assemble (K, cat(2,stiffness(febs, geom, u),...
stiffness(feba, geom, u)));
0068 % Load
0069 F = start (sysvec, get(u, neqns));
0070 F = assemble (F, cat(2,thermal strain loads(feba, geom, u, dT),...
0071 thermal strain loads(febs, geom, u, dT)));
It might be of interest to point out how to visualize a particular stress component. The rst step is to create
the graphic viewer, class graphic viewer. The viewport is reset with the method reset.
0077 gv=graphic viewer;
0078 gv=reset (gv,struct (limits, [0, 100, -8, 40]));
0079 set(gca,FontSize, 12)
5
Folder: SOFEA/examples/thermo mechanical
15.8. EXAMPLES 167
0080 cmap=jet;
0081 cmpn=3;
Two elds are created by interpolating the stresses from the integration points to produce continuous rep-
resentations by estimating stress at the nite element nodes. This is inherently fraught with dangers, since
we know the stress is in general discontinuous at the nodes. The method field from integration points
of the class feblock defor ss uses inverse-distance interpolation. Two distinct elds are used, because the
elastic properties of the two materials are dierent along their common interface.
0082 flda = field from integration points(feba, geom, u, dT,
Cauchy, cmpn);
0083 flds = field from integration points(febs, geom, u, dT,
Cauchy, cmpn);
0084 nvalsa=get(flda,values);
0085 nvalss=get(flds,values);
0086 nvalmin =min(min(nvalsa),min(nvalss));
0087 nvalmax =max(max(nvalsa),max(nvalss));
An object to map values of the stress to colors, data colormap, is created and initialized with the range
of the stress. The stress is then mapped to another eld, colorfield, whose nodal parameters are colors.
The computed color eld is used to draw the geometric cells of the block feba, using the magnied (scaled)
displacement eld u so that the deformations are readily distinguishable. The same process is then repeated
for the block febs.
0088 dcm=data colormap(struct (range,[nvalmin,nvalmax],
colormap,cmap));
0089 colorfield=field(struct (name, [colorfield],
data,map data(dcm, nvalsa)));
0090 draw(feba, gv, struct (x,geom,u, scale*u,
colorfield,colorfield, shrink,1));
0091 % draw(feba, gv, struct (x,geom,u, 0*u, facecolor, none));
0092 colorfield=field(struct (name, [colorfield],
data,map data(dcm, nvalss)));
0093 draw(febs, gv, struct (x,geom,u, scale*u,
colorfield,colorfield, shrink,1));
The problem is solved for four dierent meshes, each time scaling the element size down by the factor 2.
The shear stress is shown in Figure 15.10. As can be seen, the stress highs are in the vicinity of the corner in
the assembly where the two materials meet. We should probably realize that the reentrant corner in the steel
piece is going to generate a stress singularity. To compute the largest stress then becomes futile: it tends
to innity, and any subsequent renement would only tend to cost more without any real improvements.
However, in any real design the corner would not really be sharp, there would be a radius to take care exactly
of such stress concentrations.
The Matlab script alusteelround
6
solves for deformation and stress in a modied geometry, with the
reentrant corner rounded to remove the stress singularity. The solution displayed in Figure 15.11 shows that
the shear stress is now convergent.
15.8.2 Orthotropic balloon
In this example we consider an elastic balloon, with orthotropic properties induced by reinforcing bers
along circles generated by rotation of particles around the axis of symmetry: see Figure 15.12. The balloon
is loaded by internal pressure. The model is based on the axial symmetry of the expected deformation. The
modeled section is hatched, as we use not only the axial symmetry, but also symmetry with respect to the
plane perpendicular to the axis of symmetry.
6
Folder: SOFEA/examples/thermo mechanical
168CHAPTER 15. REDUCED-DIMENSIONMODELS: PLANE STRAIN, PLANE STRESS, AXISYMMETRIC
Figure 15.10: Shear stress in the bimetallic assembly
Figure 15.11: Shear stress in the bimetallic assembly with rounded corner
15.8. EXAMPLES 169
Figure 15.12: Orthotropic balloon
0021 [fens,gcells]=block2d(rex-rin,pi/2,5,20, 0);
0022 for i = 1:length(gcells)
0023 gcells(i) = gcell Q4(struct(conn, get(gcells(i),conn),...
0024 axisymm, true));
0025 end
0026 bdry gcells = mesh bdry(gcells, struct(axisymm, true,
area, 0.0001));
0027 icl = gcell select(fens, bdry gcells, struct(box, [0,0,0,pi/2],
inflate,rin/100));
0028 for i=1:length (fens)
0029 xy=get (fens(i),xyz);
0030 r=rin+xy(1); a=xy(2);
0031 xy=[r*cos(a) r*sin(a)];
0032 fens(i)=set(fens(i),xyz, xy);
0033 end
The material model is based on the orthotropic property class, property linel ortho, but we choose to
material constants so that in the x, y plane the material is isotropic, and the material is therefore eectively
transversely isotropic.
0035 prop = property linel ortho(struct(E1,E1,E2,E2,E3,E3,...
0036 nu12,nu12,nu13,nu13,nu23,nu23,...
0037 G12,G12,G13,G13,G23,G23));
0038 % prop = property linel iso (struct(E,E1,nu,nu12));
0039 mater = mater defor ss linel biax (struct(property,prop, ...
0040 reduction,axisymm));
Two nite element blocks are created: feb collects the nite elements that represent a cross-section (quadri-
laterals), and efeb for the nite elements along the pressure-loaded edge (the inside of the balloon).
0042 feb = febf (struct (mater,mater, gcells,gcells,...
0043 integration rule,gauss rule (2, integration order)));
0044 efeb = febf (struct (mater,mater, gcells,bdry gcells(icl),...
0045 integration rule,gauss rule (1, 2)));
The boundary conditions are applied in the form o rollers on the axis of symmetry, and on the transverse
plane of symmetry.
0052 % First the plane of symmetry
0053 ebc fenids=fenode select (fens,struct(box,[0 rex 0 0],
inflate,rex/10000));
0054 ebc prescribed=ones(1,length (ebc fenids));
0055 ebc comp=ebc prescribed*0+2;
170CHAPTER 15. REDUCED-DIMENSIONMODELS: PLANE STRAIN, PLANE STRESS, AXISYMMETRIC
Figure 15.13: Orthotropic balloon
0056 ebc val=ebc fenids*0;
0057 u = set ebc(u, ebc fenids, ebc prescribed, ebc comp, ebc val);
0058 % The axis of symmetry
0059 ebc fenids=fenode select (fens,struct(box,[0 0 0 rex],
inflate,rex/10000));
0060 ebc prescribed=ones(1,length (ebc fenids));
0061 ebc comp=ebc prescribed*0+1;
0062 ebc val=ebc fenids*0;
0063 u = set ebc(u, ebc fenids, ebc prescribed, ebc comp, ebc val);
The force intensity object of class force intensity is given a function handle that corresponds to the
internal pressure applied radially. The method surface loads integrates the force intensity over the block
efeb of the edges on the internal surface, producing an array of element-load vectors.
0071 fi=force intensity(struct(magn,@(x) (p*x/norm(x))));
0072 F = start (sysvec, get(u, neqns));
0073 F = assemble (F, surface loads(efeb, geom, u, fi));
Figure 15.13 displays the deformed shape, which due to the reinforcing bers running in planes perpen-
dicular to the axis of symmetry assumes the general resemblance of a football. The circumferential stress is
displayed on the deformed shape, while the unformed shape is shown as shrunk outlines of the cross-section
elements.
15.9 Transient dynamic analysis
15.9.1 Centered dierence time stepping
In this section we introduce the explicit variant of the Newmark algorithm , the centered dierence
integrator. It will be convenient to derive the algorithm as if we were thinking of the motion of a particle
since to make it work for the nite element model, we just replace scalars with matrices. The starting point
is the well-known formula for the approximation of the second order derivative of the displacement
u
u
n+1
2u
n
+u
n1
t
= a
n
, (15.15)
where we introduce a name for the approximation, a
n
, which is the so-called algorithmic acceleration; also,
we use the time step t = t
n
t
n1
. Another way of computing this acceleration is from the equation of
motion (Newtons equation)
a
n
= M
1
f(t
n
, u
n
) = M
1
f
n
, (15.16)
where f
n
is the resultant force. Since we assume u
n
and u
n1
as the displacements of the particle at time
instants t
n
and t
n1
are known, we can use these two equations to solve for the next displacement, u
n+1
.
15.9. TRANSIENT DYNAMIC ANALYSIS 171
Figure 15.14: Graphical representation of the centered dierence denition of the velocity
However, it is slightly inconvenient to have to keep track of the previous displacement, u
n1
, especially
because it requires some ddling in the rst step.
A remedy is to use an intermediate variable, the algorithmic velocity. We dene, again using centered
dierences (see Figure 15.14),
v
n
=
u
n+1
u
n1
2t
. (15.17)
Therefore, we can express
u
n1
= 2tv
n
+u
n+1
, (15.18)
and substituting into (15.15), write the displacement
u
n+1
= u
n
+ tv
n
+
t
2
2
a
n
. (15.19)
It remains to determine how to push forward the algorithmic velocity. Combining the two equations (15.18)
and (15.19), written for the time instants t
n+2
, t
n+1
and t
n
v
n+1
=
u
n+2
u
n
2t
, u
n+2
= u
n+1
+ tv
n+1
+
t
2
2
a
n+1
, (15.20)
allows us to express u
n+2
in two ways, and obtain therefore an equation for v
n+1
v
n+1
= v
n
+
t
2
(a
n
+a
n+1
) . (15.21)
To summarize, the centered dierence algorithm now reads
Given: u
n
, v
n
, a
n
= M
1
f(t
n
, u
n
) (15.22)
Compute:
u
n+1
= u
n
+ tv
n
+
t
2
2
a
n
a
n+1
= M
1
f(t
n+1
, u
n+1
)
v
n+1
= v
n
+
t
2
(a
n
+a
n+1
)
As shown for instance in Reference [Hug00], this algorithm is only conditionally stable, meaning that it blows
up for time steps longer than a critical time step
t
crit
=
2
max
h
, (15.23)
where max
h
is the highest frequency of vibration in the discrete system. Coarser estimates of t
crit
are
available also from the vibration frequencies of the individual elements in the mesh, or as the smallest time
interval needed to travel the distance between nite element nodes by an elastic wave.
172CHAPTER 15. REDUCED-DIMENSIONMODELS: PLANE STRAIN, PLANE STRESS, AXISYMMETRIC
Figure 15.15: Cylindrical rod with the spherical cavity
15.9.2 Example: stress wave propagation
In this section, we will use the centered dierence algorithm to obtain a transient solution for the problem
of a wave propagating through a cylindrical rod in which there is a spherical cavity. We would expect to
see reections of the stress wave o the free surface of the cavity. Refer to Figure 15.15. The Matlab script
pressrecho
7
solves the problem as axially symmetric, using linear triangles. The issue of convergence is not
being addressed, but in any serious investigation it certainly should be: as we know now, the linear triangles
are not very accurate.
The mesh is created in the axially symmetric domain with the automatic mesh generator. Note that
an options structure is being passed to make all the generated triangles axisymmetric: struct(axisymm,
true).
0014 [fens,gcells,groups,edge gcells,edge groups]=targe2 mesher(...
0015 ...
0025 , 1.0,struct(axisymm, true));
The property, material, and nite element block, geometry eld and displacement eld objects are created
in the usual way. Displacement boundary condition is applied only along the axis of symmetry.
Next, another eld is created by copying the displacement eld: it is the initial velocity v, and copying it
from the displacement eld means that also the numbers of equations are now available in the velocity eld.
These are used later to retrieve the system vector initialized in the proper places with the initial velocity.
In this example, the initial velocity is imparted to the nodes on the bottom cross-section to simulate for
instance an impact.
0050 v = u;% copy everything from displacement field to velocity
0051 fenids=fenode select (fens,struct(box,[0 15 -25 -25],inflate,1/100));
0052 for j=1:length(fenids)
0053 xy= get (fens(fenids(j)),xyz);
0054 v = scatter(v,fenids(j),[0, 1]*vmag);
0055 end
The stiness and mass matrices are assembled: note that the mass is assembled as a diagonal matrix. That
aords the best eciency, since all the solutions of the type A0 =Mmat(-Kmat*U0) are then very quick
indeed. The diagonalization is eected by lumping the element mass matrices using the row-sum technique.
0056 % Assemble the system matrix
0057 K = start (sparse sysmat, get(u, neqns));
0058 K = assemble (K, stiffness(feb, geom, u));
0059 M = start (sparse sysmat, get(u, neqns));
0060 ems=mass(feb, geom, u);
0061 for j=1:length(ems)
0062 Me=get(ems(j),mat);
0063 ems(j)=set(ems(j),mat,diag(sum(Me)));
7
Folder: SOFEA/stress/2-D
15.9. TRANSIENT DYNAMIC ANALYSIS 173
0064 end
0065 M = assemble (M, ems);
The initial values for the integration are established next.
0068 Kmat = get(K,mat);
0069 Mmat = get(M,mat);
0070 U0 = gather sysvec(u);
0071 V0= gather sysvec(v);
0072 A0 =Mmat(-Kmat*U0);
The critical time step is calculated by computing the largest natural frequency of the discrete system. This
might not be a good idea for a very large systems, since the eigenvalue solution takes time.
0074 o2=eigs(Kmat,Mmat,1,LM);
0075 dt= 0.899* 2/sqrt(o2)
The loop really transcribes the algorithm (15.22) more or less literally. A minor addition is the re-initialization
after each step (lines 0088-0090).
0083 while t <tfinal
0084 t=t+dt;
0085 U1 = U0 +dt*V0+(dt^2)/2*A0;
0086 A1 = Mmat(-Kmat*U1);
0087 V1 = V0 +dt/2* (A0+A1);
0088 U0 = U1;
0089 V0 = V1;
0090 A0 = A1;
0091 ...
0106 end
0107 end
Figure 15.16 illustrates the pressure at equally spaced time intervals (red is positive pressure, blue is negative).
Given the fairly limited resolution (approximately 30 elements radially), the results are far from smooth,
but still aord a qualitative picture of a pressure echo. The graphics postprocessing is easily the most
time-intensive operation; the time stepping itself takes just 40 seconds.
174CHAPTER 15. REDUCED-DIMENSIONMODELS: PLANE STRAIN, PLANE STRESS, AXISYMMETRIC
Figure 15.16: Propagation of a stress wave through an axially symmetric bar with a spherical cavity. Dis-
played is the pressure at equally spaced time intervals
Chapter 16
Convergence
Let us assume the elasticity problem we wish to solve has a nice and smooth exact solution. What are
the conditions for a nite element model to converge to this exact solution in the limit of the mesh size
approaching zero? Even though we are never going to be truly close to this limit, we need to know that it
is possible to approach it.
For the simple nite element models that are considered in this book, there are two sucient conditions
for convergence to occur: consistency and stability.
16.1 Consistency
Consistency is really just a front for two individual requirements. We can put it in the form of a formal
equation
Consistency = Completeness + Compatibility
For deniteness, the following discussion will be centered around the model of elasticity (statics), but the
conclusions may be extended to other problems more or less readily.
16.1.1 Completeness
A key quantity in the elasticity model are the strains. The completeness requirement aims to ensure that
all possible constant strains within an element are represented exactly. (When we say all possible constant
strains, we also mean zero strains rigid body motion.) To build on intuition: imagine being able to observe
the strains on a deforming structure as a continuous eld (Figure 16.1). When we observe the whole structure,
the level curves of the strains are very complex, but as we look closer on a smaller and smaller pieces of the
structure, the variations in the strains become less and less distinguishable. (This is the same principle as
in the truncated Taylor series.) In other words, looking close enough we see material experiencing constant
strain. If this material was enclosed in a nite element, we would want the nite element to be able to
represent this state.
Figure 16.1: Strain telescope
175
176 CHAPTER 16. CONVERGENCE
Figure 16.2: Incompatible arrangement of elements
Since the strains are obtained as combinations of the rst derivatives of the displacements, we conclude
that for the element to be able to represent constant strain, it must be able to produce linear polynomials
exactly. Clearly, the simplex elements (L2, T3, T4) satisfy this requirement by construction. However, it is
easy to verify that all the iso-parametric elements discussed in this book reproduce exactly linear functions:
Assume a linear function in this form
f(x) = ax +b ,
where a is a constant row matrix, and b a constant. Now write a nite element interpolation of the function
f as

h
f(x) =
M

k=1
N
k
(x)f
k
.
Provided the degrees of freedom are set as
f
k
= ax
k
+b ,
where x
k
are the position vectors of the nodes, we have

h
f(x) =
M

k=1
N
k
(x)f
k
=
M

k=1
N
k
(x) [ax
k
+b] .
But due to the partition of unity property (6.15) and to the interpolation of the Cartesian coordinates (6.16)
we have

h
f(x) =
M

k=1
N
k
(x) [ax
k
+b] = a
M

k=1
N
k
(x)x
k
+b
M

k=1
N
k
(x) = ax +b = f(x) .
Therefore, all the nite elements that satisfy (6.15) and (6.16) are complete in the sense discussed in this
paragraph.
16.1.2 Compatibility
The elasticity mathematical model describes material which does not separate or fracture. Therefore, also the
nite element model must preserve continuity of material. The basis functions within an element describe
how particles within the connes of the element move. Since all the basis functions we discussed were
continuous inside the element, the compatibility requirement is satised inside the element. However, we
also need to insure that the material does not experience overlaps or ssures where the individual elements
meet. Therefore, we formulate the compatibility requirement along the edges (faces or vertices): all elements
meeting along an edge (along a face, or at a vertex) of the mesh must describe the displacements in the same
way. Thus, mixing together three-node and six-node triangles could result in gaps opening in the material
(compare with Figure 16.2), because along an edge the displacement is a linear function from one side, and
a quadratic function from the other. And if such gaps proliferated in the mesh, there would be a portion of
energy improperly accounted for, since these gaps do not exist in the mathematical model of the structure.
16.2. STABILITY 177
16.2 Stability
Stability determines uniqueness of the nite element solution. The mathematical model of elasticity does
not admit solutions for the displacement that do not produce positive energy other than rigid body motion.
(Provided the material is stable: the material stiness matrix must be positive denite.) Therefore, the nite
element model must not have built-in zero-energy modes other than rigid-body modes. In addition, on
the level of the nite element system we would remove all rigid body modes before a solution is attempted:
the global stiness matrix should not be singular.
Therefore, the stability requirement is essentially reduced to demanding that the element stiness matrices
be of proper rank, which means of rank that allows only for zero-energy modes in the form of rigid body
motion. The element stiness matrix K
e
which links together n degrees of freedom (all the displacement
components at all the nodes) should have rank
rankK
e
= n n
RBM
,
where n
RBM
is the number of rigid body modes the element possesses (=6 in 3-D, and so on). To dig deeper,
we recall equation (12.45), which we supplement with numerical quadrature
K
e
=
_
Ve
B
eT
DB
e
dV

k
B
e
(
k
)
T
D(
k
)B
e
(
k
)J(
k
)w
k
, (16.1)
Assuming the full rank of the material stiness matrix (positive denite!), the requirement that the element
stiness matrix have a proper rank may be translated into a counting procedure for the integration points:
each quadrature point adds
B
e
(
k
)
T
D(
k
)B
e
(
k
)J(
k
)w
k
which has the rank of rankD(
k
), with the provisions J(
k
) ,= 0, and w
k
,= 0. If each quadrature point
increases the rank of K
e
by rankD(
k
), the requisite number of integration points will be
n
qp

n n
RBM
rankD
. (16.2)
For instance, for the quadratic Tetrahedron T10, the number of quadrature points should be
n
qp

30 6
6
= 4 ,
and that is indeed satised by the four-point rule from Table 9.2.
It should be noted that the Jacobian could throw a wrench into the works. Figure 16.3 shows a few possible
shapes of a quadratic triangle obtained by shifting the mid-side nodes. The center triangle represents the
situation in which we wish to adjust the location of a node in order to better approximate curved boundaries.
On the other hand, the triangle on the left is produced by shifting mid-side nodes inwards excessively so
that the surface of the triangle is turned inside out, resulting in negative Jacobian in the corner regions (zero
Jacobian where the edges intersect). The triangle on the right is obtained by shifting the mid-side node
along the edge towards the corner. Beyond a certain point, the Jacobian again becomes negative around the
corner. (To realize what is happening, note that a parabolic arc needs to be passed through the three nodes
along an edge.) Negative Jacobians are a problem, both in terms of the rank of the element stiness matrix,
and in terms of the interpretation of the strains produced on such elements.
16.2.1 Conclusion
The following formal equality has been coined for nite dierence methods, but will also work for the nite
elements here:
Consistency + Stability = Convergence.
Some of these requirements may be mollied, and there may be good reasons for doing so: for instance,
improving performance on coarse meshes by relaxing the constraints on the compatibility. However, as a
general guide towards convergent approximations in elasticity, the above dictum will be a safe starting point.
178 CHAPTER 16. CONVERGENCE
Figure 16.3: Shapes of quadratic triangles produced by moving mid-side nodes away from the average of the
locations of the corner nodes
Appendix A
Appendix: GNU Free Documentation
License
Version 1.2, November 2002
Copyright c 2000,2001,2002 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not
allowed.
Preamble
The purpose of this License is to make a manual, textbook, or other functional and useful document free in the
sense of freedom: to assure everyone the eective freedom to copy and redistribute it, with or without modifying it,
either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to
get credit for their work, while not being considered responsible for modications made by others.
This License is a kind of copyleft, which means that derivative works of the document must themselves be free
in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free
software.
We have designed this License in order to use it for manuals for free software, because free software needs free
documentation: a free program should come with manuals providing the same freedoms that the software does. But
this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter
or whether it is published as a printed book. We recommend this License principally for works whose purpose is
instruction or reference.
1. APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright
holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free
license, unlimited in duration, to use that work under the conditions stated herein. The Document, below, refers
to any such manual or work. Any member of the public is a licensee, and is addressed as you. You accept the
license if you copy, modify or distribute the work in a way requiring permission under copyright law.
A Modied Version of the Document means any work containing the Document or a portion of it, either
copied verbatim, or with modications and/or translated into another language.
A Secondary Section is a named appendix or a front-matter section of the Document that deals exclusively
with the relationship of the publishers or authors of the Document to the Documents overall subject (or to related
matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part
a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a
matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical
or political position regarding them.
The Invariant Sections are certain Secondary Sections whose titles are designated, as being those of Invariant
Sections, in the notice that says that the Document is released under this License. If a section does not t the above
179
180 APPENDIX A. GNU FREE DOCUMENTATION LICENSE
denition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant
Sections. If the Document does not identify any Invariant Sections then there are none.
The Cover Texts are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts,
in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5
words, and a Back-Cover Text may be at most 25 words.
A Transparent copy of the Document means a machine-readable copy, represented in a format whose speci-
cation is available to the general public, that is suitable for revising the document straightforwardly with generic text
editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing
editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for
input to text formatters. A copy made in an otherwise Transparent le format whose markup, or absence of markup,
has been arranged to thwart or discourage subsequent modication by readers is not Transparent. An image format
is not Transparent if used for any substantial amount of text. A copy that is not Transparent is called Opaque.
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format,
LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML,
PostScript or PDF designed for human modication. Examples of transparent image formats include PNG, XCF and
JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors,
SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated
HTML, PostScript or PDF produced by some word processors for output purposes only.
The Title Page means, for a printed book, the title page itself, plus such following pages as are needed to
hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have
any title page as such, Title Page means the text near the most prominent appearance of the works title, preceding
the beginning of the body of the text.
A section Entitled XYZ means a named subunit of the Document whose title either is precisely XYZ or
contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a
specic section name mentioned below, such as Acknowledgements, Dedications, Endorsements, or
History.) To Preserve the Title of such a section when you modify the Document means that it remains a
section Entitled XYZ according to this denition.
The Document may include Warranty Disclaimers next to the notice which states that this License applies to
the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as
regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no
eect on the meaning of this License.
2. VERBATIM COPYING
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided
that this License, the copyright notices, and the license notice saying this License applies to the Document are
reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not
use technical measures to obstruct or control the reading or further copying of the copies you make or distribute.
However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies
you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display copies.
3. COPYING IN QUANTITY
If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering
more than 100, and the Documents license notice requires Cover Texts, you must enclose the copies in covers that
carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the
back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover
must present the full title with all words of the title equally prominent and visible. You may add other material on
the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document
and satisfy these conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to t legibly, you should put the rst ones listed (as many
as t reasonably) on the actual cover, and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a
machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-
network location from which the general network-using public has access to download using public-standard network
protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you
must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this
Transparent copy will remain thus accessible at the stated location until at least one year after the last time you
distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.
181
It is requested, but not required, that you contact the authors of the Document well before redistributing any
large number of copies, to give them a chance to provide you with an updated version of the Document.
4. MODIFICATIONS
You may copy and distribute a Modied Version of the Document under the conditions of sections 2 and 3 above,
provided that you release the Modied Version under precisely this License, with the Modied Version lling the role
of the Document, thus licensing distribution and modication of the Modied Version to whoever possesses a copy
of it. In addition, you must do these things in the Modied Version:
A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of
previous versions (which should, if there were any, be listed in the History section of the Document). You may
use the same title as a previous version if the original publisher of that version gives permission.
B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modications
in the Modied Version, together with at least ve of the principal authors of the Document (all of its principal
authors, if it has fewer than ve), unless they release you from this requirement.
C. State on the Title page the name of the publisher of the Modied Version, as the publisher.
D. Preserve all the copyright notices of the Document.
E. Add an appropriate copyright notice for your modications adjacent to the other copyright notices.
F. Include, immediately after the copyright notices, a license notice giving the public permission to use the
Modied Version under the terms of this License, in the form shown in the Addendum below.
G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Docu-
ments license notice.
H. Include an unaltered copy of this License.
I. Preserve the section Entitled History, Preserve its Title, and add to it an item stating at least the title, year,
new authors, and publisher of the Modied Version as given on the Title Page. If there is no section Entitled
History in the Document, create one stating the title, year, authors, and publisher of the Document as given
on its Title Page, then add an item describing the Modied Version as stated in the previous sentence.
J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the
Document, and likewise the network locations given in the Document for previous versions it was based on.
These may be placed in the History section. You may omit a network location for a work that was published
at least four years before the Document itself, or if the original publisher of the version it refers to gives
permission.
K. For any section Entitled Acknowledgements or Dedications, Preserve the Title of the section, and preserve
in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given
therein.
L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers
or the equivalent are not considered part of the section titles.
M. Delete any section Entitled Endorsements. Such a section may not be included in the Modied Version.
N. Do not retitle any existing section to be Entitled Endorsements or to conict in title with any Invariant
Section.
O. Preserve any Warranty Disclaimers.
If the Modied Version includes new front-matter sections or appendices that qualify as Secondary Sections and
contain no material copied from the Document, you may at your option designate some or all of these sections as
invariant. To do this, add their titles to the list of Invariant Sections in the Modied Versions license notice. These
titles must be distinct from any other section titles.
You may add a section Entitled Endorsements, provided it contains nothing but endorsements of your Mod-
ied Version by various partiesfor example, statements of peer review or that the text has been approved by an
organization as the authoritative denition of a standard.
You may add a passage of up to ve words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover
Text, to the end of the list of Cover Texts in the Modied Version. Only one passage of Front-Cover Text and one
of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already
includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you
are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the
previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use their names for
publicity for or to assert or imply endorsement of any Modied Version.
182 APPENDIX A. GNU FREE DOCUMENTATION LICENSE
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under this License, under the terms dened in
section 4 above for modied versions, provided that you include in the combination all of the Invariant Sections of
all of the original documents, unmodied, and list them all as Invariant Sections of your combined work in its license
notice, and that you preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be
replaced with a single copy. If there are multiple Invariant Sections with the same name but dierent contents, make
the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or
publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the
list of Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections Entitled History in the various original documents, forming
one section Entitled History; likewise combine any sections Entitled Acknowledgements, and any sections Entitled
Dedications. You must delete all sections Entitled Endorsements.
6. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents released under this License, and
replace the individual copies of this License in the various documents with a single copy that is included in the
collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all
other respects.
You may extract a single document from such a collection, and distribute it individually under this License,
provided you insert a copy of this License into the extracted document, and follow this License in all other respects
regarding verbatim copying of that document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate and independent documents or works, in
or on a volume of a storage or distribution medium, is called an aggregate if the copyright resulting from the
compilation is not used to limit the legal rights of the compilations users beyond what the individual works permit.
When the Document is included in an aggregate, this License does not apply to the other works in the aggregate
which are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document
is less than one half of the entire aggregate, the Documents Cover Texts may be placed on covers that bracket the
Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise
they must appear on printed covers that bracket the whole aggregate.
8. TRANSLATION
Translation is considered a kind of modication, so you may distribute translations of the Document under the
terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright
holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these
Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and
any Warranty Disclaimers, provided that you also include the original English version of this License and the original
versions of those notices and disclaimers. In case of a disagreement between the translation and the original version
of this License or a notice or disclaimer, the original version will prevail.
If a section in the Document is Entitled Acknowledgements, Dedications, or History, the requirement
(section 4) to Preserve its Title (section 1) will typically require changing the actual title.
9. TERMINATION
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this
License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically
terminate your rights under this License. However, parties who have received copies, or rights, from you under this
License will not have their licenses terminated so long as such parties remain in full compliance.
10. FUTURE REVISIONS OF THIS LICENSE
183
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from
time to time. Such new versions will be similar in spirit to the present version, but may dier in detail to address
new problems or concerns. See http://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number. If the Document species that a particular
numbered version of this License or any later version applies to it, you have the option of following the terms and
conditions either of that specied version or of any later version that has been published (not as a draft) by the Free
Software Foundation. If the Document does not specify a version number of this License, you may choose any version
ever published (not as a draft) by the Free Software Foundation.
ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of the License in the document and put the
following copyright and license notices just after the title page:
Copyright c YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this docu-
ment under the terms of the GNU Free Documentation License, Version 1.2 or any later version published
by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts. A copy of the license is included in the section entitled GNU Free Documentation License.
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the with...Texts. line with
this:
with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and
with the Back-Cover Texts being LIST.
If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two
alternatives to suit the situation.
If your document contains nontrivial examples of program code, we recommend releasing these examples in
parallel under your choice of free software license, such as the GNU General Public License, to permit their use in
free software.
184 APPENDIX A. GNU FREE DOCUMENTATION LICENSE
Bibliography
[Barber] Barber, J. R., Elasticity, Kluwer Academic Publishers, reprint edition 1999.
[Blevins] Blevins, R. D., Formulas for Natural Frequency and Mode Shape, Krieger publishing company,
reprint edition 2001.
[BS89] Bogacki, P. and L. F. Shampine, A 3(2) pair of Runge-Kutta formulas, Appl. Math. Letters, Vol.
2, 1989, pp 1-9.
[CCS] A.D. CAMERON, J.A. CASEY, G.B. SIMPSON: Benchmark Tests for Thermal Analyses,
NAFEMS Documentation.
[CC2005] Chapra, SC and RP Canale: Numerical Methods for Engineers. McGraw-Hill (2005)
[Gra91] Gra, KF: Wave motion in elastic solids. Dover publications, New York (1991)
[Hug00] Hughes, TJR: The nite element method. Linear static and dynamic nite element analysis. Dover
publications, New York (2000).
This book is a must-read for anyone serious about learning nite element analysis properly. Metic-
ulously written, and brimming with insights. Quite mathematical.
[IL05] http://www.infolytica.com/en/coolstuff/ex0047/
[LL05] John H. Lienhard IV, and John H. Lienhard V, A Heat Transfer Textbook, 3rd edition,
http://web.mit.edu/lienhard/www/ahtt.html
[Pete] Pilkey, W. D.: Petersons Stress Concentration Factors. John Wiley & Sons, second edition, 1997.
[Sok] Sokolniko, I.S.: Mathematical Theory of Elasticity. Krieger publishing company. Reprint edition
1983.
[TimH] Timoshenko, S. P.: History of Strength of Materials. Dover, 1983.
[TimWoi] Timoshenko, S. P. and S. Woinowsky-Krieger: Theory of Plates and Shells. McGraw-Hill.
[ZiTa1] Zienkiewicz, O C and R L Taylor. The nite element method. Vol. I. Basic formulations and linear
problems. London: McGraw-Hill, 1989.
This book is a classic.
185
Index
hadaptive renement method, 88
padaptive renement method, 88
OBgui, 19
adaptive mesh control, 92
adaptive renement, 88
anisotropic material, 125
anti-symmetry, 111, 112
argument
passed by value, 18
assembly, 51
asymptotic range, 90
average acceleration method, 23
axial symmetry, 160, 166
axisymmetric, 160, 166
balance equation, 3
global, 34
local, 34
balance of angular momentum, 101
balance of linear momentum, 98
balance residual, 7
barycenter, 92
basis function
derivative, 49
triangle T3, 43
triangle T6, 76
basis functions, 11
body load, 123
boundary condition
displacement, 109
essential, 5, 35, 109
natural, 5, 36, 109
overspecied, 27
sucient, 36
traction, 109
boundary conditions, 4
Boussinesq, 110
Bubnov-Galerkin method, 7
bulk modulus, 140
capacity matrix, 46
Cauchy stress tensor, 100
centered dierence, 170
chain rule, 15
change of coordinates in integrals, 50
circular frequency, 20
class
body load, 19
data colormap, 167
dense sysmat, 19, 51
elemat, 51, 53
feblock defor ss, 130, 134, 167
feblock diffusion, 51, 60
feblock, 18, 50, 78, 130
field, 18, 70, 121
force intensity, 170
gauss rule, 83
gcell 1 manifold, 56, 165
gcell 2 manifold, 163, 164
gcell 3 manifold, 130
gcell H20, 145
gcell H8, 139
gcell T3, 49
gcell, 48
graphic viewer, 166
mater defor ss linel biax, 162
mater defor ss linel triax, 134
property linel iso, 134
property linel ortho, 169
property linel transv iso, 136
sparse sysmat, 51
sysvec, 19
tet rule, 82, 134
tri rule, 60, 82
fenode, 17
class method
Blmat, 129, 163
Jacobian curve, 56
Jacobian surface, 50, 56, 79, 164, 165
Jacobian volume, 52, 131, 164
Jacobian, 79, 131
apply ebc, 18
assemble, 51
bfundpar, 49
bfundsp, 48
bfun, 49, 139, 145
conductivity, 51
field from integration points, 167
gather, 19
get, 19, 83
186
INDEX 187
material directions, 53, 131
measure, 78
numbereqns, 18
other dimension, 164
property diffusion, 60
scatter sysvec, 19
set ebc, 18
stiffness, 130
surface loads, 170
surface transfer loads, 57
surface transfer, 56
tangent moduli, 162
Clough, 42
coecient of thermal expansion, 127
compatibility, 176
completeness, 175
compliance matrix, 125
concentrated force, 110
conductivity matrix, 46
connectivity, 17
consistency, 175
consistent mass matrix, 20
constitutive equation, 107, 127
constructor, 17
contact, 114
control volume, 33
convergence, 20, 175
convergence rate, 89
convex hull, 82
Courant, 42
Crank-Nicholson method, 68
critical time step, 171
cross product, 49, 79
curved boundaries, 177
curved boundary
approximation, 45
degree of freedom, 13
deviatoric strain, 140
diagonal mass matrix, 15
dilatational locking, 140
Dirac delta function, 9
displacement, 105
displacement boundary condition, 109
divergence theorem, 34, 102, 104, 118
dynamic equilibrium, 104
dynamic force equilibrium, 122
dynamic method dispatch, 56, 78
eigenmode, 20
eigenvalue, 100
elastic coecients, 107
energy of deformation, 107
equation number, 123
error
heat ux, 92
essential boundary condition, 5, 25, 35
ber-reinforced composite, 125
nite dierence
backward Euler, 68
forward Euler, 68
nite element, 12
edge, 42
H20, 143
H8, 83, 139
isoparametric, 47
L2, 12
L3, 77
node, 12, 42
P1, 77
Q4, 82
Q8, 146
T10, 137
T3, 49
T4, 80, 133
T6, 75
nite element mesh, 12
ux boundary condition, 36
ux variable, 107
free vibration, 20, 133
Galerkin method, 7
Gaussian integration rule, 83
generalized eigenvalue problem, 20
generalized trapezoidal method, 67
geometric cells, 18
gradient, 35
hat function, 42
heat
conduction, 33
diusion, 33
heat energy, 33
heat ux, 33
inadmissible boundary condition, 110
incompressible material, 140
inertial force, 104, 123
inertial load, 123
inextensional bending, 148
innite half space, 110
initial boundary value problem, 5
initial conditions, 5
integration by parts, 10
integration rule
tetrahedron, 81
triangle, 50, 76
interpolation, 11, 85
188 INDEX
isoparametric element, 47
isotropic material, 35, 126
Jacobian, 48, 50, 79, 177
negative, 177
surface, 56, 164
volume, 53, 164
Jacobian determinant, 14
Jacobian matrix, 47, 49
kinematically admissible displacement, 119
Kronecker delta, 13, 76
Lagrange interpolation polynomial, 12
Lame constant , 126
linear elasticity, 107
linear momentum, 97
locking
dilatational, 140
shear, 142
lumped mass matrix, 20
manifold dimension, 77, 78
map
of areas, 50
of points, 49
of vectors, 49
mass density, 102
mass matrix, 11
consistent, 11, 20, 123
lumped, 20, 172
material curve, 105
material orientation matrix, 53, 125, 129, 131
material point, 105
material stiness, 107
Matlab script
lshape2, 89
lshape3ad, 90
lshape3, 89
alusteelround, 167
alusteel, 166
clsqconc, 142
drum t10, 138
drum t4, 133
helixcooled, 81
lshape1, 59
pinchcyl, 146
pinchsphere, 148
pressrecho, 172
shrinkfit, 71
squareinsquare, 62
t3nafems, 69
t4nafems conv, 90
t4nafems, 64
test measure, 80
transcool, 78
twist t10, 138
twist t4, 135
w1, 17
woverspec, 28
wtransient1, 21
wtransient2, 23
wvib, 20
membrane, 159
mesh generator targe2 mesher, 59
mesh size, 85
method
backward Euler, 68
Crank-Nicholson, 68
forward Euler, 68
modal equations, 125
modeling error, 108
motion, 105
natural boundary condition, 5, 25, 36
natural frequency, 20
Neumann problem, 27, 37
Newmark algorithm, 23, 170
explicit, 15, 170
Newmark average-acceleration integrator, 23, 125
Newmark integrator, 23
Newtons equation of motion, 97
Newtons law, 3
node, 12
nonzero-displacement load, 124
normal strain, 104
normal stresses, 100
notch, 151
numerical quadrature, 13
point, 78
triangles, 50
order-of, 87
ordinary dierential equations, 11
orthogonal matrix, 129
orthotropic material, 35, 125
outer normal, 33
parametric coordinates, 14
particle, 97
partition of unity, 43, 145
piecewise linear, 9
piecewise linear approximation, 11
plane strain, 108, 157
plane stress, 159
plate, 143
point support, 110
Poissons ratio , 126
polymorphism, 78
pressure, 108
INDEX 189
primary variable, 107
principal direction, 100
principal stress, 100
principle of virtual work, 119
pure-traction problem, 27, 37, 113
quadratic form, 107, 113
positive semi-denite, 113
quadrature point, 13
quality measure
triangle, 88
rate of convergence, 89, 90
rate of heat generation, 34
reaction, 26, 119
reactions, 108
reduction
dimension, 40
reentrant corner, 89
reection, 111
residual, 7, 9, 39
balance, 39
resisting force, 124
Richardson extrapolation, 90
rigid body
rotation, 113
translation, 113
rigid body motion, 177
rotation matrix, 53, 125, 129
Runge-Kutta ODE integrator, 22
Saint-Venants principle, 114
selective reduced integration, 142
serendipity elements, 143
shear locking, 142
shear modulus, 126
shear stiness
excessive, 142
shear strain, 104
shear stresses, 100
shear tractions, 114
simplex element, 82
Simpsons 1/3 rule, 13
singular stiness matrix, 27
singularity, 89
strength, 151
skew-symmetric matrix, 79
smoothness, 10
sparse matrix, 11
specic heat, 34
stability
conditional, 171
stable material, 177
standard cube, 83
standard interval, 14, 54, 83
standard tetrahedron, 80
standard triangle, 43, 75
static equilibrium, 17
stiness
singular, 113
stiness matrix, 11, 124, 130
strain
deviatoric, 140
dilatational, 140
distortional, 140
volumetric, 140
strain displacement operator, 125
strain tensor, 106
strain-displacement matrix, 128, 129
strain-displacement operator, 106
strains, 99
stress, 99
interpretation, 153
normal, 100
shear, 100
singular, 151
stress concentration, 154
stress divergence, 104
stress interpolation, 167
stress raiser, 154
stress singularity, 167
stress-divergence operator, 104, 158
stretch, 104
surface heat transfer matrix, 47
surface traction load, 124
symmetric gradient operator, 104, 106, 125
symmetric matrix, 11
symmetry, 111
tangent to material curve, 105
tangent vector, 49, 55, 79, 131
taut string, 3
Taylor series, 85
temperature gradient, 35
tensor, 100
tent, 42
test function, 8, 118
tetrahedron
linear, 80
quadratic, 137
standard, 80, 137
thermal conductivity, 35
thermal expansion, 127
thermal strain, 127
thermal strain load, 127, 165, 166
thermal strains, 165
thermal stress, 127
traction, 97
traction boundary condition, 109
190 INDEX
traction-free, 108
transformation matrix, 53, 125
transformation of vector components, 129
transversely isotropic material, 126
Trapezoidal ODE integrator, 23
trapezoidal rule, 23
trial function, 9, 11
trial-and-test approximate method, 9
triangle
linear, 47, 49
quadratic, 75
standard, 43, 75
triangulation, 42
uniqueness, 177
utility
T4 to T10, 139
block1d, 69
drawmesh, 82
fenode select, 60
gaussquad, 83
mesh bdry, 82, 83
richextrapol, 90
transform apply, 81
vector-stress vector dot product operator, 101, 118
virtual displacement, 119
virtual work, 119
volumetric strain, 140
wedge, 151
weighted residual equation
stress analysis, 119
weighted residual method, 8
work, 107
work-conjugate, 108
Youngs modulus E, 126
zero-energy mode, 177

You might also like