0% found this document useful (0 votes)
67 views

Computational Solid Mechanics Lecture Notes

Lecture notes on computational aspects of solid mechanics
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
67 views

Computational Solid Mechanics Lecture Notes

Lecture notes on computational aspects of solid mechanics
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 108

Computational Solid Mechanics (151-0519-00L) December 12, 2017

Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Computational Solid Mechanics


(Fall 2017)

Dennis M. Kochmann

Mechanics & Materials


Department of Mechanical and Process Engineering
ETH Zürich

course website:
www.mm.ethz.ch/teaching.html

P=P (Ñu)
Uh material model (Wk , xk) quadrature
C= C (Ñu) rule

solver:
P, C Ñu (xk)
h
Fint(U ) - Fext= 0
4 local nodes
ue 4
h 3 {1,2,3,4}
1
h
Ui Fint, T Fint,e element x
assembler: xk quadrature
1 2
points

12 Fint,e Ue
ess. BCs ux = 0
global nodes
{18,19,32,30}
30 32
y
x element We
18
Fint 18 19

19
u
mesh:
nodes = {{1, (0,0)}, {2, (0.5,1.2)}, ...} SpatialDimension: 2D
connectivity = {{1,2,13,12}, ..., {18,19,32,30}, ...} DegreesOfFreedom: 2 (ux, uy)

Copyright © 2017 by Dennis M. Kochmann

1
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

These lecture notes are a concise collection of equations and comments. They are by no
means a complete textbook or set of class notes that could replace lectures.

Therefore, you are strongly encouraged to take your own notes during lectures and to use this
set of notes rather for reference.

2
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Contents

1 Introduction: Continuum Mechanics and Notation 6


1.1 An introductory example: heat conduction . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 A more advanced example: mechanical equilibrium . . . . . . . . . . . . . . . . . . 9
1.3 A special case: linearized kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4 Summary and Looking Ahead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2 Numerical Methods 16

3 Variational Calculus 18
3.1 Functionals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2 Variations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3 Example: Hanging bar under its own weight . . . . . . . . . . . . . . . . . . . . . . 20
3.4 Example: Static Heat Conduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4 The weak form 24


4.1 Classical and weak solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2 Equivalence of strong and weak forms . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.3 Approximate solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

5 The mechanical variational problem 28


5.1 Linearized kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.2 Finite kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.3 Thermal problem revisited . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.4 A simple example: nonlinear springs . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

6 Interpolation spaces 33

7 The Finite Element Method 35

8 Finite element spaces: polynomial shape functions in 1D 37


8.1 One dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
8.2 Example: linear elastic bar in 1D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
8.3 Higher dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

9 Simplicial elements 40
9.1 Linear Triangle (T3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
9.2 Extension to three dimensions: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
9.3 Finite element implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
9.4 Higher-order triangles and tetrahedra: . . . . . . . . . . . . . . . . . . . . . . . . . . 42

10 The bilinear quadrilateral element 44

11 Numerical quadrature 47
11.1 Example: Riemann sums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
11.2 Gauss quadrature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
11.2.1 Gauss-Legendre quadrature . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
11.2.2 Other Gauss quadrature rules . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
11.3 Higher dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

11.4 Finite element implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52


11.5 Quadrature error estimates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
11.6 Quadrature rules for simplicial elements: . . . . . . . . . . . . . . . . . . . . . . . . . 52
11.7 Which quadrature rule to use? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

12 Generalization and implementation of the simplicial elements 54

13 Assembly 55

14 Overview: Numerical Implementation 56

15 Iterative solvers 58
15.1 Netwon-Raphson (NR) method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
15.2 Damped Newton-Raphson (dNR) method . . . . . . . . . . . . . . . . . . . . . . . . 59
15.3 Quasi-Newton (QN) method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
15.4 Line search method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
15.5 Gradient flow method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
15.6 Nonlinear Least Squares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
15.7 Conjugate Gradient (CG) method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

16 Boundary conditions 62
16.1 Neumann boundary conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
16.2 Examples of external forces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
16.3 Dirichlet boundary conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
16.4 Rigid body motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

17 Error estimates and adaptivity 67


17.1 Finite element error analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
17.2 Smoothing and adaptivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

18 Element defects: shear locking and hourglassing 70

19 Dynamics 72
19.1 Variational setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
19.2 Free vibrations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
19.3 Modal decomposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
19.4 Transient time-dependent solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
19.5 Explicit time integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
19.6 A reinterpretation of finite differences . . . . . . . . . . . . . . . . . . . . . . . . . . 79
19.7 Implicit time integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

20 Internal variables and inelasticity 84


20.1 Inelastic material models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
20.2 Example: viscoelasticity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
20.3 Variational constitutive updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
20.4 Example: viscoelasticity, (visco)plasticity . . . . . . . . . . . . . . . . . . . . . . . . 87
20.5 Example: viscoplasticity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
20.6 Example: linear viscoelasticity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

A Introduction, Vector Spaces 94

4
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

B Function Spaces 95

C Approximation Theory 99
C.1 Sobolev spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
C.2 Higher dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

D Operators 105

E Uniqueness 106

F Vainberg’s theorem 107

G Energy norm 108

5
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

1 Introduction: Continuum Mechanics and Notation

1.1 An introductory example: heat conduction

We describe a body Ω ⊂ Rd with boundary ∂Ω as a collection of material points. Each point


has a position x in a Cartesian coordinate system (x1 , . . . , xd ) in d dimensions with origin O.

Points are described by vectors defined by components in the Cartesian reference frame:
d
x = ∑ xi gi = xi gi . (1.1)
i=1

Here and in the following we use Einstein’s summation convention which implies summation
over repeated indices. The usual index notation rules apply; e.g., the inner product is written
as


⎪1 if i = j,
a ⋅ b = ai gi ⋅ bj gj = ai bj δij = ai bi with Kronecker’s delta δij = ⎨ (1.2)

⎪0 else.

This is used to define the length of a vector as
¿
√ √ Ád
∥a∥ = a ⋅ a = a a = Á À∑ a a .
i i i i (1.3)
i=1

Matrix-vector multiplication becomes

a = Mb ⇔ ai = Mij bj and (M T )ij = Mji . (1.4)

We use mappings to denote fields. For example, the temperature field in a static problem is
described by a mapping

T (x) ∶ Ω → R, (1.5)

which assigns to each point x ∈ Ω a real number, the temperature. If the field is differentiable,
one often introduces kinematic variables such as the temperature gradient field:
∂T
β ∶ Ω → Rd and β = grad T = ∇T ⇔ βi = = T,i . (1.6)
∂xi
Here and in the following, we use comma indices to denote partial derivatives.

For every kinematic variable, there is conjugate field (often called flux) like the heat flux q in
this thermal problem, which is also a mapping:

q ∶ Ω → Rd . (1.7)

The heat flux vector q assigns to each point in Ω a heat flux direction and magnitude. If we
are interested, e.g., in the loss of heat through a point x ∈ ∂Ω on the surface of Ω with outward
unit normal n(x), then that amount of heat leaving Ω is the projection q(x) ⋅ n(x). Clearly,
the components of q = (q1 , . . . , qd )T imply the heat flux through surfaces perpendicular to each
of the d Cartesian coordinate directions.

Next, constitutive relations link kinematic quantities to fluxes. For example, define the heat
flux vector as q = q(β). Fourier’s law of heat conduction states, e.g.,

q = −Kβ ⇔ qi = −Kij β,j , (1.8)

6
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

where K denotes a conductivity tensor. Kij are the components of the conductivity tensor; they
form a d × d matrix. Such a second-order tensor is a convenient way to store the conductivity
properties in any arbitrary orientation in the form of a matrix, along with the coordinate basis
in which it is defined. K provides for each direction of the temperature gradient β = αn the
resulting normalized heat flux q. To this end, one defines

K = Kij gi ⊗ gj ⇒ Kn = (Kij gi ⊗ gj )n = Kij gi (gj ⋅ n) = Kij nj gi . (1.9)

Such a second-order tensor is hence a linear mapping of vectors onto vectors. Here, we defined
the dyadic product (or tensor product), which produces a tensor according to

M =a⊗b ⇔ Mij = ai bj . (1.10)

A special tensor is the identity, which maps vectors onto themselves:

I = δij gi ⊗ gj . (1.11)

To solve a thermal problem, we also need balance laws. Here, conservation of energy may be
used, which states the change of internal energy E in a body over time t balances the inward
and outward flux of energy and the energy being produced inside the body (by some heat source
density ρs). Mathematically, this implies
d
E = ∫ ρs dV − ∫ q ⋅ n dS. (1.12)
dt Ω ∂Ω

We can use the divergence theorem to write

∫ q ⋅ n dS = ∫ qi ni dS = ∫ qi,i dS = ∫ div q dS, (1.13)


∂Ω ∂Ω Ω Ω

which defines the divergence of a vector as the scalar quantity

div(⋅) = (⋅)i,i . (1.14)

Energy is an extensive variable, i.e., the total energy doubles when adding to bodies of the
same energy. This is in contrast to intensive variables, such as temperature or pressure, when
adding to bosides having the same, e.g., temperature. Since energy is an extensive variable, we
can introduce an energy density e and write
d
E = ∫ e dV ⇒ E = ∫ ė dV . (1.15)
Ω dt Ω

Here and in the following, we use dots to denote rates, i.e., time derivatives. Note that we use
a Lagrangian description and that, so far, there is no motion or deformation involved in our
discussion, so the time derivative does not affect the volume integral. Rewriting the conservation
of energy now yields

∫ ė dV = ∫ ρs dV − ∫ div q dV . (1.16)
Ω Ω Ω

This can be rewritten as

∫ (ė − ρs + div q) dV = 0. (1.17)


Since conservation of energy does not only have to hold for Ω but for any subbody ω ⊂ Ω, we
may conclude that the local energy balance equation is

ė = ρs − div q (1.18)

7
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

This is the local (i.e., pointwise) counterpart to the macroscopic energy balance and states that
at each point x ∈ Ω the rate of energy change (ė) is given by the local production of heat (ρs)
minus the heat lost by outward fluxes q away from the point.

Finally, exploiting that thermally stored energy gives e = ρcv T (with constant mass density ρ
and specific heat capacity cv ), and we insert Fourier’s law of heat conduction to overall arrive
at

∫ ρcv Ṫ dV = ∫ ρs dV − ∫ div(−Kβ) dS = ∫ ρs dV − ∫ (−Kij T,j ),i dS. (1.19)


Ω Ω Ω Ω Ω

Note that the final term requires the use of the product rule since

(−Kij T,j ),i = −Kij,i T,j − Kij T,ij . (1.20)

Let us assume a homogeneous body with K(x) = K = const. Further, let us rewrite the above
under a single integral:

∫ (ρcv Ṫ − ρs − Kij T,ij ) dV = 0. (1.21)


Again, by extension of energy conservation to arbitrary subbodies, we conclude the local energy
balance equation

ρcv Ṫ = Kij T,ij + ρs (1.22)

This is the heat equation in its anisotropic form. In the special case of isotropy (i.e., the
conductivity is the same in all directions), we obtain the Laplacian since

Kij = κδij ⇒ Kij T,ij = κδij T,ij = κT,ii = κ ∆T with ∆(⋅) = (⋅),ii , (1.23)

and we arrive at the well-known heat equation with sources:

ρcv Ṫ = κ ∆T + ρs (1.24)

Whenever we consider a static problem, we assume that the body is in equilibrium and the
temperature field is constant, which reduces the above to Poisson’s equation, viz.

κ ∆T = −ρs. (1.25)

8
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

1.2 A more advanced example: mechanical equilibrium

The mechanics of solids (and fluids) generally describes deformable bodies. To this end, we label
each material point by its position X in a reference configuration (e.g., the configuration at
time t = 0). The current position x, by contrast, is a function of X and of time t: x = x(X, t).
Fields in the reference and current configuration are generally referred to by upper- and
lower-case characters (and the same applies to indices), e.g.,

x = xi gi , X = XI GI . (1.26)

Note that, to avoid complication, we will work with Cartesian coordinate systems only (see the
tensor notes, e.g., for curvilinear coordinates).

The mechanics of a deformable body undergoing finite deformations is generally described by


a deformation mapping

ϕ(X, t) ∶ Ω × R → Rd such that x = ϕ(X, t). (1.27)

Since it depends on time, we can take time derivatives to arrive at the velocity and acceler-
ation fields, respectively:

d d d d2
V (X, t) = x(X, t) = ϕ(X, t), A(X, t) = V (X, t) = 2 ϕ(X, t). (1.28)
dt dt dt dt
Note that those are Lagrangian fields (one could also write those as functions of the current
position x, which results in the Eulerian counterparts; this is usually done in fluid mechanics).

Like in the thermal problem, we introduce kinematics by defining the deformation gradient
∂ϕi
F = Grad ϕ ⇔ FiJ = = ϕi,J . (1.29)
∂XJ
Note that this is a second-order, two-point tensor defined across both configurations. If one uses
the same coordinate frame for the undeformed and deformed configurations, one may alternative
introduce the displacement field

u(X) = x − X and x = X + u(X), (1.30)

so that

F = Grad ϕ = Grad(X + u) = I + Grad u ⇔ FiJ = δiJ + ui,J . (1.31)

Note that in case of no deformation, we have x = X so that F = I (and not F = 0).

F contains plenty of information about the local deformation. For example, the volume change
at a point is given by
dv
= J = det F , (1.32)
dV
and for physical reasons we must have J > 0 (this ensures that the deformation mapping is injec-
tive; i.e., no two material points are mapped onto the same point in the current configuration).
No volume change implies J = 1.

Similarly, the stretch in a direction defined by a unit vector N is determined by


ds √
λ(N ) = = N ⋅ CN with C = F TF (1.33)
dS

9
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

the right Cauchy-Green tensor. As for F , an undeformed point has C = I.

Next, we need a constitutive law that links the deformation gradient to a “flux”, which in
mechanical problems we refer to as the stress. Heat flux may be defined as energy flow per
oriented area,
dQ
qi = with dA = N dA and ∥N ∥ = 1. (1.34)
dAi
Analogously, stresses are force vector per oriented area:
dFi
PiJ = , (1.35)
dAJ
which defines the so-called First Piola-Kirchhoff (1st PK) stress tensor. This is a second-
order tensor that captures the force components on any oriented area into all d coordinate
directions. The resulting traction vector on a particular infinitesimal area with unit normal
vector N is

T = PN ⇔ Ti = PiJ NJ . (1.36)

Notice that the thus defined tractions satisfy Newton’s law of action and reaction since

T (N ) = P N = −P (−N ) = −T (−N ), (1.37)

which we know well from inner forces in undergraduate mechanics. The total force acting on a
surface A is hence

Ftot = ∫ T dS. (1.38)


A

For a mechanical problem, the relevant balance laws are conservation of linear momentum
and of anguluar momentum. As before, one can formulate those as macroscopic balance laws.
For example, macroscopic linear momentum balance is nothing but the well-known equation
Ftot = M A (sum of all forces equals mass times mean acceleration). To derive the local balance
law of a continuous body, note that external forces include both surface tractions T and body
forces ρ0 B – using ρ0 to denote the reference mass density. Overall, we obtain

∫ T dS + ∫ ρ0 B dV = ∫ ρ0 A dV ⇔ ∫ P N dS + ∫ ρ0 B dV = ∫ ρ0 A dV . (1.39)
∂Ω Ω Ω ∂Ω Ω Ω

Practicing the divergence theorem once more, we see that

∫ PiJ NJ dS = ∫ PiJ,J dV ⇒ (Div P )i = PiJ,J , (1.40)


∂Ω Ω

which defines the divergence of a second-order tensor, which is a vector. Note that we use
a capitol operator “Div” as opposed to “div” to indicate differentiation with respect to the
undeformed coordinates.

When we again exploit that the above balance law must hold for all subbodies ω ⊂ Ω, we arrive
at the local statement of linear momentum balance:

Div P + ρ0 B = ρ0 A ⇔ PiJ,J + ρ0 Bi = ρ0 Ai (1.41)

Note that the special case of quasistatics assumes that inertial effects are negligible, so one
solves the quasistatic linear momentum balance Div P + ρ0 B = 0. Except for gravity or elec-
tro/magnetomechanics, body forces also vanish in most cases, so that one simply arrives at
Div P = 0.

10
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

It is important to recall that stresses in finite deformations are not unique but we generally
have different types of stress tensors. Above, we introduced the first Piola-Kirchhoff stress
tensor P , which implies actual force per undeformed area. Similarly, one can define the Cauchy
stress tensor σ, which denotes actual force per deformed area. The definition and link are
given by
dFi 1
σij = , σ= P F T. (1.42)
daj J

Later on, it will be helpful to link stresses and deformation to energy. If the stored mechanical
energy is characterized by the strain energy density W = W (F ), then one can show that
∂W ∂W
P = ⇔ PiJ = . (1.43)
∂F ∂FiJ
Without knowing much about tensor analysis, we may interpret the above as a derivative of
the energy density with respect to each component of F , yielding the corresponding component
of P . This concept can also be extended to introduce a fourth-order tensor, the incremental
tangent modulus tensor
∂P ∂PiJ
C= ⇔ CiJkL = , (1.44)
∂F ∂FkL
for which each component of P is differentiated with respect to each component of F . For
further information on tensor analysis, see the tensor notes. Without further discussion, notice
that a stress-free state implies that the energy attains an extremum.

Note that the dependence of W on F (and consequently the consitutive law between P and F )
is generally strongly nonlinear, which limits opportunities for closed-form analytical solutions.
Also, for material frame indifference we must in fact have W = W (C), but that is a technical
detail of minor importance here.

Examples: Switching between symbolic and index notation is often convenient (especially
when taking derivatives) and should be practiced. Consider the following examples:

● a = Tb ⇔ ai = Tij bj (1.45)
● a=T T
⇔ ai = Tji bj (1.46)
● tr(a ⊗ b) ⇔ tr [ai bj ] = ai bi = a ⋅ b = bi ai = tr(b ⊗ a) (1.47)
● tr(R T ) = tr[Rji Tjk ] = Rji Tji = R ⋅ T
T
(1.48)
∂a ∂ai
● =[ ] = [δij ] = I (1.49)
∂a ∂aj
∂ tr T ∂Tkk ∂Tkk
● = =[ ] = [δki δkj ] = [δij ] = I (1.50)
∂T ∂T ∂Tij
√ √
∂ tr T ∂ tr T ∂ tr T I
● = = √ (1.51)
∂T ∂ tr T ∂T 2 tr T

∂λ(N ) ∂ N ⋅ F F N T 1 ∂NK FjK FjM NM
● = = [ ] (1.52)
∂F ∂F 2λ(N ) ∂FiJ
1 [FiM NM NJ ]
= [NK δij δJK FjM NM + NK FjK δij δJM NM ] = (1.53)
2λ(N ) λ(N )
= F M ⊗ N /λ(N ) (1.54)

11
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Examples: Consider a special form of the compressible Neo-Hookean material model de-
fined by
µ κ T F
W (F ) = (tr C − 3) + (J − 1)2 , C=F F and F = . (1.55)
2 2 J −1/3
The first Piola-Kirchhoff stress tensor is computed as

∂W ∂ µ tr F T F κ
P = = [ ( 2/3 − 3) + (J − 1)2 ] , J = det F
∂F ∂F 2 J 2
µ 1 ∂ tr F T F ∂ 1 ∂J
= ( 2/3 + tr F T F 2/3
) + 2κ(J − 1)
2 J ∂F ∂F J ∂F
(1.56)
µ 2F 2 tr F T F
= ( 2/3 − JF −T ) + κ(J − 1)JF −T
2 J 3J 5/3
µ µ
= 2/3 F + [κ(J − 1)J − 2/3 tr F T F ] F −T ,
J 3J
where we used
∂J ∂ tr F T F
= cof F = J F −T and = 2F . (1.57)
∂F ∂F
Using index notation, the above identity is written as
∂W µ µ
PiJ = = FiJ + [κ(J − 1)J − 2/3 I1 ] FJi
−1
, I1 = tr F T F = FkL FkL . (1.58)
∂FiJ J 2/3 3J

The incremental stiffness tensor requires taking second derivatives:


∂PiJ
CiJkL =
∂FkL
−1
∂ 1 1 ∂FiJ ∂J −1 ∂FJi
= µ (FiJ + ) + κ(2J − 1) F Ji + κ(J − 1)J
∂FkL J 2/3 J 2/3 ∂FkL ∂FkL ∂FkL
−1
µ ∂J −2/3
1 ∂I1 −1 I1 ∂F (1.59)
− [ −1
I1 FJi + 2/3 FJi + 2/3 Ji ]
3 ∂FkL J ∂F kL J ∂FkL
µ 2µ
= 2/3 δik δJL − 2/3 (FiJ FLk −1
+ FJi
−1
FkL )
J 3J
2µ µ
+ ( 2/3 I1 + κ(2J − 1)J) FLk FJi + ( 2/3 I1 − κ(J − 1)J) FJk
−1 −1 −1 1
FLi ,
9J 3J
where we rearranged the last equation by grouping terms and simplifying, and we used
−1
∂FJi
= −FJk
−1 1
FLi . (1.60)
∂FkL

To check the final answers, we verify that each side of the equation has the exact same free
indices appearing only once.

12
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

1.3 A special case: linearized kinematics

Whenever only small deformation is expected, the above framework can be significantly sim-
plified by using linearized kinematics. To this end, we assume that ∥Grad u∥ ≪ 1 (“small
strains”). Note that in this case it does not make a significant difference if we differentiate with
respect to xi or XI , so that one generally uses only lower-case indices for simplicity.

In small strains, the displacement field is the key field to be determined (rather than the
deformation mapping), i.e., we seek u = u(x, t).

Recall that

C = F F T = (I + Grad u)(I + Grad uT ) = I + Grad u + (Grad u)T + (Grad u)(Grad u)T . (1.61)

Now, the final term is dropped by a scaling argument (∥Grad u∥ ≪ 1). Therefore, we may
introduce a kinematic relation like in the thermal problem:

β = Grad u, (1.62)

and all important local deformation information is encoded in β. Like a temperature gradient
causes heat flux, a displacement gradient causes stresses (if displacements are constant every-
where, the body is undergoing rigid body translation and does not produce any stresses).

To make sure we also do not pick up rigid body rotation, one introduces the infinitesimal
strain tensor
1 1 1
ε= [Grad u + (Grad u)T ] = (ε + εT ) ⇔ εij = (ui,j + uj,i ) . (1.63)
2 2 2
Notice that, unlike in finite deformations, no deformation implies ε = 0. Furthermore, by
definition ε is symmetric since ε = εT (not like F which is asymmetric). The same applies for
σ and P which are, respectively, symmetric and asymmetric.

As before, local deformation metrics are encoded into ε. For example, volumetric deformation
is characterized by the trace of ε, viz.
dv
= 1 + tr ε = 1 + εii , (1.64)
dV
while stretches in the three coordinate directions are given by ε(ii) (parentheses implying no
summation over i) and angle changes are identified as γij = 2εij with i ≠ j.

In linearized kinematics, all three stress tensors coincide and one commonly uses only the
Cauchy stress tensor σ to define the constitutive relation σ = σ(ε). In the simplest case of
linear elasticity, those are linearly linked via

σ = Cε ⇔ σij = Cijkl εkl (1.65)

with a fourth-order elasticity tensor C linking each component of σ to those of ε. Alter-


natively, we can again encode the constitutive response in a strain energy density W = W (ε),
which, e.g., for the case of linear elasticity reads
1 1
W = ε ⋅ Cε ⇔ W = εij Cijkl εkl , (1.66)
2 2
so that
∂W ∂σ ∂ 2 W
σ= , C= = . (1.67)
∂ε ∂ε ∂ε ∂ε

13
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

When taking derivatives with respect to ε, caution is required since ε is symmetric, so εij = εkl
and, consequently, derivatives with respect to εij must also take into account those terms
containing εji (for i ≠ j). Therefore, the derivative should always be computed as

∂ 1 ∂ ∂
= ( + ). (1.68)
∂εij 2 ∂εij ∂εji

Alternatively, one may also use ε = εT and simply replace ε = 12 (ε + εT ) before differentiating.

The traction vector on a surface with unit normal n now becomes t = σn.

The local statement of linear momentum balance in linearized kinematics is

div σ + ρb = ρa ⇔ σij,j + ρbi = ρai (1.69)

where the small-strain versions of density, body force density and acceleration field were intro-
duced as ρ, b and a = ü, respectively.

In small strains, we can insert the kinematic and linear elastic constitutive relations as well as
the definition of the acceleration field into linear momentum balance to obtain

(Cijkl εkl ),j + ρbi = ρüi ⇔ (Cijkl uk,l ),j + ρbi = ρüi (1.70)

and in case of a homogeneous body with C(x) = C = const. we finally arrive at

Cijkl uk,lj + ρbi = ρüi , (1.71)

which is known as Navier’s equation to be solved for the unknown field u(x, t).

Finally, the following will be helpful when implementing material models in our code. Note that
we may use the relations
1
εij = (ui,j + uj,i ) and FiJ = δiJ + ui,J (1.72)
2
to write (using the chain rule)

∂W ∂W ∂FkL ∂
= = PkL (δkL + uk,L ) = PkL δik δJL = PiJ (1.73)
∂ui,J ∂FkL ∂ui,J ∂ui,J

and (exploiting the symmetry of σ)

∂W ∂W ∂εkl ∂ 1 1 1
= = σkl (uk,l + ul,k ) = σkl (δik δjl + δil δjk ) = (σij + σji ) = σij . (1.74)
∂ui,j ∂εkl ∂ui,j ∂ui,j 2 2 2

Therefore, we can use the alternative relations for our stresses

∂W ∂W
PiJ = and σij = . (1.75)
∂ui,J ∂ui,j

The beauty in those relations is that the stress tensor definition is now identical irrespective of
whether we are working in linearized or finite kinematics.

14
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

1.4 Summary and Looking Ahead

So far, we have seen how partial differential equations govern the thermal and mechanical
behavior of solid bodies (and, of course, those two can be coupled as well to describe the thermo-
mechanical behavior of deformable bodies). In order to solve a problem, we need an initial
boundary value problem (IBVP), which furnishes the above equations with appropriate
boundary conditions (BCs) and initial conditions (ICs).

To this end, we subdivide the boundary ∂Ω of a body Ω into

ˆ ∂ΩD ≡ Dirichlet boundary, prescribing the primary field (ϕ, T , etc.):

e.g. u(x, t) = û(x, t) on ∂ΩD or T (x, t) = T̂ (x, t) on ∂ΩD . (1.76)

ˆ ∂ΩN ≡ Neumann boundary, prescribing derivatives of the primary field (F , β, etc.):

e.g. t(x, t) = σ(x, t)n(x, t) = t̂(x, t) on ∂ΩN or q(x, t) = q̂(x, t) on ∂ΩN ,


(1.77)

Note that we may generally assume that

∂ΩD ∪ ∂ΩN = ∂Ω and in most problems also ∂ΩD ∩ ∂ΩN = ∅. (1.78)

In addition, all time-dependent problems require initial conditions, e.g.,

T (x, 0) = T0 (x) ∀ X ∈ Ω,
(1.79)
or ϕ(X, 0) = x0 (X) and V (X, 0) = V0 (X) ∀ X ∈ Ω.

The number of required BCs/ICs depends on the order of a PDE, e.g.,

ρcv Ṫ = div(K grad T ) + ρs (1.80)

is first-order in time and therefore requires one IC, e.g., T (x, 0) = T0 (x). It is second-order in
space and hence requires BCs along all ∂Ω (e.g., two conditions per x and y coordinates).

In summary, we will have governing PDEs supplemented by ICs and BCs, as required (e.g.,
quasistatic problems, of course, do not require any initial conditions). Those need to be solved
for the primary fields (e.g., temperature T or displacements u or the deformation mapping ϕ).

Unfortunately, analytical solutions are hardly ever available – except for relatively simple prob-
lems involving

ˆ simple geometries,

ˆ simple material behavior,

ˆ simple ICs/BCs.

For realistic geometries, materials and/or ICs/BCs, one usually requires numerical techniques
to obtain approximate solutions.

15
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

2 Numerical Methods

To numerically solve such ODEs/PDEs, we generally have so-called direct and indirect methods.

Direct methods aim to solve the governing equations directly; for example, using finite
differences (FD). Consider the isotropic heat equation discussed before, which for brevity we
write in 1D as (absorbing the coefficient into k and r).

Ṫ = k T,xx + r. (2.1)

Introduce a regular (∆x, ∆t)-grid with Tiα = T (xi , tα ) and use Taylor expansions, e.g., in
space:
∂T (∆x)2 ∂ 2 T (∆x)3 ∂ 3 T
T (xi+1 , tα ) = Ti+1
α
= Tiα + ∆x ∣ + ∣ + ∣ + O(∆x4 )
∂x xi ,tα 2 ∂x2 xi ,tα 3! ∂x3 xi ,tα
(2.2)
∂T (∆x)2 ∂ 2 T (∆x)3 ∂ 3 T
T (xi−1 , tα ) = Ti−1
α
= Tiα − ∆x ∣ + ∣ − ∣ + O(∆x4 )
∂x xi ,tα 2 ∂x2 xi ,tα 3! ∂x3 xi ,tα
(2.3)
Addition of the two equations gives:

∂2T ∂2T α
Ti+1 − 2Tiα + Ti−1
α
α
Ti+1 +Ti−1
α
= 2Tiα +(∆x)2 ∣ +O(∆x4 ) ⇒ (xi , t α
) = + O(∆x2 )
∂x2 xi ,tα ∂x2 (∆x)2
(2.4)

This is the second-order central difference approximation.

Analogously, Taylor expansion in time and subtraction of the two equations gives:

∂T ∂T T α+1 − Tiα−1
Tiα+1 − Tiα−1 = 2∆t ∣ + O(∆t3 ) ⇒ (xi , tα ) = i + O(∆t2 ) (2.5)
∂t xi ,tα ∂t 2∆t
which is the first-order central difference approximation. Many other such finite-difference
approximations of derivatives can be obtained in a smiliar fashion. For example, a simpler
first-order stencil is obtained from the first Taylor equation (2.2) alone:

∂T ∂T T α+1 − Tiα
Tiα+1 − Tiα = ∆t ∣ + O(∆t2 ) ⇒ (xi , tα ) = i + O(∆t) (2.6)
∂t xi ,tα ∂t ∆t
which is often referred to as the first-order forward-Euler approximation. Analogously, we
can use the second Taylor equation (2.3) to obtain the backward-Euler approximation

∂T ∂T T α − Tiα−1
Tiα − Tiα−1 = ∆t ∣ + O(∆t2 ) ⇒ (xi , tα ) = i + O(∆t) (2.7)
∂t xi ,tα ∂t ∆t

In order to numerically solve a PDE directly, we choose suitable finite-difference approximations


for all appearing derivatives. For example, using the second-order central-difference approxi-
mation for the spatil and the forward-Euler approximation for the temporal derivative in the
heat equation, the discretized governing equation becomes
Tiα+1 − Tiα T α − 2Tiα + Ti−1
α
= k i+1 + r(xi , tα ) + O(∆t, ∆x2 ), (2.8)
∆t (∆x)2

16
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

which in the limit ∆t, ∆x → 0 is expected to converge towards the same solution as the governing
equation (this is the requirement of consistency of the discretized equation).

Note that for known values Tiα at the current time, the above equation can easily be solved for
Tiα+1 at the new time. In fact, the right-hand side does not involve Tiα+1 , which is why this
finite-difference scheme is explicit.

By contrast, when using the backward-Euler approximation, we obtain

Tiα − Tiα−1 T α − 2Tiα + Ti−1


α
= k i+1 + r(xi , tα ) + O(∆t, ∆x2 ), (2.9)
∆t (∆x)2

which is a linear system to be solved for Tiα+1 at the new time step and is therefore an implicit
scheme.

Numerical solution can be interpreted via stencils, which may also reveal the required BCs/ICs.

Problems associated with direct methods include:

ˆ a regular grid is required (which is fine for many fluidic mechanics problems but oftentimes
problematic for complex solid geometries).

ˆ variables are defined only at grid points, hence the error is minimized only at grid points
(and we have no information about what happens between grid points; both the primary
fields and their errors are undefined between grid points). This can be problematic when
seeking approximate solutions that are “globally optimal ”. Also, how to apply BCs/ICs
in between grid points, how about moving BCs?

ˆ stability/efficiency issues (probably known from fundamental computational mechanics


classes: CFL-condition, von Neumann stability analysis, etc.). In a nutshell, the choice of
∆t and ∆x is not arbitrary but – aside from accuracy concerns – the stability of, especially
explicit, finite-difference schemes dictates maximum step widths to be used.

As an alternative, indirect methods do not solve the ODEs/PDEs directly but search for
optimal approximations, e.g., uh (x) ≈ u(x) for all x ∈ Ω, including BCs and ICs. To do so, we
need to discuss a lot more.

Particular questions to be addressed include:

ˆ How do we choose uh (x)? For example, globally or locally defined functions? Which
choices minimize the error?

ˆ What is “optimal ”? How do we quantify between error approximation and exact solution?

ˆ What trial functions shall we use? For example, polynomial or Fourier series, piecewise
defined or maybe even piece-constant?

We need a couple concepts to address those questions. Note that in the following, we will
formulate most concepts in 1D with analogous generalizations possible for higher dimensions
unless specifically mentioned.

17
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

3 Variational Calculus

3.1 Functionals

In order to understand the big picture of indirect methods, let us first discuss the energetics
of deformable bodies and, in particular, introduce the concepts of functionals and variational
calculus.

A functional is special type of mapping which maps from a function space U to R:

I ∶ u ∈ U → I[u] ∈ R. (3.1)

Oftentimes, functionals impose constraints on the function space U, usually differentiabil-


ity/integrability constrainst. As an example, consider
1
I[u] = ∫ u2 (x) dx, (3.2)
0

which is a functional requiring that u is square-integrable.

It will be important to restrict the space of admissible functions when seeking for ”physically
reasonable” approximations uh (x). For example, we may want to restrict how smooth a function
is and whether or not it is allowed to have any poles or discontinuities, etc.

To this end, we quickly introduce the Sobolev space

H k (Ω) = {u ∶ Ω → R such that ∥u∥H k (Ω) < ∞}, (3.3)

with the Sobolev norm (in 1D)


2 2
∥u∥2H k (Ω) = ∫ u(x)2 dx + ∫ [u′ (x)] dx + . . . + ∫ [u(k) (x)] dx. (3.4)
Ω Ω Ω

Consequently, H k (Ω) denotes the space of all functions whose derivatives up to kth order are
square-integrable. The above example in (3.2), e.g., requires u ∈ U ⊂ H 0 (0, 1). That is
functions u(x) must be square-integrable on the interval (0, 1).

Our classical example will be the energy of a mechanical system which depends on the displace-
ment field u(x) and defines an energy I ∈ R. Consider, e.g., the 1D strain energy of a bar of
length L and with constant Young’s modulus E and cross-sectional area A:
L E
I[u] = ∫ [u,x (x)]2 Adx, (3.5)
0 2
where we used that W = E2 ε2 and ε = u,x with u = u(x). Here, we generally may want to impose
the restriction u ∈ H 1 (0, L), unless dealing with discontinuities such as cracks.

Functionals are to be distinguished from functions such as f (x) = x21 + x22 = ∣x∣ with f ∶ R2 →
R+0 . Unlike a function which is a mapping from Rd → R, a functional ’s domain is generally
a function space U (e.g., all polynomial functions up to a certain degree, or all continuously
differentiable functions, or all piecewise polynomial functions).

3.2 Variations

Consider a functional I ∶ U → R such as the potential energy. Analogous to the stationarity


condition of classical optimization problems, a necessary condition for an extremum of I is that

18
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

the first variation of I vanishes, i.e., δI[u] = 0 (this is the stationarity condition). Like in
functional analysis, we are going to compute the analog of a derivative to identify maxima and
minima of the functional. To this end, we perturb the functional around a point by a small
variation and verify if the functional increases or decreases. Complicating is the fact that a
”point” is now in fact a function, and a variation must be a variation of that function. To this
end, we define the following.

A variation δu is an arbitrary function that represents admissible changes of u. If Ω ⊂ Rd is


the domain of u ∈ U with boundary ∂Ω, we seek solutions

u ∈ U = {u ∈ H k (Ω) ∶ u = û on ∂ΩD } (3.6)

then the variation must satisfy

δu ∈ U0 = {δu ∈ H k (Ω) ∶ δu = 0 on ∂ΩD } . (3.7)

k can be determined from the specific form of I[u], as will be discussed later. The fact that
variations δu must vanish on the Dirichlet boundary ∂ΩD stems from the need for perturbations
that allow the perturbed function u + δu to still satisfy the Dirichlet boundary conditions.

With this, we define the first variation of I (analog of a first derivative) as

I[u +  δu] − I[u] d


δI[u] = lim = I[u +  δu]∣ (3.8)
→0  d →0

and analogously higher-order variations via

δ k I[u] = δ (δ k−1 I) for k≥2 (3.9)

Note that a Taylor expansion of a functional I can now be written as


1 2 1
I[u + δu] = I[u] + δI[u] + δ I[u] + δ 3 I[u] + . . . (3.10)
2! 3!

The following are helpful relations for u, v ∈ U, further Ii ∶ U → V ⊂ R, and constants αi ∈ R:

ˆ δ (α1 I1 + α2 I2 ) = α1 δI1 + α2 δI2

ˆ δ(I1 I2 ) = (δI1 )I2 + I1 (δI2 )

du d
ˆ δ = δu (assuming differentiability of u, specifically u ∈ C 1 )
dx dx
ˆ δ ∫Ω u dx = ∫Ω δu dx (assuming Ω is independent of u)

d
ˆ δI[u, v, . . .] = I[u +  δu, v +  δv, . . .]ε→0
d

Example:

Let us consider
1
I[u] = ∥u∥2L2 (0,1) = ∫ u2 dx so that we seek u ∈ U = H 0 (0, 1). (3.11)
0

19
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

The variations follow as


d 1 1 1
δI = lim ∫ (u +  δu)2 dx = lim ∫ 2(u +  δu)δu dx = 2 ∫ u δu dx
→0 d 0 →0 0 0
d 1 1
δ I = lim δI[u +  δu] = (3.12)
∫ 2(u +  δu) δu dx = 2 ∫ (δu) dx
2 2
→0 d 0 0
δ I =0
k
for all k > 2.

Notice that
1 1 1 1
I[u + δu] = ∫ (u + δu)2 dx = ∫ u2 dx + ∫ 2u δu dx + ∫ (δu)2 dx
0 0 0 0
(3.13)
1
= I[u] + δI[u] + δ 2 I[u].
2

As a practical hint, note that for any integral

I[u] = ∫ f (ui , ui,j , . . .) dV (3.14)


we can write
∂I[u +  δu] ∂f ∂f
=∫ ( δui + δui,j + . . .) dV (3.15)
∂ Ω ∂ui ∂ui,j

and omit the lengthy derivation of the first variation given above.

Here comes the reason we look into variations: some classes of partial differential equations
possess a so-called variational structure; i.e., their solutions u ∈ U can be interpreted as
extremal points over U of a functional I[u].

3.3 Example: Hanging bar under its own weight

Consider a bar of length L (Young’s modulus E, cross-sectional area A, density ρ) that is


hanging from the ceiling and deformed under its own weight (gravitational acceleration g). Let
us denote the 1D displacement field u(x) where x runs from top to bottom of the bar. The
total potential energy is thus the total strain energy of the elastic bar minus the work done by
the graviational body forces:

L E 2 L
I[u] = ∫ u,x (x) Adx− ∫ ρg u(x) Adx and u(x) ∈ U = {u ∈ H 1 (0, L) ∶ u(0) = 0} .
0 2 0
(3.16)

The first variation yields


L L
δI[u] = ∫ Eu,x (x) δu,x (x) Adx − ∫ ρg δu(x) Adx
0 0
L
(3.17)
= −∫ [Eu,xx (x) + ρg] δu(x) Adx + EAu,x (L) δu(L) − EAu,x (0) δu(0) = 0,
0

where we used integration by parts of the first integral to arrive at the final form. Noting that
δux (0) because of boundary conditions, the last term vanishes. Finally, recall that the above
variation must vanish for all variations δu ∈ U0 . This implies that (3.17) implies we must have

Eu,xx (x) + ρg = 0 and EAu,x (L) = 0. (3.18)

20
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

These are exactly the governing equations and traction-free boundary condition that the bar
needs to satisfy. Hence, we have shown that minimizing (3.16) over all u(x) ∈ U is equivalent
to solving (3.18) with u(0) = 0. That is, we have to theoretical strategy to replace the solution
of a differential equation by a minimization problem.

Note that we can easily find the analytical solution to the problem by integrating (3.18) twice
for u(x) and inserting the boundary conditions, resulting in
ρg
u(x) = − x(x − 2L). (3.19)
2E
By the way, this solution to the system of differential equations is called the classical solution.

One way to exploit the above variational structure is the so-called Rayleigh-Ritz approach,
which introduces an approximation uh (x) ≈ u(x), e.g., a polynomial series
n
uh (x) = ∑ ci xi where c0 = 0 because of BCs (3.20)
i=0

with unknown coefficients ci ∈ R. Of course, any choice of ansatz functions is permissible in-
cluding, e.g., Fourier series of cosine or sine terms, as long as they satisfy the essential boundary
condition u(0) = 0 and the differentiability/integrability requirements (e.g., a piecewise linear
guess for uh (x) would not be permissible as its derivatives are not square-integrable). Next, we
insert uh (x) into (3.16), i.e.,
L E h 2 L
I[uh ] = ∫ (u,x ) (x) Adx − ∫ ρg uh (x) Adx, (3.21)
0 2 0

which can be integrated to depend only on the unknown cofficients ci . Finally, we find the
solution by minimization with respect to the coefficients:

∂I[uh ]
0= , (3.22)
∂ci
which gives n equations for the n unknown coefficients. Note that the above form of the energy
results in a linear system of equations for the unknown coefficients ci , which can be solved
numerically in an efficient manner.

If we use polynomial ansatz functions as in (3.20), then the exact solution (3.19) is contained in
the solution space if n ≥ 2. In fact, if one chooses n ≥ 2 and solves for the unknown coefficients,
then one obtains
ρg ρg
c1 = L c2 = − , ci = 0 for i > 2, (3.23)
E 2E
which is the exact solution (3.19).

3.4 Example: Static Heat Conduction

As an introductory example, let us review the static heat conduction problem in d dimensions,
defined by (N ∈ Rd denoting the outward unit normal vector)
⎡ κ ∆T + ρs = 0 in Ω,


⎢ T = T̂
⎢ on ∂ΩD , (3.24)

⎢ q = −κ grad T ⋅ n = q̂
⎣ on ∂ΩN ,

21
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

and we seek solutions T ∶ Ω → R that satisfy all of the above equations and meet the required
differentiability conditions. Such solutions are called classical solution.

As an alternative to solving the above equations, consider the total potential energy defined by
the functional I ∶ U → R with
κ
I[T ] = ∫ ( ∥grad T ∥2 − ρsT ) dV + ∫ q̂ T dS. (3.25)
Ω 2 ∂ΩN

The specific form shows that we need to seek solutions in the space

U = {T ∈ H 1 (Ω) ∶ T = T̂ on ∂ΩD } and U0 = {δT ∈ H 1 (Ω) ∶ δT = 0 on ∂ΩD } . (3.26)

Let us find extremal points T ∈ U that render I[T ] stationary.

The first variation follows as


κ
δI[T ] = ∫ ( 2T,i δT,i − ρs δT ) dV + ∫ q̂ δT dS = 0 for all δT ∈ U0 . (3.27)
Ω 2 ∂ΩN

Application of the divergence theorem to the first term yields

∫ κ T,i ni δT dS − ∫ κ T,ii δT dV − ∫ ρs δT dV + ∫ q̂ δT dS = 0 for all δT ∈ U0 . (3.28)


∂Ω Ω Ω ∂ΩN

Rearranging terms and using the fact that δT = 0 on ∂ΩD leads to

− ∫ (κ T,ii + ρs) δT dV + ∫ (κ T,i ni + q̂) δT dS = 0 for all δT ∈ U0 . (3.29)


Ω ∂ΩN

This must hold for all admissible variations δT ∈ U0 . Therefore, (3.29) is equivalent to stating

κ ∆T + ρs = 0 in Ω, −κ(grad T )n = q̂ on ∂ΩN and T = T̂ on ∂ΩD . (3.30)

Ergo, extremal points T ∈ U of (3.25) are guaranteed to satisfy the governing equations (3.24)
and are thus classical solutions.

To see if it is a maximizer or minimizer, let us compute the second variation

δ 2 I[T ] = ∫ κδT,i δT,i dV = ∫ κ ∥δ grad T ∥2 dV ≥ 0. (3.31)


Ω Ω

Hence, the extremum is a minimizer, assuming that κ > 0. Otherwise, note that κ < 0 leads
to solutions being (unstable) energy maxima, which implies that κ > 0 is a (necessary and
sufficient) stability condition.

Notice that (assuming that κ = const.) we can rewrite the energy functional for short as
1
I[T ] = B(T, T ) − L(T ), (3.32)
2
where we introduced the bilinear form B and the linear form L as

B(⋅, ⋅) = κ ⟨grad ⋅, grad ⋅⟩Ω and L(⋅) = ⟨ρs, ⋅⟩Ω − ⟨q̂, ⋅⟩∂ΩN (3.33)

with the inner product operator

⟨f, g⟩Ω = ∫ f g dV. (3.34)


22
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

This is in fact a recipe for a more general class of variational problems: let us consider an energy
functional of the general form

1
I[u] = B(u, u) − LΩ (u) − L∂Ω (u)
2 (3.35)
1
= κ ⟨ grad u, grad u⟩Ω − ⟨ρs, u⟩Ω − ⟨q̂, u⟩∂ΩN
2

with u ∈ U being some (scalar- or vector-valued) mapping and ρs and q̂ denoting, respectively,
distributed body sources and surface fluxes. Now we have

δI[u] = B(u, δu) − L(δu)


(3.36)
= − ∫ [κ div(grad u) + ρs] δu dV − ∫ [q̂ − λ(grad u)n] δu dS.
Ω ∂ΩN

Thus, the energy density (3.35) is generally suitable for quasistatic problems of the type
⎡ κ ∆u + ρs = 0
⎢ in Ω

⎢ u = û on ∂ΩD
⎢ (3.37)

⎢ κ(grad u)n = q̂ on ∂ΩN

Note that (3.37) describes not only heat conduction but the general form also applies to electro-
magnetism, elasticity (to be discussed later), and various other fields. Notice that, while (3.35)
required u ∈ H 1 (Ω) (highest derivatives are of first order), evaluating (3.37) in general requires
that u ∈ C 2 (Ω) ∩ C 0 (Ω) (second derivatives are required). We will get back to this point later.

For notational purposes, let us adopt the following notation found in various textbooks on finite
elements: the first variation is usually abbreviated as an operator acting on both the unknown
field u and its variation δu; i.e., we write G ∶ U × U0 → V ⊂ R with

d
G(u, δu) = Dδu I[u] = lim I[u + δu] (3.38)
→0 d

One of the beauties of the above variational problem (3.37) is that a unique minimizer exists by
the Lax-Milgram theorem, see Appendix E. Recall that for the linear heat problem above
we already showed that the solution is a unique (global) minimizer if κ > 0.

23
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

4 The weak form

4.1 Classical and weak solutions

Consider a physical problem that is – as before – governed by the so-called strong form
⎡ (κ u,i ),i + s = 0
⎢ in Ω

⎢ ui = ûi on ∂ΩD
⎢ (4.1)

⎢ κu,i ni = q̂ on ∂ΩN .

In order to describe the restrictions u must satisfy, let us define that a function u is of class
C k (Ω) with an integer k ≥ 0 if it is k times continuously differentiable over Ω (i.e., u possesses
derivatives up to the kth order and these derivatives are continuous functions).

Examples:

ˆ Any kth-order polynomial u(x) with k ≥ 0 is generally C ∞ (R).

ˆ Consider a continuous, piecewise-linear function u ∶ Ω = (0, 2) → R. Function u is C 0 (Ω)


but not C 1 (Ω).

ˆ The Heavyside function H(x) is said to be C −1 (R) since its “zeroth derivative” (i.e.,
the function itself) is not continuous.

If there are no discontinuities such as cracks, shocks, etc. (or discontinuities in the BCs/ICs)
we usually assume that the classical solution fields are C ∞ (Ω), so we may take derivatives;
otherwise, derivatives exist almost everywhere (a.e.)

It is convenient to define by C0k (Ω) the space of all functions contained in C k (Ω) whose support
is a bounded subset of Ω (i.e., u(x) ≠ 0 only on a finite subset of Ω). Then, notice that
C0k (Ω) ⊂ H0k (Ω) (4.2)
and
C0∞ (Ω) = ⋂ C0k (Ω). (4.3)
k≥0

Going back to the problem described by the strong form (4.1) above, we need to seek solutions
u ∈ C 2 (Ω) ∩ C 0 (Ω), (4.4)
i.e., functions u must be twice continuously differentiable within Ω and at least continuous up
to the boundary ∂Ω.

As we showed previously, the solution u can alternatively be found by using a variational


approach, viz.
u = arg min {I[u] ∶ u = û on ∂ΩD } (4.5)
whose stationarity condition is
δI[u] = G(u, δu) = B(u, δu) − L(δu) = 0 for all δu ∈ U0 (Ω). (4.6)
Therefore, we can reformulate that problem (without, in principle, knowing anything about
variational calculus) as:

find u ∈ U s.t. G(u, v) = B(u, v) − L(v) = 0 for all v ∈ U0 (Ω) (4.7)

24
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

This is called the weak form of the problem because we now seek solutions u ∈ U where

U = {u ∈ H1 (Ω) ∶ u = û on ∂Ωd } , (4.8)

that satisfy (4.7) for all v ∈ U0 (Ω), and such a solution is called weak solution. There is one
essential difference between the weak and strong form: solutions of the weak form are required
to be in H 1 (Ω), whereas the strong form required solutions to be in C 2 (Ω). Thus, we have
weakened/relaxed the conditions on the family of solutions, which is why the above is called
the weak form.

Notice that, if v is interpreted as a virtual displacement field, then (4.7) is also referred to as
the principle of virtual work.

Computationally, solving the weak form is usually preferable over the strong form. First, u ∈
H 1 (Ω) is simpler to satisfy than u ∈ C 2 (Ω) (e.g., piecewise linear interpolation is sufficient in
the weak form but not in the strong form). Second, as we showed already for the Rayleigh-Ritz
approach, the weak form boils down to solving a system of algebraic equations (rather than
solving PDEs).

Let us show that we can also arrive at the weak form in an alternative fashion without the use
of variational calculus. This is particularly helpful if no potential exists.

Let us take the first equation in (4.1), multiply it by some random trial function v ∈ U0 (Ω) that
vanishes on ∂ΩD , and integrate over the entire domain. The result, which must still vanish due
to (4.1), is

0 = − ∫ [(κ u,i ),i + s] v dV, (4.9)


which must hold for all admissible v ∈ U0 (Ω). This is the basis for the family of the so-called
methods of weighted residuals (where one picks specific choices of v).

Using the divergence theorem and the fact that v = 0 on ∂ΩD reduces the above to

0 = ∫ κ u,i v,i dV − ∫ sv dV − ∫ κ u,i ni v dS for all v ∈ U0 (Ω)


Ω Ω ∂ΩN
(4.10)
= ∫ κ u,i v,i dV − ∫ sv dV − ∫ q̂v dS for all v ∈ U0 (Ω),
Ω Ω ∂ΩN

where we used the Neumann bounday condition κu,i ni = q̂ to transform the last term. The last
equation in (4.10) is exactly identical to (4.7). In other words, we can find the weak form without
the use of variational calculus, moreover, even without the existence of an energy functional by
starting directly from the strong form. This is an important observation (even those problems
that do not have a variational structure can thus be written in terms of a weak form). To decide
whether or not a variational structure exists for a given problem, can be done by the use of
Vainberg’s theorem given in Appendix F.

25
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

4.2 Equivalence of strong and weak forms

We now have two equivalent variational principles:

Given a space

U = {u ∈ Hk (Ω) ∶ u = û on ∂Ωd } , (4.11)

a functional I ∶ U → R and associated bilinear, continuous form B(⋅, ⋅) defined on U × U and a


continuous linear form L(⋅) defined on U, we seek to

(A) find u ∈ U s.t. u = arg min I[u] (4.12)

(B) find u ∈ U s.t. B(u, v) = L(v) for all v ∈ U0 (4.13)

And we know that the two have a unique connection since δI = B(u, δu) − L(δu). Thus, we
know that

(A) ⇔ (B) (4.14)

with a unique solution for this particular type of problem (if it is stable, e.g., κ > 0).

4.3 Approximate solutions

The idea of numerical approaches is to find an approximate solution: we replace the space U
by a finite-dimensional subspace

U h ⊂ U, (4.15)

in which we seek a solution uh , where h stands for the discretization size.

An n-dimensional space U h is defined by a set of n basis functions {N1 , . . . , Nn } and the


approximation

n n
uh (x) = ∑ ua N a (x) and v h (x) = ∑ v a N a (x). (4.16)
a=1 a=1

Assume that the approximation space is chosen wisely, so the exact solution can be attained
with infinite refinement; i.e., we assume that

for all u ∈ U there exists uh (v) ∈ U h such that lim ∥uh (v) − u∥ = 0. (4.17)
h→0

Then we can formulate the discrete problem

(C) find uh ∈ U h s.t. B(uh , v h ) = L(v h ) for all v h ∈ U0h (4.18)

Next, let us insert the approximations (4.16) into (4.18) to obtain:


n n n
B ( ∑ ua N a , ∑ v b N b ) = L ( ∑ v b N b ) for all v b (4.19)
a=1 b=1 b=1

26
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

or, exploiting that B is bilinear and L is linear,


n n
∑ v [ ∑ u B (N , N ) − L (N )] = 0
b a a b b
for all v b . (4.20)
b=1 a=1

Since this must hold for all (admissible) v b , we conclude that

n
∑ u B (N , N ) = L (N ) for b = 1, . . . , n.
a a b b
(4.21)
a=1

This is a linear system to be solved for ua (a = 1, . . . , n).

Let us define a vector of all unknown coefficients:


T
U h = {u1 , . . . , un } . (4.22)

Further, we define a (symmetric) matrix K ∈ Rn×n and vector F ∈ Rn with components

Kab = B (N a , N b ) , Fb = L (N b ) . (4.23)

Then, the linear system reads

K Uh = F ⇔ Kba Uah = Fb . (4.24)

When we are using the same approximation space for uh and v h , this is the so-called the
Bubnov-Galerkin approximation. Alternatively, one can choose different function spaces
for the approximations uh and v h , which leads to the so-called Petrov-Galerkin method. The
latter gains importance when solving over/underconstrained problems since it allows to control
the number of equations by the choice of the dimension of the space of v h .

27
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

5 The mechanical variational problem

5.1 Linearized kinematics

After all those precursors, let us analyze the mechanical variational problem and start with the
simplest problem: quasistatics in linearized kinematics. Here, the strong form is
⎡ σij,j + ρ bi = 0
⎢ in Ω,

⎢ ui = ûi on ∂ΩD ,
⎢ (5.1)

⎢ σij nj = t̂ on ∂ΩN .

The associated total potential energy is

I[u] = ∫ W (ε) dV − ∫ ρb ⋅ u dV − ∫ t̂ ⋅ u dS (5.2)


Ω Ω ∂ΩN

and we seek displacement field solutions

u = arg min {I[u] ∶ u = û on ∂ΩD }. (5.3)

We compute the first variation, defining sym(⋅) = 12 (⋅ + ⋅T ),

∂W
δI[u] = ∫ sym(δui,j ) dV − ∫ ρbi δui dV − ∫ t̂i δui dS
Ω ∂εij Ω ∂ΩN
(5.4)
= ∫ σij δui,j dV − ∫ ρbi δui dV − ∫ t̂i δui dS = 0 ∀ δu ∈ U0 ,
Ω Ω ∂ΩN

where we used σij = ∂W /∂εij and σij = σji (by angular momentum balance). Note that appli-
cation of the divergence theorem shows the equivalence of the two forms since

δI[u] = 0 = ∫ (σij nj − t̂i )δui dS − ∫ (σij,j + ρbi )δui dV ∀ δu ∈ U0 . (5.5)


∂ΩN Ω

We can use the first variation to define the weak form as

G(u, v) = A(u, v) − L(v) = 0 for all adm. v (5.6)

with

A(u, v) = ∫ σij ( sym(∇u))vi,j dV and L(v) = ∫ ρbi vi dV + ∫ t̂i vi dS. (5.7)


Ω Ω ∂ΩN

Notice that A(⋅, ⋅) is generally not a bilinear operator, while L(⋅) is a linear operator.

Next, we introduce the discrete weak form A(uh , v h ) − L(v h ) = 0 with the Bubnov-Galerkin
approximation
n n
uh (x) = ∑ ua N a (x) and v h (x) = ∑ v a N a (x), (5.8)
a=1 a=1

so that we arrive at (in component form)


n
∑ vi [∫ σij ( sym(∇u ))N,j dV − ∫ ρbi N dV − ∫ t̂i N a dS] = 0
a h a a
for all adm. v a (5.9)
a=1 Ω Ω ∂ΩN

28
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

or

Fint (U h ) − Fext = 0 with U h = {u1 , . . . , un }T (5.10)

and

a
Fint,i = ∫ σij (∇uh )N,ja dV and a
Fext,i = ∫ ρbi N a dV + ∫ t̂i N a dS (5.11)
Ω Ω ∂ΩN

For the special case of linear elasticity we have σij = Cijkl uk,l so that the weak form reads

G(u, v) = B(u, v) − L(v) = 0 for all adm. v (5.12)

with

B(u, v) = ∫ vi,j Cijkl uk,l dV and L(v) = ∫ ρbi vi dV + ∫ t̂i vi dS, (5.13)
Ω Ω ∂ΩN

so B(⋅, ⋅) is indeed a bilinear form. Inserting the approximate fields, (5.11) becomes
n n
a
Fint,i = ∫ Cijkl uhk,l N,ja dV = ∑ ∫ Cijkl ubk N,lb N,ja dV = ∑ ubk ∫ Cijkl N,ja N,lb dV
Ω b=1 Ω b=1 Ω
n
(5.14)
= ∑ Kik
ab b
uk with ab
Kik = ∫ Cijkl N,ja N,lb dV
b=1 Ω

⇒ Fint = K U h ⇒ U h = K −1 Fext if det K ≠ 0.

That is, we arrive at a linear problem to be solved for the unknown coefficients U h = {u1 , . . . , un }.

For computational purposes, notice that vectors U h and (internal or extrenal) F , e.g., in 3D
are, respectively
1 1
⎛ u1 ⎞ ⎛ F1 ⎞
1 1
⎜ u2 ⎟ ⎜ F2 ⎟
⎜ ⎟ ⎜ 1⎟
⎛u ⎞ ⎜ u13 ⎟ ⎛F ⎞ ⎜ ⎟
1 1
⎜ ⎟ ⎜ F3 ⎟
U h = ⎜. . .⎟ = ⎜ ⎟
⎜. . .⎟ , F = ⎜...⎟ = ⎜ .
⎜ ⎟.. . ⎟ (5.15)
⎝u ⎠ ⎜u1 ⎟
n ⎜ n
⎟ ⎝F ⎠ ⎜F1 ⎟
n ⎜ n

⎜ n⎟ ⎜ n⎟
⎜u2 ⎟ ⎜F2 ⎟
⎝un ⎠ ⎝F n ⎠
3 3

If we use 0-index notation like in C++ (i.e., we sum over a = 0, . . . , n − 1 instead of a = 1, . . . , n),
then

uai is the (d ⋅ a + i)th component of vector U h in d dimensions. (5.16)

Similarly, we apply the same rule to the rows and columns of matrix K, so that
ab
Kik is the component at (d ⋅ a + i, d ⋅ b + k) of matrix K in d dimensions. (5.17)

There is a shortcut to computing the internal force vector via the Rayleigh-Ritz method. As
introduced in Section 3.3, this technique inserts uh directly into the total potential energy and
minimizes the latter with respect to the unknown coefficients, i.e., we must solve

∂I[uh ]
=0 ∀ a = 1, . . . , n. (5.18)
∂ua

29
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Note that
∂I[uh ] ∂
a
=0= [∫ W (εh ) dV − ∫ ρb ⋅ uh dV − ∫ t̂ ⋅ uh dS]
∂ui ∂uai Ω Ω ∂ΩN
(5.19)
∂W h ∂εhkl ∂ n ∂ n
=∫ (ε ) a dV − ∫ ρbk a ∑ ubk N b dV − ∫ t̂k a ∑ ubk N b dS.
Ω ∂εkl ∂ui Ω ∂ui b=1 ∂ΩN ∂ui b=1

where
1 n
1 ∂εhkl 1
εhkl = (uhk,l + uhl,k ) = ∑ (ubk N,lb + ubl N,k
b
) ⇒ = (δik N,la + N,k
a
δli ). (5.20)
2 b=1 2 ∂uai 2

This is equivalent to
1
0 = ∫ σkl (εh ) (N,la δik + N,k
a
δli ) dV − ∫ ρbi N a dV − ∫ t̂i N a dS
Ω 2 Ω ∂ΩN
(5.21)
= ∫ σil (εh )N,la dV − ∫ ρbi N a dV − ∫ t̂i N a dS.
Ω Ω ∂ΩN

a a
By comparison, we see immediately that this yields Fint,i and Fext,i directly. Thus, rather than
resorting to variations, we can obtain the internal and external force vectors alternatively (and
oftentimes much more simply) by the Rayleigh-Ritz approach, which inserts the approximation
into the potential energy and then differentiates with respect to the unknown coefficients.

Also, notice that Fext is independent of the constitutive law and only depends on the applied
body forces and surface tractions. That is, Fext is sufficiently general for arbitrary materials (in
linearized kinematics), while the computation of Fint depends on the particular material model.

5.2 Finite kinematics

The variational problem in finite-deformation quasistatics is quite similar:

I[ϕ] = ∫ W (F ) dV − ∫ ρ0 B ⋅ ϕ dV − ∫ T̂ ⋅ ϕ dS (5.22)
Ω Ω ∂ΩN

and we seek solutions

ϕ ∈ U = {ϕ ∈ H 1 (Ω) ∶ ϕ = ϕ̂ on ∂ΩD } such that ϕ = arg min I[ϕ]. (5.23)

In all our problems, we will assume that the undeformed and deformed coordinate systems
coincide so that we write for convenience ϕ = x = X + u and we thus formulate the above
problem in terms of the displacement field u ∈ U, like in the linear elastic case (note that this
is a “notational crime” that we adopt here for convenience).

We may then write F = I + Grad u and compute the first variation as


∂W
δI[u] = ∫ δui,J dV − ∫ ρ0 Bi δui dV − ∫ T̂i δui dS
Ω ∂FiJ Ω ∂ΩN
(5.24)
= ∫ PiJ δui,J dV − ∫ ρ0 Bi δui dV − ∫ T̂i δui dS = 0,
Ω Ω ∂ΩN

where we used the first Piola-Kirchhoff stress tensor PiJ = ∂W /∂FiJ (which is not symmetric).

Even though the form looks similar to (5.4), recall that P (F ) involves in a generally nonlinear
relation between P and the displacement gradient Grad u. Therefore, the finite-deformation
variational problem does not involve a bilinear form (even if the material is elastic).

30
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

As before, we produce a discrete approximation, e.g., with the Bubnov-Galerkin approxima-


tion
n n
uh (X) = ∑ ua N a (X) and v h (X) = ∑ v a N a (X), (5.25)
a=1 a=1

so that we again arrive at

Fint (U h ) − Fext = 0 (5.26)

where now, by comparison,

a
Fint,i = ∫ PiJ (∇u)N,J
a
dV and a
Fext,i = ∫ ρ0 Bi N a dV + ∫ T̂i N a dS (5.27)
Ω Ω ∂ΩN

In a nutshell, the linearized and finite elastic variational problems result in the same system of
equations (5.26). For the special case of linear elasticity, that system is linear. Otherwise the
problem is nonlinear and requires an iterative solution method.

Note that in both formulations of linearized and finite kinematics we assumed that T̂ = const.,
i.e., that the externally applied forces are constant and do not depend on deformation. Especially
in finite deformations this is oftentimes not the case; e.g., consider pressure loading T̂ = pn where
n is the deformed surface normal and n ds = JF −T N dS by the Piola transform. In such cases,
the above variational form does not apply and one needs to revise the external force terms
appropriately. For example, for pressure loading we know the work done by pressure is pv with
the deformed volume v, so we may use Iext = ∫Ω pJ dV , which must replace the traction term in
the above total potential energy (and the derivatives follow analogously).

5.3 Thermal problem revisited

For completeness, let us revisit the quasistatic thermal problem in an analogous fashion: we
seek temperature values T h = {T1 , . . . , Tn } such that

Qint (T h ) − Qext = 0 (5.28)

with

Qaint = ∫ qi (∇T )N,ia dV and Qaext = ∫ ρsN a dV + ∫ q̂ N a dS (5.29)


Ω Ω ∂ΩN

where qi = ∂W /∂T,i .

For linear heat conduction, q = κ grad T , we obtain a linear system of equations since then
n n
Qaint = ∑ T b ∫ κ N,ia N,ib dV = ∑ K ab T b with K ab = ∫ κ N,ia N,ib dV. (5.30)
b=1 Ω b=1 Ω

(Notice that for convenience we defined the flux vector q without the negative sign, which results
in the analogous forms as in linear elasticity.)

31
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

5.4 A simple example: nonlinear springs

Consider an axial spring that undergoes large deformation, i.e., its two end points move from
(X 0 , X 1 ) to (x0 , x1 ) and xi = X i + ui . (Note that we use 0 an 1 instead of 1 and 2 to comply
with C++ standard indexing which starts with 0.)

The bar stores strain energy upon stretching with an energy density W = W (ε) where ε is the
axial bar strain:
l−L
ε= , where l = x1 − x0 , L = X 1 − X 0, and l = ∣l∣, L = ∣L∣. (5.31)
L
The total energy of a bar with cross-sectional area A and initial length L is therefore

I = A L W (ε). (5.32)

Without even defining interpolation functions, we can use the Rayleigh-Ritz shortcut to calcu-
late the resulting internal force on node 0 as
∂I ∂W ∂ l − L
0
Fint = 0
= AL
∂u ∂ε ∂u0 L
∂ √
= A σ(ε) 0 (X 1 + u1 − X 0 − u0 ) ⋅ (X 1 + u1 − X 0 − u0 ) (5.33)
∂u
l
= −A σ(ε) ,
l
where σ(ε) = ∂W /∂ε is the axial stress in the bar. Analogously, the force on node 1 becomes

l
1
Fint = −Fint
0
= A σ(ε) . (5.34)
l
As expected, the force points along the (deformed) axis of the spring end points, and the forces
on the two end points are of the same magnitude but of opposite sign.

Note that we did not specify whether or not the spring is linear elastic; i.e., the specific choice
of W (ε) will determine the behavior of the spring and can be chosen to be quadratic, i.e.
W (ε) = k2 ε2 , which results in a linear spring, but can also be more complex.

As a final remark, the assumption of a constant strain ε along the spring length tacitly implies
that we assume a linear displacement profile along the spring. That is, the above formulation
is equivalent to assuming linear shape functions N 0 and N 1 so that

uh (X) = u0 N 0 (X) + u1 N 1 (X). (5.35)

In our implementation, we will define two classes – one material model that defines the material
point relations W = W (ε) and σ = σ(ε) as well as an nonlinear bar/spring element that defines I
and {Fint
0 1
, Fint }. Notice that the element will require the material model to compute its required
quantities.

32
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

6 Interpolation spaces

So far, we have assumed approximations of the type


n
uh (x) = ∑ ua N a (x), (6.1)
a=1

but we have not chosen particular spaces U h for the interpolation or shape functions N a (x).

In general, there are two possible choices:

ˆ global shape functions that are defined everywhere in Ω, i.e., ∣supp N a ∣ ∼ ∣Ω∣,
e.g., polynomials N a (x) = xa−1 or trigonometric polynomials N a (x) = cos (π(a − 1)x).

ˆ local shape functions that are defined only locally: ∣supp N a ∣ ≪ ∣Ω∣,
e.g., picewise linear shape functions,

where we introduced the support of a continuous function u defined on Ω ∈ Rd as the (closure


in Ω of the) set of all points where u(x) ≠ 0, i.e.,

supp u = {x ∈ Ω ∶ u(x) ≠ 0} (6.2)

This means that u(x) = 0 for x ∈ Ω ∖ supp u.

For any set of shape functions, the following shape function properties must be satisfied:

(1) for any x ∈ Ω there is at least one a with 1 ≤ a ≤ n such that N a (x) ≠ 0 (i.e., the whole
domain must be covered ; otherwise, there is no approximation at all at certain points)
(2) all N a should allow to satisfy the Dirichlet boundary conditions if required.
(3) linear independence of the shape functions:
n
∑u N =0 ⇔ ua = 0 for all a = 1, . . . , n.
a a
(6.3)
a=1

In other words, given any function uh ∈ U h , there exists a unique set of parameters
{u1 , . . . , un } such that
n
uh = ∑ ua N a . (6.4)
a=1

Then, functions {N 1 , . . . , N n } are a basis of U h . Linear independence is important since


it avoids ill-posed problems.
For example, take U h = P2 and {N 1 , N 2 , N 3 } = {1, x, x2 } so that uh = u1 N 1 +u2 N 2 +u3 N 3 .
Hence, if, e.g., uh = a + bx + x2 then we immediately conclude that u1 = a, u2 = b, u3 = c
uniquely.
Otherwise, i.e., if there existed a set {α1 , . . . , αn } ≠ 0 such that ∑na=1 αa N a = 0, then this
set of parameters could be added on top of any solution {u1 , . . . , un } such that
n n
uh = ∑ ua N a = ∑ (ua + αa )N a , (6.5)
a=1 a=1

which means both {ua } and {ua + αa } are solutions (hence the problem is not well-posed).

33
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

(4) The shape functions N a must satisfy the differentiability/integrability requirements of the
weak form (this depends on the problem to be solved and will be discussed later).
(5) The shape functions must possess “sufficient approximation power ”. In other words,
consider uh ∈ U h ⊂ U: we should ensure that uh = ∑na=1 ua N a → u as n → ∞.

Condition (5) is a crucial one. It tells us that for an approximation to converge, we must pick
an approximate function space that gives the solution “a chance to converge”. For example,
assume you aim to approximate a high-order polynomial u ∈ Pn (with n ≫ 1) by an approxi-
mation uh using shape functions {1, x, x2 , x3 , . . . , xn }. This is expected to converge as n → ∞,
because the coefficients of u will approach the coefficients of uh . But choosing shape functions
{1, x, x3 , . . . , xn } (notice the x2 -term is omitted) will never converge as n → ∞. Polynomials do
satisfy this requirement by the following theorem.

Weierstrass approximation theorem: Given a continuous function f ∶ [a, b] ⊂ R → R and


any scalar  > 0, then there exists a polynomial
pn (x) ∈ P∞ such that ∣f (x) − pn (x)∣ <  for all x ∈ [a, b]. (6.6)

This means every continuous function u can be approximated by a polynomial function to within
any level of accuracy.

Therefore, {N i } = {1, x, x2 , x3 , . . .}, i.e., the polynomials in R, is a suitable choice for the
shape functions that satisfy the completeness property (and we have shown their linear
independence).

Note that, as discussed above, one cannot omit any intermediate-order terms from the set
{1, x, x2 , x3 , . . .}. (6.7)
If one omits a term, e.g., take {1, x2 , x3 , . . .}, then if uh ∈ U h = Pn then there is no set {u1 , . . . , un }
such that uh = ∑ni=1 ui N i .

As an extension, the Weierstrass approximation theorem also applies to trigonometric poly-


nomials (cf. Fourier series).

completeness in higher dimensions:

A polynomial approximation in Rd is complete up to order q, if it contains independently


all monomials xα with ∣α∣ = α1 + . . . + αd ≤ q, i.e., using multi-indices we write
q
uh = ∑ ∑ cα xα . (6.8)
β=0 ∣α∣=β

What does this mean in practice?

1D: {1, x, x2 , x3 , . . . , xq } so that a polynomial of order q contains q + 1 monomials

2D: q = 0: {1}
q = 1: {1, x1 , x2 }
q = 2: {1, x1 , x2 , x21 , x1 x2 , x22 }
q = 3: {1, x1 , x2 , x21 , x1 x2 , x22 , x31 , x21 x2 , x1 x22 , x32 }
...

The number of independent monomials in 2D is hence (q + 1)(q + 2)/2.

34
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

7 The Finite Element Method

Motivation: we would like to define shape functions that are local and admit a simple way to
enforce Dirichlet BCs.

Idea: we introduce a discretization Th that splits Ω into subdomains Ωe , the so-called elements,
such that

Ωe ⊂ Ω, Ω = ⋃ Ωe , ∂Ω ⊆ ⋃ ∂Ωe . (7.1)
e e

Th is defined by the collection of nodes and elements and is called a mesh.

Mathematically (and computationally), a finite element is an object that has

(i) a FE subdomian Ωe .
(ii) a (linear) space of shape functions N i (restricted to Ωe , i.e. supp N i = Ωe ).
(iii) a set of degrees of freedom (dofs), viz. the ua associated with those N i .

The Finite Element Method (FEM) defines continuous, piecewise-polynomial shape func-
tions such that

N i (xj ) = δij for all i, j ∈ {1, . . . , n} (7.2)

This is the defining relation that determines the shape functions. Notice that if we evaluate the
approximation uh (x) at one of the nodes xj , then
n n
uh (xj ) = ∑ ua N a (xj ) = ∑ ua δaj = uj . (7.3)
a=1 a=1

That is, the coefficient uj can now be identified as the value of approximate function uh at
node j. This makes for a very beneficial physical interpretation of the (yet to be determined)
shape function coefficients.

Let us check the requirements for shape functions:

(1) is automatically satisfied: if x ∈ Ω then x ∈ Ωe for some e, then there are N i (x) ≠ 0
(2) can be satisfied by fixing degrees of freedom of the boundary nodes (errors possible)
(3) Assume, by contradiction, that uh (x) = 0 for all x ∈ Ω while some ua ≠ 0. Now, evaluate
at a node xj :
n
0 = uh (xj ) = ∑ ua N a (xj ) = uj ⇒ uj = 0, (7.4)
a=1

which contradicts the assumption that some uha ≠ 0. Thus, we have linear independence.
(4) Integrability/differentiability requirements depend on the variational problem to be solved
and must be ensured. For example, for mechanics we have U h , V h ∈ H 1 , i.e., first deriva-
tives must be square-integrable. Note that this guarantees that displacements (0th deriva-
tives) are continuous and thus compatible (no jumps in displacements).
(5) Completeness requires uh → u (and thus U h → U) to within desirable accuracy. In the FE
method, one enriches U h by, e.g.,
ˆ h-refinement: refining the discretization Th while keeping the polynomial order
fixed.
ˆ p-refinement: increasing the polynomial interpolation order within a fixed dis-
cretization Th .

35
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

ˆ hp-refinement: combination of the two above.


ˆ r-refinement: repositioning of nodes while keeping discretization/interpolation fixed.

A note on ensuring sufficient approximation power : consider the exact solution u(x) at a point
x ∈ Ω so
1 1
u(x + h) = u(x) + h u′ (x) + h2 u′′ (x) + . . . + hq u(q) (x) + O(hq+1 ) (7.5)
2 q!

Assume that U h contains all polynomials complete up to degree q (i.e., uh ∈ Pq ), then there
exists

uh ∈ U h such that u(x) = uh (x) + O(hq+1 ). (7.6)

Let p be the highest derivative in the weak form, then

dp u dp uh
= + O(hq+1−p ). (7.7)
dxp dxp
For the solution to converge as h → 0 we need q + 1 − p ≥ 1 so that we have at least order O(h).
Thus we must ensure that

q≥p (7.8)

36
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

8 Finite element spaces: polynomial shape functions in 1D

Let us start with the simplest of all choices: continuous, piecewise-polynomial interpolation
functions. Note that we need q ≥ 1 since p = 1 for the mechanical/thermal/electromagnetic
variational problem; i.e., we need at least linear interpolation within elements.

8.1 One dimension

Simplest example: 2-node bar element

Interpolation with element dofs {u1e , u2e } so that

uhe (x) = Ne1 (x)u1e + Ne2 (x)u2e (8.1)

and we must have uhe (0) = u1e and uhe (∆x) = u2e .

This gives the element shape functions:


x x
Ne1 (x) = 1 − , Ne2 (x) = . (8.2)
∆x ∆x
Note that the interpolation space uses {1, x} which is complete up to q = 1.

8.2 Example: linear elastic bar in 1D

Recall that for a linear bar element we obtained


x x 1 1
Ne1 (x) = 1 − , Ne2 (x) = ⇒ 1
Ne,x (x) = − , 2
Ne,x (x) = . (8.3)
∆x ∆x ∆x ∆x
so that the (only non-zero) axial strain inside the bar element is constant since:
n
u2e − u1e
εhxx = uh,x (x) = ∑ uie Ne,x
i
(x) = u1e Ne,x
1
(x) + u2e Ne,x
2
(x) = = const. (8.4)
i=1 ∆x

If we assume a linear elastic bar, so σ = E ε, we obtain from (5.11)


∆x u2e − u1e a EA 2 ∆x
a
Fint = ∫ σxx (εhxx )N,x
a
dV = ∫ E N,x A dx = (ue − u1e ) ∫ a
N,x dx, (8.5)
Ω 0 ∆x ∆x 0

and inserting the constant shape function derivatives finally yields


EA 2 1 EA 2
1
Fint = (ue − u1e ) (− ) ∆x = − (ue − u1e ) and 2
Fint = −Fint
1
. (8.6)
∆x ∆x ∆x
The stiffness matrix follows as
i
∂Fint EA 1 −1
[ ]= ( ), (8.7)
∂uje ∆x −1 1

which has the typical form known from 1D assemblies of linear springs with stiffness k = EA/∆x.

37
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Lagrangian interpolation of higher order

Interpolation up to degree q, i.e., {1, x, x2 , . . . , xq } so that


q+1
uhe (x) = ∑ Nea (x)uae = a0 + a1 x + a2 x2 + . . . + aq xq . (8.8)
a=1

In general, shape functions can be determined by solving the q + 1 equations

uhe (xi ) = ui for all i = 1, . . . , q + 1 (8.9)

for the q + 1 coefficients ai (i = 0, . . . , q). Then, rearranging the resulting polynomial allows to
extract the shape functions Nea (x) by comparison of the coefficients of uae .

Alternatively, we can solve

Nea (xi ) = δai for all nodes i = 1, . . . , q + 1. (8.10)

The solution is quite intuitive:

(x − x1 ) ⋅ . . . ⋅ (x − xa−1 ) ⋅ (x − xa+1 ) ⋅ . . . ⋅ (x − xq+1 )


Nea (x) = (8.11)
(xa − x1 ) ⋅ . . . ⋅ (xa − xa−1 ) ⋅ (xa − xa+1 ) ⋅ . . . ⋅ (xa − xq+1 )

One can readily verify that Nea (xi ) = δai . These are called Lagrange polynomials.

Alternative: hierarchical interpolation

We can also construct higher-order interpolations based on lower-order shape functions. For
example, start with a 2-node bar:
x x
Ne1 (x) = 1 − , Ne2 (x) = . (8.12)
∆x ∆x
Let us enrich the interpolation to reach q = 2:
̃ 3 (x)αe
uh (x) = Ne1 (x)u1e + Ne2 (x)u2e + N (8.13)
e

with
̃ 3 (x) = a0 + a1 x + a2 x2 .
N (8.14)
e

We need to find the coefficients ai . Note that we must have

̃ 3 (0) = N
N ̃ 3 (∆x) = 0 ⇒ ̃ 3 (x) = c x (1 − x )
N (8.15)
e e e
∆x ∆x
with some constant c ≠ 0.

Note that αe does not have to be continuous across elements and can hence be determined
locally (i.e., given u1e and u2e , αe can be determined internally for each element, which allows
for condensation of the αe -dof).

38
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Example of higher-order interpolation: 2-node beam element

Linear elastic Euler-Bernoulli beams are a most common structural element. From the vari-
ational form (or the strong form, EIw(4) (x) = q(x) for statics, which is of 4th order in the
deflection w(x)) we know that p = 2. Therefore, we must have q ≥ 2, and w ∈ H 2 (Ω).

The simplest admissible interpolation is based on {1, x, x2 , x3 }, so


weh (x) = c0 + c1 x + c2 x2 + c3 x3 . (8.16)
We need four dofs, so we pick two nodes and assign to each node a deflection w and angle θ = w′ :

2
weh (x) = ∑ [Nei1 (x)wei + Nei2 (x)θei ] (8.17)
i=1

and we must have


weh (0) = we1 , weh (∆x) = we1 , (weh )′ (0) = θe1 , (weh )′ (∆x) = θe1 . (8.18)
The resulting shape functions are known as Hermitian polynomials (and can be found in
textbooks and the notes).

Note that this is only one possible choice; we could also define alternative nodes and nodal
values. However, the above choice ensures that both deflection and angle are continuous across
elements.

8.3 Higher dimensions

Problem: in higher dimensions it will be cumbersome to define polynomial shape functions


on the actual shape of the element, unless one uses regular structured meshes (e.g, grids).
In general, all elements have different shapes and it is beneficial to define shape functions
independent of the specific element shape.

To this end, we introduce a (bijective) isoparametric mapping φ from a reference do-


main (with reference coordinates ξ = {ξ, η, ζ}) onto the physical domain (with coordinates
x = {x, y, z}) of an element e:
x = φ(ξ), i.e. in 3D: x = x(ξ, η, ζ), y = y(ξ, η, ζ), z = z(ξ, η, ζ). (8.19)

For simplicity, we reuse the interpolation concepts from before:


n
so far: uhe = ∑ Nei (x)uie
i=1
n m (8.20)
now: uhe = ∑ Nei (ξ)uie and x = ∑ Ñei (ξ)xie ,
i=1 i=1

where we have three options for the mapping:

(i) isoparametric: n = m and Nei = Ñei (same interpolation)


(ii) subparametric: n > m (lower-order interpolation of positions)
(iii) superparametric: n < m (higher-order interpolation of positions)

The strategy is now to define Nei (ξ) in the reference configuration. Let us first discuss this
concept for simplicial elements in the next section, before proceeding to more general classes of
polynomial element interpolations.

39
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

9 Simplicial elements

A simplex of order k is a k-dimensional polytope which is the convex hull of its k + 1 vertices.

In plain English, a simplex of order k is a convex body made up of k + 1 nodes:

ˆ in 1D: a 2-node bar, interpolation basis is {1, x}

ˆ in 2D: a 3-node triangle (T3), interpolation basis is {1, x, y}

ˆ in 3D: a 4-node tetrahedron (T4), interpolation basis is {1, x, y, z}

Overall, this shows that interpolation is of degree q = 1 (linear) for all simplicial elements.

One usually uses special shape functions for simplices, based on barycentric coordinates.

9.1 Linear Triangle (T3)

In 2D, the 3-node triangular element uses the barycentric coordinates


Aie (x)
lei (x) = , (9.1)
Ae
where Ae = ∣Ωe ∣ is the total triangle area, and Aie is the sub-area opposite from node i, so that
∑3i=1 Aie = A.
It is an easy check to see that 0 ≤ lei ≤ 1 and ∑3i=1 lei (x) = 1 for all x ∈ Ωe , so the lei qualify as
shape functions for the T3 element.

For convenience we use r = le1 and s = le2 as reference coordinates, so that the shape functions
become
Ne1 (r, s) = r, Ne2 (r, s) = s, Ne3 (r, s) = 1 − r − s. (9.2)

The isoparametric mapping in 2D now means


3 3
x = ∑ Nei (r, s) xie , y = ∑ Nei (r, s) yei . (9.3)
i=1 i=1

There is one particular difficulty with isoparametric elements:


i
To compute force vectors, etc., we need shape function derivatives N,x and N,yi but the shape
functions were defined as N i (r, s), so only N,ri and N,si are known.

Let us use x = x(r, s) and y = y(r, s) so the chain rule gives


u,r u x + u,y y,r x y u u
( ) = ( ,x ,r ) = ( ,r ,r ) ( ,x ) = J ( ,x ) (9.4)
u,s u,x x,s + u,y y,s x,s y,s u,y u,y
with the Jacobian matrix
x,r y,r
J =( ) (9.5)
x,s y,s
so that
∂x ∂y ∂x ∂y
J = det J = − . (9.6)
∂r ∂s ∂s ∂r

40
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Note that, like for the deformation mapping, for the isoparametric mapping to be invertible we
need to have J > 0. This implies that elements cannot be distorted (inverted or non-convex).

Using our isoparametric mapping, we obtain


3 3
⎛ N i xi i i⎞
∑ e,r e ∑ Ne,r ye ⎟
⎜i=1
J =⎜
⎜3
i=1
3
⎟.
⎟ (9.7)
⎜ i i i i⎟
⎝ ∑ N x
e,s e ∑ N y
e,s e ⎠
i=1 i=1

This solves the problem. As discussed, we need to have J > 0 so that we can invert J to arrive
at (by the inverse function theorem)
3 3
⎛ N i ui ⎞ ⎛ i i ⎞
∑ e,r e ⎟
⎜i=1 ∑ Ne,x ue
⎜ i=1 ⎟
u u u
( ,x ) = J −1 ( ,r ) = J −1 ⎜
⎜3

⎟ but also ( ,x )=⎜
⎜ 3
⎟ . (9.8)

u,y u,s ⎜ i i⎟ u,y ⎜ i i ⎟
⎝ ∑ Ne,s ue ⎠ ⎝ ∑ Ne,y ue ⎠
i=1 i=1

By equating these two and comparing the coefficients of uie we thus obtain
Ni i
−1 Ne,r
i )=J
( e,x ( i ) and more generally: ∇x Nei = J −1 ∇ξ Nei (9.9)
Ne,y Ne,s
with reference coordinates ξ = {r, s}. This is generally applicable for any isoparametric mapping.

By inserting the above shape functions into the Jacobian matrix we find that
3 3
⎛ N i xi i i⎞
∑ e,r e ∑ Ne,r ye ⎟
⎜i=1
⎟ = (xe − xe ye − ye )
1 3 1 3
x,r y,r
J =( )=⎜

i=1
⎟ (9.10)
x,s y,s ⎜ 3 i i 3 i i⎟ xe − x3 ye − ye3
2 e 2

⎝∑ e,s e ∑ e,s e ⎠
N x N y
i=1 i=1

and
J = det J = (x1e − x3e )(ye2 − ye3 ) − (x2e − xe3 )(ye1 − ye3 ) = 2Ae . (9.11)
Notice that J and hence J are constant and do not depend on (r, s).

Further, we have
Ni i
−1 Ne,r
( e,x
i )=J ( i ). (9.12)
Ne,y Ne,s
From (12.1) we see that all shape function derivatives are constant (−1, +1, or 0), so that we
may conclude that
i
Ne,x = const., i
Ne,y = const. and also dA = J dr ds = 2Ae dr ds. (9.13)
The constant shape function derivatives indicate that all strain components are constant within
the element since ε = sym(∇u). This is why the 3-node triangle element is also called Constant
Strain Triangle or CST. This also has the important consequence that integration of force
vectors or stiffness matrices can easily be performed exactly by a single quadrature point since
the integrands are constant across the element.

In case of higher-order triangular elements, the following relation is helpful for evaluating inte-
grals:
α! β!
∫ rα sβ dA = 2A. (9.14)
Ωe (α + β + 2)!

41
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

9.2 Extension to three dimensions:

The extension to three dimensions is straight-forward and results in the 4-node tetrahedron
(constant strain tetrahedron) with reference coordinates (r, s, t) and shape functions

Ne1 (r, s, t) = r, Ne2 (r, s, t) = s, Ne3 (r, s, t) = t, Ne4 (r, s, t) = 1 − r − s − t. (9.15)

Like in 2D, strains are constant in the linear tetrahedron, and dV = 6V dr ds dt.

Note the following important relation that is analogous to (9.14),

α! β! γ!
∫ rα sβ tγ dA = 2A. (9.16)
Ωe (α + β + γ + 2)!

9.3 Finite element implementation

When using the above simplicial elements, the finite element implementation can make use of
the isoparametric mapping. Specifically, we showed that
i
Ne,j = Jjξ Ne,ξ = const.
−1 i
and Je = det J = 2Ae . (9.17)

We further note that strains are constant within elements since


n n
uhi,j = ∑ uai Ne,j
a
= ∑ uai Jjξ Ne,ξ = const.
−1 a
⇒ σij = σij (∇uh ) = const. (9.18)
a=1 a=1

The key integrals to be evaluated (e.g., in 2D with an element thickness t) now become

Je t
a
Fint,i =∫ a
σij Ne,j dV = ∫ a
σij Ne,j tdA = σij Jjξ
−1 a
Ne,ξ t ∫ dA = σij Jjξ
−1 a
Ne,ξ . (9.19)
Ωe Ωe Ωe 2
Note that if we pre-compute the constant quantities in the element constructor, e.g.,
Je t
we = = const. and a
Ne,j = Jjξ Ne,ξ = const.,
−1 a
(9.20)
2
then the above reduces to
a
Fint,i = σij (∇uh )Ne,j
a
we . (9.21)

Similarly, we compute the element energy

Ie = ∫ W (∇uh )dV = ∫ W (∇uh ) tdA = W (∇uh )we . (9.22)


Ωe Ωe

9.4 Higher-order triangles and tetrahedra:

One can also define higher-order triangular and tetrahedral elements.

For example, the quadratic triangle (T6) element has six nodes so that the interpolation
function space is {1, x, y, x2 , xy, y 2 } and therefore complete up to second order. Per convention,
nodes 1-3 are the corners while 4-6 are at edge midpoints, and counting is counter-clockwise as
before.

42
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

With the same reference coordinates (r, s) as for the T3 element, the shape functions can be
found as
Ne1 (r, s) = r(2r − 1), Ne2 (r, s) = s(2s − 1), Ne3 (r, s) = t(2t − 1),
(9.23)
Ne4 (r, s) = 4rs, Ne5 (r, s) = 4st, Ne6 (r, s) = 4rt,

where t = 1 − r − s.

Since shape function derivatives are linear, strains (and thus stresses) also vary linearly within
the element which is therefore known as the linear strain triangle (LST). The quadratic
interpolation implies that element edges of isoparametric elements can be curved.

Analogously, the quadratic tetrahedron (T10) has four corner nodes and six nodes at edge
midpoints.

43
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

10 The bilinear quadrilateral element

The above simplicial element is simple to implement and its constant strains admit an exact
integration of energy, stresses, and stiffness. However, the constant fields within CST elements
may not be ideal. As an alternative in 2D, let us discuss the 4-node bilinear quadrilateral
element (also known as Q4).

By definition, the reference configuration is Ωe = [−1, 1]2 and node numbering starts in the
bottom left corner and is counterclockwise.

Shape functions must satisfy Nei (ξj , ηj ) = δij and can be obtained from the 2-node bar which
has:
1 1
2-node bar: N̄e1 (ξ) = (1 − ξ), N̄e2 (ξ) = (1 + ξ). (10.1)
2 2
It can easily be verified that N̄e1 (−1) = 1, N̄e1 (1) = 0, and N̄e2 (−1) = 0, N̄e2 (1) = 1.

The 2D element shape functions thus follow from combining the above in the ξ and η directions:

1
Q4 element: Ne1 (ξ, η) = N̄e1 (ξ)N̄e1 (η) = (1 − ξ)(1 − η),
4
1
Ne (ξ, η) = N̄e (ξ)N̄e (η) = (1 + ξ)(1 − η),
2 2 1
4 (10.2)
1
Ne3 (ξ, η) = N̄e2 (ξ)N̄e2 (η) = (1 + ξ)(1 + η),
4
1
Ne (ξ, η) = N̄e (ξ)N̄e (η) = (1 − ξ)(1 + η).
4 1 2
4
One can easily verify that Nei (ξj , ηj ) = δij and ∑4i=1 Nei (ξ, η) = 1 for all (ξ, η).

The isoparametric mapping here implies


4 4
x = ∑ Nei (ξ, η) xie , y = ∑ Nei (ξ, η) yei . (10.3)
i=1 i=1

Notice that this implies straight edges (in the reference configuration) remain straight (in the
actual mesh). For example, take the bottom edge (η = −1), the interpolation along this edge
is x = ∑4i=1 Nei (ξ, −1)xie and y = ∑4i=1 Nei (ξ, −1)yei , which are both linear in ξ. Therefore, this
element has straight edges in physical space.

Remarks:

ˆ completeness up to only q = 1 is given by {1, ξ, η, ξη}. This means we must be able to


represent solutions

uh (x, y) = c0 + c1 x + c2 y (10.4)

exactly. Check:
4 4 4
uh (x, y) = ∑ Nei uie = ∑ Nei uh (xi , yi ) = ∑ Nei (c0 + c1 xi + c2 yi )
i=1 i=1 i=1
4 4 4
(10.5)
= (∑ Nei ) c0 + c1 ∑ Nei xi + c2 ∑ Nei yi = c0 + c1 x + c2 y.
i=1 i=1 i=1

44
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

ˆ integrability: Note that this interpolation scheme ensures that uh is continuous across
elements. To see this, notice that on any element edge only those two shape functions are
non-zero whose nodes are on that edge while the others are zero.

As for the simplicial element, computing shape function derivatives requires the use of the
inverse function theorem.

In analogy to the simplicial element, we use x = x(ξ, η) and y = y(ξ, η) so the inverse function
theorem yields
i
Ni −1 Ne,ξ
( e,x
i ) = J ( i ) and more generally: ∇x Nei = J −1 ∇ξ Nei (10.6)
Ne,y Ne,η

As a simple example, recall the 2-node bar element whose shape functions we computed as
x x
Ne1 (x) = 1 − , Ne2 (x) = . (10.7)
∆x ∆x
For a reference bar element with nodes at ξ = ±1, the analogous shape functions in 1D read
1−ξ 1+ξ
Ne1 (ξ) = , Ne2 (ξ) = . (10.8)
2 2
Applying the above relations to the 1D problem gives

∂x ∂Ne1 1 ∂Ne2 2 x2e − x1e ∆x


J= = x + x = = . (10.9)
∂ξ ∂ξ e ∂ξ e 2 2
This confirms that indeed
2 i
i
Ne,x = J −1 Ne,ξ
i
= N . (10.10)
∆x e,ξ

A useful relation to evaluate area integrals in the following is (e1 , e2 being reference unit vectors)

∂x ∂x ∂y ∂y
dA = dx × dy = ( dξ e1 + dη e2 ) × ( dξ e1 + dη e2 ) = J dξ dη e1 × e2 (10.11)
∂ξ ∂η ∂ξ ∂η
so that

dA = ∣dA∣ = J dξ dη (10.12)

Extension to higher-order elements:

The 9-node quadratic quadrilateral (Q9) derives its shape functions from applying the 1D
shape functions of the 3-node bar (using Lagrangian interpolation) to the 2D case. For example,

ξ(1 − ξ)η(1 − η)
N1 (ξ, η= , (10.13)
4
so that overall the interpolation includes monomials

{1, ξ, η, ξη, ξ 2 , η 2 , ξ 2 η, ξη 2 , ξ 2 η 2 }, (10.14)

which is complete up to order q = 2 (quadratic).

45
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Since the above elements includes way more polynomial terms than required for quadratic
interpolation, one can construct elements with less nodes, e.g., the 8-node quadratic quadri-
lateral (Q8) also known as serendipity element.

Shape functions are constructed as follows:

(1 − η)(1 − ξ 2 )
N5 (ξ, η) = ,
4
(1 − η 2 )(1 + ξ)
N6 (ξ, η) = , (10.15)
4
(1 − η)(1 − ξ) 1
N1 (ξ, η) = − (N5 + N8 ), etc.
4 2

Extension to three dimensions:

The same procedure can be applied to 3D, resulting in the 8-node brick element. The refer-
ence coordinates (ξ, η, ζ) are linked to the physical coordinates (x, y, z) via the shape functions

1
Ne1 (ξ, η, ζ) = (1 − ξ)(1 − η)(1 − ζ), ... (10.16)
8
again with

∇x Nei = J −1 ∇ξ Nei and dV = J dξ dη dζ (10.17)

46
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

11 Numerical quadrature

The finite element method frequently requires computing integrals, e.g., for the internal/external
force vectors. Since these cannot be integrated analytically in general (with exceptions like the
simplicial elements), we need numerical integration schemes.

Consider the integral


b
I[u] = ∫ u(x) dx. (11.1)
a

For convenience, let us introduce the shift


x−a 2 dx
ξ=2 −1 ⇒ ξ(x = a) = −1, ξ(x = b) = 1, dξ = (11.2)
b−a b−a
ξ+1
and x = 2 (b − a) + a so that
1 b−a
I[u] = ∫ f (ξ) dξ where f (ξ) = u(x(ξ)). (11.3)
−1 2

The goal is now to approximate the integral in (11.3) numerically.

11.1 Example: Riemann sums

Consider a partition with n + 1 nodes:


P = {[ξ0 , ξ1 ], [ξ1 , ξ2 ], . . . , [ξn−1 , ξn ]} such that − 1 = ξ0 < ξ1 < ξ2 < . . . < ξn = 1 (11.4)

The Riemann sum makes use of the approximation


n
I ≈ S = ∑ f (ξi∗ )(ξi − ξi−1 ) with ξi−1 ≤ ξi∗ ≤ ξi . (11.5)
i=1

Different choices of ξi∗ :

(i) left Riemann sum: ξi∗ = ξi−1 :


(ii) right Riemann sum: ξi∗ = ξi
(iii) middle Riemann sum: ξi∗ = 12 (ξi−1 + ξi )
(iv) trapezoidal sum: average of left and right
(v) upper Riemann sum: ξi∗ s.t. g(ξi∗ ) = supξ∈[ξi−1 ,ξi ] g(ξ)
(vi) lower Riemann sum: ξi∗ s.t. g(ξi∗ ) = inf ξ∈[ξi−1 ,ξi ] g(ξ)

More refined formulations can be found in the so-called Newton-Cotes formulas (the trape-
zoidal rule is the Newton-Cotes formula of degree 1).

11.2 Gauss quadrature

A much more efficient alternative are quadrature rules (also called cubature rules in 3D)
which are best suited for polynomial functions:
1 nQP −1
I[u] = ∫ f (ξ) dξ ≈ ∑ Wi f (ξi ). (11.6)
−1 i=0

47
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Now, we need to choose nQP , {W0 , . . . , WnQP −1 } and {ξ0 , . . . , ξnQP −1 }. The choice should depend
on the function to be integrated (more specifically, on its smoothness). Note that most functions
of interest will be of polynomial type.

We say a quadrature rule is exact of order q if it integrates exactly all polynomial functions
g ∈ Pq ([−1, 1]). Gauss quadrature generally chooses nQP quadrature points and associated
weights such that the quadrature rule is exact of order q = 2nQP − 1.

11.2.1 Gauss-Legendre quadrature

Gauss-Legendre quadrature selects the nodes and weights such that the first 2nQP moments
are computed exactly:

1 nQP −1
!
µk = ∫ ξ k dξ = ∑ Wi ξik , k = 0, 1, . . . , 2nQP − 1. (11.7)
−1 i=0

These are 2nQP equations for the 2nQP free parameters (Wi , ξi ) for i = 0, . . . , nQP − 1. The
equations are generally nonlinear and thus hard to solve analytically.

Let us compute the Gauss-Legendre weights and points for the lowest few orders in 1D:

ˆ a single quadrature point, i.e., nQP = 1:


Two equations for two unknowns:
1 1
∫ ξ 0 dξ = 2 = W0 ξ00 = W0 and ∫ ξ 1 dξ = 0 = W0 ξ01 = W0 ξ0 (11.8)
−1 −1

So that the first-order quadrature rule is given by

W0 = 2, ξ0 = 0 (11.9)

Since linear functions are integrated exactly, this quadrature rule is exact to order q = 1.

ˆ two quadrature points, i.e., nQP = 2:


In close analogy, we now have
1 1
∫ ξ 0 dξ = 2 = W0 + W1 , ∫ ξ 1 dξ = 0 = W0 ξ0 + W1 ξ1 ,
−1 −1
1 1
(11.10)
1
∫ ξ dξ = = W0 ξ02 + W1 ξ12 ,
2
∫ ξ dξ = 0 =
3
W0 ξ03 + W1 ξ13 .
−1 3 −1

A simple solution can be found for symmetric quadrature points ξ0 = −ξ1 :

1 1
W0 = W1 = 1, ξ0 = − √ , ξ1 = √ . (11.11)
3 3

This quadrature rule is exact to order q = 3 (cubic polynomials are integrated exactly).

ˆ higher-order quadrature rules:


Quadrature weights and points for arbitrary order can be obtained in analogous fashion
and, most importantly, can be found in numerous look-up tables (see notes and textbooks).
However, there is a better, systematic way to compute Gauss-Legendre quadrature weights
and points.

48
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Note that monomials {1, ξ, ξ 2 , ξ 3 , . . .}, although complete, are not orthogonal basis func-
tions. We can turn them into orthogonal polynomials Pn (ξ) by, e.g., the Gram-Schmidt
orthogonalization procedure. To this end, let us start with

P0 (ξ) = 1 (11.12)

and obtain the next basis function by starting with the linear momonial ξ and computing

⟨1, ξ⟩
P1 (ξ) = ξ − 1 = ξ, (11.13)
⟨1, 1⟩
where we used the inner product
1
⟨u, v⟩ = ∫ u(ξ)v(ξ)dξ. (11.14)
−1

Similarly, the next higher basis function is obtained by starting from ξ 2 , so that
⟨ξ, ξ 2 ⟩ ⟨1, ξ 2 ⟩ 1
P2 (ξ) = ξ 2 − ξ− 1 = ξ2 − . (11.15)
⟨ξ, ξ⟩ ⟨1, 1⟩ 3
Analogously, one finds
3
P3 (ξ) = ξ 3 − ξ. (11.16)
5

By continuing analogously, we create a countably infinite set of orthogonal basis functions


Pn (ξ) such that
1
∫ Pn (ξ)Pm (ξ)dξ = 0 if n ≠ m. (11.17)
−1

These polynomials are known as Legendre polynomials. Note that they are defined
only up to a constant, so one can renormalize them, which is commonly done by enforcing
that Pn (1) = 1 for all n. The result is the well known Legendre polynomials which can
alternatively be defined via

1 dn
Pn (ξ) = [(ξ 2 − 1)n ] (11.18)
2n n! dξ n

These polynomials have another interesting feature, viz. by orthogonality with P0 (ξ) = 1
we know that


1 ⎪2, if n = 0,
∫ Pn (ξ)dξ = ⟨1, Pn ⟩ = ⎨

(11.19)
−1 ⎪
⎩0, else.
Pn (ξ) has exactly n roots in the interval [−1, 1]. Also, for n ≠ 0 we know that

Pn (ξ) = −Pn (−ξ) for odd n,


(11.20)
Pn (ξ) = Pn (−ξ) for even n.

Moreover, Pn (0) = 0 for odd n.


With this new set of basis functions, we can define the Gauss-Legendre quadrature rule
to enforce
1 nQP −1
!
∫ Pk (ξ)dξ = ∑ Wi Pk (ξi ), k = 0, 1, . . . , 2nQP − 1. (11.21)
−1 i=0

49
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

If nQP = 1, then the solution is simple because the above equations simplify to

W0 = 2 and 0 = W0 P1 (ξ0 ). (11.22)

Therefore, the weight is, as before, W0 = 2 and the quadrature point is the root of P1 (ξ),
viz. ξ0 = 0.
If nQP = 2, then the four equations to be solved are

W0 + W1 = 2 and 0 = W0 P1 (ξ0 ) + W1 P1 (ξ1 ),


(11.23)
0 = W0 P2 (ξ0 ) + W1 P2 (ξ1 ) and 0 = W0 P3 (ξ0 ) + W1 P3 (ξ1 ).

By analogy, we choose the quadrature points to be the roots of P2 (ξ), so that


1 1
P2 (ξ0 ) = P2 (ξ1 ) = 0 ⇒ ξ0 = √ , ξ1 = − √ . (11.24)
3 3
Using Pn (ξ) = −Pn (−ξ), the above equations reduce to

W0 = W1 = 1. (11.25)

Further, note that Pn (0) = 0 for odd n. Therefore, the same procedure can be continued
as follows. For an arbitrary number of quadrature points, nQP , the Gauss-Legendre
quadrature points and associated weights are defined by

2
PnQP (ξi ) = 0, wi = i = 0, . . . , nQP − 1. (11.26)
(1 − ξi2 )[Pn′ QP (ξi )]2

As a check, take, e.g., nQP = 1 so that P1 (ξ) = ξ with root ξ0 = 0. The weight is computed
as
2
w0 = = 2, (11.27)
(1 − ξ02 )[Pn′ QP (ξ)]2

as determined above. Similarly, for nQP = 2 we have P2 (ξ) = 12 (3ξ 2 − 1) with the above

roots of ±1/ 3. The associated weights are computed as
2 2 2
w0 = = = = 1 = w1 , (11.28)
(1 − ξ02 )[P2′ (ξ0 )]2 (1 − ξ02 )[3ξ0 ]2 2 32
3 3

which agrees with our prior solution.

11.2.2 Other Gauss quadrature rules

Note that if, for general functions f , one can sometimes find a decomposition f (ξ) = w(ξ)g(ξ)
where w(⋅) is a known weighting function and g(ξ) is (approxiately) polynomial, so that a more
suitable quadrature rule may be found via

1 1 nQP −1
I[u] = ∫ f (ξ)dξ = ∫ w(ξ) g(ξ)dξ ≈ ∑ w(ξi ) g(ξi ). (11.29)
−1 −1 i=0

Examples of such Gaussian quadrature rules include those of Gauss-Chebyshew type, which
are obtained form a weighting function w(ξ) = (1 − ξ 2 )−1/2 , and the quadrature points are
the roots of Chebyshew polynomials. Gauss-Hermite quadrature uses a weighting function

50
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

w(ξ) = exp(−ξ 2 ) (and the integral is taken over the entire real axis). Gauss-Legendre quadrature
is included as the special case w(ξ) = 1.

Another popular alternative (less for FE though) is Gauss-Lobatto quadrature which in-
cludes the interval end points as quadrature points and is accurate for polynomials up to degree
2nQP − 3, viz.

1 QP n −1
2
I[u] = ∫ f (ξ) dξ ≈ [f (−1) + f (1)] + ∑ Wi f (ξi ). (11.30)
−1 nQP (nQP − 1) i=2

11.3 Higher dimensions

Like the polynomial shape functions, the above quadrature rules can easily be extended to 2D
and 3D, e.g.,

1 1 1 N −1 N −1 N −1
∫ ∫ f (ξ, η)dξ dη = ∫ [ ∑ Wi f (ξi , η)] dη = ∑ Wj [ ∑ Wi f (ξi , ηj )]
−1 −1 −1 i=0 j=0 i=0
nQP −1
(11.31)
= ∑ Wk∗ f (ξk , ηk )
k=0

with the combined weights Wk∗ = Wi Wj and points (ξk , ηk ) = (ξi , ηj ) obtained from the individ-

ual quadrature rules in each direction. By symmetry we choose N = nQP so that N 2 = nQP .

For example, consider the Q4 element. By reusing the 1D Gauss-Legendre weights and points,
we now have:

ˆ first-order quadrature (q = 1), as in 1D, has only a single quadrature point (nQP = 1):

W0 = 1 and (ξ0 , η0 ) = (0, 0) (11.32)

Bilinear functions (at most linear in ξ and η) are integrated exactly with this rule.

ˆ third-order quadrature (q = 3), now has four quadrature points (nQP = 22 = 4):

1 1
W0 = W1 = W2 = W3 = 1 and (ξi , ηi ) = (± √ , ± √ ) (11.33)
3 3

Bicubic polynomial functions (at most cubic in ξ and η) are integrated exactly.

Similarly, the brick element in 3D uses Gauss-Legendre quadrature as follows:

ˆ first-order quadrature (q = 1) still has a single quadrature point (nQP = 1):

W0 = 1 and (ξ0 , η0 ) = (0, 0) (11.34)

ˆ third-order quadrature (q = 3), now has four quadrature points (nQP = 23 = 8):

1 1 1
Wi = 1 and (ξi , ηi , ζi ) = (± √ , ± √ , ± √ ) . (11.35)
3 3 3

51
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

11.4 Finite element implementation

The key integrals to be evaluated numerically are (e.g., in 2D)


1 1 nQP −1
Ie = ∫ W (∇uh )dV = ∫ ∫ W (∇uh (ξ)) J(ξ)te dξ dη ≈ ∑ Wk W (∇uh (ξk )) J(ξk )te ,
Ωe −1 −1 k=0

1 1 nQP −1
a
Fint,i =∫ σij N,ja dV = ∫ ∫ σij (ξ)N,ja (ξ) J(ξ)te dξ dη ≈ ∑ Wk σij (ξk )N,ja (ξk ) J(ξk )te
Ωe −1 −1 k=0
(11.36)

and the tangent matrix


1 1
ab
Tik =∫ Cijkl N,ja N,lb dV = ∫ ∫ Cijkl (ξ)N,ja (ξ)N,lb (ξ)J(ξ)te dξ dη
Ωe −1 −1
nQP −1 (11.37)
≈ ∑ Wk Cijkl (ξk )N,ja (ξk )N,lb (ξk )J(ξk )te
k=0

Notice for implementation purposes that σij N,ja is a simple matrix-vector multiplication so that,
using the isoparametric mapping of Section 8.3,
nQP −1
a
Fint ≈ ∑ Wk J(ξk )te σ(ξk )∇x N a (ξk ) with ∇x N a = J −1 = ∇ξ N a . (11.38)
k=0

11.5 Quadrature error estimates

Using numerical quadrature to approximate an exact integral introduces a quadrature error,


which is bounded as follows. For a function f (ξ) ∈ C 2nQP (Ω) we have that (without proof here)

RRR 1 nQP −1 RRR


RRR (ξ)dξ − (ξ RR
k RRR ≤ Ch
) max ∣f (2nQP ) (ξ)∣
2nQP
RRR∫−1 f ∑ W k f (11.39)
RR k=0 RRR ξ∈[−1,1]

with a constant C > 0. This shows that, as can be expected, the quadrature error decreases with
decreasing mesh size h and with increasing smoothness of function f . The rate of convergence
under h-refinement also depends on the smoothness of the function.

The exact error depends on the chosen quadrature rule. For example, for Gauss-Legendre
quadrature an error estimate is given by
22nQP +1 (nQP !)4
e= max ∥f (2nQP ) (ξ)∥ . (11.40)
(2nQP + 1)[(2nQP )!] ξ∈[−1,1]
3

11.6 Quadrature rules for simplicial elements:

As discussed above, simplicial elements (bar, triangle, tetrahedron) produce constant strains and
thus constant stresses within elements. Hence, a single quadrature point at an arbitrary
location inside the element is sufficient. Usually one chooses the point to be located at the
element center, which gives
1 1
W0 = 1, r0 = s 0 = (in 2D) and r0 = s0 = t0 = (in 3D). (11.41)
3 4

52
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

If higher-order quadrature rules are required (e.g., for triangular and tetrahedral elements of
higher interpolation order as discussed next), the same concepts as for Gauss-Legendre quadra-
ture can be applied here, resulting in simplicial quadrature rules whose weights and quadra-
ture point locations can be found in look-up tables.

11.7 Which quadrature rule to use?

Stresses, shape function derivatives, and Jacobians are not necessarily smooth polynomials.
Thus, rather than finding the exact integration order for each element and constitutive model,
we introduce a minimum required integration order for a particular element type.

Our minimum requirement is that an undistorted elastic element is integrated exactly. Thus,
we define full integration as the order needed to integrate an undistorted, homogeneous, linear
elastic element exactly. An element is undistorted if element angles are preserved or, in other
words, if J = const.

For example, the 4-node quadrilateral (Q4) is undistorted if the physical element has the shape
of a rectangle (side lengths a and b), so that

ab
J= = const. (11.42)
4
Then, for a linear elastic Q4 element we have
1 1 ab abte 1 1
a
Fint,i =∫ ∫ Cijkl εhkl (ξ)N,ja (ξ) te dξ dη = Cijkl ∫ ∫ εhkl (ξ)N,ja (ξ)dξ dη, (11.43)
−1 −1 4 4 −1 −1

where εh = sym(∇x uh ) is at most linear (since the interpolation of uh is bilinear), ∇x N a is also


at most linear for the same reason. Overall, the integrand is at most a quadratic polynomial,
so that we need integration order q ≥ 2.

Recall that in 1D we showed that q = 2nQP − 1, so that full integration of the Q4 element in 2D
requires nQP = 2 × 2 = 4 quadrature points.

Analogously, full integration of the quadratic 2D elements Q8/Q9 requires nQP = 32 = 9 quadra-
ture points. Full integration of the 8-node brick element requires nQP = 8 quadrature points.

For simplicial elements, we showed that a single quadrature point (nQP = 1) is always sufficient
to integrate exactly, since stresses and strains within elements are constant. For the quadratic
triangle (T6), full integration requires order q = 2, which corresponds to three quadrature points.

Note that not only does full integration guarantee that the internal force vector of an undis-
torted, elastic element is integrated exactly. By reviewing the element energy and the element
tangent matrix, we make the same observation (i.e., those are integrated exactly as well):

abte 1 1 1
Ie = ∫ W dV = Cijkl ∫ ∫ εhij (ξ)εhkl (ξ)dξ dη,
Ωe 4 2 −1 −1
(11.44)
abte 1 1
Tijab = Cijkl ∫ ∫ N,ja (ξ)N,lb (ξ)dξ dη.
4 −1 −1

Using an integration rule less than full integration is called under-integration; the opposite
is called over-integration. Which integration order to use depends very much on the element,
material model, etc. Sometimes under-integration can be beneficial (e.g., to avoid locking). We
will discuss some of these issues later.

53
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

12 Generalization and implementation of the simplicial elements

For a general simplicial element in d dimensions having n = d + 1 nodes, we have shape functions

d
Ne1 (r1 , . . . , rd ) = r1 , Ne2 (r1 , . . . , rd ) = r2 , ... Nen (r1 , . . . , rd ) = 1 − ∑ ri , (12.1)
i

where ξ = {r1 , . . . , rd } denote the d barycentric coordinates. Then, the Jacobian J is given by

∂Xj n
∂Nea n
Jij = = ∑ Xja or J = ∑ ∇ξ Nea ⊗ X a , J = det J , (12.2)
∂ri a=1 ∂ri a=1

so that shape function derivatives in physical coordinates follow as


a a
⎛Ne,X1 ⎞ ⎛Ne,r1 ⎞
⎜ ... ⎟ = J ⎜ ... ⎟
−1
or ∇X Nea = J −1 ∇ξ Nea . (12.3)
⎝N a ⎠ a ⎠
⎝Ne,r
e,Xd d

Using numerical quadrature with weights Wk and points ξk (in reference coordinates), the
element energy is given by
nQP
Ie ≈ ∑ Wk W (F (ξk )) J(ξk ) te . (12.4)
k=1

Nodal forces are approximated by


nQP
a
Fint,i ≈ ∑ Wk PiJ (F (ξk )) N,J
a
(ξk )J(ξk ) te . (12.5)
k=1

Finally, the element stiffness matrix components become


nQP
Tilab ≈ ∑ Wk CiJlL (F (ξk )) N,J
a
(ξk )N,L
b
(ξk )J(ξk ) te . (12.6)
k=1

Here, te is an element constant (e.g., the cross-sectional area A in 1D, the thickness t in 2D,
and simply 1 in 3D).

The deformation gradient, F = I + ∇X u, and strain tensor, ε = sym(∇X u), can be obtained
directly from ∇X u. Also, recall that
n
∇X u(ξ) = ∑ uae ⊗ ∇X N a (ξ). (12.7)
a=1

Note that, in linearized kinematics, the above equations hold analogously with PiJ replaced by
the Cauchy stress tensor, upper-case coordinates X by lower-case x, etc.

54
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

13 Assembly

So far, we have defined local element vectors and matrices. The solution of any problem requires
the assembly of global vectors and matrices. Specifically, recall that shape functions associated
with a node a are non-zero only in elements adjacent to node a (this is the principle of locality).
When computing, e.g., the total energy of a body discretized into ne elements, we exploit that
ne ne
I = ∫ W (∇uh )dV = ∑ ∫ W (∇uh )dV = ∑ I e . (13.1)
Ω e=1 Ωe e=1

When computing force vectors and incremental stiffness matrices, the situation is more complex,
which is why we introduce the assembly operator, viz.
ne ne
Fint = A Fint,e , Tint = A Tint,e , (13.2)
e=1 e=1

which loops over all ne elements e and adds their respective contributions to the global quanti-
ties. This requires careful book-keeping to keep track of the correspondence between local and
global node numbering (and is the reason our implemented elements store the node IDs).

Similarly, an inverse assignment operator extracts element quantities from a global vector:

Ueh = A−1 (U h ). (13.3)


e

For practical purposes, it is helpful to recall that entry Uia is located at position a ⋅ d + i in the
assembled vector U h (using C++ notation with 0-indexed lists, in d dimensions). For example,
consider a 2D problem using 2-node bar elements. If an element connecting nodes 1 and 3
1 3
computes the nodal force vectors Fint,e and Fint,e , then they are to be added into the global
force vector as

⎛ ⋅ ⎞
⎜ ⋅ ⎟
⎜ 1 ⎟
⎜Fint,e,1 ⎟
⎜ ⎟
⎜F 1 ⎟
⎜ int,e,2 ⎟
⎜ ⎟
⎜ ⋅ ⎟
Fint = ⎜
⎜ ⋅ ⎟
⎟ (13.4)
⎜ ⎟
⎜ 3 ⎟
⎜Fint,e,1 ⎟
⎜ 3 ⎟
⎜F ⎟
⎜ int,e,2 ⎟
⎜ ⎟
⎜ ⋅ ⎟
⎝ ⋅ ⎠

Analogously, if the element connecting nodes 0 and 2 computes a stiffness matrix Ke02 , then its
components must be added onto the global tangent stiffness matrix as
02
⎛K11
02
K12 ⋅ ⋅ 02
K13 02
K14 ⋅ ⋅⎞
02
⎜K21
02
K22 ⋅ ⋅ 02
K23 02
K24 ⋅ ⋅⎟
⎜ ⎟
⎜ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅⎟
⎜ ⎟
T =⎜
⎜ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅⎟
⎟ (13.5)
⎜K 02 02
⋅ ⋅ 02 02
⋅ ⋅⎟
⎜ 31 K32 K33 K34 ⎟
⎜ 02 ⎟
⎜K41 02
K42 ⋅ ⋅ 02
K43 02
K44 ⋅ ⋅⎟
⎝ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅⎠
Note that because nodes in FEM have non-zero shape functions only in adjacent elements, the
above matrix is generally sparse (which comes with significant computational advantages).

55
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

14 Overview: Numerical Implementation

The above theoretical concepts are implemented in our c++ finite element code, whose general
structure is summarized in the following. Details can be extracted from the source files. The
code structure is schematically shown in Fig. 1.

material model:

The material model computes The MaterialModel class implements:

⋅ W = W (∇u) ⋅ computeEnergy(∇u, zα , t) → W ∗
⋅ PiJ = PiJ (∇u) or σij = σij (∇u) ⋅ computeStresses(∇u, zα , t) → PiJ or σij
⋅ CiJkL = CiJkL (∇u) or Cijkl (∇u) ⋅ computeTangentMatrix(∇u, zα , t) → CiJkL
Depending on the (finite/linearized) model, The respective strain tensor is provided by
the strain is
⋅ computeStrain(∇u) → FiJ or εij
F = I + ∇u or
which can, of course, also be called within the
1
ε = (∇u + ∇uT ) element to conveniently compute stresses, etc.
2
Also, internal variables must be updated1 : Internal variables are updated by1

⋅ updateInternalVariables(∇u, zα , t)
zα+1 = arg inf Fzα (∇u)
→ zα+1 (if no update, simply return zα )

element:

The element computes The Element class implements:


nQP ⋅ computeEnergy(Ueh , t) → Ie
⋅ Ie ≅ ∑ Wk W (∇u(ξk ))J(ξk )
k=1
where Ueh = {u1e , . . . , une }
nQP
⋅ (Fint,e )ai ≅ ∑ Wk PiJ (ξk )N,J
a
(ξk )J(ξk ) ⋅ computeForces(Ueh , t) → {Fint,e
1 n
, . . . , Fint,e }
k=1
nQP
⋅ computeStiffnessMatrix(Ueh , t) → (Tint,e )ab
ik
⋅ (Tint,e )ab
ik ≅ ∑ Wk CiJkL (ξk )N,J (ξk )N,L (ξk ) Note that the element has a MaterialModel,
a b
k=1 × J(ξk )
which is used to compute W , PiJ , and CiJkL
from ∇u, zα , and time t.
In addition, internal variables must be updated1 :
The element stores and updates1 z:
zα+1 = arg inf Fzα (∇u, t)
⋅ updateInternalVariables(Ueh , t):
update zα ← zα+1
1
Internal variables will be discussed later in the con-
text of inelasticity. They are included here for com- by calling the MaterialModel.
pleteness.

56
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

assembler:

The assembly procedure calculates The Assembler class implements:


ne ⋅ assembleEnergy(U h , t) → I
⋅ I(U h ) = A Ie (Ueh )
e=1 where U h = {u1 , . . . , un }
ne
⋅ Fint (U h ) = A Fint,e (Ueh ) ⋅ assembleForces(U h , t) → Fint − Fext
e=1
ne
⋅ Tint (U h ) = A Tint,e (Ueh ) ⋅ assembleStiffnessMatrix(U h , t) → Tint
e=1
The assembler calls all elements to request their
These are the global quantities derived from
contributions, then assembles those into the
local element quantities.
global matrices.

The assembler also implements1

⋅ updateInternalVariables(U h , t)

which asks each element to update its internal


variables (usually called at the end of a con-
verged solver step; this will be discussed later).

Finally, note that material models and elements use vector notation for all stiffness matrices.

P=P (Ñu)
Uh material model (Wk , xk) quadrature
C= C (Ñu) rule

solver:
P, C Ñu (xk)
h
Fint(U ) - Fext= 0
4 local nodes
ue 4
h 3 {1,2,3,4}
1
Uih Fint, T Fint,e element x
assembler: xk quadrature
1 2
points

12 Fint,e Ue
ess. BCs ux = 0
global nodes
{18,19,32,30}
30 32
y
x element We
18
Fint 18 19

19
u
mesh:
nodes = {{1, (0,0)}, {2, (0.5,1.2)}, ...} SpatialDimension: 2D
connectivity = {{1,2,13,12}, ..., {18,19,32,30}, ...} DegreesOfFreedom: 2 (ux, uy)

Figure 1: Illustration of the overall code structure.

57
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

15 Iterative solvers

In the linear elastic or thermal problem, the solution is simple to obtain from a linear system
of equations, as discussed before. In case of nonlinear problems, an iterative solution method
is required. Here, we discuss a few common examples.

The problem to be solved has the general form


f (U h ) = Fint (U h ) − Fext = 0. (15.1)

All iterative solvers start with an initial guess U0h , which is then corrected in a multitude of
ways to find
h
Un+1 = Unh + ∆Unh . (15.2)
The iterative scheme converges if ∆Unh → 0 as n → ∞, or equivalently f (Unh ) → 0 as n → ∞.

15.1 Netwon-Raphson (NR) method

The Newton-Raphson method (introduced by Newton in 1669 and generalized by Raphson


in 1690) starts with a Taylor expansion:
0 = f (Un+1
h
) = f (Unh + ∆U n )
∂f (15.3)
= f (Unh ) + (U h ) ∆Unh + O(∆Unh ).
∂U n
If we neglect higher-order terms, then the above can be solved for the increment
−1 ∂f
∆Unh = − [T (Unh )] f (Unh ) with T (Unh ) = (U h ) (15.4)
∂U n
being the tangent matrix.

For the mechanical problem, this gives (e.g., in finite deformations)


∂Fia ∂
ab
Tik (Unh ) = b
(Unh ) = (∫ PiJ N,J
a
dV − Fext,i
a
)
∂Uk ∂Ukb Ω
a
∂PiJ b a ∂Fext,i
=∫ N,L N,J dV − (15.5)
Ω ∂FkL ∂Ukb
a
∂Fext,i
= ∫ CiJkL N,L b a
N,J dV − ,
Ω ∂Ukb
where CiJkL is the incremental stiffness tensor (in linearized kinematics, the expression is the
same with Cijkl the linearized stiffness tensor).

Note that the solver requires that det T ≠ 0, which is guaranteed in linear elasticity if no rigid
body mode exists (i.e., the linearized system has no zero-energy mode so that U h ⋅ T U h ≠ 0 for
all admissible U h ). The Newton-Raphson solver displays quadratic convergence.

Note that, if the problem is linear as in linear elasticity, the solver converges in one step since
h
Un+1 = Unh + ∆Unh = Unh − K −1 [Fint − Fext ]
= Unh − K −1 [KUnh − Fext ]
(15.6)
= Unh − Unh + K −1 Fext
= K −1 Fext .

58
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

15.2 Damped Newton-Raphson (dNR) method

A slight modification of the Newton-Raphson method, the damped Newton-Raphson method


is beneficial, e.g., when the NR method tends to overshoot (e.g., in case of oscillatory energy
landscapes or multiple minima such as in finite-deformation elasticity).

The iterative scheme is identical to the classical NR method except that


h
Un+1 = Unh + α ∆Unh with α ∈ (0, 1). (15.7)

The damping parameter α can be chosen constant or adjusted based on convergence.

15.3 Quasi-Newton (QN) method

The Quasi-Newton method is the same as the classical NR method with the exception that
one does not use the actual tangent matrix T for computational simplicity or efficiency.

Motivation is thus to avoid the computation of T (U h ) and its inversion at each iteration step.
Instead one uses a matrix Bn and updates its inverse directly.

The general algorithm is as follows:

(1) start with an initial guess U0h and B0 = T (U0h )


(2) compute ∆Unh = −Bn−1 f (Unh ) and Un+1
h
= Unh + ∆Unh and

(Bn−1 zn − ∆Unh ) ⊗ ∆Unh Bn−1


−1
Bn+1 = Bn−1 − with zn = f (Un+1
h
) − f (Unh ). (15.8)
∆Unh ⋅ Bn−1 zn
−1
We omit the full derivation of the update for Bn+1 here for brevity. The idea is that Bn+1 and
−1
Bn are approximately rank-one-connected using the Sherman-Morrison formula. The added
benefit is that not only does T not have to be recomputed exactly but also can the inversion or
linear solver be skipped since the updated inverse is computed explicitly.

15.4 Line search method

The line search method can be used as an improvement for other nonlinear iterative solvers.
Similar to the Quasi-Newton schemes, updates are made according to
h
Un+1 = Unh + β ∆Unh , (15.9)

where now β is not a constant but chosen such that f (Un+1


h
) = 0. For example, we can find β
from solving

∆Unh ⋅ f (Unh + β ∆Unh ) = 0. (15.10)

This is generally a nonlinear but scalar problem that can be solved by bisection, regula falsi,
secant, and other methods.

Notice that (15.10) is in fact the stationarity condition of the minimization problem
2
β = arg inf ∥f (Unh + β ∆Unh )∥ , (15.11)

which is the motivation for the nonlinear least-squares method described below.

59
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

15.5 Gradient flow method

Although not with a proper physical meaning, the gradient flow method (also known as
gradient descent) has become popular as an iterative solver for quasistatic problems.

The idea is to replace the equation

0 = f (Un+1
h
) (15.12)

by a dynamic evolution equation:


h
C U̇n+1/2 = −f (Unh ) and h
Un+1 = Unh + ∆t U̇n+1/2
h
(15.13)

with, e.g., C = cI with c > 0. It is obvious that as f → 0 we have U̇n+1/2


h
→ 0 and thus the
method converges. Although there is no guarantee to reach an extremum, the method is popular
because it does not require a tangent matrix and is quite robust.

For example, using a simple backward-Euler discretization for the time derivative and C = cI,
we obtain
1
h
Un+1 = Unh − f (Unh ). (15.14)
c

15.6 Nonlinear Least Squares

The family of methods based on nonlinear least squares aim to minimize


2 ∂r
r(U h ) = ∥f (U h )∥ = f (U h ) ⋅ f (U h ) so we solve = 0. (15.15)
∂U h
This approach is helpful, e.g., in case of over-constrained systems. Application of Newton-
Raphson to this nonlinear system of equations leads to

∂ ∂r −1 ∂r
∆U h = − [ ] (U h )
∂U h ∂U h Unh ∂U h n
−1 (15.16)
∂f ∂T T h
= − [T T
(Unh ) (U h
)f (U h
) + (U )f (Unh )] T T
(Unh ) f (Unh ).
∂U h n n
∂U h n

If updates are small, we can neglect the second term in brackets (which requires higher deriva-
tives than what is commonly computed in FEM), which gives
−1
∆U h = − [T T (Unh )T (Unh )] T T (Unh ) f (Unh ). (15.17)

This is known as the Gauss-Newton method. Note that this reduces to Newton-Raphson for
standard problems (i.e., those with as many equations as unknowns). However, Gauss-Newton
can also be applied to overdetermined systems (i.e., more equations than unknowns).

15.7 Conjugate Gradient (CG) method

The conjugate gradient method follows the idea of iterating into the direction of steepest
descent in order to minimize the total potential energy (as a variation, it can also be applied to
the nonlinear least squares problem).

60
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Here, the update is


h
Un+1 = Unh + αn Sn , (15.18)

where both the direction Sn and increment αn are determined in an optimal way as follows.

The conjugate direction is updated according to

Sn = −f (Unh ) + βn Sn−1 (15.19)

with β computed from the current solution Unh and the previous solution Unh according to one
of several options (Polak-Ribière, Fletcher-Reeves, etc.)

Then, the scalar increment αn is obtained from a line search to find

αn = arg min r (Unh + α Sn ) . (15.20)

A benefit of the conjugate gradient technique is that, as for gradient flow, no tangent matrix is
required.

A variation of this scheme, originally developed for atomistics but also applicable to the FE
method (and oftentimes converging faster than CG) is the so-called Fast Inertial Relaxation
Engine (FIRE).

61
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

16 Boundary conditions

16.1 Neumann boundary conditions

Recall that the nonlinear system of equations to solve,

Fint (U h ) − Fext = 0, (16.1)

requires computation of the external force vector. The latter includes both body forces and
surface tractions.

Now that we have introduced isoparametric mappings and numerical quadrature rules, we can
apply those to the external force terms.

Body forces ρb produce the external force on node a in direction i, e.g., in 2D for a single
element

1 1 nQP −1
a
Fext,i =∫ ρbi N a dV = ∫ ∫ ρbi (ξ)Nea (ξ) J(ξ)dξ dη ≈ ∑ Wk ρbi (ξk )Nea (ξk ) J(ξk ).
Ωe −1 −1 k=0
(16.2)

Surface tractions t̂ result in an external force on node a in direction i, again in 2D and for a
single element,

1 nQP −1
a
Fext,i =∫ t̂i N a dV = ∫ t̂i (ξ)Nea (ξ) J(ξ)dξ dη ≈ ∑ Wk t̂i (ξk )Nea (ξk ) J(ξk ). (16.3)
∂ΩN,e −1 k=0

Note that the surface traction term integrates over the boundary of the element, so in d di-
mensions we can use a quadrature rule for d − 1 dimensions (e.g., for a 2D element we use 1D
quadrature on the element edges).

Implementation:

The variational formulation allows us to implement external force elements just like regular
finite elements: we have defined their energy,

Ie = − ∫ ρb ⋅ u dV − ∫ t̂ ⋅ u dS. (16.4)
Ωe Ωe

The corresponding force vectors Fext are given above, and the tangent matrices are obtained
from
∂Fext
T = . (16.5)
∂Ueh

Notice that if t̂ and ρb are independent of displacements (as in most cases), we have T = 0. An
exception is, e.g., the application of pressure to the boundary in finite deformations (since the
resulting force depends on the surface area which, in turn, depends on the sought deformation).

62
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

16.2 Examples of external forces

Constant force:

Consider a constant force P applied to a particular node i at deformed position xi . The element
energy of this external force vector is
Ie = −P ⋅ ui , (16.6)
so that the resulting force vector is
∂Ie
Fa = = −P δia , (16.7)
∂ua
i.e., an external force is applied only to node i. The stiffness matrix vanishes since
∂F a
T ab = = 0. (16.8)
∂ub

Linear spring:

Next, consider a linear elastic spring (stiffness k) attached to a node i (deformed position xi ,
undeformed position Xi ) and anchored at a constant position x0 = X0 . The element energy in
this case is simply the spring energy
2
k
Ie = ( ∥xi − x0 ∥ − ∥Xi − X0 ∥ ) , (16.9)
2
and force vector and stiffness matrix follow by differentiation.

Indenter:

When simulating indentation tests, it is oftentimes convenient to apply the indenter forces via
an external potential rather than by modeling contact. Consider a spherical (in 3D) or circular
(in 2D) indenter of radius R whose center is located at the constant, known point x0 . Here,
one may use potentials of the type
n
Ie = C[ ∥x0 − xi ∥ − R] (16.10)

with a force constant C > 0 and integer exponent n ≥ 2 (a common choice is n = 3). The bracket
[⋅]− = min(⋅, 0) implies that the energy is only non-zero if the term in bracket is negative (i.e., if
the point enters the indenter radius. Again, forces and stiffness matrix follow by differentiation.

Pressure in linearized kinematics:

Applying a constant pressure p to a surface can be accomplished rather easily in linearized


kinematics via (16.3). Specifically, we have for a single element surface
n n
Ie = − ∫ t̂ ⋅ uh dS = − ∫ (−p)n ⋅ ∑ uae Nea dS = ∑ ∫ pn ⋅ uae Nea dS. (16.11)
∂Ωe ∂Ωe a=1 a=1 ∂Ωe

Integration can be carried out using numerical quadrature on the element boundary (the element
boundary normal n can be computed from the nodal locations). Again, forces and stiffness
matrix follow by differentiation (forces are constant, and the stiffness matrix vanishes).

63
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Pressure in finite kinematics:

Applying a constant pressure p to a surface in finite kinematics is more complicated as the


element boundary undergoes finite changes during deformation, resulting in nodal forces that
depend on deformation. Here, we start with the work done by the pressure (which we assume
constant), viz.
1
Ie = −pv = − ∫ pdv = − ∫ p xi,i dv
ϕ(Ωe ) ϕ(Ωe ) d
(16.12)
p p
=− ∫ ϕi ni ds = − ∫ −1
ϕi JFJi NJ dS,
d ∂ϕ(Ωe ) d ∂Ωe
where we used that xi,i = δii = d in d dimensions as well as the Piola transform ni ds =
−1
JFJi NJ dS. Thus the numerical integration uses
p
Ie = − ∫ uh ⋅ F −T N J dS, (16.13)
d ∂Ωe
which can be evaluated by numerical quadrature. As before, forces and stiffness matrix follow
by differentiation but are non-zero and rather complex.

16.3 Dirichlet boundary conditions

Essential boundary conditions require us to replace individual equations in the nonlinear system
by ua = ûa . This is accomplished computationally usually in one of two ways.

Substitution:

First, brute-force substitution is a simple method: one replaces the respective equation for ∆uai
in the linearized system T ∆U h = F by ∆uai = ∆ûai ; e.g.,

⎛T11 T12 . . . ⋅ ⋅ ⎞⎛ ∆u1 ⎞ ⎛ F1 ⎞


⎜ ⋅ ⋅ ⋅ ⋅ ⋅ ⎟ ⎜ ∆u2 ⎟ ⎜ F2 ⎟
⎜ ⎟⎜ ⎟ ⎜ ⎟
⎜ 0 0 1 0 0 ⎟⎜ ⎟ ∆u3 ⎟=⎜ ∆û3 ⎟
⎜ ⎜ ⎟ ⎜ ⎟ (16.14)
⎜ ⋅ ⋅ ⋅ ⋅ ⋅ ⎟ ⎜ ∆u4 ⎟ ⎜ F4 ⎟
⎜ ⎟⎜ ⎟ ⎜ ⎟
⎝ ⋅ ⋅ ⋅ ⋅ T55 ⎠ ⎝ ∆u5 ⎠ ⎝ F5 ⎠

For example, when using iterative solvers, one may want to choose the initial guess as ûa and
subsequently enforce ∆ua = 0 in iterations by using the above condensation method.

Constraints:

The same method discussed above can also impose other types of boundary conditions, e.g.,
periodic boundary conditions of the type

u+ = u− (16.15)

for some opposite nodes (+, −). Also, constraints of the general type

f (ui , uj , . . .) = 0 (16.16)

can be implemented in a similar fashion (e.g., rigid links between nodes).

64
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

In case of linear constraints on boundary nodes, it is sometimes convenient to introduce a


h
reduced set of degrees of freedom Ured , which contains only the free degrees of freedom, from
which the full set of nodal degrees of freedom can be obtained via

U h = AUred
h
, (16.17)

where A is a matrix defined by the constraints. For example, consider a node a being constrained
to move along a particular direction n ∈ Rd . That is, its degrees of freedom ua = {ua1 , ua2 } in 2D
are reduced2 to ua = χa n with the only unknown being χa ∈ R. E.g., in 2D we have

⎛. . . ⎞
⎜ ⋅ 1 ⋅ ⋅ ⋅ ⋅ ⋅ ⎟⎛ ⋮ ⎞
⎜ ⎟ a−1
⎜ ⋅ ⋅ 1 ⋅ ⋅ ⋅ ⋅ ⎟
⎜ ⎟⎜ u ⎟
⎜ 1a−1 ⎟
⎜ ⋅ ⎟
⎜ ⋅ ⋅ n 1 ⋅ ⋅ ⋅ ⎜
⎟ ⎜u2 ⎟ ⎟
h ⎜ ⎟
U =⎜ ⋅ ⋅ ⋅ n2 ⋅ ⋅ ⋅ ⎟⎜ χa ⎟ ⎟ = A Ured
h
⎟⎜
(16.18)
⎜ ⎜ ⎟
⎜ ⋅ ⋅ ⋅ n3 ⋅ ⋅ ⋅ ⎟ a+1
⎜ ⎟⎜ u ⎟
⎜ 1a+1 ⎟
⎜ ⋅ ⋅ ⋅ ⋅ 1 ⋅ ⎟ ⎜
⋅ ⎟ u2 ⎟

⎜ ⎟
⎜ ⋅ ⋅ ⋅ ⋅ ⋅ 1 ⋅ ⎟⎝ ⋮ ⎠
⎝ . . .⎠

The governing equation now becomes

Fint (AUred
h
) − Fext = 0. (16.19)

Note that in the special case of a linear problem we know that Fint = T U h , so that (16.19) form
can be transformed into a symmetric problem by pre-multiplying by AT , i.e.,

AT T AUred
h
− AT Fext = 0 ⇔ h
Tred Ured − Fext,red = 0, (16.20)

which is to be solved for the reduced degrees of freedom. While efficient due to the reduced
number of degrees of freedom, the pre- and post-multiplication by A can add considerable
numerical expenses.
h
Notice a convenient relation: if matrix A embeds Ured according to (16.17), then the total forces
acting on the reduced degrees of freedom are given by AT F ; e.g., in the above example:

⎛. . . ⎞
⎜ ⋅ 1 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⎟ ⎛ ⋮ ⎞
⎜ ⎟
⎜ ⋅ ⋅ 1 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⎟ ⎜ F a−1 ⎟
⎜ ⎟ ⎜ a ⎟

Fred = A F = ⎜ ⋅ ⋅ ⋅ n1 n2 n3 ⋅ ⋅ ⋅ ⋅ ⎟ ⎜ ⎟
⎟ F = ⎜F ⋅ n⎟ .
T
(16.21)
⎜ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ 1 ⋅ ⋅ ⋅ ⎟⎟ ⎜ a+1 ⎟
⎜ ⎜F ⎟
⎜ ⎟ ⎝ ⋮ ⎠
⎜ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ 1 ⋅ ⋅ ⎟
⎝ . . .⎠

Recall that in the nonlinear case, one may still solve for the reduced the linearized equation to
compute the Newton-Raphson updates is
∂Fint
h
∆Ured = −(T ∗ )−1 (Ured
h
) [Fint (AUred
h
) − Fext ] where T ∗ = AT (AUred
h
). (16.22)
∂U h

There are many alternative ways to introduce constraints such as using the penalty method
which appends to the potential energy each constraint with a penalty (Lagrange-type) multi-
plier. For further information, please refer to the literature.
2
This is an embedding operation: node a is constraint to lie on a line manifold and is embedded into 3D space
via embedding. The inverse operation is known as submerging.

65
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Condensation:

The substitution method introduced above for essential boundary conditions is simple to im-
plement. However, it is quite expensive since the number of equations remains the same when
imposing essential boundary conditions. The condensation method removes from the linear
system to be solved those equations imposing essential boundary conditions.

Let us rewrite the linearized system by moving the third column to the right-hand side:

⎛T11 T12 0 T14 ⋅ ⎞⎛ ∆u1 ⎞ ⎛ F1 ⎞ ⎛ ∆T13 ⎞


⎜ ⋅ ⋅ 0 ⋅ ⋅ ⎟ ⎜ ∆u2 ⎟ ⎜ F2 ⎟ ⎜ ∆T23 ⎟
⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ ⋅ ⋅ 0 ⋅ ⋅ ⎟⎜
⎟ ∆u3 ⎟=⎜ F3 ⎟−⎜ ∆T33 ⎟ ∆û3
⎜ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ (16.23)
⎜ ⋅ ⋅ ⋅ ⋅ ⎟ ⎜ ∆u4 ⎟ ⎜ F4 ⎟ ⎜ ⎟
⎜ 0 ⎟⎜ ⎟ ⎜ ⎟ ⎜ ∆T43 ⎟
⎝ ⋅ ⋅ 0 ⋅ T55 ⎠ ⎝ ∆u5 ⎠ ⎝ F5 ⎠ ⎝ ∆T53 ⎠

so that we can eliminate the third row and column from the system:

⎛T11 T12 T14 ⋅ ⎞⎛ ∆u1 ⎞ ⎛ F1 ⎞ ⎛ ∆T13 ⎞


⎜ ⋅ ⋅ ⋅ ⋅ ⎟⎜ ∆u2 ⎟ ⎜ F2 ⎟ ⎜ ∆T23 ⎟
⎜ ⎟⎜ ⎟=⎜ ⎟−⎜ ⎟ ∆û3 , (16.24)
⎜ ⋅ ⋅ ⋅ ⋅ ⎟⎜ ∆u4 ⎟ ⎜ F4 ⎟ ⎜ ∆T43 ⎟
⎝ ⋅ ⋅ ⋅ T55 ⎠ ⎝ ∆u5 ⎠ ⎝ F5 ⎠ ⎝ ∆T53 ⎠

and solve for the remaining unknowns along with ∆u3 = ∆û3 .

The clear advantage of this method is the reduction in size of the system to be solved. The
disadvantage is that it is computationally more involved (can be even more expensive for a
small number of essential boundary conditions applied to large systems).

16.4 Rigid body motion

Consider the composite deformation mapping x = ϕ∗ (ϕ(X)) with x = ϕ(X) being an admissible
deformation mapping and ϕ∗ (x) = Rx+c denoting rigid body motion, i.e., R ∈ SO(d) and c ∈ Rd
is a constant vector. Note that the combined deformation gradient is given by F ∗ = RF where
F = Grad ϕ. Recall that the weak form read

G(u, v) = ∫ PiJ (F )vi,J dV − ∫ RBi vi dV − ∫ T̂i vi dS = 0. (16.25)


Ω Ω ∂ΩN

Insertion of the composite mapping yields

G(u∗ , v) = ∫ PiJ (RF )vi,J dV − ∫ RBi vi dV − ∫ T̂i vi dS = 0. (16.26)


Ω Ω ∂ΩN

However, note that material frame indifference requires that P = P (C) and C ∗ = (F ∗ )T F ∗ =
F T F = C, so that the rotation has no affect on the weak form (neither does the translation c).
Therefore, rigid body motion can be superimposed onto any admissible solution and must be
suppressed by appropriate essential boundary conditions to ensure uniqueness of solutions.

For the linear elastic case, the tangent matrix T therefore has as many zero eigenvalues as it
has rigid-body modes, or zero-energy modes U ∗ such that
U ∗ ⋅ T U ∗ = 0. (16.27)
This implies that T has zero eigenvalues and is thus not invertible.

The remedy is to suppress rigid body modes via appropriate essential boundary conditions;
specifically in d dimensions we need d(d − 1)/2 such essential boundary conditions.

66
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

17 Error estimates and adaptivity

17.1 Finite element error analysis

Solving systems of PDEs by the finite element method introduces numerous sources of errors
that one should be aware of:

(i) The discretization error (also known as the first fundamental error) arises from
discretizing the domain into elements of finite size h. As a result, the body Ω is not repre-
sented correctly and the model (e.g., the outer boundary) may not match the true bound-
ary ∂Ω (e.g., think of approximating a circular domain Ω by CST or Q4 elements). This
error can be reduced by mesh refinement (and we discussed r-refinement, h-refinement,
p-refinement, and hp-refinement).
(ii) The numerical integration error results from the application of numerical quadrature:

nQP
∫ f (ξ)dξ ≅ ∑ Wk f (ξk ) (17.1)
Ωe k=1

We discussed that for f ∈ C k+1 (Ω) (the extension to higher dimensions is analogous)
RRR 1 nQP RRR
RRR (ξ)dξ − (ξ RR
i RRR ≤ C ∥Ω∥ h
) max ∥Dα f (ξ)∥ .
k+1
RRR∫−1 f ∑ W i f (17.2)
RR q=1 R
RR ξ∈[−1,1]
∣α∣=k+1

Hence, the numerical integration error depends on the smoothness of the integrand and
calls for a proper choice of the integration order.
(iii) The solution error stems from numerically solving linear systems T U h = F . In general,
the accuracy of the solution depends on the condition number of the matrix,
λmax
κ = ∥T ∥ ⋅ ∥T −1 ∥ = ∣ ∣ (17.3)
λmin
with λmax (λmin ) being the largest (smallest) eigenvalue of T . The higher the condition
number, the larger the numerical error.
A practical consequence is the guideline to choose wisely the units of model parameters
(such as material constants, domain size features, etc.). For example, when performing a
linear elastic simulation, it is advisable to normalize elastic constants by 1 GPa instead
of assigning, e.g., E = 210 ⋅ 109 (instead, use E = 2.1 and know that your results will be in
100 GPa’s).
(iv) An approximation error is introduced by approximating the functional space U (in
which to find the solution u(x)) by a finite-dimensional subspace U h ⊂ U.
As an example, consider an exact solution u(x) in 1D which is approximated by a piece-
wise linear polynomial function uh (x). The bar hanging from the ceiling under its own
weight was such an example, for which the solution was found to be exact at the nodes
with an error e(x) = u(x) − uh (x) arising within elements. Therefore, we can find a point
z within each element such that
∂e
(z) = 0 for xi ≤ x ≤ xi+1 . (17.4)
∂x
Consequently, we can expand the error to find the solution at a node as
∂e (xi − z)2 ∂ 2 e
e(xi ) = 0 = e(z) + (xi − z) (z) + (z) + O((xi − z)3 ). (17.5)
∂x 2 ∂x2

67
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Using (17.4), we find that

(xi − z)2 ∂ 2 e
e(z) = − (z) + O(h3 ). (17.6)
2 ∂x2
Note that
xi+1 − xi 2 h2
(xi − z)2 ≤ ( ) = , (17.7)
2 4
where h denotes the nodal spacing. Altogether, we have thus shown that the maximum
error in an element is bounded by
h2 ∂2u
∣e(x)∣max ≤ max ∣ ∣ (17.8)
8 xi ≤x≤xi+1 ∂x2
As shown in Appendix C, the above error bound can be significantly generalized. for an
interpolation of order k and u ∈ H k+1 (Ω), we have

hk
∣uh − u∣H 1 (Ω) ≤ ∣u∣ k+1 and ∥uh − u∥H 1 (Ω) ≤ c hk ∣u∣H k+1 (Ω) , (17.9)
π k H (Ω)
using Sobolev norms. Thus the error is again determined by the smoothness of the function
to be interpolated; and it is expected to decrease with decreasing element size (as h → 0)
– the faster the higher the interpolation order.
Note that special caution is required if stress concentrations of any kind are to be rep-
resented (e.g., imagine a linear elastic fracture problem and the issues arising from using
linear elements to capture the 1/rn -type stress concentration near the crack tip).
(v) A truncation error is made by every computer when storing and operating numeric
values with only a finite number of digits (e.g., floats, doubles, etc.). This is unavoidable
and one should be aware of what this error is (especially when choosing, e.g., solver
tolerances). Choosing a solver tolerance in itself produces truncation error because we
contend with a solution U h that satisfies Fint (U h ) − Fext = tol. (instead of being zero).
(vi) Finally, no simulation is free of modeling error, which refers to the large collection of
errors made by the selection of the analytical model to be solved (before starting any
numerical approximation). For example, we make choices for an appropriate material
model, choose material parameters, boundary conditions, and geometric simplifications
including reductions to lower dimensions (e.g., plane strain or plane stress instead of a 3D
simulation).

The sum of all of the above error sources makes up the numerical error inherent in every
simulation.

17.2 Smoothing and adaptivity

Both for postprocessing of approximate solutions and for mesh adaptivity (discussed below) it
is convenient to introduce a smoothing scheme that takes piecewise-defined solutions (e.g., the
stress and strain fields in case of simplicial elements) and computes smoothed nodal values of
the discontinuous quantities.

In case of simplicial elements, the quantities of interest are constant within elements. Here one
can define nodal quantities, e.g., as
n
∑j=1
nb
ue,j /Ve,j
(ua )∗ = n , (17.10)
∑j=1
nb
1/Ve,j

68
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

where the element quantities ue of all nnb neighboring elements meeting at a node a are weighted
by the respective element volume Ve . This weighting results in smaller elements (whose quadra-
ture points are closer to the node) having a larger weight than large elements (where quadrature
points are far from the node).

In case of higher-order elements such as, e.g., the Q4 element, one can extrapolate element
quantities that are defined at the quadrature points ξk to the nodes by invoking the definition
that
n
u(ξk ) = ∑ (ua )∗ N a (ξk ). (17.11)
a=1

For example for the Q4 element, there are four nodes and four quadrature points, so that the
four equations can be solved for the four nodal values ua . Once the nodal values are known,
one again uses a smoothing relation like (17.10) with the element quantities ue,j replaced by
the nodal value uae from the respective element, and element volume Ve replaced by the nodal
weight (obtained from extrapolating the quadrature point weights Wk Jk t to the nodes).

When performing adaptive mesh refinement, we need an error norm where, as an example, we
discuss the ZZ error estimator named after its inventors, Zienkiewicz and Zhu. If we use a
smoothing scheme like the above, we can define a smoothed, continuous displacement gradient
∇u∗ which is contrasted with the approximate solution ∇uh , so that one may define the error
per element by using the energy norm, viz.
2
∥e(∇u, ∇u∗ )∥e = ∫ W (∇u∗ − ∇u)dV. (17.12)
Ωe

Note that this definition is not unique and one could also use the L2 -norm

∥e∥2e = ∫ ∥∇u∗ − ∇u∥ dV. (17.13)


Ωe

or any other sensible norm.

In order to define an error estimate, it makes sense to introduce the normalization

∥e(∇u, ∇u∗ )∥e


ηe = , (17.14)
∥e(∇u, 0)∥e

i.e., the error is divided by the energy in the element so as to not over- or underestimate element
errors based on element sizes as well as in case of vast differences in element strain energies.
The mesh refinement criterion states that an element is refined if

ηe > ηtol. (17.15)

with some tolerance ηtol. determined as a compromise between accuracy and efficiency. Based
on the refinement criterion, a set of elements can be identified after each equilibration which is
flagged for refinement.

Needed next is a mesh refinement algorithm. For exapmle, a frequent choice for triangular
elements is longest edge bisection, which identifies the longest edge in an element to be
refined and inserts a new node at this edge’s midpoint, followed by an update of the element
connectivity (removing two existing elements and creating four new elements). Note that this
involves some book-keeping since adjacent elements flagged for refinement interfere, so that one
needs an algorithmic decision about which elements to refine first and how to handle adjacent
elements identified for refinement, etc.

69
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

18 Element defects: shear locking and hourglassing

Elements make specific approximations about how displacements, stresses and strains vary inside
each element, and these approximations may introduce errors. Aside from the above general
numerical errors stemming from the interpolation order, the quadrature rule, and geometric
errors, etc., particular elements can have defects, some of which will discussed in the following.

The bilinear Q4 element displays a defect when used to simulate beam bending. Consider a
rectangular element having side lengths a and b in the x and y directions. If bending moments
M are applied on the two vertical edges, then the element is expected to undergo bending.

In an actual (slender) beam, we know from elastic beam theory that the stresses in the beam
vary linearly across the thickness, so we may write
y
σxx = − σmax , σyy = σxy = 0, (18.1)
b
where σmax is the maximum tensile stress reached on the surface of the beam. From Hooke’s
law we obtain
σxx yσmax σxx yσmax
εxx = − =− , εyy = −ν =ν , εxy = 0. (18.2)
E bE E bE

Let us try to find this solution using a Q4 element. To this end, we apply horizontal forces to all
four nodes of the element, obtained from lumping the distributed beam stresses to the nodes:
y 1
Fext,1 = ∫ (− σmax ) Ne1 (ξ, η) tbdη
σxx Ne1 dS = − ∫
∂Ωe −1 b
(18.3)
1 (1 − ξ)(1 − η) σmax tb
= ∫ η σmax tbdη = − = −F,
−1 4 3

where we introduced the abbreviation F = σmax tb


3 for convenience. Analogously, one obtains

Fext,2 = F, Fext,3 = −F, Fext,4 = F. (18.4)

That is, the bottom edge is stretched, while the top edge is compressed (as in beam bending).

Solving the problem for the case of linear elasticity reduces to a simple linear system of equations:

⎛−F ⎞ ⎛−U ⎞
⎜ 0 ⎟ ⎜ 0 ⎟
⎜ ⎟ ⎜ ⎟
⎜F ⎟ ⎜U ⎟
⎜ ⎟ ⎜ ⎟
⎜ 0 ⎟ ⎜ ⎟ (1 + ν)(1 − 2ν)
⎜ ⎟ h ⎜ 0 ⎟ 2aσmax
Ke Ue = Fext = ⎜ ⎟
h
⇒ Ue = ⎜ ⎟ with U= ,
⎜−F ⎟ ⎜−U ⎟ E 2(1 − ν) + (an)2 (1 − 2ν)
⎜ ⎟ ⎜ ⎟
⎜ 0 ⎟ ⎜ 0 ⎟
⎜ ⎟ ⎜ ⎟
⎜F ⎟ ⎜U ⎟
⎜ ⎟ ⎜ ⎟
⎝ 0 ⎠ ⎝ 0 ⎠
(18.5)

where we evaluated all element forces and stiffness matrices exactly (without quadrature errors).

The resulting strains are evaluated as


U U
εxx = − η, εyy = 0, εxy = − ξ. (18.6)
a b

70
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

While the axial strain component is reasonable, the presence of a shear stress is problematic.
This so-called parasitic shear is not physical but a numerical artifact (elastic Euler beams
produce no shear stresses). This parasitic shear contributes to the energy of the element, so that
– when minimizing the potential energy in a boundary value problem – this shear component
introduces artificial stiffness. This becomes apparent when calculating, e.g., the angle of bending
θ of the beam in the above problem. Comparing the exact one (obtained form beam theory) to
the approximate one (obtained from the above construction), one finds

θapprox 1 − ν2
= 2
. (18.7)
θexact 1−ν a
1+ ( )
2 b

Notice that, as the Q4 element becomes more and more slender (a/b → ∞), the numerically
obtained angle approaches 0. That is, the element shows what is known as locking or, more
specifically, shear locking: in case of very slender elements (a/b ≪ 1) the high shear strain
and associated elastic energy prevents the element from deformting, it “locks”.

Next, let us use numerical quadrature to evaluate the element quantities of interest. For exam-
ple, for the energy we have
n −1
1 h t QP
Ie = ∫ ε ⋅ C εh dV ≈ ∑ Wk ε (ξk ) ⋅ C ε (ξk ) J(ξk ).
h h
(18.8)
Ωe 2 2 k=0

We showed before that full integration requires nQP = 2 × 2 quadrature points. If instead we use
reduced integration with only a single quadrature point (nQP = 1) located at ξ0 = 0, then notice
that strain fields of the form (18.6) – which vanish at ξ = η = 0 – produce no energy. In other
words, any strain field of the form (18.6) can appear without causing any energy and therefore
also without causing any resistance. This is a zero-energy mode of the under-integrated
Q4 element and a serious defect. The resulting deformation of elements undergoing alternating
strains (18.6) is a numerical artifact and often referred to as hourglass mode or chicken-wire
mode because of its appearance.

Note that note only the underintegrated Q4 element has such a zero-energy mode. For example,
the Q8/Q9 elements have a similar zero-energy mode with curved element edges.

Finally, it is possible to use selective integration, which applies different quadrature rules for
different energy contributions. For example, integrating the Q4 element with a 2 × 2 quadrature
rule for the nominal strains εxx and εyy while using reduced integration with a single quadrature
point at ξk = 0 removes the spurious shear contribution while maintaining the correct stiffness
against axial deformation. Notice that, however, selective integration is harder to implement,
not directly applicable beyond linear elasticity, and should be used with caution.

71
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

19 Dynamics

19.1 Variational setting

The mechanical problems so far have been limited to quasistatic conditions. Let us consider
the extension to dynamic problems where inertial effects matter and the strong form reads (for
simplicity stated in linearized kinematics; the finite-deformation setting is analogous)
⎡ σij,j + ρ bi = ρ ai
⎢ in Ω

⎢ ui (x, t) = ûi (x, t) on ∂ΩD
⎢ (19.1)

⎢ σij nj (x, t) = t̂(x, t) on ∂ΩN

Now, we have u ∶ Ω × R → Rd with sufficient differentiability in both space and time.

The variational approach here makes use of the so-called action principle which uses the
action
t2
A[u] = ∫ L[u]dt with L[u] = T [u] − I[u], (19.2)
t1

where I is the potential energy functional from before and T the kinetic energy functional:
ρ 2
T [u] = ∫ ∣u̇∣ dV. (19.3)
Ω 2

The action principle states that the solution u(x, t) renders A stationary with u(x, t1 ) =
u1 (x) and u(x, t2 ) = u2 (x).

For variational material models (with W replaced by W ∗ for inelasticity), we have


t2 ρ
A[u] = ∫ [∫ ( ∣u̇∣2 − W (ε)) dV + ∫ ρb ⋅ u dV + ∫ t̂ ⋅ u dS] dt. (19.4)
t1 Ω 2 Ω ∂ΩN

Taking the first variation (with the divergence theorem and the same assumptions from before):

t2
δA[u] = 0 = ∫ [∫ (ρ u̇i δ u̇i − σij δui,j ) dV + ∫ ρbi δui dV + ∫ t̂i δui dS] dt. (19.5)
t1 Ω Ω ∂ΩN

The weak form is thus obtained as


t2
G(u, v) = ∫ [∫ (ρ u̇i v̇i − σij vi,j ) dV + ∫ ρbi vi dV + ∫ t̂i vi dS] dt = 0 (19.6)
t1 Ω Ω ∂ΩN

with

v ∈ {v ∈ H 1 (Ω) ∶ v = 0 on ∂ΩD and at t = t1 or t = t2 } . (19.7)

To avoid the time derivative in the variation, let us integrate by parts in time (the “boundary
term” vanishes since v = 0 at t = t1 and t = t2 ):
t2
G(u, v) = − ∫ [∫ (ρ üi vi + σij vi,j ) dV − ∫ ρbi vi dV − ∫ t̂i vi dS] dt = 0. (19.8)
t1 Ω Ω ∂ΩN

Note that, without the first term, we recover the elastostatic formulation.

72
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Since in the dynamic problem the displacement field depends on time, we introduce a semi-
discretization, i.e., we discretize the solution in space but not in time:
n n
uh (x, t) = ∑ ua (t)N a (x) and v h (x, t) = ∑ v a (t)N a (x), (19.9)
a=1 a=1

so that
n n
u̇h (x, t) = ∑ u̇a (t)N a (x) and üh (x, t) = ∑ üa (t)N a (x). (19.10)
a=1 a=1

Insertion into the weak form results in Galerkin’s discrete weak form:
t2 n n
G(uh , v h ) = − ∫ ∑ ∑ [üi vi ∫ ρ N N dV + vi ∫ σij N,j dV
a b a b b b
t1 a=1 b=1 Ω Ω
(19.11)
−vib ∫ ρbi N b dV − vib ∫ t̂i N dS] dt = 0
b
Ω ∂ΩN

for all v b (t) histories that vanish at t1 and t2 .

Analogously to before, we now write

U h (t) = {u1 (t), . . . , un (t)}, (19.12)

so that solving (19.11) for all v b (t) is equivalent to solving

M Ü h + Fint (U h ) − Fext (t) = 0 (19.13)

with

Mijab = δij ∫ ρ N a N b dV, b


Fint,i = ∫ σij N,jb dV, b
Fext,i = ∫ ρbi N b dV + ∫ t̂i N b dS.
Ω Ω Ω ∂ΩN
(19.14)

Matrix M is called the consistent mass matrix.

Examples:

The consistent mass matrix for a two-node bar element is computed from shape functions
1−ξ 1+ξ
N1 (ξ) = , N2 (ξ) = . (19.15)
2 2
Specifically, we have (with m = ρALe )
1 Le m 2 1
M ab = ∫ ρN a N b dV = ∫ ρN a N b A dxi ⇒ M1D = ( ). (19.16)
Ω −1 2 6 1 2

Note that this is the consistent mass matrix for 1D motion. If each node moves has two degrees
of freedom (u1 , u2 ) in the plane, then each pair of dof is linked by the above mass matrix, so
that the total consistent mass matrix becomes

⎛2 0 1 0⎞
m ⎜0 2 0 1⎟
M2D = ⎜ ⎟. (19.17)
6 ⎜1 0 2 0⎟
⎝0 1 0 2⎠

73
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Similarly, the consistent mass matrix of the CST is computed by integration of the shape
functions, resulting for 1D motion in

m⎛
2 1 1⎞
MCST = ⎜1 2 1 ⎟ with m = ρAt. (19.18)
12 ⎝
1 1 2⎠
As before, the corresponding mass matrix for 2D motion is obtained by applying the above
matrix for each dof independently.

For other (non-simplicial) elements, the stiffness matrix can be evaluated analogously or com-
puted by numerical quadrature:
nQP −1
M ab = ∫ ρN a N b dV ≈ ∑ Wk ρN a (ξk )N b (ξk )J(ξk ). (19.19)
Ω k=0

In summary, the dynamic problem is quite analogous to the quasistatic one. The key difference
is the first term in (19.13), which requires a strategy to obtain numerical solutions that are time-
dependent. Note that the above formulation in linearized kinematics can easily be adopted for
finite deformations (the final matrix equations are the same with internal/external force
vectors replaced by the finite-deformation counterparts).

We note that various references call this dynamic variational principle the “principle of least
action” or “principle of minimum action”, which is in fact not correct since the solution must
not necessarily be a minimizer of A (it is merely guaranteed to be an extremizer).

The consistent mass matrix above is dense, which may be inconvenient for numerical solutions.
Therefore, one often resorts to the so-called lumped mass matrix which is an approximation
that is diagonal. For example, by using particle-mass lumping for a 2-node bar element, one
distributes the mass evenly to the two end points, resulting in

⎛1 0 0 0⎞
m 1 0 m ⎜0 1 0 0⎟
M1D = ( ), M2D = ⎜ ⎟. (19.20)
2 0 1 2 ⎜0 0 1 0⎟
⎝0 0 0 1⎠

Note that a comparison of the kinetic energies (e.g., in 1D) reveals


1 m
Tlumped = U̇eh ⋅ Mlumped U̇eh = [(u̇1e )2 + (u̇2e )2 ] (19.21)
2 4
and
1 m
Tconsistent = U̇eh ⋅ Mconsistent U̇eh = [(u̇1e )2 + (u̇2e )2 + u̇1e u̇2e ] . (19.22)
2 6
Hence, the lumped mass matrix yields to an approximation of the kinetic energy (which is
generally not exact).

Particle-mass lumping can be extended to arbitrary elements having n nodes by defining


m
M= I. (19.23)
n

Finally, note that in structural dynamics, one often includes velocity-proportional damping
through a damping matrix C such that (19.13) turns into

M Ü h + C U̇ h + Fint (U h ) − Fext (t) = 0 (19.24)

74
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

with, oftentimes, mass- and stiffness-proportional damping via

C = αM + βK, α, β ∈ R+ . (19.25)

The choice of α > 0 controls low-frequency vibration attenuation, while β > 0 suppresses high-
frequency vibrations.

19.2 Free vibrations

Free vibrations of infinitesimal amplitude are a frequent case of interest. Starting with the
general, nonlinear equations of motion,

M Ü h + Fint (U h ) = Fext (t), (19.26)

we linearize about a stable equilibrium configuration U0h with constant forces Fext = Fext,0
such that Fint (U0h ) = Fext,0 . Consider now a small time-varying perturbation δU h (t) such that
U h = U0h + δU h gives to leading order

∂Fint
M δ Ü h + Fint (U0h ) + (U0h ) δU h + h.o.t. = Fext,0 (19.27)
∂U h
or, invoking equilibrium,

M δ Ü h + T (U0h ) δU h + h.o.t. = 0. (19.28)

Similarly, when considering free vibrations about the undeformed ground state of an elastic
body, we would have arrived immediately at

M Ü h + K U h = 0. (19.29)

Thus, (19.28) is the generalized form of (19.29) for equilibrated systems. In both cases the
form of the equation of motion governing free vibrations without external forcing and without
damping is

M Ü h + T U h = 0. (19.30)

The solution to the above ODE is of the separable form

U h = Û h exp(iωt). (19.31)

Insertion into (19.30) leads to (exploiting that the equation must hold for all times t)

(T − ω 2 M ) Û h = 0, (19.32)

which is an eigenvalue problem with eigenfrequency ω and eigenvector Û h . The latter


is also referred to as the eigenmode.

For a FE discretization with ndof = dnn degrees of freedom (nn nodes in d dimensions), the
eigenvalue problem has ndof eigenfrequencies with ndof associated distinct eigenmodes. Each
rigid body mode of the FE problem corresponds to a zero eigenfrequency. Therefore, a 2D (3D)
free vibrational problem without essential BCs has 3 (6) zero eigenfrequencies.

75
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Example: free vibration of a bar

We can use the exampe of a freely vibrating bar to assess the influence of the different mass
matrices. Consider a 2-node bar element with only axial displacements, so that each node has
only a single degree of freedom ui . The mass matrices and the stiffness matrix for this case
were derived previously as

m 2 1 m 1 0 EA 1 −1
Mconsistent = ( ), Mlumped = ( ), K= ( ). (19.33)
6 1 2 2 0 1 L −1 1

In both cases of the lumped and consistent mass matrices, we compute the two eigenfrequencies
and eigenmodes by solving the eigenvalue problem

(K − ω 2 M )Û h = 0 ⇒ det (K − ω 2 M ) = 0. (19.34)

Insertion of the stiffness and consistent mass matrix results in the two solutions
√ √
EA EA
ω0consistent
= 0, ω1consistent
= 12 ≈ 3.464 . (19.35)
mL mL
The corresponding eigenvectors follow from insertion of the eigenfrequencies into the eigenvalue
problem, giving

1 1
Û0consistent = ( ) , Û1consistent = ( ). (19.36)
1 −1

As expected, we have one zero eigenfrequency associated with rigid body translation. When
repeating the above procedure with the lumped mass matrix, we instead obtain

EA
ω0lumped = 0, ω1lumped = 2 . (19.37)
mL
and
1 1
Û0lumped = ( ) , Û1lumped = ( ). (19.38)
1 −1

Hence, the two cases yield the same eigenmodes but significantly differ in the fundamental
frequency. For comparison, let us compute the exact solution by studying the free vibration of
a continuous, homogeneous, linear elastic bar. Linear momentum balance, i.e.,

Eu,xx = ρü, (19.39)

admits the separable solution

u(x, t) = û(x) exp(iωt) ⇒ E û,xx (x) = −ω 2 ρû(x) (19.40)

Free-end boundary conditions imply that


nπx
û,x (0) = û,x (L) ⇒ û(x) = A cos ( ) (19.41)
L
with an integer n and a constant A ∈ R. Insertion into (19.39) leads to

nπ 2 EA
−E ( ) = −ω 2 ρ ⇒ ωn = n π . (19.42)
L mL

76
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Consequently, the eigenfrequencies are obtained as



EA
ω0 = 0, ω1 = π . (19.43)
mL
Comparison with the above two cases results in

ω1lumped ≤ ω1 ≤ ω1consistent . (19.44)

Note that the eigenfrequency obtained from the consistent mass matrix is an upper bound on
the eigenfrequency, while the lumped mass matrix is usually a lower bound (the latter is not
rigorous, though, since it depends on the choice of the lumped mass matrix).

19.3 Modal decomposition

Let us introduce a few important features of the eigenmodes discussed above. By considering
the eigenvalue problem for two distinct eigenmodes/-frequencies, we may write

(T − ωi2 M ) Ûih = 0 ⇒ Ûjh ⋅ (T − ωi2 M ) Ûih = 0,


(19.45)
(T − ωj2 M ) Ûjh = 0 ⇒ Ûih ⋅ (T − ωj2 M ) Ûjh = 0,

where we simply pre-multiplied each of the two equations by the respective other eigenvector.
Subtraction of the two equations (using that T is by definition symmetric) results in

(ωi2 − ωj2 ) Ûih ⋅ M Ûjh = 0. (19.46)

This implies that either ωi = ωj (considering only positive eigenfrequencies) or Ûih ⋅ M Ûjh . If we
eliminate duplicated eigenfrequencies by, e.g., Gram-Schmid orthonormalization, then we may
conclude that

Ûih ⋅ M Ûjh = 0 if i ≠ j. (19.47)

We can normalize the eigenvectors in the following fashion:

Ûih
Ûih ← √ ⇒ Ûih ⋅ M Ûih = 1, (19.48)
Ûih ⋅ M Ûih

so that overall

Ûih ⋅ M Ûjh = δij . (19.49)

If we now consider

(T − ωi2 M ) Ûih = 0 ⇒ Ûjh ⋅ (T − ωi2 M ) Ûih = 0, (19.50)

then we may also conclude that, by invoking (19.49),

Ûjh ⋅ T Ûih = 0 if i ≠ j. (19.51)

Similarly, by pre-multiplying by the respective same eigenvector, i.e.,

Ûih ⋅ (T − ωi2 M ) Ûih = 0, (19.52)

77
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

we solve for ωi2 and obtain Rayleigh’s quotient, which here simplifies due to the normalization:

h
Û(i) ⋅ T Û(i)
h
ωi2 = = Û(i)
h
⋅ T Û(i)
h
. (19.53)
Û(i) ⋅ M Û(i)
h

This all forms the basis for the method known as modal decomposition.

The starting point for modal decomposition of linearized, elastic system is the Fourier repre-
sentation
n
U h (t) = ∑ zi (t) Ûih , (19.54)
i=1

where {Û1h , . . . , Ûnh } are the n eigenmodes of the system. That is, we pre-compute the eigenvec-
tors and seek a solution as a linear superposition of all eigenvectors with some unknown scalar
coefficients that are continuous functions of time (maintaining the semi -discretization).

We substitute (19.54) into the linearized equations of motion with external forces, M Ü h +T U h =
Fext , and pre-multiply the system of equations by Ûih , so we arrive at
n
∑ [z̈i (t) M Ûi + zi (t)T Ûi ] = Fext (t).
h h
(19.55)
i=1

Pre-multiplying by Ujh and exploiting the above orthogonality gives

n
∑ [z̈i (t) Ûj ⋅ M Ûi + zi (t)Ûj ⋅ T Ûi ] = Ûj ⋅ Fext (t) ⇔ z̈j (t) + ωj2 zj (t) = Ûjh ⋅ Fext (t),
h h h h h
i=1
(19.56)

where no summation over j is implied. This equation is quite remarkable as it is a scalar,


linear ODE for the unknown function zj (t). Moreover, the system of equations for n unknown
equations zi (t) (with i = 1, . . . , n) has decoupled into n uncoupled scalar ODEs to be solved
independently for the zi (t). The strategy is thus to first pre-compute all eigenfrequencies ωi
and all eigenmodes Ûjh , so that the coefficients and right-hand sides are known in

z̈i (t) + ωi2 zi (t) = Ûih ⋅ Fext (t), (19.57)

which can relatively inexpensively be solved for functions zi (t).

For many practical problems, only a limited number of modes are important (i.e., taking the
first m < n modes only). Therefore, numerical efficiency can be gained by truncating the Fourier
sum, which is often referred to as order reduction:
m
U h (t) = ∑ zi (t) Ûih , m < n. (19.58)
i=1

19.4 Transient time-dependent solutions

The time-dependent solution for the nodal variables U h (t) is obtained either in a continuous
manner (e.g., by modal decomposition or in case of free vibrations as discussed above) or in a
time-discretized fashion (e.g., by using finite-difference approximations in time). The turns the
semi -discretization into a proper discretization in both space and time.

78
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

19.5 Explicit time integration

We discretize the solution in time, e.g., we assume constant time increments ∆t > 0 and write

ua (tα ) = ua,α , ∆t = tα+1 − tα . (19.59)

By using central-difference approximations, we obtain

U h,α+1 − U h,α−1 U h,α+1 − 2U h,α + U h,α−1


U̇ h (tα ) = , Ü h (tα ) = . (19.60)
2∆t (∆t)2

Insertion into (19.24) leads to

U h,α+1 − 2U h,α + U h,α−1 U h,α+1 − U h,α−1


M + C + Fint (U h,α ) − Fext (tα ) = 0, (19.61)
(∆t)2 2∆t
which can be reorganized into

M C 2M C M
[ + ] U α+1 = Uα + [ − ] U α−1 − Fint (U h,α ) + Fext (tα ). (19.62)
(∆t)2 2∆t (∆t)2 2∆t (∆t)2

This is an update rule for U α+1 , using explicit time integration. Note that here and in the
following we drop the superscript h for simplicity and to avoid confusion with the time step
superscript α.

Note that stability limits the time step of the explicit scheme. Specifically, we must ensure that

2
∆t ≤ ∆tcr = , (19.63)
ωmax
with ωmax being the highest eigenfrequency. Note that the highest eigenfrequency scales in-
versely proportional to the smallest element size.
√ For example, recall the two-node bar for
which the eigenfrequency was of the form ω1 ∝ L1 E/ρ with L being the element size.

19.6 A reinterpretation of finite differences

Instead of introducing finite differences as done above, we could alternatively use interpolation
functions in both space and time. For example, consider a discretization in time which evaluates
U h at discrete time intervals ∆t and then uses a quadratic interpolation in time, i.e., we define

U h (t) = U α+1 N α+1 (t) + U α N α (t) + U α−1 N α−1 (t) for t ∈ [tα − ∆t α
2 ,t + 2 ].
∆t
(19.64)

where we dropped the superscript h for simplicity. Shape functions N (t) interpolate in time.
The chosen quadratic interpolation and the range of validity ensure that U h (t) is twice differ-
entiable (as needed for the acceleration) if

(t − tα )(t − tα−1 ) (tα+1 − t)(t − tα−1 ) (tα+1 − t)(tα − t)


N α+1 (t) = , N α (t) = , N α−1 (t) = .
2(∆t)2 (∆t)2 2(∆t)2
(19.65)

This choice ensures that


∂ α+1 α ∂ α−1 α
N (t − 2 )
∆t
=0 and N (t + 2 )
∆t
= 0, (19.66)
∂t ∂t

79
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

so that U̇ h (t) is indeed continuous. The acceleration evaluates to

Ü h (t) = U α+1 N̈ α+1 (t) + U α N̈ α (t) + U α−1 N̈ α−1 (t)


U α+1 Uα U α−1 U α+1 − 2U α + U α−1 (19.67)
= − 2 + = .
(∆t)2 (∆t)2 (∆t)2 (∆t)2

Thus, we recover the second-order central-difference scheme in time.

The full, discretized displacement field is now


n α+1
uh (x, t) = ∑ ∑ ua,γ N γ (t)N a (x) for t ∈ [tα − ∆t α
2 ,t + 2 ],
∆t
(19.68)
a=1 γ=α−1

where ua,γ is the displacement at node a at time tγ . The acceleration field follows as the
piecewise-constant approximation
n
ua,α+1 − 2ua,α + ua,α−1 a
üh (x, t) = ∑ N (x) for t ∈ [tα − ∆t α
2 ,t + 2 ].
∆t
(19.69)
a=1 (∆t)2

Next, one may wish to evaluate information at the nt discrete time steps, motivating the choice
of the trial function as
n n nt
v h (x, t) = ∑ v b (t)N b (x) = ∑ ∑ v b,α N b (x)δ(t − tα ) (19.70)
b=1 b=1 α=1

When this choice of v h along with uh into the weak form, which derived earlier as
t2
G(u, v) = ∫ [∫ (−ρ üi vi − σij vi,j ) dV + ∫ ρbi vi dV + ∫ t̂i vi dS] dt = 0, (19.71)
t1 Ω Ω ∂ΩN

then we may integrate explicitly with respect to time, resulting in



b⎢ ⎛ ua,α+1 − 2ua,α + ua,α−1 ⎞
nt
∑ vi ⎢⎢∫ −ρ i i i
N a N b − σij (∇uα )N,jb dV
⎢ Ω⎝ (∆t) 2 ⎠
b=1 ⎣ (19.72)
+ ∫ ρbi (tα )N b dV + ∫ t̂i (tα )N b dS] = 0
Ω ∂ΩN

for each time step tα and for all admissible choices of vib . The latter implies that we must have

ua,α+1 − 2ua,α + ua,α−1


a b
∫ ρN N dV
i i i
+ ∫ σij (∇uα )N,jb dV
Ω (∆t)2 Ω
(19.73)
− ∫ ρbi (t )N dV − ∫
α b
t̂i (t )N dS = 0.
α b
Ω ∂ΩN

This, however, is equivalent to

U h,α+1 − 2U h,α + U h,α−1


M + Fint (U h,α ) − Fext (tα ) = 0, (19.74)
(∆t)2

which was derived above for a second-order finite-difference time discretization, see (19.61).

80
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

19.7 Implicit time integration

Next, implicit time integration uses the same discretization in time but requires solving a
(non)linear system of equations for U α+1 .

The most popular scheme for mechanical problems, is the so-called Newmark-β method which
is a combination of the linear acceleration and average acceleration schemes. Specifically, one
assumes
(∆t)2
U α+1 = U α + ∆t U̇ α + [2β Ü α+1 + (1 − 2β)Ü α ] (19.75a)
2
U̇ α+1 = U̇ α + ∆t [γ Ü α+1 + (1 − γ)Ü α ] (19.75b)

with parameters 0 ≤ β ≤ γ/2 and 0 ≤ γ ≤ 1, often chosen as

ˆ β = 14 , γ = 12 in the average acceleration scheme, which is implicit and unconditionally


stable (the underlying approximation is that the acceleration within the time interval ∆t
remains constant).

ˆ β = 16 , γ = 1
2 in the linear acceleration scheme,

ˆ β = γ = 0 returns to the explicit central-difference scheme discussed above.

Most popular is the average accelerations scheme which is unconditionally stable for arbitrary
∆t > 0.

For linear structural dynamics problems, the method is unconditionally stable if 2β ≥ γ ≥ 1/2.
It is conditionally stable if γ < 1/2. For γ = 1/2 the scheme is at least second-order accurate,
while being first-order accurate otherwise.

For implementation purposes, let us solve (19.75) for the acceleration at the new time tα+1 :

1 1 − 2β α
Ü α+1 = 2
(U α+1 − U α − ∆t U̇ α ) − Ü . (19.76)
β(∆t) 2β

Insertion into (19.75b) yields

γ 1 − 2β α
U̇ α+1 = U̇ α + ∆t(1 − γ)Ü α + (U α+1 − U α + ∆t U̇ α ) − γ ∆t Ü
β ∆t 2β
(19.77)
γ γ γ
= (1 − ) U̇ α + (U α+1 − U α ) − ∆t ( − 1) Ü α
β β ∆t 2β

Next, inserting both velocity (19.76) and acceleration (19.77) into the equation of motion at
the new time tα+1 ,

M Ü α+1 + C U̇ α+1 + Fint (U α+1 ) − Fext (tα+1 ) = 0, (19.78)

leads after some rearrangement to

1 γ
( M+ C) U α+1 + Fint (U α+1 ) − Fext (tα+1 )
β(∆t)2 β ∆t
1 1 1
=M[ Uα + U̇ α + ( − 1) Ü α ] (19.79)
β(∆t)2 β ∆t 2β
γ γ γ
+C[ U α + ( − 1) U̇ α + ∆t ( − 1) Ü α ] .
β ∆t β 2β

81
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

The right-hand side is fully known as it only involves U α , U̇ α , and Ü α from the previous time
step. The left-hand side is generally nonlinear and requires an iterative solver.

Note that the implementation is quite similar to that of the quasistatic Newton-Raphson solver
discussed before. The right-hand side is significantly longer (but contains only known informa-
tion). The left-hand side is extended by the first term in (19.79), which is linear in U α+1 and
the tangent matrix used for iterations is simply
1 γ
T∗ = 2
M+ C +T. (19.80)
β(∆t) β ∆t

Boundary conditions can be implemented in the same fashion as for the quasistatic solvers
discussed above.

As an alternative derivation of the implementation, we may introduce the changes in dis-


placements, velocities and accelerations during a time step as

∆U α = U α+1 − U α , ∆U̇ α = U̇ α+1 − U̇ α , ∆Ü α = Ü α+1 − Ü α . (19.81)

We can rearrange the first equation of (19.75) into

(∆t)2
U α+1 − U α = ∆t U̇ α + [2β(Ü α+1 − Ü α ) + Ü α ] (19.82)
2
or

(∆t)2 1 1 1
∆U α = ∆t U̇ α + [2β ∆Ü α + Ü α ] ⇔ ∆Ü α = 2
∆U α − U̇ α − Ü α .
2 β(∆t) β ∆t 2β
(19.83)

Similarly, the second equation of (19.75) gives

U̇ α+1 − U̇ α = ∆t [γ(Ü α+1 − Ü α ) + Ü α ] ⇔ ∆U̇ α = ∆t γ ∆Ü α + ∆t Ü α , (19.84)

so that insertion of the final result in (19.83) results in

1 1 1 α
∆U̇ α = ∆t γ [ 2
∆U α − U̇ α − Ü ] + ∆t Ü α
β(∆t) β ∆t 2β
(19.85)
γ γ γ
= ∆U α − U̇ α + ∆t (1 − ) Ü α .
β ∆t β 2β

The equations of motion (19.24) in their general time-discretized form are

M Ü α+1 + C U̇ α+1 + Fint (U α+1 ) − Fext (tα+1 ) = 0. (19.86)

Subtracting the above equation for two consecutive time steps results in the incremental form

M ∆Ü α + C ∆U̇ α + Fint (U α+1 ) − Fint (U α ) − [Fext (tα+1 ) − Fext (tα )] = 0. (19.87)

Now inserting (19.83) and (19.85) leads to

1 1 1 α γ γ γ
M[ 2
∆U α − U̇ α − Ü ] + C [ ∆U α − U̇ α + ∆t (1 − ) Ü α ]
β(∆t) β ∆t 2β β ∆t β 2β (19.88)
+ Fint (U α+1
) − Fint (U ) − [Fext (t ) − Fext (t )] = 0,
α α+1 α

82
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

which can be regrouped into

1 γ
[ M+ C] ∆U α + Fint (U α+1 ) = Fext (tα+1 ) − Fext (tα ) + Fint (U α )
β(∆t)2 β ∆t
(19.89)
1 γ 1 γ
− [− M + ∆t (1 − ) C] Ü α − [− M − C] U̇ α ,
2β 2β β ∆t β

whose right-hand side is entirely known from the previous time step (and the external forces
at the current time). Noting that ∆U α = U α+1 − U α , this is a generally nonlinear system of
equations to be solved for ∆U α or U α+1 . For example, we can use a Newton-Raphson iterative
approach that starts with an initial guess ∆U0α and incrementally finds
α
∆Ui+1 = ∆Uiα + δUiα , (19.90)

so that we need to solve


1 γ
[ 2
M+ C] (∆Uiα + δUiα ) + Fint (U α + ∆Uiα + δUiα ) = RHSα (19.91)
β(∆t) β ∆t

with

1 γ 1 γ
RHS α = Fext (tα+1 )−Fext (tα )+Fint (U α )+[ M − ∆t (1 − ) C] Ü α +[ M + C] U̇ α .
2β 2β β ∆t β
(19.92)

Linearization about δUiα = 0 finally gives

1 γ
[ 2
M+ C + T (U α + ∆Uiα )] δUiα
β(∆t) β ∆t
(19.93)
1 γ
≈ RHS − [
α
M+ C] ∆Uiα − Fint (U α + ∆Uiα ).
β(∆t)2 β ∆t

After a time step α, we know U α , U̇ α and Ü α as well as Fext (tα+1 ) and Fext (tα ). To solve for
the new solution at tα+1 , we choose an initial guess ∆U0α (e.g., ∆U0α = 0), so that the entire
right-hand side in (19.93) as well as the martix in front of the left-hand side in (19.93) are known.
Next, the linear system in (19.93) is solved for δUiα , followed by the update ∆Ui+1 α
= ∆Uiα +δUiα ,
until convergence is achieved when ∥δUi ∥ → 0. Once ∆U = limi→∞ ∆Ui has been found, we
α α α

can use (19.83) to compute ∆Ü α and Ü α+1 = Ü α + ∆Ü α as well as (19.85) to compute ∆U̇ α
and U̇ α+1 = U̇ α + ∆U̇ α . Then, the procedure restarts for the next time step.

Note that, if essential boundary conditions of the type U α = Û α are to be imposed, this implies
that ∆U α = Û α+1 − Û α is known for all times.

83
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

20 Internal variables and inelasticity

20.1 Inelastic material models

Inelastic material models describe a variety of phenomena, e.g.,

ˆ viscoelasticity, i.e., time- and rate-dependent reversible behavior (the stress–strain rela-
tion depends on the loading rate; stresses and strains evolve over time); internal variables,
e.g., for viscoelasticity with n Maxwell elements are the inelastic strain contributions
z = {e1p , . . . , enp }.

ˆ plasticity, i.e., history-dependent irreversible behavior (the stress–strain relation depends


on the loading history); internal variables are usually the plastic strains, accumulated
plastic strains, and possibly further history variables: z = {ep , p , . . .}

ˆ viscoplasticity, i.e., history- and time-dependent irreversible behavior; internal variables


are similar to the case of plasticity above.

ˆ damage, i.e., irreversible degradation of the elastic stiffness with loading; internal variable
is a damage parameter, e.g., a scalar measure z = d.

ˆ ferroelectricity, i.e., irreversible electro-mechanical-coupling; internal variable can be,


e.g., the polarization field z = p.

All these phenomena can be described by the same underlying principles.

The general description of an inelastic (variational) material model starts with a strain energy
density
W = W (ε, z), (20.1)
where z denotes a collection of internal variables. While the stress tensor and linear momentum
balance remain untouched, i.e., (in linearized kinematics)
∂W
σ= and div σ + ρb = 0, (20.2)
∂ε
the internal variables evolve according to a kinetic law
∂W ∂φ∗
+ ∋ 0, (20.3)
∂z ∂ ż
where φ∗ denotes the dual (dissipation) potential and we assume that such a potential
exists. The differential inclusion is replaced by an equality in case of rate-dependent models.
(20.3) can alternatively be cast into an effective variational problem:
ż = arg inf {Ẇ + φ∗ }. (20.4)

Note that P = Ẇ + φ∗ is often referred to as the total power since it denotes the rate of change
of energy in the system induced by external forces (considering changes to the stored energy
and the dissipated energy).

20.2 Example: viscoelasticity

As an example, consider the so-called standard linear solid which demonstrates viscoelastic ma-
terial behavior. In 1D, strain ε is decomposed into elastic and inelastic contributions according

84
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

to ε = εe + εp . The stored energy is given by

E2 E1 2
W (ε, εp ) = (ε − εp )2 + ε (20.5)
2 2 p
so that
∂W
σ= = E2 (ε − εp ) (20.6)
∂ε
and
∂W
y=− = E2 (ε − εp ) − E1 εp = σ − E1 εp . (20.7)
∂εp

The kinetic rule is given as

y = η ε̇p , (20.8)

which is equivalent to defining


η
φ∗ (ε̇p ) = (εp )2 (20.9)
2
such that
∂W ∂φ∗
+ = 0. (20.10)
∂εp ∂ ε̇p

20.3 Variational constitutive updates

For the numerical treatment, let us introduce a discretization in time: tα = α ∆t, where we
assume constant time steps ∆t = tα+1 − tα and, for conciseness, we write ∆(⋅) = (⋅)α+1 − (⋅)α ,
where (⋅)α denotes a quantity at time tα . Using simple backward-Euler rules then gives Ẇ =
(W α+1 − W α )/∆t and ż = (z α+1 − z α )/∆t = ∆z/∆t.

Thus,

∆z W α+1 − W α ∆z
= arg inf { + φ∗ ( )} . (20.11)
∆t ∆t ∆t

Multiplication by ∆t and omitting W α (since it does not depend on z α+1 ) leads to

z α+1 − z α
z α+1 = arg inf {W α+1 (εα+1 , z α+1 ) + ∆t φ∗ ( )} , (20.12)
∆t

where the right-hand side defines an effective incremental potential:

z α+1 − z α
Fzα (εα+1 , z α+1 ) = W α+1 (εα+1 , z α+1 ) + ∆t φ∗ ( ) (20.13)
∆t

Notice that σ α+1 = ∂W /∂εα+1 so that the effective potential can be used to replace the classical
strain energy density in the total potential energy:

Izα [uα+1 , z α+1 ] = ∫ Fzα (εα+1 , z α+1 )dV − ∫ ρ b ⋅ uα+1 dV − ∫ t̂ ⋅ uα+1 dS. (20.14)
Ω Ω ∂ΩN

85
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

By the subscripts zα we denote that those potentials do depend on z α (i.e., the internal variables
at the previous time step) but that those fields are known when evaluating the respective
quantities.

The solution can now be found from

{uα+1 , z α+1 } = arg inf Izα [uα+1 , z α+1 ]. (20.15)

We can exploit that only the internal energy term depends on the internal variables and further
assume that the energy density is local in the internal variables (this does not apply, e.g., for
phase field models whose energy involves gradients of the internal variables). Then,

inf inf ∫ Fzα (εα+1 , z α+1 )dV − . . . = inf ∫ inf Fzα (εα+1 , z α+1 )dV − . . .
uα+1 z α+1 Ω α+1 α+1u Ωz
(20.16)
= inf ∫ Wz∗α (εα+1 )dV − . . . ,
u α+1 Ω

where

Wz∗α (εα+1 ) = inf Fzα (εα+1 , z α+1 ) = Fzα (εα+1 , z∗α+1 ), z∗α+1 = arg inf Fzα (εα+1 , ⋅) (20.17)
z α+1

is often referred to as the condensed energy density (the internal variables have been “con-
densed out”). Notice that the omitted terms (. . .) do not depend on the internal variables.

This finally leads to the incremental variational problem

Izα [uα+1 ] = ∫ Wz∗α (εα+1 )dV − ∫ ρ b ⋅ uα+1 dV − ∫ t̂ ⋅ uα+1 dS, (20.18)


Ω Ω ∂ΩN

which has the same structure as before. This concept of introducing internal variables into the
variational framework is also known as variational constitutive updates and goes back to
Ortiz and Stainier (2000).

Note that – for numerical implementation purposes – evaluation of Wz∗α (εα+1 ) always requires
us to compute the updated internal variables z∗α+1 based on εα+1 , before the energy, stresses,
or incremental stiffness matrix can be evaluated.

The stresses are now


d
σ α+1 = W ∗α (εα+1 )
dεα+1 z
∂F ∂F ∂z α+1
= α+1 (εα+1 , z∗α+1 ) + α+1 (εα+1 , z∗α+1 ) ⋅ ∗α+1 (20.19)
∂ε ∂z ∂ε
∂W ∗ α+1 α+1
= α+1 (ε , z∗ ),
∂ε
where the second term vanished because z∗α+1 renders F stationary by definition.

The same trick unfortunately does not apply when computing the incremental stiffness matrix,

α+1 α+1 α+1


dσij ∂σij ∂σij ∂z∗α+1
ijkl =
Cα+1 = + ⋅ , (20.20)
dεα+1
kl ∂εα+1
ij ∂z α+1 ∂εα+1
ij

where the second term does not vanish in general. It requires calculating the sensitivity of the
internal variables with respect to the strain tensor components.

86
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

20.4 Example: viscoelasticity, (visco)plasticity

Viscoelasticity and (visco)plasticity all start with the same fundamental structure (here pre-
sented in linearized kinematics). The total strain tensor decomposes additively into elastic and
inelastic (or plastic) contributions:

ε = εe + εp , (20.21)

where εp belongs to the set of internal variables. (Note that in finite deformations, the decom-
position is multiplicative: F = Fe Fp .)

In case of history dependence, one introduces additional internal history variables. For example
for von Mises plasticity, the accumulated plastic strain p captures the history of plastic
strains εp through the coupling

2
˙p = ∥ε̇p ∥vM = ε̇p ⋅ ε̇p . (20.22)
3

With internal variables z = {εp , p }, the Helmholtz energy density decomposes into elastic and
plastic energy:

W (ε, εp , p ) = Wel (ε − εp ) + Wpl (p ). (20.23)

In case of reversible behavior (viscoelasticity), we have no plastic energy storage, i.e., Wpl = 0.

The dual dissipation potential can be defined, e.g., by the general power-law structure

τ0 ˙0 ˙p m+1


φ∗ (˙p ) = σ0 ∣˙p ∣ + ( ) (20.24)
m + 1 ˙0
with positive constants σ0 (initial yield stress), τ0 (hardening rate), ˙0 (reference rate), and m
(rate sensitivity). In case of viscoelasticity we choose σ0 = 0. By contrast, for rate-independent
plasticity one chooses τ0 = 0.

The differential inclusion in (20.3) is required because of the first term, σ0 ∣˙p ∣, whose derivative
is not defined at the origin (for ˙p = 0). Here, a subdifferential is required. Assume, e.g.,
τ0 = 0 (which is known as rate-independent plasticity) such that


⎪σ0 , if ˙p > 0, ⎧
⎪y = σ0 , if ˙p > 0,
∂φ∗ ∂ ⎪

⎪ ⎪


= σ0 ∣˙p ∣ = ⎨−σ0 , if ˙p < 0, ⇒ ⎨y = −σ0 , if ˙p < 0, (20.25)
∂ ˙p ∂ ˙p ⎪

⎪ ⎪



⎩(−σ0 , σ0 ) if ˙p = 0. ⎪
⎩y ∈ (−σ0 , σ0 ) if ˙p = 0.

In the first two cases, the kinetic law becomes an equality: plastic flow occurs with ˙p > 0 (or
˙p < 0) while the driving force y equals the critical stress σ0 (or −σ0 ). In the third case, elastic
loading implies that ∣y∣ < σ0 (here, the differential inclusion is required).

In case τ0 ≠ 0, the material behavior becomes viscoplastic and the driving force is no longer
constant by rate-dependent in the plastic regime. However, σ0 ≠ 0 still introduces a threshold
to plastic flow.

The specific forms of Wel , Wpl , and φ∗ depend on the particular material model.

87
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

20.5 Example: viscoplasticity

Since plastic/viscous deformation is observed to be isochoric, one commonly assumes

tr εp = 0 so that εp = e p . (20.26)

Similarly, only the deviatoric stress tensor s should cause plastic deformation. Here and in the
following, we denote the deviatoric tensors by
1
dev(⋅) = (⋅) − tr(⋅)I, so that e = dev ε, s = dev σ. (20.27)
3

Using the above definitions of energy density and dual potential, we obtain

α+1
p − αp
F{eαp ,αp } (ε α+1
p , p )
, eα+1 α+1
=W α+1
(ε α+1
, ep , p ) + ∆t φ (
α+1 α+1 ∗
) (20.28)
∆t

Minimization with respect to eα+1


p gives
α+1
∂F ∂Welα+1 ∂Wpl ∂α+1p ∂φ∗ 1 ∂p
α+1
= + + ∆t
∂eα+1
p ∂eα+1
p ∂α+1
p ∂eα+1
p ∂α+1
p ∆t ∂eα+1
p
(20.29)
∂α+1
p
= − dev σ α+1
+ [τ (α+1
p ) + τ (p )]
∗ α+1
∋0
∂eα+1
p

with back-stresses
α+1
∂Wpl ∂φ∗
p )=
τ (α+1 , p )=
τ ∗ (α+1 . (20.30)
∂α+1
p ∂α+1
p

Further, note that



∂α+1
p ∂∆α+1
p ∂ 2 α+1 2∆eα+1
p
= = ∆e ⋅ ∆ep =
α+1 . (20.31)
∂eα+1
p ∂∆eα+1
p ∂∆epα+1 3 p 3∆α+1
p

Altogether, this results in

2∆eα+1
p
−sα+1 + [τ (α+1
p ) + τ (p )]
∗ α+1
∋0 (20.32)
3∆pα+1
or
2∆eα+1
p
sα+1 ∈ [τ (α+1
p ) + τ (p )]
∗ α+1
. (20.33)
3∆α+1
p

Let us consider the elastically isotropic case (i.e., σ = κ(tr ε)I + 2µ ee ). Assume that ∆α+1
p > 0,
so we have
⎡ ∆α+1
m⎤ α+1
⎢ α+1 p ⎥ 2∆ep
2µ (e α+1
− epα+1 ) = ⎢τ (p ) + σ0 + τ0 ( ) ⎥ . (20.34)
⎢ ˙0 ∆t ⎥ 3∆α+1
⎣ ⎦ p

and we introduce an elastic predictor (i.e., strain if the plastic strain remained unaltered)

pre = e
eα+1 − eαp eα+1 − eα+1 = eα+1
pre − ∆ep .
α+1 α+1
such that p (20.35)

88
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

That gives
⎡ ∆α+1
m⎤
2 ⎢ p ⎥
2µ eα+1 = 2µ ∆eα+1 + ⎢3µ ∆p + τ (p ) + σ0 + τ0 (
α+1 α+1
) ⎥ ∆eα+1
p . (20.36)
pre p
3∆α+1 ⎢ ˙0 ∆t ⎥
p ⎣ ⎦
or
2µ eα+1
pre
m = ∆eα+1
p . (20.37)
∆α+1
2µ + 2
3∆α+1
(τ (α+1
p ) + σ0 + τ0 ( ˙0 p∆t ) )
p

Now, let us use that



2 α+1 2µ ∥eα+1
pre ∥vM
∆p =
α+1
∆e ⋅ ∆eα+1 = m . (20.38)
3 p p
∆α+1
2µ + 2
3∆α+1
(τ (α+1
p ) + σ0 + τ0 ( ˙0 ∆t ) )
p
p

This is a scalar equation to be solved for the increment ∆α+1


p , which is then inserted into (20.37)
in order to determine ∆eα+1p . This completes the calculation of the updated internal variables.

Notice that the above equation is equivalent to saying (introducing the von Mises stress σvM )


3 α+1 α+1
σvM = s ⋅s = τ (α+1
p ) + τ (p ).
∗ α+1
(20.39)
2

Analogous relations can be obtained for ∆α+1


p < 0.

Note that rate-independent plasticity (including the special case of von Mises plasticity)
assumes that τ0 = 0; i.e., the dissipation potential only provides the initial yield threshold σ0 .

20.6 Example: linear viscoelasticity

In the simplest viscoelastic case, we take Wpl = 0 and thus τ (α+1p ) = 0, i.e., the material has
no “memory”. Also, the yield threshold is removed by choosing σ0 = 0, and the accumulated
plastic stress p is of no interest nor needed. The dissipation is reformulated as
η
φ∗ (ėp ) = ∥ėp ∥2 , (20.40)
2
which agrees with the plastic case above with velocity-proportional damping (m = 1), viscosity
η = τ0 /˙0 , and the von Mises norm replaced by the classical vector norm.

In this case, (20.34) reduces to


∆ep ∆ep
2µ (eα+1
pre − ∆ep ) = τ0 =η , (20.41)
˙0 ∆t ∆t
which can be rearranged to
∆ep
pre = η
2µ eα+1 + 2µ ∆ep (20.42)
∆t
giving

η/µ
pre = (
2eα+1 + 2) ∆ep . (20.43)
∆t

89
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

If we define the relaxation time τ = η/µ, then


2
∆ep = eα+1 (20.44)
2 + τ /∆t pre
or
2
eα+1
p = eαp + (eα+1 − eap ) . (20.45)
2 + τ /∆t

This can be extended to the generalized Maxwell model. Let us assume isotropic elasticity
with shear and bulk modulus µ∞ and κ∞ , respectively, while the n viscoelastic branches are
characterized by shear stiffnesses µi and viscosities ηi (for i = 1, . . . , n). The effective incremental
energy density now becomes
n
κ∞ 2
F{ei,α } (εα+1 , e1,α+1
p , . . . , en,α+1
p )= (tr εα+1 )2 + µ∞ eα+1 ⋅ eα+1 + ∑ µi ∥eα+1 − ei,α+1
p ∥
p 2 i=1
n (20.46)
ηi 2
+∑ ∥ei,α+1
p p ∥ ,
− ei,α
i=1 2∆t

whose minimization with respect to the new internal variables yields


2
ei,α+1
p p +
= ei,α (eα+1 − ei,α
p ) (20.47)
2 + τi /∆t

with relaxation times τi = η(i) /µ(i) . Note that this agrees with (20.45) for a single Maxwell
element.

Insertion and differentiation leads to the stress tensor


n
τi /∆t
p , . . . , ep ) = κ (tr ε
σ α+1 (εα+1 , e1,α n,α ∞ α+1
)I + 2µ∞ eα+1 + ∑ 2µi (eα+1 − ei,α
p ) . (20.48)
i=1 2 + τi /∆t

Similarly, the consistent incremental tangent matrix can be computed by differentiating σ α+1 :

∂σ α+1 2 n
τi /∆t
ijkl =
Cα+1 = [κ − (µ + ∑ µi )] δij δkl
2 + τi /∆t
α+1 ∞ ∞
∂ε 3 i=1
(20.49)
n
τi /∆t
+ (µ∞ + ∑ µi ) (δik δjl + δil δjk ).
i=1 2 + τi /∆t

Finally, the condensed incremental energy density W ∗ can be computed analytically be insert-
ing (20.47) into (20.46).

90
Index
L2 -norm, 96 continuous over Ω, 95
n-dimensional space, 26 convergence, 97
(proper) subset, 94 CST, 41
2-node bar element, 37 cubature rules, 47
2-node beam element, 39 current configuration, 9
4-node bilinear quadrilateral, 44
4-node tetrahedron, 42 damped Newton-Raphson method, 59
8-node brick element, 46 damping matrix, 74
8-node quadratic quadrilateral, 46 deformation gradient, 9
9-node quadratic quadrilateral, 45 deformation mapping, 9
degree, 102
a.e., 24, 95 degrees of freedom, 35
acceleration, 9 deviatoric, 88
action, 72 Direct methods, 16
action principle, 72 Dirichlet boundary, 15
approximation error, 67 Dirichlet-Poincaré inequality, 99
assembly operator, 55 discrete problem, 26
average acceleration, 81 discrete weak form, 73
discretization error, 67
backward-Euler, 16 displacement field, 9
balance laws, 7 distance, 96, 97
Banach space, 97 divergence theorem, 7
barycentric coordinates, 40 domain, 94
basis, 33 dual (dissipation) potential, 84
bijective, 94
bilinear form, 22 effective incremental potential, 85
bilinear operator, 105 eigenfrequency, 75
boundary, 94 eigenmode, 75
boundary conditions, 15 eigenvector, 75
Bubnov-Galerkin approximation, 27 elasticity tensor, 13
elements, 35
Cauchy stress tensor, 11 energy norm, 108
chicken-wire mode, 71 essential supremum, 96
class C k (Ω), 24, 95 Euclidean norm, 96
classical solution, 21, 22 Eulerian, 9
closure, 97 explicit, 17
complete polynomial, 103 explicit time integration, 79
complete space, 97 extensive, 7
complete up to order q, 34 external force elements, 62
completeness property, 34
condensation method, 66 Fast Inertial Relaxation Engine, 61
condensed energy density, 86 finite differences, 16
condition number, 67 finite element, 35
conjugate gradient, 60 Finite Element Method, 35
consistent mass matrix, 73 first fundamental error, 67
Constant Strain Triangle, 41 First Piola-Kirchhoff, 10
constitutive relations, 6 first Piola-Kirchhoff stress tensor, 11
continuous at a point x, 95 first variation, 19

91
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

first-order central difference, 16 L2 -space of functions, 97


flux, 6 Lp -norm, 96
forward-Euler, 16 Lagrange polynomials, 38
full integration, 53 Lagrangian, 9
function, 94 Lagrangian interpolation, 38
functional, 18 Lax-Milgram theorem, 23, 106
Legendre polynomials, 49
Gauss quadrature, 48 line search method, 59
Gauss-Chebyshew, 50 linear, 105
Gauss-Hermite, 50 linear acceleration, 81
Gauss-Legendre quadrature, 48, 50 linear elasticity, 13, 29
Gauss-Lobatto quadrature, 51 linear form, 22
Gauss-Newton method, 60 linear strain triangle, 43
generalized Maxwell model, 90 linear subspace, 94
global, 33 linear/vector space, 94
global error estimate, 99, 101 linearized kinematics, 13
gradient flow method, 60 local, 33
Gram-Schmidt orthogonalization, 49 local energy balance, 7
local error estimate, 99
h-refinement, 35
locking, 71
heat equation, 8
longest edge bisection, 69
Hermitian polynomials, 39
hierarchical interpolation, 38 mapping, 94
higher-order interpolation, 101 mappings, 6
Hilbert space, 97 material points, 6
homogeneous, 8 mesh, 35
hourglass mode, 71 mesh refinement algorithm, 69
hp-refinement, 36 mesh refinement criterion, 69
methods of weighted residuals, 25
identity mapping, 94
modal decomposition, 78
implicit, 17
modeling error, 68
implicit time integration, 81
monomial, 102
incremental tangent modulus tensor, 11
multi-index, 102
incremental variational problem, 86
indirect methods, 17 Navier’s equation, 14
initial boundary value problem, 15 neighborhood, 97
initial conditions, 15 Neumann boundary, 15
injective, 94 Neumann-Poincaré, 99
inner product, 95 Newmark-β, 81
inner product space, 95 Newton-Cotes, 47
intensive, 7 Newton-Raphson method, 58
internal energy, 7 nodes, 35
inverse function theorem, 41 nonlinear least squares, 60
isomorphism, 94 norm, 96
isoparametric, 39 normed linear space, 96
isoparametric mapping, 39 numerical integration, 47
isotropy, 8 numerical integration error, 67
Jacobian, 40 one-to-one, 94
onto, 94
kinematic variables, 6
open, 97
L2 -inner product, 95 open set, 94

92
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

operator, 105 space of all second-order polynomial functions,


order of a PDE, 15 94
order reduction, 78 square-integrable, 18, 97, 102
ordered triad, 94 stationarity condition, 19
orthogonal, 95 stencils, 17
over-integration, 53 strain energy density, 11
strain tensor, 13
p-refinement, 35 stress, 10
parasitic shear, 71 stretch, 9
Petrov-Galerkin, 27 strong form, 24, 28
Poincaré inequalities, 99 subdifferential, 87
positive, 105 subparametric, 39
predictor, 88 superparametric, 39
principle of virtual work, 25 support, 33, 104
surjective, 94
Q4, 44
symmetric, 105
Q8, 46
Q9, 45 tangent matrix, 58
quadratic tetrahedron, 43 Taylor expansions, 16
quadratic triangle, 42 traction, 10
quadrature error, 52 triangle inequality, 96
quadrature rules, 47 truncation error, 68
Quasi-Newton method, 59
quasistatics, 10 under-integration, 53

r-refinement, 36 Vainberg’s theorem, 107


range, 94 variation, 19
Rayleigh’s quotient, 78 variational constitutive updates, 86
Rayleigh-Ritz, 21, 29 variational structure, 20
reference configuration, 9 velocity, 9
Riemann sum, 47 volume change, 9
right Cauchy-Green tensor, 10 von Mises plasticity, 89
rigid body rotation, 13 von Mises stress, 89
rigid body translation, 13
rigid-body modes, 66 weak form, 25, 72
weak solution, 25
second-order central difference, 16 Weierstrass approximation theorem, 34
selective integration, 71
semi-discretization, 73 zero-energy mode, 71
semi-norm, 100 zero-energy modes, 66
serendipity element, 46 zeroth derivative, 24, 95
set, 94 ZZ error estimator, 69
shape function properties, 33
shape functions, 33
shear locking, 71
simplex, 40
simplicial quadrature, 53
smoothing, 68
Sobolev norm, 18, 101
Sobolev semi-norm, 100
Sobolev space, 18, 102, 103
solution error, 67

93
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

A Introduction, Vector Spaces

We define a set Ω as a collection of points X ∈ Ω.

We further say Ω is a (proper) subset of all space if Ω ⊆ Rd in d dimensions (proper if Ω ⊂ Rd ).

We usually take Ω to be an open set, i.e., Ω ∩ ∂Ω = ∅ with boundary ∂Ω.

Deformation and motion are described by a mapping

ϕ ∶ X ∈ Ω → ϕ(X) ∈ Rd or ϕ ∶ Ω → Rd , (A.1)

where Ω is the domain and Rd the range of ϕ. The mapped (current) configuration of Ω is
ϕ(Ω).

Every function f (x) ∶ R → R is a mapping from R to R.

We call a mapping injective (or one-to-one) if for each x ∈ ϕ(Ω) there is one unique X ∈ Ω
such that x = ϕ(X). In other words, no two points X ∈ Ω are mapped onto the same position
x. A mapping is surjective (or onto) if the entire set Ω is mapped onto the entire set ϕ(Ω);
i.e., for every X ∈ Ω there exists at least one x ∈ ϕ(Ω) such that x = ϕ(X). If a mapping is both
injective and surjective (or one-to-one and onto) we say it is bijective. A bijective mapping is
also called an isomorphism.

For example, ϕ ∶ Ω → Rd is injective, whereas ϕ ∶ Ω → ϕ(Ω) would be bijective.

For time-dependent problems, we have ϕ ∶ Ω × R → Rd and x = ϕ(X, t). This describes a family
of configurations ϕ(Ω, t), from which we arbitrarily define a reference configuration Ω for which
ϕ = id (the identity mapping).

A linear/vector space {Ω, +; R, ⋅} is defined by the following identities. For any u, v, w ∈ Ω


and α, β ∈ R it holds that

(i) closure: α ⋅ u + β ⋅ v ∈ Ω
(ii) associativity w.r.t. +: (u + v) + w = u + (v + w)
(iii) null element: ∃ 0 ∈ Ω such that u + 0 = u
(iv) negative element: for all u ∈ Ω ∃ − u ∈ Ω such that u + (−u) = 0
(v) commutativity: u + v = v + u
(vi) associativity w.r.t. ⋅: (αβ) ⋅ u = α(β ⋅ u)
(vii) distributivity w.r.t. R: (α + β) ⋅ u = α ⋅ u + β ⋅ u
(viii) distributivity w.r.t. Ω: α ⋅ (u + v) = α ⋅ u + α ⋅ v
(ix) identity: 1 ⋅ u = u

examples:

ˆ Rd is a vector space. By contrast, Ω ⊂ Rd is not a vector space, since – in general – it


violates, e.g., (i) closure and (iv) null element.

ˆ P2 = {ax2 +bx+c ∶ a, b, c ∈ R} is the space of all second-order polynomial functions,


or an ordered triad (a, b, c) ∈ R3 . More generally, Pk (Ω) is the space of all kth-order
polynomial functions defined on Ω. Pk (Ω) is a linear space.

We call P2 a linear subspace of Pk with k ≥ 2, and we write P2 ⊆ Pk .

94
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

B Function Spaces

Consider a function u(x) ∶ Ω → R and Ω ⊂ R.

u is continuous at a point x if, given any scalar  > 0, there is a r() ∈ R such that
∣u(y) − u(x)∣ <  provided that ∣y − x∣ < r. (B.1)
A function u is continuous over Ω if it is continuous at all points x ∈ Ω.

u is of class C k (Ω) with an integer k ≥ 0 if it is k times continuously differentiable over Ω (i.e.,


u possesses derivatives up to the kth order and these derivatives are continuous functions).

Examples:

ˆ Functions u(x) ∈ Pk with k ≥ 0 are generally C ∞ (R).

ˆ Consider a continuous, piecewise-linear function u ∶ Ω = (0, 2) → R. Function u is C 0 (Ω)


but not C 1 (Ω).

ˆ The Heavyside function H(x) is said to be C −1 (R) since its “zeroth derivative” (i.e.,
the function itself) is not continuous.

If there are no discontinuities such as cracks, shocks, etc. (or discontinuities in the BCs/ICs) we
usually assume the solution fields are C ∞ (Ω), so we may take derivatives; otherwise, derivatives
exist almost everywhere (a.e.)

To evaluate the global errors of functions, we need norms.

Consider a linear space {U, +; R, ⋅}. A mapping ⟨⋅, ⋅⟩ ∶ U × U → R is called inner product on
U × U if for all u, v, w ∈ U and α ∈ R:

(i) ⟨u + v, w⟩ = ⟨u, w⟩ + ⟨v, w⟩


(ii) ⟨u, v⟩ = ⟨v, u⟩
(iii) ⟨α ⋅ u, v⟩ = α ⟨u, v⟩
(iv) ⟨u, u⟩ ≥ 0 and ⟨u, u⟩ = 0 ⇔ u = 0

A linear space U endowed with an inner product is called an inner product space.

Examples:

ˆ ⟨u, v⟩ = ui vi = u ⋅ v defines an inner product for u, v ∈ Rd .

ˆ The L2 -inner product for functions u, v ∈ U with domain Ω:


⟨u, v⟩L2 (Ω) = ∫ u(x) v(x)dx and often just ⟨u, v⟩ = ⟨u, v⟩L2 (Ω) . (B.2)

Note that if ⟨u, v⟩ = 0 we say u and v are orthogonal.

Examples:

ˆ Legendre polynomials:
1 dn 2 1
pn (x) = n n
(x − 1)n so that p0 = 1, p1 = x, p2 = (3x2 − 1), . . . (B.3)
2 n! dx 2
orthogonality on Ω = (−1, 1):
1 2
∫ pn (x) pm (x)dx = δmn (B.4)
−1 2n + 1

95
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

ˆ trigonometric functions:
πnx
pn (x) = cos ( ) (B.5)
L
orthogonality on Ω = (−L, L)


⎪2L, if m = n = 0
L ⎪


∫ pn (x) pm (x)dx = ⎨L, if m = n ≠ 0 (B.6)
−L ⎪



⎩0, else

Now we are in place to define the distance between x1 and x2 :



d(x1 , x2 ) = ⟨x1 − x2 , x1 − x2 ⟩ (B.7)

We need this concept not only for points in space but also to define the closeness or proximity
of functions.

Consider a linear space {U, +; R, ⋅}. A mapping ∥⋅∥ ∶ U → R+ is called a norm on U if for all
u, v ∈ U and α ∈ R:

(i) ∥u + v∥ ≤ ∥u∥ + ∥v∥ (triangle inequality)


(ii) ∥α ⋅ u∥ = ∣α∣ ∥u∥
(iii) ∥u∥ ≥ 0 and ∥u∥ = 0 ⇔ u = 0.

A linear space Ω endowed with a norm is called a normed linear space (NLS).

Examples of norms:

ˆ Consider the d-dimensional Euclidean space, so x = {x1 , . . . , xd }T . Then we define

– the 1-norm: ∥x∥1 = ∑di=1 ∣xi ∣


1/2
– the 2-norm: ∥x∥2 = (∑di=1 ∣xi ∣2 ) (Euclidean norm)
1/n
– the n-norm: ∥x∥n = (∑di=1 ∣xi ∣n )
– the ∞-norm: ∥x∥∞ = max1≤i≤n ∣xi ∣

ˆ Now turning to functions, the Lp -norm of a function u ∶ Ω → R:


1/p
∥u∥Lp (Ω) = (∫ up dx) (B.8)

The most common norm is the L2 -norm:


1/2
1/2
∥u∥L2 (Ω) = ⟨u, u⟩L2 (Ω) = (∫ u2 (x)dx) . (B.9)

Furthermore, notice that

∥u∥L∞ (Ω) = ess sup ∣u(x)∣ , (B.10)


x∈Ω

where we introduced the essential supremum

ess sup ∣u(x)∣ = M with the smallest M that satisfies ∣u(x)∣ ≤ M for a.e. x ∈ Ω. (B.11)
x∈Ω

96
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Now, that we have norms, we can generalize our definition of the distance. If un , u ∈ U equipped
with a norm ∥⋅∥ ∶ U → R, then we define the distance as

d(un , u) = ∥un − u∥ . (B.12)

Now, we are in place to define the convergence of a sequence of functions un to u in U: we


say un → u ∈ U if for all  > 0 there exists N () such that d(un , u) <  for all n > N .

Examples:

ˆ Consider un ∈ U = P2 (Ω) with L2 -norm and Ω ⊂ R


1 2 1
un (x) = (1 + )x → u(x) = x2 since d(un − u) = 2
∫ x dx (B.13)
n n

with u ∈ U = P2 (Ω). For example, for d(un − u) <  we need n > N = ∫Ω x2 dx/.

ˆ Fourier series:
∞ n
u(x) = ∑ ci xi ⇒ un (x) = ∑ ci xi such that un → u as n → ∞. (B.14)
i=0 i=0

Given a point u in a normed linear space U, a neighborhood Nr (u) of radius r > 0 is defined
as the set of points v ∈ U for which d(u, v) < r. Now, we can define sets properly:

A subset V ⊂ U is called open if, for each point u ∈ V, there exists a neighborhood Nr (u) which
is fully contained in V. The complement V ̃ of an open set V is, by definition a closed set. The
closure V of an open set V is the smallest closed set that contains V. In simple terms, a closed
set is defined as a set which contains all its limit points. Therefore, note that

sup ∣u(x)∣ = max ∣u(x)∣ . (B.15)


x∈Ω x∈Ω

For example, (0, 1) is an open set in R. [0, 1] is a closed set, and [0, 1] is the closure of (0, 1).

A linear space U is a complete space if every sequence un in U converges to u ∈ U. In simple


terms, the space must contain all limit points.

A complete normed linear space is called a Banach space; i.e., {U, +; R, ⋅} with a norm ∥⋅∥ and
un → u ∈ U. A complete inner product space is called a Hilbert space.

Note that ∥⋅∥ = ⟨⋅, ⋅⟩1/2 defines a norm. Hence, every Hilbert space is also a Banach space (but
not the other way around).

As an example, consider U = Pn (the space of all polynomial functions of order n ∈ N). This is a
linear space which we equip with a norm, e.g., the L2 -norm. It is complete since (an , bn , cn , . . .) →
(a, b, c, . . .) for a, b, c, . . . ∈ R. And an inner product is defined via ⟨u, v⟩ = ∫Ω uv dx. With all
these definitions, U is a Hilbert space.

We can use these norms to define function spaces, e.g., the L2 -space of functions:

L2 (Ω) = {u ∶ Ω → R ∶ ∫ u2 dx < ∞} (B.16)


We say L2 (Ω) contains all functions that are square-integrable on Ω.

97
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Examples:

ˆ u ∶ Ω → R with u ∈ Pk (Ω) and ess supx∈Ω ∣u(x)∣ < ∞. Then, u ∈ L2 (Ω).

ˆ f ∶ R → R with f (x) = x−2 is not in L2 (Ω) if 0 ∈ Ω.

ˆ Piecewise constant functions u (with ess supx∈Ω ∣u(x)∣ < ∞) are square-integrable and thus
in L2 .

Note that we can write alternatively

L2 (Ω) = {u ∶ Ω → R ∶ ∥u∥L2 (Ω) < ∞}. (B.17)

98
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

C Approximation Theory

a=1 ua Na (x),
Motivation: in computational mechanics, we seek approximate solutions uh (x) = ∑N
e.g., a linear combination of basis functions Na (x) with amplitudes ua ∈ R.

Questions: How does uh (x) converge to u(x), if at all? Can we find an error estimate ∥uh − u∥?
What is the rate of convergence (how fast does it converge, cf. the truncation error arguments
for grid-based direct methods)?

Fundamental tools for estimating errors are the Poincaré inequalities:

(i) Dirichlet-Poincaré inequality:


h h 2
∫ ∣v(x)∣2 dx ≤ ch ∫ [v ′ (x)] dx if v(0) = v(h) = 0. (C.1)
0 0

with a constant ch > 0 that depends on the interval size h.


(ii) Neumann-Poincaré (or Poincaré-Wirtinger) inequality:
h h 2 1 h
∫ ∣v(x) − v∣2 dx ≤ ch ∫ [v ′ (x)] dx with v= ∫ u(x) dx (C.2)
0 0 h 0
In 1D an optimal constant can be found: ch = h2 /π 2 .
(iii) extension:
h h2 h 2
∫ ∣v(x)∣2 dx ≤ 2
[∫ [v ′ (x)] dx + ∣v(x0 )∣2 ] with x0 ∈ [0, h]. (C.3)
0 π 0

Now, let us use those inequalities to find error bounds. Suppose a general function u(x) is
approximated by a piecewise linear approximation uh (x). Let’s first find a local error estimate.

Consider v(x) = u′h (x) − u′ (x) and note that by Rolle’s theorem

u′h (x0 ) − u′ (x0 ) = 0 for some x0 ∈ (0, h). (C.4)

Next, use inequality (iii):


h 2 h2 h 2
∫ ∣u′h (x) − u′ (x)∣ dx ≤ 2 ∫ ∣uh (x) − u (x)∣ dx,
′′ ′′
(C.5)
0 π 0
but since uh (x) is piecewise linear, we have u′′h (x) = 0, so that we arrive at the local error
estimate
h 2 h2 h 2
∫ ∣u′h (x) − u′ (x)∣ dx ≤ 2 ∫ ∣u′′ (x)∣ dx. (C.6)
0 π 0

Now, let’s seek a global error estimate by using


b n xi+1
∫ (⋅) dx = ∑ ∫ (⋅) dx with x0 = a, xn+1 = b, xi+1 = xi + h (C.7)
a i=0 xi

so that

b 2 h2 b 2
∫ ∣u′h (x) − u′ (x)∣ dx ≤ 2 ∫ ∣u′′ (x)∣ dx (C.8)
a π a

99
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Taking square roots, we see that for Ω = (a, b)

h ′′
∥u′h − u′ ∥L ≤ ∥u ∥L (Ω) (C.9)
2 (Ω) π 2

and hence that ∥u′h − u′ ∥L → 0 as h → 0 linearly in h.


2 (Ω)

We want to write this a bit more concise. Let us define the Sobolev semi-norm:
1/2
2
∣u∣H k (Ω) = [∫ ∣Dk u∣ dx] or for short ∣u∣k = ∣u∣H k (Ω) (C.10)

where in 1D Dk u = u(k) . A semi-norm in general must satisfy the following conditions:

(i) ∥u + v∥ ≤ ∥u∥ + ∥v∥ (like for a norm)


(ii) ∥α ⋅ u∥ = ∣α∣ ∥u∥ (like for a norm)
(iii) ∥u∥ ≥ 0 (a norm also requires ∥u∥ = 0 iff u = 0, not so for a semi-norm).

Examples in 1D:

ˆ from before:
b 1/2
2
∣u∣H 1 (a,b) = [∫ ∣u′ (x)∣ dx] (C.11)
a

ˆ analogously:

b 1/2
2
∣u∣H 2 (a,b) = [∫ ∣u′′ (x)∣ dx] (C.12)
a

so that we can write (C.8) as

h2 2 h
∣uh − u∣2H 1 (a,b) ≤ ∣u∣ 2 ⇒ ∣uh − u∣H 1 (a,b) ≤ ∣u∣ 2 (C.13)
π 2 H (a,b) π H (a,b)

Hence, the topology of convergence is bounded by the regularity of u. Convergence with


h-refinement is linear.

ˆ note the special case

∣u∣2H 0 = ∫ u(x)2 dx = ∥u∥2L2 (L2 -norm) (C.14)


100
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

We can extend this to higher-order interpolation. For example, use a piecewise quadratic
interpolation uh . From Poincaré:
h 2 h2 h
′′ 2 h4 h
′′′ 2 h4 h 2
∫ ∣u′h − u′ ∣ dx ≤ 2 ∫ ∣u′′
h − u ∣ dx ≤ 4 ∫ ∣u′′′
h − u ∣ dx = 4 ∫ ∣u′′′ ∣ dx (C.15)
0 π 0 π 0 π 0
Extension into a global error estimate with quadratic h-convergence:

h2
∣uh − u∣H 1 (a,b) ≤ ∣u∣ 3 . (C.16)
π 2 H (a,b)

For a general interpolation of order k:

hk
∣uh − u∣H 1 (a,b) ≤ ∣u∣ k+1 (C.17)
π k H (a,b)

Why is the Sobolev semi-norm not a norm? Simply consider the example u(x) = c > 0. All
higher derivatives vanish on R, so that ∣u∣H k (Ω) = 0 for Ω ⊂ R and k ≥ 1. However, that does not
imply that u = 0 (in fact, it is not).

Let us introduce the Sobolev norm (notice the double norm bars)

k 1/2
2
∥u∥H k (Ω) = ( ∑ ∣u∣H m (Ω) ) or for short ∥u∥k = ∥u∥H k (Ω) (C.18)
m=0

For example, in one dimension


2
∥u∥2H 1 (Ω) = ∣u∣20 + ∣u∣21 = ∫ u(x)2 dx + ∫ [u′ (x)] dx = ∥u∥2L2 (Ω) + ∣u∣2H 1 (Ω) (C.19)
Ω Ω

Note that this also shows that, more generally,

∥u∥2H k (Ω) ≥ ∣u∣2H k (Ω) . (C.20)

Let us derive a final global error estimate, one that involves proper norms – here for the example
of a piecewise linear uh . Start with Poincaré inequality (i):
b b 2
∥uh − u∥2L2 (a,b) = ∫ ∣uh − u∣2 dx ≤ ch ∫ ∣u′h − u′ ∣ dx = ch ∣uh − u∣2H 1 (a,b) (C.21)
a a

and from (C.19):

∥uh − u∥2H 1 (Ω) = ∥uh − u∥2L2 (Ω) + ∣uh − u∣2H 1 (Ω)


(C.22)
≤ (1 + ch ) ∣uh − u∣2H 1 (a,b) ≤ c∗ h ∣u∣2H 2 (a,b)

which along with (C.13) gives

∥uh − u∥H 1 (a,b) ≤ ch ∣u∣H 2 (a,b) ≤ ch ∥u∥H 2 (a,b) (C.23)

101
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

Summary and Extension of Norms:


1/p
Lp -norm: ∥u∥Lp (Ω) = (∫ up dx)

1/2
2
Sobolev semi-norm ∶ ∣u∣H k (Ω) = [∫ ∣Dk u∣ dx] = ∣u∣k

k 1/2
Sobolev norm ∶ ∥u∥H k (Ω) = ( ∑ ∣u∣2H m (Ω) ) = ∥u∥k
m=0
1/p
p
generalization ∶ ∣u∣W k,p (Ω) = [∫ ∣Dk u∣ dx] = ∣u∣k,p

k 1/p
∥u∥W k,p (Ω) = ( ∑ ∣u∣pW m,p (Ω) ) = ∥u∥k,p
m=0

C.1 Sobolev spaces

The Sobolev norm is used to define a Sobolev space:

H k (Ω) = {u ∶ Ω → R such that ∥u∥k < ∞}, (C.24)

which includes all functions whose kth-order derivatives are square-integrable.

Examples:

ˆ Consider a piecewise linear function u ∈ C 0 defined on Ω = (0, 2). Then u ∈ H 1 (Ω) since
the first derivative is piecewise constant and therefore square-integrable.

ˆ Consider the Heavyside step function H(x) ∈ C −1 defined on R. Then, e.g., h ∈ H 0 (Ω)
with Ω = (−1, 1) since the first derivative (the Dirac delta function) is not square-integrable
over (−1, 1).

Overall, note that the above examples imply that

H m (Ω) ⊂ C k (Ω) with m > k. (C.25)

For example, if a function has a kth continuous derivative, then the (k + 1)th derivative is
defined piecewise and therefore square-integrable.

C.2 Higher dimensions

To extend the above concepts to higher dimensions, we need multi-indices. A multi-index is


an array of non-negative integers:

α = (α1 , . . . , αn ) ∈ (Z+0 )n (C.26)

The degree of a multi-index is defined as

∣α∣ = α1 + . . . + αn . (C.27)

This can be used to define a monomial for x ∈ Rn :

xα = xα1 1 ⋅ . . . ⋅ xαnn (C.28)

102
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

For example, we can now extend our definition of polynomials to higher dimensions:
k
p(x) ∈ Pk (R2 ) ⇒ p(x) = ∑ ∑ aα xα (C.29)
β=0 ∣α∣=β

Specifically, the monomials above for x ∈ R2 are


for ∣α∣ = 0 ∶ {x0 y 0 } = {1}
for ∣α∣ = 1 ∶ {x1 y 0 , x1 y 0 } = {x, y} (C.30)
for ∣α∣ = 2 ∶ {x2 y 0 , x1 , y 1 , x0 y 2 } = {x2 , xy, y 2 } ...
so that

p(x) = a(0,0) + a(1,0) x1 + a(0,1) x2 + a(2,0) x21 + a(1,1) x1 x2 + a(0,2) x22 + . . . (C.31)

Note that this defines a complete polynomial of degree k.

Now we can use multi-indices to define partial derivatives via

∂ ∣α∣ u
Dα u = and D0 u = u (C.32)
∂xα1 1 ⋅ . . . ⋅ ∂xαnn

A common notation is
∂ ∣α∣ u
∑ D u=
α
∑ (C.33)
∣α∣=β α1 ,...,αn ∂xα1 1 ⋅ . . . ⋅ ∂xαnn
s.t. ∣α∣=β

With the above derivatives, we may redefine the inner product


m
⟨u, v⟩H m (Ω) = ∫ ∑ ∑ Dβ u Dβ u dx (C.34)
Ω β=0 ∣α∣=β

and the Sobolev norm


⎡m ⎤1/2 ⎡ m ⎤1/2
⎢ ⎥ ⎢ ⎥
= ⎢ ∑ ∑ ∫ (D u) dx⎥ = ⎢ ∑ ∑ ∥D u∥L2 (Ω) ⎥⎥
⎢ ⎥ ⎢
1/2 α 2
∥u∥H m (Ω) = ⟨u, u⟩H m (Ω) α 2
(C.35)
⎢β=0 ∣α∣=β Ω ⎥ ⎢β=0 ∣α∣=β ⎥
⎣ ⎦ ⎣ ⎦

Let’s look at some examples; e.g., consider Ω = R2 and m = 1. Then we have


∂u ∂u
D0 u = u and D1 u = { , } (C.36)
∂x1 ∂x2
so that
∂u ∂v ∂u ∂v
⟨u, v⟩H 1 (R2 ) = ∫ (uv + + ) dx1 dx2 (C.37)
R2 ∂x1 ∂x1 ∂x2 ∂x2
and
∂u 2 ∂u 2
∥u∥2H 1 (R2 ) = ∫ [u2 + ( ) +( ) ] dx1 dx2 . (C.38)
R2 ∂x1 ∂x2

Altogether we can now properly define a Sobolev space in arbitrary dimensions:

H m (Ω) = {u ∶ Ω → R ∶ Dα u ∈ L2 (Ω) ∀ α ≤ m} (C.39)

103
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

This is the set of all functions whose derivatives up to mth order all exist and are square-
integrable.

As an example, u ∈ H 1 (Ω) implies that u and all its first partial derivatives must be square-
integrable over Ω because (C.38) must be finite.

Let us look at the example u(x) = ∣x∣ and take Ω = (−1, 1). Then, we have u′ (x) = H(x) (the
Heaviside jump function) and u′′ (x) = δ(x) (the Dirac delta function). Therefore,
b
∫ u2 (x) dx < ∞ ⇒ u ∈ L2 (Ω) = H 0 (Ω)
a
b ∂u 2 b ∂u
∫ ( ) dx = ∫ H 2 (x)dx < ∞ ⇒ ∈ L2 (Ω) and u ∈ H 1 (Ω) (C.40)
a ∂x a ∂x
2
b ∂2u b ∂2u
∫ ( 2 ) dx = ∫ δ 2 (x)dx = ∞ ⇒ ∉ L2 (Ω) and u ∉ H 2 (Ω)
a ∂x a ∂x2

Note that one usually indicates the highest order k that applies (since this is what matters for
practical purposes), so here we thus conclude that u ∈ H 1 (Ω).

From the above, we also see that

H ∞ ⊂ . . . ⊂ H 2 ⊂ H 1 ⊂ H 0 = L2 . (C.41)

Notice that even though polynomials u ∈ Pk (Ω) are generally in H ∞ (Ω) for any bounded Ω ⊂ Rd ,
they are not square-integrable over Ω = Rd . Luckily, in practical problems we usually consider
only finite bodies Ω. To more properly address this issue, let us introduce the support of a
continuous function u defined on the open set Ω ∈ Rd as the closure in Ω of the set of all points
where u(x) ≠ 0, i.e.,

supp u = {x ∈ Ω ∶ u(x) ≠ 0} (C.42)

This means that u(x) = 0 for x ∈ Ω ∖ supp u. We may state, e.g., that functions u ∶ Ω → R with
a finite support Ω ⊂ Rd and ess supΩ < ∞ are square-integrable over Ω.

Finally, let us define by C0k (Ω) the set of all functions contained in C k (Ω) whose support is a
bounded subset of Ω. Also, notice that

C0k (Ω) ⊂ H0k (Ω) (C.43)

and

C0∞ (Ω) = ⋂ C0k (Ω). (C.44)


k≥0

104
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

D Operators

Energies are often defined via operators. Generally, we call A an operator if

A ∶ u ∈ U → A(u) ∈ V, (D.1)

where both U and V are function spaces.

A simple example is

du
A(u) = c , (D.2)
dx
which is a (linear differential) operator requiring u ∈ C 1 .

An operator A ∶ U → V is linear if for all u1 , u2 ∈ U and α, β ∈ R

A(α ⋅ u1 + β ⋅ u2 ) = α ⋅ A(u1 ) + β ⋅ A(u2 ). (D.3)

For example, L is a linear operator in

a u,xx + b u,x = c ⇔ L(u) = c with L(⋅) = a(⋅),xx + b(⋅),x . (D.4)

Operators (such as the inner product operator) can also act on more than one function. Con-
sider, e.g., an operator B ∶ U × V → R where U, V are Hilbert spaces. B is called a bilinear
operator if for all u, u1 , u2 ∈ U and v, v1 , v2 ∈ V and α, β ∈ R

(i) B(α ⋅ u1 + β ⋅ u2 , v) = α ⋅ B(u1 , v) + β ⋅ B(u2 , v)


(ii) B(u, α ⋅ v1 + β ⋅ v2 ) = α ⋅ B(u, v1 ) + β ⋅ B(u, v2 )

An example of a bilinear operator is the inner product ⟨⋅, ⋅⟩ ∶ U × U → R for some Hilbert space
U.

An operator A ∶ U → V is called symmetric if

⟨A(u), v⟩ = ⟨u, A(v)⟩ for all u, v, ∈ U. (D.5)

Furthermore, the operator is positive if

⟨A(u), u⟩ ≥ 0 for all u ∈ U. (D.6)

An example of a symmetric operator is A(u) = M u with u ∈ Rd and M ∈ Rd×d , which is


positive if M is positive-semidefinite.

105
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

E Uniqueness

One of the beauties of the above variational problem (3.37) is that a unique minimizer exists
by the Lax-Milgram theorem. This is grounded in (assuming ∣Ω∣ < ∞ and u, v ∈ U with some
Hilbert space U):

ˆ boundedness of the bilinear form:

∣B(u, v)∣ ≤ C ∥u∥ ∥v∥ for some C > 0. (E.1)

For a bilinear form B(u, v) = ⟨Grad u, Grad v⟩, this is satisfied by the Cauchy-Schwarz
inequality (using L2 -norms):

∣B(u, v)∣ ≤ C ∥Grad u∥L2 (Ω) ∥Grad v∥L2 (Ω) ≤ C ∥Grad u∥H 1 (Ω) ∥Grad v∥H 1 (Ω) (E.2)

ˆ coercivity of the bilinear form (ellipticity):

B(u, u) ≥ c ∥u∥2 for some c > 0. (E.3)

Again, for a bilinear form B(u, v) = ⟨Grad u, Grad v⟩ this is satisfied by Poincaré’s inequal-
ity:

B(u, u) = ∥Grad u∥2L2 (Ω) ≥ c ∥u∥2L2 (Ω) (E.4)

These two requirements imply the well-posedness of the variational problem and thus imply the
existence of a unique solution (or, that the potential has a unique global minimizer). In simple
terms, the two conditions that the functional has sufficient growth properties (i.e., the bilinear
form has upper and lower bounds).

106
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

F Vainberg’s theorem

The question arises whether or not a general form like (3.35) always exists for any set of
PDEs/ODEs as governing equations. Vainberg’s theorem helps us answer this question. Con-
sider a weak form

G[u, v] = 0 ∀ v ∈ U0 (Ω). (F.1)

Let us see if G derives from a potential I via its first variation. That would imply that
d
G(u, δu) = Dδu I[u] = lim I[u + δu]. (F.2)
→0 d
Now recall from calculus that for any continuously differentiable function f (x, y) we must have
by Schwartz’ theorem
∂ ∂f ∂ ∂f
= . (F.3)
∂y ∂x ∂x ∂y
We can use the same strategy to formulate whether or not a weak form derives from a potential.
Specifically, we can take one more variation and state that

Dδu2 G(u, δu1 ) = Dδu1 G(u, δu2 ) if and only if I[u] exists (F.4)

This is known as Vainberg’s theorem.

We can easily verify this for the general form given in (3.35):

G(u, δu1 ) = Dδu1 I[u] = ∫ [λ Grad u Grad δu1 − S δu1 ] dx − ∫ Q̂ δu1 dx


Ω ∂ΩN
(F.5)
⇒ Dδu1 G(u, δ2 ) = ∫ λ Grad δu2 Grad δu1 dx = Dδu2 G(u, δu1 )

In simple terms (and not most generally), Vainberg’s theorem holds if the potential obeys
symmetry. This in turn implies that the governing PDE contains derivatives of even order (such
as linear momentum balance which is second-order in both spatial and temporal derivatives, or
the equilibrium equations of beams which are fourth-order in space and second-order in time).
If the PDEs are of odd order (such as, e.g., the time-dependent diffusion or heat equation), then
no direct potential I exists – there are work-arounds using so-called effective potentials that
will be discussed later in the context of internal variables.

Of course, knowing that a variational structure exists is beneficial but it does not reveal anything
about the actual solution u which will be obtained by solving the above system of equations.

107
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich

G Energy norm

For many purposes it will be convenient to introduce the so-called energy norm

∣⋅∣E = B(⋅, ⋅). (G.1)

For example, if in subsequent sections we find an approximate solution T h for the temperature
field, then the error can be quantified by
√ √
2
∣T − T ∣E = B(T − T , T − T ) = ∫ λ ∥Grad(T − T h )∥ dV .
h h h (G.2)

Notice that in this case ∥T − T h ∥ does not necessarily imply T −T h = 0 so that, strictly speaking,
the above energy norm is only a semi-norm. To turn it into a proper norm, we need to exclude
solutions corresponding to rigid-body motion (i.e., solutions that imply uniform translations
or rotations of the T -field but without producing gradients in T ). If we assume that essential
boundary conditions are chosen appropriately to suppress rigid body motion by seeking solutions

T ∈ U = {T ∈ H 1 ∶ T = T̂ on ∂ΩD }, (G.3)

then, for this space, ∥⋅∥E is indeed a proper norm.

108

You might also like