## Stiffness Matrix Formulation

**Summary**

Describes stiffness matrix formulation for the analysis of plate bending.

**Band Width Calculaton**

Continue from Part 2, we are now going to formulate the global stiffness

{F} = [K]{D}

were {F} is the force vector, [K] is the stiffness matrix and {D} is the displacement vector.

The stiffness matrix will be stored using the "Band Storage" scheme. Therefore, we need to determine the band width.
Number of degrees of freedom per node is 3. As shown the figure, when an element matrix is planted into the global matrix,
the crorresponding rows will start from 3I and end at 3J+2. The band width for this pair of nodes is

b = 3*(J-I)+3

The overall band width is then

B = max (3*(J-I)+3) for all node pairs within elements.

* * * * * . ↓3I ↓3J+2 * * * ... * * * ... * * ... * * * ... * ... * * * ... ... . . . .. . . . . . . . * * * * * * ...Banded Matrix

X * * * * 0 0 0 0 0 0 * X * * * * 0 0 0 0 0 * * X * * * * 0 0 0 0 * * * X * * * * 0 0 0 * * * * X * * * * 0 0 0 * * * * X * * * * 0 0 0 * * * * X * * * * 0 0 0 * * * * X * * * - 0 0 0 0 * * * * X * * - - 0 0 0 0 0 * * * * X * - - - 0 0 0 0 0 0 * * * * X - - - -Band Storage Scheme

↓the diagonals X * * * * X * * * * X * * * * X * * * * X * * * * X * * * * X * * * * X * * * - X * * - - X * - - - X - - - - ←total number of dof

The first column contains the diagonal elements. Because of symmetry, elements below the diagonal are not stored.

**Assembling the Global Stiffness Matrix**

The element stiffness matrix is a matrix of 9x9. We need to add all the element stiffness matrices intot the global stiffness matrix. This process is called assembling the global stiffness matrix. The global stiffness matrix is denoted as [K].

Assume the 3 nodes of the triangle element is [n1, n2, n3] (note the first node index is 0). The element matrix indices will be [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]. The column / row indices in [K] will be

[3*n1, 3*n1+1, 3*n1+2, 3*n2, 3*n2+1, 3*n2+2, 3*n3, 3*n3+1, 3*n3+2]

An element in [K] with row index, r, and column index, c to be stored in the banded matrix at position:

row = r;

colum = c-r; // if column < 0, then it is not to be stored.

Let's look at an example. Assume element nodes: [4,0,2].

Global matrix indices are: [12,13,14, 0,1,2, 6,7,8]

Position in element matrix | Global matrix | Banded matrix |
---|---|---|

(0,0) | (12,12) | (12,0) |

(0,3) | (12,0) | Not stored |

(4,4) | (1,1) | (1,0) |

(4,0) | (1,12) | (1,11) |

**Solving the Equations**

This is similar to Matrix Inversion. The difficulty only lies in that the matrix is now banded and stored in a Banded Matrix.

X * * * * 0 0 0 0 0 0 * X * * * * 0 0 0 0 0 * * X * * * * 0 0 0 0 ← row i * * * X * * * * 0 0 0 * * * * X * * * * 0 0 0 * * * * X * * * * 0 0 0 * * * * X * * * * 0 0 0 * * * * X * * * - 0 0 0 0 * * * * X * * - - 0 0 0 0 0 * * * * X * - - - 0 0 0 0 0 0 * * * * X - - - -

- Due to symmetry, elements in column i = those in row i.
- To eliminate column i, we only need to perform on max. "band width" rows.
- After elimination of a column, the band width will not change.
- When doing back substitution, again, we only need to sum max. "band width" columns.