0 Vector and Tensor Algebra: 0.1 Vectors and The Summation Convention
0 Vector and Tensor Algebra: 0.1 Vectors and The Summation Convention
B = {g1 , g2 , g3 } , (1)
such that each vector v with components vi (i = 1 . . . 3) can be expressed in its basis represen-
tation
3
X
v= vi g i (2)
i=1
u = vi gi . (3)
The summation convention implies that repeated indices appearing exactly twice in a single
term (by term we mean any single vector or tensor quantity or any product of vector and/or
tensor quantities) are to be summed from 1 through d (where d is the number of dimensions),
i.e., for example in three dimensions,
v = vi gi = v1 g1 + v2 g2 + v3 g3 . (4)
As a common convention, one uses Greek letters for summations in two dimensions (e.g., in
plane strain in problems of solid mechanics). Therefore, in two dimensions one writes
v = vα gα = v1 g1 + v2 g2 . (5)
A repeated index to be summed is called a dummy index, while those indices only appearing
once (and hence not requiring summation) are known as free indices. To avoid ambiguity, no
index is allowed to appear more than twice in in a single term. For example, the definition
3
X
a= λ i γi g i (6)
i=1
When using index notation, it is tedious to write out the base vectors for every vector quantity.
Instead one often writes vi for short, which implies (due to the single free index) that we are
dealing with a vector quantity whose components are vi and which reads in full vi gi . A vector
equation such as u = v then becomes ui = vi and in fact denotes three equations (i = 1, 2, 3).
Here and in the following, we usually denote vector quantities by lower case bold letters.
Finally, note that vectors v exist independently of the choice of the coordinate system, i.e.,
in symbolic notation we write v to identify a specific vector. Its components vi , however,
depend on the choice of the reference frame and hence are not invariant under, e.g., coordinate
transformations. In conclusion, symbolic notation is frame-independent, use of components
(such as when using indicial notation) requires knowledge of the specific coordinate system in
which they are defined.
1
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
with ϕ(u, v) the angle subtended by u and v, and u and v the lengths of vectors u and v,
respectively. Applying this definition to the unit vectors gi shows that
(
1, if i = j,
gi · gj = (8)
0, if i 6= j.
if v is perpendicular to u. For convenience, we introduce the Kronecker delta for the orthonormal
basis as
(
1, if i = j,
δij = (9)
0, if i 6= j,
which leads to
Therefore, the resulting quantity of the inner product of two vectors is a scalar (and the inner
product of two vectors is often referred to as scalar product). Geometrically, u · v represents
the length of vector u projected onto v or vice-versa. In particular, we conclude that the inner
product of vector v with one of the basis vectors gi in an orthonormal frame yields the projection
of v onto gi , which is the component of v in the direction of coordinate i:
v · gi = vj gj · gi = vj δij = vi . (11)
u⊥v ⇔ u · v = 0. (12)
By the aid of the above definition, we can introduce the norm of a vector in a Cartesian reference
frame as
√ √
u = |u| = u · u = ui ui . (13)
δii = 3. (14)
Let us define the cross product of two basis vectors in an orthonormal basis by
where ϕ(u, v) is again the angle subtended by u and v, and g⊥ is a unit vector perpendicular
to the plane spanned by u and v and oriented by the right-hand-rule. Geometrically,
2
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
represents the area of the parallelpiped spanned by vectors u and v. By applying the above
definition to the unit vectors in an orthonormal basis, we see that
g1 × g2 = g3 , g2 × g3 = g1 , g3 × g1 = g2 (17)
g2 × g1 = −g3 , g3 × g2 = −g1 , g1 × g3 = −g2 (18)
g1 × g1 = 0, g2 × g2 = 0, g3 × g3 = 0. (19)
Note that the last line of these equations cannot be abbreviated in the standard manner us-
ing summation convention: writing gi × gi = 0 would imply summation over i (although we
only want to express that the relations holds for all i = 1, . . . , 3). When summation must be
suppressed like in this case, one writes
which signifies that the above relation holds for every i and no summation over i is implied.
The relations given above for the cross product of two basis vectors can be abbreviated by
gi × gj = ijk gk (21)
where we introduced the permutation symbol (sometimes called the Levi-Civita symbol)
1,
if i, j, k is a cyclic (even) sequence,
ijk = −1, if i, j, k is an anticyclic (odd) sequence,
0, if i, j, k is an acyclic sequence (at least one index appears more than once).
(22)
For example, 123 = 231 = 312 = 1, 132 = 213 = 321 = −1 and all other combinations vanish.
As a consequence, the cross product of two vectors becomes
u × v = ui vj gi × gj = ijk ui vj gk . (23)
Following the aforementioned convention of omitting the basis vectors in an orthonormal basis,
we can express this in component form as
and summation convention implies that the result is a vector quantity (k is only free index, while
i, j are dummy indices subject to summation). Therefore, the cross product of two vectors is
often referred to as vector product.
Note that the order of indices (i, j, k) can be varied arbitrarily as long as it remains cyclic /
anticyclic, e.g.
The exchange of two indices changes the sequence and hence results in a change of sign:
3
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
and therefore
u × v = −v × u. (28)
which is equivalent to
which confirms our initial definition of the cross product, cf. (15). In addition (try to show
it yourself), the absolute value of the triple product |u · (v × w)| equals the volume of the
parallelepiped spanned by u, v and w.
0.4 Mappings
Let U, V ⊂ Rd be two sets and define a mapping T as a rule to assign to each point u ∈ U a
unique point v = T (u) ∈ V. We write
T : U → V, u → v = f (u) ∈ V, (33)
where U and V are called the domain and the range of T , respectively. Furthermore, a mapping
T : Rd → Rd is linear if and only if
A linear transformation T which maps vectors onto vectors is called a second-order tensor (one
often omits the “second-order” and simply refers to a tensor). To abbreviate notation, let us
write T ∈ L(U, V) when expressing that T is a linear mapping of vectors in U onto vectors in
V.
In the following, let us understand what a tensor is. When a tensor acts on a vector v, we can
decompose v into its basis representation and make use of the above relations of linearity to see
that
4
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
to the base vectors gi (i = 1, . . . , d). Let us decompose these mapped base vectors into their
components; for example, T (g1 ) denotes a vector whose components we call T11 , T21 , T31 , so
that
In summary, Tij denotes the ith coordinate of the vector obtained by application of the mapping
T to base vector gj . This defines the components of a second-order tensor. Note that, since
a tensor maps vectors onto vectors, the very same principles holds that we introduced above
for vector quantities: while a tensor (in symbolic notation) exists independently of the frame of
reference, its components are bound to a specific choice of the coordinate system.
Let us return to the above example and apply mapping T to vector v which yields a vector w
defined by
The final statement (which defines the action of a second-order tensor on a vector) can easily
be interpreted using matrix notation. To this end, we write the last above relation in terms of
its components as
w1 T11 T12 T13 v1
w2 = T21 T22 T23 v2 , (40)
w3 T31 T32 T33 v3
Two special tensors can be defined to denote the identity mapping and the zero mapping, which
are assigned special symbols:
Finally, let us turn to the question of how to create a second-order tensor, or in other words:
what is a second-order tensor? Using our above relations, we see by some rearrangement that
T (v) = Tij vj gi = Tij δjk vk gi = Tij (gj · gk ) vk gi = Tij gi (gj · vk gk ) = Tij gi (gj · v). (43)
This final expression suggests to think of a second-order tensor as a quantity of the type
T = Tij gi gj (44)
5
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
Equation (44) will help to lay the basis for a more rigorous definition of second-order tensors, but
first we need to find a clean interpretation of expressions of the type gi gj . While many authors
use this notation, we will find it inconvenient for many reasons (simply writing two vectors
next to each other is not always unambiguous). Instead, by convention we insert the symbol
⊗ between any two quantities that are not meant to be multiplied by any of the multiplication
rules we defined above. For example, a multiplication of a vector by a scalar, α v, could be
written α ⊗ v but this is not common because α v is unambiguous. The above definition of a
second-order tensor may be written as T = Tij gi ⊗ gj . With this convention, we are now in
place to introduce the outer product of two vectors.
The outer (or dyadic) product of two vectors is often termed the tensor product because it
results in a tensor quantity of second order. The outer product of vectors v, w ∈ Rd is formally
denoted by
v⊗w (46)
i.e., the action of tensor (v ⊗ w) on vector u is defined through the above relation. Hence, the
tensor product defines a mapping of vectors u onto the direction of v (and the length of the
new vector is given by a projection onto w), i.e. (v ⊗ u) ∈ L(Rd , Rd ). One can easily verify that
the tensor T = v ⊗ w indeed defines a linear mapping:
Using index notation, the outer product of two tensors is written in the following form:
T = v ⊗ w = vi gi ⊗ wj gj = vi wj gi ⊗ gj = Tij gi ⊗ gj (51)
and one can identify the components of tensor T as Tij = vi wj , i.e. we have
v 1 w1 v 1 w2 v 1 w3
[v ⊗ w] = [vi wj ] = v2 w1 v2 w2 v2 w3 . (52)
v 3 w1 v 3 w2 v 3 w3
Now, we can apply a second-order tensor T to an arbitrary vector u, using definition (47):
and, of course, the result is a vector quantity with components (T u)i = Tij uj . Note that various
authors denote the action of a second-order tensor T on a vector u by T · u. Here, however, we
reserve the · symbol for scalar products, and we use the notation T u for tensor-vector operations
as introduced above. As mentioned before, when using index notation in practice one usually
6
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
omits the base vectors entirely, so that from now on we may write, e.g., the equation w = T u
as wi = Tij uj , where the only free index i indicates that this represents a vector equation.
Consequently, the components of a tensor of second order can easily be obtained from a multi-
plication by the corresponding basis vectors (in an orthonormal basis) in agreement with (38):
We can extend the above definition of a second-order tensor to general tensors of arbitrary order
by expressing a tensor of order n by
T = Tij...p gi ⊗ gj ⊗ . . . ⊗ gp , (56)
where we must have n indices and n base vectors connected by outer products. Consequently,
a scalar quantity is referred to as a tensor of zeroth order. A vector quantity can be viewed as
a tensor of first order, and quite naturally we recover our definition of tensors of second order.
Tensors of order two and higher will usually be denoted by upper case bold letters.
Finally, note that the above concept is not limited to the outer product of vectors only, but we
can easily extend this concept to general tensors of arbitrary order by defining
T ⊗ S = Tij...p gi ⊗ gj ⊗ . . . ⊗ gp ⊗ Sab...d ga ⊗ gb ⊗ . . . ⊗ gd
= Tij...p Sab...d gi ⊗ gj ⊗ . . . ⊗ gp ⊗ ga ⊗ gb ⊗ . . . ⊗ gd .
For subsequent sections, keep in mind relation (47) and its generalization to the cross product,
respectively,
In addition, from our definition of the outer product follow a number of relations which will be
helpful in everyday tensor life (with u, v, w ∈ Rd , α ∈ R):
(v + w) ⊗ u = v ⊗ u + w ⊗ u
u ⊗ (v + w) = u ⊗ v + u ⊗ w
α a ⊗ b = (α a) ⊗ b = a ⊗ (αb)
α u(v · w) = α (u ⊗ v)w
α u · (v ⊗ w) = α (u · v)w
Therefore,
7
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
(i.e., transposition simply exchanges the two indices of a second-order tensor). As a consequence,
we see that (T T )T = T . Furthermore, we conclude that
A tensor is called
For a skew-symmetric tensor, we have Tij = −Tij and hence it follows that T(ii) = −T(ii) = 0,
i.e., the diagonal components of a skew-symmetric tensor vanish.
In addition, we define the symmetric and skew-symmetric parts of a tensor T by, respectively,
so that
The trace of a tensor is a linear operation which yields a scalar property of T defined by
i.e., the sum of all diagonal entries. This quantity is invariant under coordinate rotations
as we will see later. As we discussed before, the components of vectors and tensors change
when moving to a different basis, the vector or tensor quantity itself, however, does not change
(written in symbolic notation). Here, we encounter a first example of a property of a tensor
that consists of components yet does not change under coordinate changes: the trace. We will
see other such properties later.
Let us apply two mappings S and T to a vector u in the following order: first map u by
application of T to obtain T u, and then apply mapping S. In summary, we apply the composite
mapping S ◦ T which can be written as
In a straightforward manner, following our above introduction of a tensor quantity, one can
show that the composite mapping is nothing but a multiplication of the components of the two
tensors,
8
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
so that it makes sense to introduce the multiplication of two tensors as (renaming indices for
simplicity)
ST = Sik Tkj gi ⊗ gj ⇔ (ST )ij = Sik Tkj . (70)
This defines the multiplication of two second-order tensors. In addition, as a logical consequence
of writing the above statement out in full base vector representation, we arrive at the general
rule
(a ⊗ b)(u ⊗ v) = a ⊗ (b · u)v = (b · u) a ⊗ v (71)
so that
ST = (Sij gi ⊗ gj )(Tkl gk ⊗ gl ) = Sij Tkl gi ⊗ (gj · gk ) gl
(72)
= Sij Tkl δjk gi ⊗ gl = Sik Tkl gi ⊗ gl
which agrees with the above definition. Conversely, one obtains that
(ST T )ij = Sik Tjk and (S T T )ij = Ski Tkj . (73)
A further important relation defines the transpose of a composite mapping:
(ST )T = (Sik Tkl gi ⊗ gl )T = Slk Tki gi ⊗ gl = Tki Sln (gi ⊗ gk )(gn ⊗ gl ) = T T S T . (74)
Finally, we can make use of our above concept to derive general tensor multiplication rules such
as, e.g., the following:
(u ⊗ v)T = ui vj (gi ⊗ gj ) Tkl (gk ⊗ gl ) = ui vj Tkl (gi ⊗ gj )(gk ⊗ gl )
(75)
= ui vj Tkl (gj · gk )(gi ⊗ gl ) = ui vj Tjl gi ⊗ gl = ui gi ⊗ Tjl vj gl = u ⊗ T T v,
which implies
(u ⊗ v) T = u ⊗ T T v. (76)
This could have been expected: using the rule (74) we see that
[(u ⊗ v)T ]T = T T (u ⊗ v)T = T T (v ⊗ u) = (T T v) ⊗ u. (77)
If we now use the fact that (a ⊗ b)T = b ⊗ a, we obtain in accordance with (75)
h iT
(u ⊗ v)T = (T T v) ⊗ u = u ⊗ T T v. (78)
Note that some authors make use of the equivalent notations T T v = v T T = v · T (all of which
meaning the same), so that one could write equivalently, e.g., (u ⊗ v)T = u ⊗ (v T T ). We will,
however, avoid this notation to avoid ambiguity.
9
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
Having introduced tensors of higher-orders, let us now extend our definition of the inner product
(which we introduced for two vectors) to tensors of arbitrary order. To this end, we define the
inner product of two general tensors of the same order via inner products of all pairs of base
vectors, i.e.,
S · T = (Sij...n gi ⊗ gj ⊗ . . . ⊗ gn ) · (Tkl...m gk ⊗ gl ⊗ . . . ⊗ gm )
= Sij...n Tkl...m (gi · gk )(gj · gl ) . . . (gn · gm ) = Sij...n Tij...n .
v · u = vi uj (gi · gj ) = vi ui . (83)
Note that this inner product of two tensors is only defined for two tensors of the same order, and
it always results in a scalar quantity, which is why it is often referred to as the scalar product.
Furthermore, note that this notation varies from author to author even within the continuum
mechanics community (some authors denote our T u by T · u and our S · T by S : T ). Here,
we will exclusively use the notation introduced above. Besides, when using indicial notation no
such ambiguity exists.
In analogy to the norm of a vector, we define the norm of a tensor (the so-called Hilbert-Schmidt
norm) by
√ p
|T | = T · T = Tij Tij . (86)
det T = ijk Ti1 Tj2 Tk3 = ijk T1i T2j T3k , (87)
from which it follows directly that det T T = det T . A rearrangement of indices shows that
10
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
every w ∈ Rd there exist a v ∈ Rd that solves the equation T v = w. This solution is then
written as
v = T −1 (w) = T −1 w or vi = Tij−1 wj , (89)
where T −1 is the inverse mapping of T . As we will see later, a tensor T is invertible if det T 6= 0.
If we first apply an invertible mapping T to a vector u and then its inverse T −1 , we must
recover the original vector (and the same must hold true in reversed order), i.e.,
T −1 (T u) = T −1 T u = u, T (T −1 u) = T T −1 u = u (90)
and therefore we must have
T T −1 = T −1 T = I. (91)
A tensor is called orthogonal if T −1 = T T such that T T T = T T T = I. Consequently, by taking
the determinant on both sides of that equation, we see that all orthogonal tensors T ∈ L(Rd , Rd )
satisfy
det(T T T ) = det T · det T T = (det T )2 = 1 ⇒ det T = ±1. (92)
All such orthogonal tensors form the orthogonal group of the d-dimensional space, abbreviated
by O(d). If we enforce det T = 1, then we arrive at the special orthogonal group SO(d):
T T T = T TT = I ⇔ T ∈ O(d),
T T
TT =T T =I and det T = 1 ⇔ T ∈ SO(d).
We will later see that orthogonal tensors with determinant +1 represent mappings which de-
scribe rotations in space, whereas orthogonal tensors with determinant −1 correspond to map-
pings which describe reflections.
Now, let us apply two mappings T and S to some vector u and subsequently apply the inverse
mappings; i.e., we first apply T , then S, then we use the inverse S −1 and finally the inverse
T −1 . At the end we must recover the original u, i.e.,
T −1 (S −1 (S(T u))) = u. (93)
But we could as well define a composite mapping (ST ) and first apply this mapping and then
its inverse, which also results in the identity
(ST )−1 (ST )u = u. (94)
By rearranging parentheses in (93), we have T −1 (S −1 (S(T u))) = (T −1 S −1 )(ST )u. A com-
parison with (94) reveals that
(ST )−1 = T −1 S −1 . (95)
We can establish the following relation for the determinant of an inverse:
T T −1 = I ⇒ det(T T −1 ) = det T det T −1 = 1 ⇒ det T −1 = 1/ det T . (96)
A common notation is to combine the symbols for transposition and inversion and write for
brevity
(T −1 )T = (T T )−1 = T −T . (97)
11
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
The aforementioned indicial notation is widely used within the field of continuum mechanics
and a helpful tool when evaluating complex tensor operations. For many applications it is
convenient to omit the base vectors and only formulate relations in terms of tensor components
(whenever it is unambiguous). For example, instead of writing v we could write vi and the single
index makes clear that we refer to a vector (a tensor of first order). This notation, however,
is not unique when dealing with tensors of higher order. For example, writing Sij without
showing the base vectors does not indicate whether we mean S = Sij gi ⊗ gj or S T = Sij gj ⊗ gi .
While this is of no importance for vector quantities that only carry one free index, it is essential
when dealing with higher-order tensors. Therefore, we must ensure that our notation is unique.
When writing entire equations in indicial notation, this is always guaranteed since the same
indices have the same meaning on both sides of the equation. For example, instead of writing
z = T u or zi gi = Tij uj gi we may write zi = Tij uj for short (notice that it is only meaningful
to omit the base vectors, if they carry the same indices on both sides of the equation). We can
apply the same rule to tensor equations: Sij = ui vj is unambiguous because it can either mean
S = u ⊗ v or S T = v ⊗ u, but these two equations are indentical. When writing a single tensor
quantity of higher order, we should clarify what we mean, e.g., by writing [S]ij which implies
the omitted base vectors are gi ⊗ gj (in the same order as the indices given after [. . . ]). Table 1
summarizes some of the most important examples of using indicial notation.
Also, note that all of the above definitions of vector operations can be extended to tensors
of arbitrary order by writing the tensor in its base representations and applying the vector
operations directly to the base vectors, e.g., T × u be defined as
Table 1: Overview of some basic tensor operations in symbolic and indicial notation.
12
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
In continuum mechanics, we assume that all variables of interest are continuous functions of
position x ∈ Rd and time t ∈ R. Therefore, let us introduce such fields which may be classified
into the following categories (with examples):
scalar fields: φ: R → R, t → φ(t)
d
φ: R → R, x → φ(x)
φ: Rd × R → R, (x, t) → φ(x, t)
The notation Rd × R conveys that a field depends on two variables: one vector-valued and
one scalar-valued variable. Examples for scalar fields include the temperature T , mass density
ρ, entropy η, and energy density u. Vector fields characterize, among others, the velocity v,
acceleration a, heat flux vector h, and the traction vector t. Tensor fields include, e.g., the
deformation gradient F and the stress tensors σ, P and S.
As all these fields vary with position and time, let use define their derivatives. To this end,
we introduce the Gateaux derivative Dφ of a scalar field φ : Rd → R at a point x into the
direction of v ∈ Rd (i.e., figuratively, the slope of φ at x into the direction of vector v):
d
Dφ(x) v = φ(x + ε v) . (99)
dε ε=0
Let us apply this definition to the example φ̃(x) = x · x, whose Gateaux derivative becomes
d d
Dφ̃(x) v = φ̃(x + ε v) = (x + ε v) · (x + ε v) = 2 v · (x + ε v)|ε=0 = 2 x · v.
dε ε=0 dε ε=0
(100)
Now, we can use the concept of Gateaux derivatives to formally introduce the gradient of a
scalar field φ(x) as a linear mapping grad φ(x) which maps each direction v onto its Gateaux
derivative Dφ(x) v. Therefore, we define
d
grad φ(x) · v = Dφ(x) v = φ(x + ε v) . (101)
dε ε=0
By using the chain rule and the summation convention, we see that
∂ φ(x + ε v) d(xi + ε vi ) ∂ φ(x)
grad φ(x) · v = = vi , (102)
∂ (xi + ε vi ) dε ε=0 ∂ xi
13
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
but we also have (simply rewriting the inner product using index notation)
A direct comparison hence shows that the components of the gradient in Cartesian coordinates
xi (i = 1, . . . , d) are given by
∂φ(x)
[grad φ(x)]i = . (104)
∂xi
Let us return to the above example φ̃(x) = x · x to clarify the use of the gradient. Here we have
h i ∂ ∂
grad φ̃(x) = (x · x) = (xk xk ) = 2 xk δki = 2 xi , (105)
i ∂ xi ∂ xi
where we used that xi (i = 1, . . . , d) are d independent coordinates so that
∂xk
= δki . (106)
∂xi
In continuum mechanics, one often uses the comma index notation to abbreviate partial deriva-
tives; i.e., we define
∂ ∂2
(·) = (·),i and likewise (·) = (·),ij etc. (108)
∂xi ∂xi ∂xj
so that, for example, (105) and (106) can be written in a concise way as
The above definition of the gradient of a scalar field can be extended to general fields of higher
order. Analogously, one can introduce the divergence and the curl of a field. Let us define all
three for a Cartesian basis by
where (·) stands for any tensor quantity of arbitrary order, and base vectors gi act on the
rightmost base vector of (·) via the respective operations. (The only exceptions arise for scalar
fields, whose divergence and curl are not defined and whose gradient definition may omit the ⊗
symbol.) Let us clarify these definition by a few examples (all in a Cartesian reference frame):
14
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
where σ is the infinitesimal stress tensor, b is a vector of body forces, a denotes the
acceleration vector, and ρ is the mass density.
∂ Tkl gk ⊗ gl ∂ Tkl
curl T = − × gj = − gk ⊗ (gl × gj ) = −Tkl,j lji gk ⊗ gi = Tkl,j jli gk ⊗ gi
∂xj ∂xj
(118)
The gradient can furthermore be utilized to write the total differential of a scalar function
f : R → R in Cartesian coordinates as
∂f
df = dxi = grad f · dx. (119)
∂xi
We can also combine various of the above operators. For example, the Laplacian in Cartesian
coordinates may be introduced as follows:
Two helpful relations (that you will shown as part of the homework) are
curl(grad φ) = 0,
curl(curl v) = grad(div v) − ∆v.
15
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
Many authors make use the del operator ∇ which may be interpreted as a vector with compo-
nents
∇i = ∂/∂xi (121)
in Cartesian coordinates. Then, it is common practice to introduce alternative abbreviations
for the gradient, divergence and curl by using the del operator. Unfortunately, there is not
a general convention of the definition and use of the del operator and most authors differ in
their use of it. For example, defining ∇ as a vector with components (·),i turns (110) into
grad(·) = (·) ⊗ ∇ = (·)∇ as well as div(·) = (·) · ∇ and curl(·) = ∇ × (·). However, most
continuum mechanicists define, e.g.,
grad(·) = ∇(·), div(·) = ∇ · (·). (122)
For convenience, let us introduce a definition of the del operator which is consistent with (110)
and (122) – note that this definition differs from the most common convention. For a consistent
formulation, we may define the del operator (in an orthonormal basis) in the following way:
∂ (·)
∇ ◦ (·) = ◦ gj . (123)
∂ xj
As before, (·) stands for any arbitrary (differentiable) tensor quantity (scalars, vectors, higher-
order tensors). Here, ◦ represents any tensor product operation defined above (such as, e.g.,
inner product, outer product or cross product). Then, we conclude by comparison with our
original definition of gradient, divergence and curl that we must define
grad(·) = ∇ ⊗ (·), div(·) = ∇ · (·), curl(·) = −∇ × (·) (124)
Clearly the simplest and unambiguous formulation avoids of the del operator overall and instead
only uses the terms grad v, div v and curl v, which is what we will do in the following.
Table 2 completes the summary of Table 1 by the notions of gradient, divergence and curl of
tensors of scalar, vector and tensor fields.
So far, all derivatives have been with respect to scalar or vector-valued variables. Let us extend
the concepts introduced above to derivatives with respect to general tensors of arbitrary order.
Table 2: Overview of gradient, divergence and curl of scalars, vectors and tensors in symbolic
and indicial notation where we assume differentiable fields φ : Rd → R, v : Rd → Rd , and
T : Rd → L(Rd , Rd ).
16
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
∂(·) ∂(·)
= grad(·) = ⊗ gj . (125)
∂x ∂xj
In an analogous fashion, let us introduce the derivative with respect to a general vector v ∈ Rd
as
∂(·) ∂(·)
= ⊗ gj , (126)
∂v ∂vj
where, again, (·) stands for any tensor quantity of arbitrary order. In an extension of (106), we
concluded that for tensors of arbitrary order we have
∂ Tij...n
= δia δjb . . . δnm . (127)
∂ Tab...m
∂ Tv ∂ Tij vj gi ∂ vj
= ⊗ gk = Tij gi ⊗ gk = Tij δjk gi ⊗ gk = Tij gi ⊗ gj = T . (128)
∂v ∂ vk ∂ vk
∂ (·) ∂ (·)
= ⊗ gi ⊗ gj ⊗ . . . ⊗ gn (129)
∂S ∂ Sij...n
(where, as before for the gradient, the leading ⊗ must be omitted when applied to scalar fields).
As an example, let us take the derivative of the trace of a tensor T ∈ L(Rd , Rd ) with respect to
that tensor, i.e.,
∂ tr T ∂ Tkk
= gi ⊗ gj = δik δjk gi ⊗ gj = δij gi ⊗ gj = I. (130)
∂T ∂ Tij
By applying the aforementioned rules of tensor differentiation, we notice that, when taking
derivatives of products of tensor quantities, the product rule of basic calculus can be generalized
here. In general, we may write
∂Φ◦Ψ ∂Φ ∂Ψ
= ◦Ψ+Φ◦ , (131)
∂T ∂T ∂T
where Φ, Ψ and T are tensor quantities of arbitrary order, and ◦ is any tensor multiplication
(inner, outer, or cross product). Let us illustrate the use of the product rule by the following
example:
which may be written in symbolic notation as (recall the definition S · T = Sij Tij )
17
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
As a further example, let us show that the curl of a gradient vector field vanishes. For φ : Rd →
R we see that
Knowing that we are allowed to exchange the order of derivatives in φ,ij and renaming indices
i and j, we arrive at
Comparing the first and final forms, we conclude that φ,ij = −φ,ij = 0 and therefore
curl(grad φ) = 0. (136)
The chain rule of differentiation, known from fundamental calculus, also holds for general tensor
differentiation. As an introductory example, let us consider a scalar field φ : Rd × R → R which
depends on the vector field x : R → Rd and scalar t ∈ R (e.g., φ = φ(x, t) denotes the
temperature at Eulerian position x(t) at time t). That is, we consider the composition
Now let us revisit the same example and find the solution by using the chain rule. To this end,
let us define B = AT A or Bij = Aki Akj . Then we have
As a final example, often required in plasticity theory, consider a scalar field W : L(Rd , Rd ) → R
and tensors F , Q ∈ L(Rd , Rd ). The chain rule yields the useful relation
∂W (F Q) ∂W (F Q) ∂F Q ∂W (F Q) T
= · = Q . (140)
∂F ∂F Q ∂F ∂F Q
In continuum mechanics, we often integrate scalar, vector and tensor fields over volumes (e.g.
over the volume of a body of solid or fluid). It is convenient to introduce two important
theorems that allow us to transform volume integrals into surface integrals and vice-versa.
18
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
First, the divergence theorem (also referred to as Gauß’ theorem after German mathematician
Johann Carl Friedrich Gauß) reads
Z Z Z Z
(·),j dv = (·) nj ds, e.g. Tij,j dv = Tij nj ds (141)
V ∂V V ∂V
As before (·) stands for a tensor quantity of arbitrary order, and n = ni gi denotes the outward
unit normal on the surface ∂V of body V . Let us consider the example of the divergence of a
tensor (which we will need later on when discussing the conditions of equilibrium):
Z Z Z Z
div σ dv = σij,j dv = σij nj ds = σn ds, (142)
V V ∂V ∂V
In a similar fashion, the Kelvin–Stokes theorem (named after English scientist Lord Kelvin and
Irish contemporary Sir George Stokes) relates surface and contour integrals. The integral of
the curl of a second-order tensor T ∈ L(Rd , Rd ) over a surface S is transformed into an integral
over the contour ∂A of that surface:
Z Z Z Z
(curl T )n ds = T dx or Tij,k kjl nl ds = Tij dxj . (143)
S ∂S S ∂S
2 Curvilinear Coordinates
So far we have only dealt with Cartesian coordinate systems in which the base vectors are
orthonormal and constant in space and time. This may not always be convenient. For ex-
ample, spherical or circular bodies suggest using spherical or cylindrical coordinate systems,
respectively, in which base vectors change orientation from one point to another. As a further
example, one might want to align coordinate axes with specific directions of a mechanical prob-
lem, which may in general not be perpendicular. In all such cases, the above tensor relations no
longer apply and we must introduce a generalized framework for general curvilinear bases. To
understand the necessity of new tensor rules, let us begin by reviewing the relations that hold
for an orthonormal basis. We had seen that the components of a vector v ∈ Rd in a Cartesian
basis can be obtained by exploiting the relation gi · gj = δij :
v = vi g i ⇒ v · gj = vi δij = vj ⇔ vi = v · g i . (144)
This further allows us to identify the identity tensor in an orthonormal basis as follows:
v = vi gi = (v · gi ) gi = v · (gi ⊗ gi ) ⇔ I = gi ⊗ gi (145)
Let us now turn to a general curvilinear coordinate system, in which the base vectors are no
longer perpendicular and may not have unit lengths either, i.e., from now on we have
gi · gj 6= δij , |gi | =
6 1. (146)
19
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
To avoid confusion, in the following we will denote the base vectors in general curvilinear
coordinates by {a1 , a2 , a3 }, so that in our notation the symbol g is reserved for orthonormal
bases. Now, the above concepts and, in particular, relation (144) fails because we no longer have
ai · aj = δij , which was the basis of determining vector components. Instead, v · aj = vi ai · aj
and no further simplification seems possible, which would force us to review and correct all of
the vector and tensor operations introduced before for their use in a general curvilinear basis.
As a remedy, let us introduce a dual basis in the following way. For a given curvilinear basis
0 1 2 3
B = {a1 , a2 , a3 } we construct a dual basis B = a , a , a by defining
a2 × a3 a3 × a1 a1 × a2
a1 = , a2 = , a3 = . (147)
a1 · (a2 × a3 ) a1 · (a2 × a3 ) a1 · (a2 × a3 )
• a1 · a1 = a2 · a2 = a3 · a3 = 1,
• a1 · a2 = a2 · a1 = a2 · a3 = a3 · a2 = a1 · a3 = a3 · a1 = 0.
These two facts can neatly be summarized by defining a modified Kronecker delta
with
(
1, if i = j,
δij = ai · aj = (149)
0, 6 j.
if i =
In the following, let us show that our newly-constructed dual basis is a reciprocal basis to our
original base vectors, i.e., if we apply the very same definitions (147) (that we introduced to
arrive at the dual basis) to the dual basis B 0 to obtain its dual B 00 , we should return to the
original basis B. First, verify that
1 2 3 a2 × a3 a3 × a1 a1 × a2
a · (a × a ) = · ×
a1 · (a2 × a3 ) a1 · (a2 × a3 ) a1 · (a2 × a3 )
(a1 × a2 ) × (a1 × a3 ) [a1 · (a2 × a3 )] a1
= (a2 × a3 ) · 3 = (a2 × a3 ) ·
[a1 · (a2 × a3 )] [a1 · (a2 × a3 )]3
1
= ,
a1 · (a2 × a3 )
which is a requirement for a reciprocal basis (the triple product of our dual basis is the inverse
of the triple product of the original basis). Hence, if we construct a dual basis to our dual basis
in the same way as above, we arrive at a basis whose triple product is exactly the same as the
one of our original basis. This becomes clearer when constructing a dual basis B 00 to our dual
basis B. Let us, for example, take vector a3 of our dual basis and use the above relations to
introduce a reciprocal base vector in the following way. We had seen that the dual basis B 0 to
B was obtained via (147). Let us compute the dual B 00 0
0
1 basis
2 3
to basis B via the same relations,
e.g. applying the last relation of (147) to B = a , a , a :
20
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
Hence, we see that the dual basis to our dual basis is in fact the original basis (the analogous can
be shown for the other two base vectors). This means that we have constructed two reciprocal
bases B and B 0 which can be translated from one into another via relations (147).
Let us return to the Kronecker property which no longer holds for base vectors of either of the
two bases, i.e., we have ai · aj 6= δij and likewise ai · aj 6= δij . As we will need those inner
products frequently, it is convenient to define
ai · aj = gij , ai · aj = g ij , (151)
where gij and g ij are the components of the so-called metric tensors of the original and dual
bases, respectively. The determinant of the metric tensor is denoted by
Two special cases can be identified in which the above concept simplifies greatly. First, let us
return to the simplest case of a Cartesian coordinate system (that we had dealt with before).
When using a Cartesian basis, our new concept of reciprocal bases should recover all the relations
we had introduced in previous sections. Indeed, for a Cartesian basis B = {g1 , g2 , g3 } we can
use relations (147) to show that
The first fact can easily be verified by constructing the dual basis, e.g.,
g2 × g3 g1
g1 = = = g1 (154)
g1 · (g2 × g3 ) 1
and similarly g 2 = g2 and g 3 = g3 . The second relation follows directly because gij = gi ·gj = δij
in any orthonormal basis. In conclusion, an orthonormal basis is a special case in which the
concept of dual bases reduces to our well-known formulation from previous sections.
The second special case we consider here comprises orthogonal bases whose base vectors are not
necessarily of unit length (this will become important when dealing with, e.g., polar coordinate
systems). In this case, base vectors are still mutually perpendicular (i.e., ai · aj = 0 if i 6= j,
and ai · aj = 0 if i 6= j) but we no longer have ai · ai = 1 or ai · ai = 1. Consequently, the metric
tensor [gij ] is diagonal but not the identity. It will be convenient to introduce a new symbol for
those diagonal components; to this end we define the scale factors
As before, the parentheses are included to suppress summation (i.e., the above relation holds
for all i = 1, 2, 3). In summary, the metric tensor for an orthogonal basis assumes the form
2
a1 · a1 0 0 h1 0 0
[gij ] = 0 a2 · a2 0 = 0 h22 0 . (156)
0 0 a3 · a3 0 0 h3 2
Now, we have all tools required to solve our original problem of computing the components of
a vector in curvilinear coordinates. As our two reciprocal bases are mutually orthogonal (recall
21
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
that ai · aj = δij ), we can obtain the component of vector v in the aj -direction from v · aj , and
we can obtain the component of vector v in the aj -direction from v · aj . As a consequence, we
can write
v = (v · a1 ) a1 + (v · a2 ) a2 + (v · a3 ) a3 = (v · ai ) ai (157)
and analogously
v = (v · a1 ) a1 + (v · a2 ) a2 + (v · a3 ) a3 = (v · ai ) ai . (158)
The last two forms reflect exactly the definition of a vector in its base representation as we know
it (and for a Cartesian base, where the reciprocal basis coincides with the original basis, we re-
cover equation (2)). Note that the summation convention over repeated subscripts/superscripts
applies as before.
To differentiate between the two different types of base vectors and components defined by these
relations, we introduce the following terms:
contravariant components : v i = v · ai
covariant components : vi = v · ai
1 2 3
contravariant basis : a ,a ,a
covariant basis : {a1 , a2 , a3 }
Hence, a vector can be written in its base representation by using contravariant components
with covariant base vectors, or by using covariant components and contravariant base vectors:
v = v i ai = vi ai . (159)
Besides, from equations (157) and (158) we recover the completeness relation as
I = ai ⊗ ai or I = ai ⊗ ai . (160)
We note the relatedness to notation commonly used in quantum mechanics where bras and kets
act equivalently to our covariant and contravariant forms.
Finally, let us complete this section by reviewing the inner product of two vectors. With our
new definitions we can write the inner product in four different ways:
u · v = ui ai · v j aj = ui v j gij
= ui ai · vj aj = ui vj g ij
= ui ai · vj aj = ui vj δij = ui vi
= ui ai · v j aj = ui v j δji = ui v i .
In the first two forms it is important to not forget the components of the metric tensorpto obtain
the correct result. Consequently, the norm in a curvilinear basis is given by |u| = ui uj g ij ,
which in a Cartesian basis with g ij = δij reduces to (13).
Many problems in continuum mechanics are conveniently solved, e.g., in cylindrical or spherical
polar coordinates. In these coordinate systems our above definitions of, e.g., the gradient,
22
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
divergence and curl no longer apply because base vectors depend on the position and are no
longer constant. Furthermore, the nature of coordiantes may no longer be compatible. For
example, in Cartesian coordinates (x1 , x2 , x3 ) we introduced the gradient of a scalar field φ as
grad φ = (φ,1 , φ,2 , φ,3 )T . In contrast, in cylindrical polar coordinates (r, ϕ, z) we may not write
grad φ in as (φ,r , φ,ϕ , φ,z )T . This does not make much sense (consider e.g. the non-matching
units). In this section, we will extend our previous concepts of differentiation to more general
coordinate bases. For simplicity, we will restrict ourselves to orthogonal bases only (which
includes, e.g., polar coordinates of any type as well as elliptical coordinates).
Analogously, we can define a general (covariant) basis {ai } (recalling that the Cartesian basis
is independent of θi ) by
d d
∂x ∂ X j X ∂xj
ai = = i x ej = ej . (162)
∂θi ∂θ ∂θi
j=1 j=1
Let us illustrate this by an example: cylindrical polar coordinates (r, ϕ, z). We know the relation
between cylindrical polar coordinates and Cartesian coordinates, i.e., the location of a point
characterized by radius r, angle ϕ and out-of-plane coordinate z with respect to some origin O is
given in Cartesian coordinates (where there is no difference between covariant and contravariant
bases) as
x1 = r cos ϕ, x2 = r sin ϕ, x3 = z. (163)
So, we can derive the covariant base vectors as
d
∂ X
ar = xj e j ⇒ [ar ] = (cos ϕ, sin ϕ, 0)T ,
∂r
j=1
d
∂ X
aϕ = xj ej ⇒ [aϕ ] = (−r sin ϕ, r cos ϕ, 0)T , (164)
∂ϕ
j=1
d
∂ X
az = xj ej ⇒ [az ] = (0, 0, 1)T ,
∂z
j=1
It is important to note that these base vectors are no longer constant throughout space (they
clearly depend on coordinates r, ϕ and z), i.e., we now have a dependence of the type ai =
ai (θ1 , θ2 , θ3 ) that will be essential soon.
Unfortunately, the thus-obtained covairnat basis has one major deficiency which makes it in-
convenient for practical applications: it is not normalized. As a check, compute the norm of all
three base vectors or simply compute the components of the metric tensor corresponding to the
above basis:
ar · ar 0 0 1 0 0
[aij ] = [ai · aj ] = 0 aϕ · aϕ 0 = 0 r2 0 (165)
0 0 az · az 0 0 1
23
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
Hence, ar and az have unit length, whereas aϕ has length r. Recall that those diagonal entries
of the metric tensor had been introduced above as the (squared) scale factors h2i . In order to
create an orthonormal system, let us introduce an orthonormal basis that will correspond to
what we call the physical components of a vector. This is accomplished by dividing each base
vector by its corresponding scale factor, i.e., we introduce the orthonormal physical basis {gi }
as
a(i)
gi = . (166)
h(i)
This means for our example of polar coordinates
ar aϕ az 1
{gr , gϕ , gz } = , , = ar , aϕ , az (167)
hr hϕ hz r
or
gr = (cos ϕ, sin ϕ, 0)T , gϕ = (− sin ϕ, cos ϕ, 0)T , gz = (0, 0, 1)T . (168)
Clearly, these base vectors are orthonormal, i.e., they satisfy gi · gj = δij .
Using the above definitions of the covariant basis, the total differential vector becomes
∂x i
dx = dθ = dθi ai = dr ar + dϕ aϕ + dz az . (169)
∂θi
Furthermore, we can replace the base vectors {ai } by the physical basis {gi } to finally arrive at
X ∂x X X
dx = i
dθi = ai dθi = gi hi dθi . (170)
∂θ
i i i
Note that in this orthonormal basis we no longer have to differentiate between covariant and
contravariant bases, and hence here and in the following we write all indices as subscripts for
simplicity. For the example of cylindrical polar coordinates we have
dx = dr ar + dϕ aϕ + dz az = dr hr gr + dϕ hϕ gϕ + dz hz gz
(171)
= dr gr + dϕ r gϕ + dz gz .
Another helpful relation is the differential volume element in an orthonormal basis. In a Carte-
sian reference frame, the differential volume element is given by dv = dx1 dx2 dx3 . For
(orthogonal) curvilinear coordinates this no longer holds; instead the differential volume ele-
ment, which we quickly mention without proof, is given by
dv = a dθ1 dθ2 dθ3 , (172)
p
where a = det[aij ] is the square root of the determinant of the metric tensor of the (covariant)
basis {ai }. For cylindrical polar coordinates, the determinant of the metric tensor is a =
det [aij ] = hr hϕ hz = r. Hence, the differential volume element in this basis is given by
dv = a dθ1 dθ2 dθ3 = r dr dϕ dz. (173)
Next, let us derive the components of the gradient in our orthogonal coordinate system, which
will later allow us to extend our previous definition of the gradient, divergence and curl. By
recalling relation (119), we may write the differential of a scalar function f : Rd → R as
X ∂f X
df = dθi = grad f · dx = (grad f )i gi · gj hj dθj , (174)
∂θi
i j
24
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
A termwise comparison of the first form in (174) and the final form of (175) gives us the general
form of the components of the gradient in curvilinear (orthonormal) coordinates:
1 ∂
(grad f )i = (176)
h(i) ∂θ(i)
For convenience, let us also introduce the components of the del operator as
1 ∂
∇i = (grad f )i = , (177)
h(i) ∂θ(i)
so that we may write the gradient as
grad f = (∇i f ) gi . (178)
Let us apply this concept to derive the gradient in cylindrical polar coordinates. We had
already seen that for polar coordinates (r, ϕ, z) we can use relations (163) to arrive at the
covariant basis (164). Next, we obtained the components of the metric tensor (165) and read
out the scale factors
hr = 1, hϕ = r, hz = 1. (179)
Therefore, the components of the del operator in the polar basis follow as
∂ T
∂ 1 ∂
[∇i ] = , , (180)
∂r r∂ϕ ∂z
and the gradient of a scalar field f : Rd → R in cylindrical polar coordinates is
∂f 1 ∂f ∂f
grad f = gr + gϕ + gz . (181)
∂r r ∂ϕ ∂z
We are now in place to compute the gradient, divergence and curl in our polar basis by gen-
eralizing our previous definitions in the following manner. Let us define for any orthonormal
basis
grad(·) = ∇i (·) ⊗ gi , div(·) = ∇i (·) · gi , curl(·) = −∇i (·) × gi . (182)
Besides replacing (·),i by ∇i (·), this looks identical to (110). However, it requires one additional
and very important remark. As we had seen above, the base vectors in curvilinear coordinates
(such as in our example of polar coordinates) are no longer constant but we now have gi = gi (x).
Therefore, it is essential to keep in mind that, when writing ∇i (·) this implies differentiation of
the entire quantity (·) not just its components.
Let us consider the following instructive example: we compute the divergence of a vector field
in cylindrical polar coordinates:
div v = ∇ · v = ∇i (v) · gi = ∇i (vj gj ) · gi = (∇i vj ) gj · gi + vj (∇i gj ) · gi
= (∇i vi ) + vj (∇i gj ) · gi
25
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
The second term in the final equation is new and vanishes in Cartesian coordinates. To compute
the divergence, we thus need the derivatives of the base vectors, which can be obtained by
differentiation of (168):
∇r gr = gr,r = 0, ∇ϕ gr = 1r gr,ϕ = 1r gϕ , ∇z gr = 0,
∇r gϕ = gϕ,r = 0, ∇ϕ gϕ = 1r gϕ,ϕ = − 1r gr , ∇z gϕ = gϕ,z = 0,
∇r gz = gz,r = 0, ∇ϕ gz = 1r gz,ϕ = 0, ∇z gz = gz,z = 0.
Therefore, with gr · gr = 1 and gr · gϕ = 0 we finally arrive at
∂ vr 1 ∂ vϕ ∂ vz 1 1
div v = (∇i vi ) + vj (∇i gj ) · gi = + + + vr gϕ · gϕ − vϕ gr · gϕ
∂r r ∂ϕ ∂z r r
∂ vr 1 ∂ vϕ ∂ vz vr
= + + + . (183)
∂r r ∂ϕ ∂z r
Similarly, we can compute the gradient of a vector field in cylindrical polar coordinates:
We can make use of the fact that, for computing the above differential forms, one always needs
the same derivatives of the base vectors. To this end, we alternative express the covariant
derivative as follows (but we will not go into much detail). Let us introduce the Christoffel
symbol of the second kind, which is defined by
1 km
Γkij = g (gmi,j + gmj,i − gij,m ) . (185)
2
Here, [g ij ] is the inverse of the metric tensor [gij ]. Furthermore, we define the physical Christoffel
symbol
h(k) (k) h(i),(j)
Γ̃kij = Γ(i)(j) − δ . (186)
h(i) h(j) h(i) h(j) (i)(k)
(The parentheses enforce that no index be summed.) Those definitions admit the concise relation
∇k gj = −Γ̃jik gi . (187)
For example, the gradient of a (differentiable) vector field u : Rd → Rd can now be expressed
as
26
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
As before, the first term in each of these final expressions arises from the spatially-varying
components vi (x) of the vector field, just like in Cartesian coordinates as discussed before.
The second term stems from the spatially-varying base vectors gi (x) and it vanishes in a fixed
Cartesian coordinate system.
Let us demonstrate this concept by means of an example: we return to cylindrical polar coordi-
nates and compute the divergence of a (differentiable) vector field v : Rd → Rd . For cylindrical
polar coordinates, the metric tensor and its inverse are
1 0 0 1 0 0
[gij ] = 0 r2 0 , [g ij ] = 0 1/r2 0 . (190)
0 0 1 0 0 1
By application of (185), we obtain the Christoffel symbols (these are simple to compute in this
case because most components vanish due to the specific form of the metric tensors):
0 0 0 0 1/r 0 0 0 0
[Γrij ] = 0 −r 0 , [Γϕ
ij ] =
1/r 0 0 . [Γzij ] = 0 0 0 (191)
0 0 0 0 0 0 0 0 0
Therefore, the divergence of a vector field v in cylindrical polar coordinates given by (189) is
obtained as follows:
1
div v = ∇i vi − vl Γ̃ljj = vr,r + vϕ,ϕ + vz,z − vr Γ̃rϕϕ
r
∂ vr 1 ∂ vϕ ∂ vz vr
= + + + , (193)
∂r r ∂ϕ ∂z r
which agrees with our previous result (183). The major benefit of the Christoffel symbols lies
in the fact that their use only requires the computation of the metric tensor and its derivatives
instead of differentiating each unit vector individually.
Now that we have introduced various coordinate systems, it will be helpful to study the relations
between the components of vectors and tensors when switching between different coordinate
systems. For simplicity, in the sequel we only consider orthonormal bases (where there is
no difference between covariant and contravariant formulation); this includes Cartesian and
polar coordinates. Let us start by introducing two different bases {g1 , g2 , g3 } and {g̃1 , g̃2 , g̃3 }.
27
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
Suppose, e.g., that we want to rotate our coordinate system from the original basis {gi } to the
new basis {g̃i }. We can express the position vector of any point x with respect to both bases:
Recall that we introduced an alternative definition of the bases vectors: gi = ∂x/∂xi and
analogously g̃i = ∂x/∂ x̃i . This can be used to obtain the transformation relation by application
of the chain rule:
∂x ∂x ∂ x̃j ∂ x̃j
gi = = = g̃j (195)
∂xi ∂ x̃j ∂xi ∂xi
This gives the transformation rules for base vectors (so-called covariant transformation):
∂ x̃j ∂ xj
gi = g̃j , g̃i = gj (197)
∂ xi ∂ x̃i
We can use the same concept to derive transformation rules for the components of vectors (as
the base vectors change, the coordinates of points with respect to the changing basis must
change as well). To this end, we write, using the above transformation rule,
∂ xj ∂xi
v = vi gi = v˜i g̃i = v˜i gj ⇒ vi = v˜j . (198)
∂ x̃i ∂ x̃j
Writing out the partial derivatives is cumbersome. Instead, it is convenient to introduce a trans-
formation matrix Q which describes the mapping between the two bases and whose components
are defined by
∂ xi
Qij = ⇒ vi = Qij ṽj . (200)
∂ x̃j
An even simpler interpretation for the components of Q follows from the following observation:
28
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
∂ x̃i
Q−1
ij = . (204)
∂ xj
The transformation matrix admits a cleaner and shorter formulation of the transformation rules
introduced above, and its components can easily be computed from (202). We note that Q is
not an ordinary second-order tensor because it does not come with a basis, which is why we
refer to it as the transformation matrix.
As a further generalization, we can apply the obtained transformation rules not only to vectors
but to abritrary higher-order tensors. Consider e.g. a second-order tensor T which can be
expressed as
T = Tij gi ⊗ gj = T̃ij g̃i ⊗ g̃j . (205)
In order to transform to the new basis, we simply apply the above transformation rules for
vectors independently to each of the two base vectors. In this way, we can transform any tensor
of arbitrary order by the general transformation rule
Tij...n = Qia Qib . . . Qnd T̃ab...d . (206)
The complete set of transformation rules for vectors and second-order tensors (in indicial and
symbolic notation) now reads:
ui = Qij ũj u = Qũ
ũi = Q−1
ij uj ũ = Q−1 u
(207)
Tij = Qik T̃kl Qjl T = QT̃ QT
T̃ij = Q−1 −1
ik Tkl Qjl T̃ = Q−1 T Q−T
These transformation rules become trivial when applied to basis rotations, as we show in the
following example. Assume that our original coordinate system is given by a two-dimensional
Cartesian basis {g1 , g2 }, and we want to rotate our coordinate system by an angle ϕ (counter-
clockwise) so that
g̃1 = g1 cos ϕ + g2 sin ϕ, g̃2 = −g1 sin ϕ + g2 cos ϕ. (208)
The components of the transformation matrix are obtained from
cos ϕ − sin ϕ
[Qij ] = [gi · g˜j ] = . (209)
sin ϕ cos ϕ
We see that in this case the transformation matrix is constant and, for the special case of a
rotation, Q is a rotation tensor with Q ∈ SO(2). The inverse is computed as
cos ϕ sin ϕ
[Q−1
ij ] = [g i · ˜
gj ] = = [QT
ij ]. (210)
− sin ϕ cos ϕ
For example, consider a point in space described by coordinates (vi ) = (1, 1)T in the origi-
nal basis. We rotate our coordinate system by a counter-clockwise angle ϕ and compute the
transformed coordinates:
ṽi = Q−1 T
ij vj = (cos ϕ + sin ϕ, cos ϕ − sin ϕ) . (211)
29
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
In continuum mechanics, we often apply the transformation rules to second-order tensors such
as the infinitesimal strain and stress tensors whose components must be computed in a rotated
coordinate system. Such a coordinate roation can now performed easily by the above relations.
In particular, the stress tensor transforms by (using the fact that Q is orthogonal)
−T
σ̃ = Q−1 σQ = QT σQ. (213)
Also, we can verify that rotating the obtained tensor σ̃ back by the same angle into the opposite
direction (i.e. applying the inverse transformation matrix Q−1 ) yields
−T
(Q−1 )−1 σ̃(Q−1 ) = Qσ̃QT = Q(QT σQ)QT = σ, (214)
30
Computational Solid Mechanics (151-0519-00L) June 19, 2017
Fall 2017 Prof. Dr. Dennis M. Kochmann, ETH Zürich
(v ⊗ w)u = v (w · u) α a ⊗ b = (α a) ⊗ b = a ⊗ (αb)
(u ⊗ v) × w = u (v × w) α (u · v)w = α (w ⊗ v)u
(v + w) ⊗ u = v ⊗ u + w ⊗ u (u ⊗ v)T = u ⊗ T T v
u ⊗ (v + w) = u ⊗ v + u ⊗ w T (u ⊗ v) = (T u) ⊗ v
31