Computational Solid Mechanics Lecture Notes
Computational Solid Mechanics Lecture Notes
Dennis M. Kochmann
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)
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
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
6 Interpolation spaces 33
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
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
13 Assembly 55
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
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
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
5
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich
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
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.,
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
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
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 Ω ∂Ω
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)
Ω Ω Ω
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
Note that the final term requires the use of the product rule since
Let us assume a homogeneous body with K(x) = K = const. Further, let us rewrite the above
under a single integral:
Again, by extension of energy conservation to arbitrary subbodies, we conclude the local energy
balance equation
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)
ρ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
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).
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
so that
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.
9
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich
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
which we know well from inner forces in undergraduate mechanics. The total force acting on a
surface A is hence
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)
∂Ω Ω Ω ∂Ω Ω Ω
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:
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
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
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
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.
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)
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
∂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
∂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
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).
T (x, 0) = T0 (x) ∀ X ∈ Ω,
(1.79)
or ϕ(X, 0) = x0 (X) and V (X, 0) = V0 (X) ∀ X ∈ Ω.
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 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)
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
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.
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.
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?
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.
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.
I ∶ u ∈ U → I[u] ∈ R. (3.1)
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.
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
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.
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.
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
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
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].
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)
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
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).
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
This must hold for all admissible variations δT ∈ U0 . Therefore, (3.29) is equivalent to stating
Ergo, extremal points T ∈ U of (3.25) are guaranteed to satisfy the governing equations (3.24)
and are thus classical solutions.
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)
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
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
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:
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 ∂Ω.
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
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
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
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
Given a space
And we know that the two have a unique connection since δI = B(u, δu) − L(δu). Thus, we
know that
with a unique solution for this particular type of problem (if it is stable, e.g., κ > 0).
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)
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
26
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich
n
∑ u B (N , N ) = L (N ) for b = 1, . . . , n.
a a b b
(4.21)
a=1
Kab = B (N a , N b ) , Fb = L (N b ) . (4.23)
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
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 .
⎣
∂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
with
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
28
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich
or
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
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 Ω
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
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.
I[ϕ] = ∫ W (F ) dV − ∫ ρ0 B ⋅ ϕ dV − ∫ T̂ ⋅ ϕ dS (5.22)
Ω Ω ∂ΩN
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).
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
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).
For completeness, let us revisit the quasistatic thermal problem in an analogous fashion: we
seek temperature values T h = {T1 , . . . , Tn } such that
with
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
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
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
but we have not chosen particular spaces U h for the interpolation or shape functions N a (x).
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,
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
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.
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 .
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 }
...
34
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich
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
(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
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.
(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
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
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
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.
and we must have uhe (0) = u1e and uhe (∆x) = u2e .
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
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 .
One can readily verify that Nea (xi ) = δai . These are called Lagrange polynomials.
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
̃ 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
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 (Ω).
2
weh (x) = ∑ [Nei1 (x)wei + Nei2 (x)θei ] (8.17)
i=1
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.
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.
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.
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)
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).
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
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
Like in 2D, strains are constant in the linear tetrahedron, and dV = 6V dr ds dt.
α! β! γ!
∫ rα sβ tγ dA = 2A. (9.16)
Ωe (α + β + γ + 2)!
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)
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)
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
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 (ξ, η).
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:
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
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)
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
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.
(1 − η)(1 − ξ 2 )
N5 (ξ, η) = ,
4
(1 − η 2 )(1 + ξ)
N6 (ξ, η) = , (10.15)
4
(1 − η)(1 − ξ) 1
N1 (ξ, η) = − (N5 + N8 ), etc.
4 2
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
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.
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).
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.
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:
W0 = 2, ξ0 = 0 (11.9)
Since linear functions are integrated exactly, this quadrature rule is exact to order q = 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).
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
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
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
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 = 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
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
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):
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.
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
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)
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
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
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.
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
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
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
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
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:
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
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:
⋅ 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:
56
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich
assembler:
⋅ updateInternalVariables(U h , t)
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)
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.
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 → ∞.
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
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 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)
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
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.
0 = f (Un+1
h
) (15.12)
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
∂ ∂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).
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
where both the direction Sn and increment αn are determined in an optimal way as follows.
with β computed from the current solution Unh and the previous solution Unh according to one
of several options (Polak-Ribière, Fletcher-Reeves, etc.)
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
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
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.
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
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.,
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)
64
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich
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 ⋅ ⎟⎝ ⋮ ⎠
⎝ . . .⎠
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:
so that we can eliminate the third row and column from the system:
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).
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
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
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
(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.
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
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
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
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
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).
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
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
⎣
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).
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
with
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
with
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⎠
Finally, note that in structural dynamics, one often includes velocity-proportional damping
through a damping matrix C such that (19.13) turns into
74
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich
C = αM + βK, α, β ∈ R+ . (19.25)
The choice of α > 0 controls low-frequency vibration attenuation, while β > 0 suppresses high-
frequency vibrations.
Free vibrations of infinitesimal amplitude are a frequent case of interest. Starting with the
general, nonlinear equations of motion,
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,
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)
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)
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
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
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.,
76
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich
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).
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
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
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
Ûih ← √ ⇒ Ûih ⋅ M Ûih = 1, (19.48)
Ûih ⋅ M Ûih
so that overall
If we now consider
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
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)
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
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
We discretize the solution in time, e.g., we assume constant time increments ∆t > 0 and write
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.
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
79
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich
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
for each time step tα and for all admissible choices of vib . The latter implies that we must have
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
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)
β = 16 , γ = 1
2 in the linear acceleration scheme,
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β
γ 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 ,
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.
(∆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)
1 1 1 α
∆U̇ α = ∆t γ [ 2
∆U α − U̇ α − Ü ] + ∆t Ü α
β(∆t) β ∆t 2β
(19.85)
γ γ γ
= ∆U α − U̇ α + ∆t (1 − ) Ü α .
β ∆t β 2β
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)
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
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)
with
1 γ 1 γ
RHS α = Fext (tα+1 )−Fext (tα )+Fint (U α )+[ M − ∆t (1 − ) C] Ü α +[ M + C] U̇ α .
2β 2β β ∆t β
(19.92)
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
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 }.
damage, i.e., irreversible degradation of the elastic stiffness with loading; internal variable
is a damage parameter, e.g., a scalar measure z = d.
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).
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
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
y = η ε̇p , (20.8)
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
z α+1 − z α
z α+1 = arg inf {W α+1 (εα+1 , z α+1 ) + ∆t φ∗ ( )} , (20.12)
∆t
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.
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.
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 same trick unfortunately does not apply when computing the incremental stiffness matrix,
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
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:
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
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
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
with back-stresses
α+1
∂Wpl ∂φ∗
p )=
τ (α+1 , p )=
τ ∗ (α+1 . (20.30)
∂α+1
p ∂α+1
p
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
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
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 .
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.
η/µ
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
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
with relaxation times τi = η(i) /µ(i) . Note that this agrees with (20.45) for a single Maxwell
element.
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
92
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich
93
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich
ϕ ∶ X ∈ Ω → ϕ(X) ∈ Rd or ϕ ∶ Ω → Rd , (A.1)
where Ω is the domain and Rd the range of ϕ. The mapped (current) configuration of Ω is
ϕ(Ω).
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 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).
(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:
94
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich
B Function Spaces
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 ∈ Ω.
Examples:
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.)
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:
A linear space U endowed with an inner product is called an inner product space.
Examples:
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
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:
A linear space Ω endowed with a norm is called a normed linear space (NLS).
Examples of norms:
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
Examples:
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
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 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:
97
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich
Examples:
Piecewise constant functions u (with ess supx∈Ω ∣u(x)∣ < ∞) are square-integrable and thus
in L2 .
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)?
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
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
h ′′
∥u′h − u′ ∥L ≤ ∥u ∥L (Ω) (C.9)
2 (Ω) π 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)
Ω
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
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)
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)
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
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
101
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich
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).
For example, if a function has a kth continuous derivative, then the (k + 1)th derivative is
defined piecewise and therefore square-integrable.
∣α∣ = α1 + . . . + αn . (C.27)
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 ∣α∣=β
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)
∂ ∣α∣ 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. ∣α∣=β
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 (Ω).
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.,
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
and
104
Computational Solid Mechanics (151-0519-00L) December 12, 2017
Fall 2017 Prof. Dennis M. Kochmann, ETH Zürich
D Operators
A ∶ u ∈ U → A(u) ∈ V, (D.1)
A simple example is
du
A(u) = c , (D.2)
dx
which is a (linear differential) operator requiring u ∈ C 1 .
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
An example of a bilinear operator is the inner product ⟨⋅, ⋅⟩ ∶ U × U → R for some Hilbert space
U.
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):
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)
Again, for a bilinear form B(u, v) = ⟨Grad u, Grad v⟩ this is satisfied by Poincaré’s inequal-
ity:
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
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)
We can easily verify this for the general form given in (3.35):
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)
108