Let’s assume a beam with a force applied on the tip of it.
We will assume the representation of the domain as line elements (1D element if 2D space)




Let’s try to mathematically explain what is happening for each element.
Here, the beam tries to resist the force. Therefore, a stiffness value is multiplied to act as a resistance to the displacement for each node.
Since the 2d beam has 6 degrees of freedom, it can be represented has a 6 value vector.
The stiffness matrix describe the resistance for each node to forces and motions applied by the initial nodal force.
Here, we aim to find the stiffness matrix of each of the elements. But as soon as several elements collide, we’ll quickly have an issue: the displacement and rotation of a given node is affect by 2 stiffness matrices.
Therefore, we need to combine the matrices in a way that the final displacement for a node is representative of the sum of all the displacements applied to every elements attached to the given node.

The Global stiffness matrix aims to solve this issue ! It gathers all of the individual nodes’ stiffness matrix in a big one call Global stiffness matrix (GSM).
This GSM is a square matrix with a size defined as the total number of degree of freedom of all of the nodes of the mesh (here 4 nodes with 3 degrees = 12).
As an example, the node 2 is part of the pink and yellow element. Therefore, its rotation and displacement is shared on the GSM.


Whenever an element is not axis aligned, we need to multiply each stiffness matrix to make it aligned with the global coordinates system.

This allows all computation to be shared among a unique coordinate system.
