You are on page 1of 27

Computational Methods II

MEng Module CIVE50003

Lecture 6

Dr Adam Jan Sadowski

Spring Term 2023

CIVE50003 Computational Methods II – Lecture 6 1


Properties of stiffness matrices
 The stiffness matrix is a crucial abstraction in structural FEA

 Both local (element) and global (structural) stiffness matrices have


certain properties which tell you a lot about the likely behaviour,
even before you even actually do an FE solution

 Considering a stiffness matrix by itself tells you a lot about whether


it is correct or not, and what sort of behaviour you can expect

 1) Locations & signs of some terms in a stiffness matrix


 2) Eigenvalues of a stiffness matrix
 3) ‘Rank’ of a stiffness matrix

CIVE50003 Computational Methods II – Lecture 6 2


On the coefficients of a stiffness matrix
 A stiffness matrix must have a non-negative diagonal:
 Suppose {d} is all zeros except for a single dof di ≥ 0 in arbitrary row ‘i’
 k11 k12  k1i  k1n   0   0 
k k22  k2i  k2 n   0   0 
 21    
[ k ]n×n {d }n×1 = { f }n×1 i.e.  

          
  =  
 k i1 ki 2  kii  kin  di  kii di 
            
    
 kn1 kn 2  kni  knn   0   0 
 The resulting nodal force at the dof location is fi = kiidi
 If di ≥ 0, then fi ≥ 0 otherwise a load in one direction causes a
displacement in the opposite direction, which is a contradiction
 Thus kii ≥ 0 for all rows (though off-diagonals may still be negative)
 A general principle for all stiffness matrices:
 A column of [k] is the vector of loads that must be applied to an element
at its nodes to maintain a deformation state in which the corresponding
nodal dof has a unit value and all other nodal dofs are zero
CIVE50003 Computational Methods II – Lecture 6 3
On the coefficients of a stiffness matrix
EA  +1 −1  u1   f1  Recall:
 Recall the 1D bar:    =  
σ=
F
= Eε ; ε
=
u
; F
=
EAu 
h  −1 +1 u2   f 2   A h h 

1 
 Col. 1 & dof 1: {d } =  
0 
EA  +1 −1 1  EA +1 f 1 = +EA/h f 2 = ‒EA/h
thus:    =  
h  −1 +1 0  h −1 1
x1 x2 .

0 
 Col. 2 & dof 2: {d } =  
1  f 1 = ‒EA/h f 2 = +EA/h
EA  +1 −1 0  EA −1
thus:    =   1
h  −1 +1 1  h +1 x1 x2
.

CIVE50003 Computational Methods II – Lecture 6 Applies to all [k]’s 4


Eigenvalues of an element stiffness matrix
 The same basic equation is solved each time in a linear FEA

[ k ]n×n {d }n×1 = { f }n×1


 Let the nodal loads {f} be proportional to the nodal dofs {d}
through some multiplying factor λ:
{ f }n×1 = λ {d }n×1
 Thus: [ k ]n×n {d }n×1 = λ {d }n×1 or [ K ]n×n {d }n×1 = λ [ I ]n×n {d }n×1
 Or: ([ k ]n×n
− λ [ I ]n×n ) {d } n×1
{0}n×1
=

 This is clearly an eigenvalue equation: as many λ’s as dofs


CIVE50003 Computational Methods II – Lecture 6 5
Eigenvalues of an element stiffness matrix
EA  +1 −1  u1   f1 
   =  or [ ke ]2×2 {de }2×1 = { fe }2×1
L  −1 +1 u2   f 2 

 Recall the 1D bar element


 Consider only [ke], and specifically its eigenvalues
1 0 
[ ke ]2×2 {de }2×1 = λ [ I ]2×2 {de }2×1 [ I ]2×2 =
0 1 
 
 Recall CM1: the eigenvalue problem requires the solution of:
(
det [ ke ]2×2 − λ [ I ]2×2 =
0 )
 So:  EA  +1 −1  +1 0  
det    −λ  =0
 h  −1 +1  0 +1 

CIVE50003 Computational Methods II – Lecture 6 6


Eigenvalues of an element stiffness matrix
 We must solve:   EA EA  
 h −λ −
h 
det     =0
  − EA EA
− λ  

 h h  
2 2
 Expanding:  EA   EA 
 −λ −  = 0
 h   h 
 Recall that the 2 roots of this characteristic polynomial are
equivalent to the eigenvalues λ of the original matrix [ke]
 Solving gives: EA
= λ 0= and λ 2
h
 Very interesting... one of the eigenvalues of the 1D bar
element stiffness matrix is zero. What does this mean?

CIVE50003 Computational Methods II – Lecture 6 7


Eigenvalues of an element stiffness matrix
 c2 cs −c 2 −cs   u1   f1x 
    
EA  cs s 2 −cs − s 2   v1   f1 y 
h  −c 2 −cs c 2
 = 
cs  u2   f 2 x 
or [ ke ]4×4 {de }4×1 = { fe }4×1
 
 −cs − s
2
cs s 2   v2   f 2 y 

 Recall the 2D bar element


 Consider only [ke], and specifically its eigenvalues 1 0 0 0
0 1 0 0
[ ke ]4×4 {de }4×1 = λ [ I ]4×4 {de }4×1 [ I ]4×4 =
0

0 1 0
 
 The eigenvalue problem requires the solution of: 0 0 0 1

det ([ ke ]4×4 − λ [ I ]4×4 ) =


0
  c2 cs −c 2 −cs  1 0 0 0 
So:   2 0 
 EA cs s 2
− cs − s 1 0 0 
det   −λ  = 0
 h  −c −cs c
2 2
cs  0 0 1 0 
 
− cs − s 2
cs s 2  
0 0 0

1  
  
CIVE50003 Computational Methods II – Lecture 6 8
Eigenvalues of an element stiffness matrix
 The characteristic polynomial for the 2D beam now becomes:

EA 3
λ −2
4
λ =
0
h
 The roots (now 4) must again be the eigenvalues of [ke]
 Solving gives:
EA
= λ 0,0,0
= and λ 2
h
 Very interesting... three of the eigenvalues of the 2D bar
element stiffness matrix are zero. What does this mean?

 There seems to be a pattern emerging here...


CIVE50003 Computational Methods II – Lecture 6 9
Eigenvalues of an element stiffness matrix
 12 6h −12 6h   v1   W1 

[ ke ]4×4 {de }4×1 = { fe }4×1


 2    
EI  6h 4h −6h 2h  θ1   M 1 
2

 =  or
h3  −12 −6h 12 −6h   v2   W2 
 2
 6h 2h −6 L 4h  θ 2   M 2 
2

 Recall the 2D beam element


 Consider only [ke], and specifically its eigenvalues 1 0 0 0
0 h 2 0 0
[ ke ]4×4 {de }4×1 = λ [ J ]4×4 {de }4×1 [ J ]4×4 =
0 0 1 0

 
0 0 0 h2 
 The eigenvalue problem requires the solution of:
det ([ ke ]4×4 − λ [ J ]4×4 ) =
0
  12 6h −12 6h  1 0 0 0 
So:   6h 4h 2 −6h 2h 2  0 h 2 
 EI 0 0 
det  3  −λ  = 0
h  −12 −6h 12 −6h  0 0 1 0 
  2 2  
  6 h 2 h −6 L 4 h  0 0 0 h2  
CIVE50003 Computational Methods II – Lecture 6 10
Eigenvalues of an element stiffness matrix
 The characteristic polynomial for the 2D beam now becomes:
2
EI 3  EI  2
λ − 32 3 λ + 60  3  λ =
4
0
h h 
 The roots (now 4) must again be the eigenvalues of [ke]
 Solving gives:
EI EI
= λ 0,0
= and λ 2 3 ,30 3
h h
 Very interesting... two of the eigenvalues of the 2D beam
element stiffness matrix are zero. What does this mean?

 Perhaps plotting the corresponding eigenvectors may help?


CIVE50003 Computational Methods II – Lecture 6 11
Eigenvalues of an element stiffness matrix
[ ke ]n×n {de }n×1 = λ [ I ]n×n {de }n×1 becomes [ ke ]n×n {de }n×1 = {0}n×1
 For zero eigenvalues, the problem is to find eigenvectors {de} that
are part of the null space of [ke] i.e. these are special
eigenvectors that are mapped by [ke] to the zero vector {0}

 u1  u 
 For the 1D bar:   =   is an eigenvector with zero eigenvalue
u2  u 
EA  +1 −1 u  EA  u − u  0 
 It satisfies for all u:  =    =    
h  −1 +1 u  h −u + u  0 

 This is a rigid body mode, a special element


displacement state invoking no strain energy
and causing no nodal forces (hence {fe} = {0})
CIVE50003 Computational Methods II – Lecture 6 12
Eigenvalues of an element stiffness matrix
 For the 2D bar we had 3 zero eigenvalues. This means that
there must be 3 corresponding eigenvectors which can be
mapped by [ke] to {0} i.e. that are part of [ke]’s nullspace
 This means that there are 3 rigid body modes for the 2D bar,
all of which permit zero-energy motion (no axial strain energy
mobilised)
 Mode 1:
 c2 cs −c 2 −cs  u  0 
    
EA  cs s 2 −cs − s 2  0  0 
 = 
h  −c 2 −cs c 2 cs  u  0 
 
 −cs − s
2
cs s 2  0  0 

 This is a rigid body translation


in the x direction

CIVE50003 Computational Methods II – Lecture 6 13


Eigenvalues of an element stiffness matrix
 Mode 2:
 c2 cs −c 2 −cs  0  0 
    
EA  cs s 2 −cs − s 2  v  0 
 = 
h  −c 2 −cs c 2 
cs 0  0 
 2  
 v  0 
2
 − cs − s cs s

 This is a rigid body translation


in the y direction
 Mode 3:
 c2 cs −c 2 −cs   0  0 
  0   
EA  cs s 2 −cs − s 2    0 
 = 
h  −c 2 −cs c 2 cs   u  0 
 2 
 −u cot (α )  0 
2
 − cs − s cs s

 This is a rigid body rotation in


the x-y plane
CIVE50003 Computational Methods II – Lecture 6 14
Eigenvalues of an element stiffness matrix
 For the 2D beam we had 2 zero eigenvalues: 2 rigid body modes
(no bending strain energy mobilised)
 Mode 1:  12

6h −12 6h  v  0 
2    
2
EI  6h 4h −6h 2h  0  0 
 = 
h3  −12 −6h 12 −6h  v  0 
 2
 6h 2h −6 L 4h  0  0 
2

 This is a rigid body translation

{
in the transverse direction
 Mode 2: v
2v
 12 6h −12 6h   −v  0  ‒v 2v/h
 2 2    
EI  6h 4h −6h 2h  2v / h  0 
 = 

{
h3  −12 −6h 12 −6h   v  0 
 2
 6h 2h −6 L 4h  2v / h  0 
2
h
This is a rigid body rotation tan(θ) ≈ θ ≈ 2v/h
 .
in the plane of bending Remember we are dealing with
CIVE50003 Computational Methods II – Lecture 6 small displacements in CM2 15
Equivalent statements
 The following statements are equivalent:
 The stiffness matrix [k] is singular and has zero determinant
 The stiffness matrix [k] is not invertible
 The system [k]{d} = {f} has no unique solution for {d}
 The stiffness matrix [k] has at least one zero eigenvalue
 The stiffness matrix [k] has at least one non-trivial eigenvector that is a
rigid body mode (or a ‘spurious’ mode) that mobilises no strain energy
 The stiffness matrix [k] is rank-deficient by at least one degree
 The stiffness matrix [k] is positive semi-definite
 In fact:
 All element stiffness matrices [ke] are singular and thus not invertible
 All assembled stiffness matrices [k] are singular and thus not invertible
 BUT: The sub-matrix [kFF] is invertible as long as a sufficient number of
boundary conditions have been specified to restrain all zero energy
displacement modes
CIVE50003 Computational Methods II – Lecture 6 16
Zero energy modes
 The strain energy for every discretised displacement-
based system is always in the form:
1
U = {d }1×n [ k ]n×n {d }n×1
T

2
 Recall the eigenvalue equation: [ k ]n×n {d }n×1 = λ {d }n×1

{d }1×n [ k ]n×n {d }n×1 = λ {d }1×n {d }n×1


T T
 Now:

1 1
{d }1×n [ k ]n×n {d }n×1 λ {d }1×n {d }n×1
T T
 So: U =
2 2

 Thus if an eigenvalue is zero (λ = 0), no strain energy is


mobilised. For this reason rigid body modes are called
zero energy displacement modes.
CIVE50003 Computational Methods II – Lecture 6 17
Remember rcond?
 Perhaps the ‘reciprocal condition number’ of a matrix now
makes more sense (rcond in Matlab)...

λmax
 cond ([=
k ]) → ∞ as λmin → 0 (∞ as an upper bound? )
λmin
λmin
 rcond ([ k ]) = → 0 as λmin → 0 (0 as a lower bound? )
λmax

 Due to floating-point precision you will not get |λmin| ≡ 0 but


rather |λmin| < ε where ε is the machine precision
 ε is ~1e-15 for double precision arithmetic, anything less is
smaller than what the machine can interpret as non-zero
 So rcond < ε is a sign of a singular matrix with unrestrained
rigid body modes
CIVE50003 Computational Methods II – Lecture 6 18
Matrix rank
 Recall CM1: One way of solving for {x} in [A]{x} = {b} is by
Gaussian elimination.
 This is a two-step process
 Step 1) Reduction of system to ‘upper triangular’ or ‘row echelon’ form
 Step 2) Back-substitution
2x + 2 y + 2z =6 2 2 2   x  6
2x + 3y + 7z = 0 ⇒ 2 3 7   y  =  
   0
x + 3 y − 2 z 17   17 
= 1 3 −2   z   
 Reduction to row echelon form was done with ‘elementary row
operations’ (i.e. additions & multiplication by scalars)
1 1 1   x   3  x  1 
0 1 5  y  =  
6
   
    
− ⇒  y =4
0 0 1   z  −2   z  −2 
   
CIVE50003 Computational Methods II – Lecture 6 19
Matrix rank
 You need n pieces of information (equations) to solve for n
unknowns, and all information must be considered simultaneously
 Let’s say you tried to cheat the system. All you really have is an
equation like, say: EQ1: x + 4 y − 2 z =
3
 You only have one piece of information but 3 unknowns.
 Say you form a 2nd equation as follows:
EQ2 = 2 × EQ1: 2x + 8 y − 4 z =
6
 Then say you form a 3rd equation as follows:
EQ3 = − ( 3 × EQ2 − 1× EQ1): − 5 x − 20 y + 10 z =−15

 Now we have 3 equations & 3 unknowns and can solve this, right?
= x + 4 y − 2z 3 1 4 −2   x   3 
   
2 x + 8 y − 4=
z 6 ⇒ 2 8 −4   y= 6
    
−5 x − 20 y + 10 z =−15  −5 −20 10   z  −15
CIVE50003 Computational Methods II – Lecture 6 Seems legit. 20
Matrix rank
 Start with the ‘enhanced matrix’ 1 4 −2 3 
2 8 −4 6 
 Proceed column by column  
 Column 1  −5 −20 10 −15

1  piv1 row1 → row1 ÷ piv1  1 4 −2 3  !!!


   
2
=  adj 2  ⇒ row2 → row2 − adj 2 × row1  0 0 0 0  Where did my
 
−5  adj 3  row3 → row3 − adj 3 × row1 0 0 0 0  equations go?
   
 Whoops! After just one column’s worth of Gaussian elimination we
have undone our previous shenanigans, and thus revealed that
the ‘3x3’ matrix really only has just one equation in it
 Thus the square matrix of size 3 is only of rank 1, and it has a rank
deficiency of order 2 because it is genuinely missing 2 equations
 This always happens when rows are linearly-dependent
of vectors vj: ∑ a j v j 0 for at least some scalars a j ≠ 0
i.e. for some set J=
j∈J

CIVE50003 Computational Methods II – Lecture 6 21


Rank of a stiffness matrix
 1D bar: [Ke] has rank deficiency of order 1 (also 1 zero eigenvalue)
EA  1 −1 EA 1 −1
  ⇒
h  −1 1  h 0 0 

 2D bar: [Ke] has rank deficiency of order 3 (also 3 zero eigenvalues)


 c2 cs −c 2 −cs  c 2 cs −c 2 −cs 
   
EA  cs s 2 −cs − s 2  EA  0 0 0 0 

h  −c −cs c
2 2
cs  h 0 0 0 0 
 2 2   
 −cs − s cs s  0 0 0 0 
 2D beam: [Ke] has rank deficiency of order 2 (also 2 zero eigenvalues)
 12 6h −12 6h  12 6h −12 6h 
 2 2  2
0 −h 2 
EI  6h 4h −6h 2h  EI  0 h 
⇒ 3
3
h  −12 −6h 12 −6h  h 0 0 0 0 
 2 2  
 6 h 2 h −6 L 4 h   0 0 0 0 
 Each of these matrices has a deficiency in the information necessary to
localise the solution for {d} so that it is a unique vector
CIVE50003 Computational Methods II – Lecture 6 22
The transmission tower from Tutorial 3
 The same concepts apply to assembled global
stiffness matrices as they do to individual
element stiffness matrices. Reminder:
 14 nodes and 29 2D bar elements
 5 redundancies with all members
 28 dofs at 2 per node (4 restrained, 24 free)
 Global equation: [ k ]28×28 {d }28×1 = { f }28×1

[ k FF ]24×24 [ kFR ]24×4  {d F }24×1  { f F }24×1 


 Partitioned:   = 
 [ k RF ]4×24 [ RR ]4×4   { R }4×1   { R }4×1 
k d f

 NOTE: size([k]) = 28 but rank([k]) = 25


 Also: size([kFF]) = 24 and rank([kFF]) = 24
 So [k] was singular, but [kFF] was not
CIVE50003 Computational Methods II – Lecture 6 23
Rigid body modes of unsupported tower

 It is fascinating to plot the zero eigenvalue eigenvectors


 Rigid body modes of global structures are rarely computed in ‘pure’ form
 Instead they are linear superpositions of ‘pure’ modes (rotational / translational)
 1st: The sum of a global rotation and a horizontal translation
 2nd: Predominantly a vertical translation, but also some rotation
 3rd: Another sum of a global rotation and horizontal translation
CIVE50003 Computational Methods II – Lecture 6 24
Partially-supported tower (1 restrained dof)

 The rigid body modes are telling you what sort of zero-
energy displacement modes you have not yet restrained
 Still a vertical translation and a rotation unrestrained
CIVE50003 Computational Methods II – Lecture 6 25
Partially-supported tower (2 restrained dofs)

 A hinge at the lower LHS restrains both translational modes,


but not yet the rotational mode. Need one more BC!
 Note that these are eigenvectors of [kFF], not [k]
CIVE50003 Computational Methods II – Lecture 6 26
Summary of the transmission tower analysis
Condition Redun- size rank rank zero size rank rank zero rcond
dancies [k] [k] deficiency eigenvalues [kFF] [kFF] deficiency eigenvalues [kFF]
[k] [k] [kFF] [kFF]
All 5 28 25 3 3 24 24 0 0 4.6e-4
members
No m1 4 28 24 4 4 24 24 0 0 4.0e-4

No m1 – m2 3 28 24 4 4 24 24 0 0 3.4e-4

No m1 – m3 2 28 24 4 4 24 24 0 0 3.9e-4

No m1 – m4 1 28 24 4 4 24 24 0 0 4.0e-4

No m1 – m5 0 28 24 4 4 24 24 0 0 3.9e-4

No m1 – m6 -1 28 23 5 5 24 23 1 1 2.0e-18

No m1 & m6 4 28 23 5 5 24 23 1 1 7.1e-18

 The ‘rank deficiency’, the no. of zero eigenvalues, the no. of rigid
body modes and the no. of necessary BCs are the same thing.
CIVE50003 Computational Methods II – Lecture 6 27

You might also like