How to solve a Finite Element problem using hand calculations
Basically, when we want to determine the forces and displacements in a certain structure using Finite Element Analysis (FEA), what we are doing is creating a system of equations that relates the stiffness of the elements to the displacements and forces in each node. When we run a simulation, we do not see all the calculations. For that reason, today I want to illustrate a simple case that can be easily solved by hand applying that methodology.
Before getting started, just think of a spring. Everyone has come across the Hooke’s law at a certain point during school. It states that the force in the spring is proportional to a constant “k” multiplied by the variation in length of the spring. FEA follows the same principle, but in this case the “k” constant is the stiffness matrix and the variation in length is a vector of displacements and rotations, depending on the case.
Let’s study a simple static case. Our structure consists of two bar elements connected at a common node, where a load “P” is applied. The other two nodes have both horizontal and vertical displacements constrained (see the boundary conditions). For this particular case, the reactions in nodes 1 and 3 and the displacements of node 2 are requested. I have solved the problem by hand following a few steps that, based on my experience, can be generalised for more complex problems. Pretty much, the summary of the methodology is:
- Although some people memorise the stiffness matrices for different elements, I firmly believe that it is always better to derive the expressions instead of trying to remember them. Therefore, the first step is to derive the stiffness matrix for our element type in local coordinate system.
- For each element, write down the stiffness matrix in local coordinate system.
- For each element, derive the transformation matrix [T]. This expression allows you to transform the local coordinate system to the global one. Once again, some people prefer to know this matrix by heart, but I recommend its derivation in order to avoid errors.
- For each element, calculate the stiffness matrix in global coordinate system. The only thing you need to do is to multiply the transverse transformation matrix by the stiffness matrix (local) by the transformation matrix. It’s crucial to do it in that particular order! (basic algebra; I’d be more than happy to provide some useful references if needed).
- Assemble the overall stiffness matrix in global coordinate system [K].
- Solve the system of equations: [F]=[K][d], where [F] is the vector of forces and moments and [d] is the vector containing displacements and rotations.
And that’s it! Please find the problem solved below. I’ve also attached the solution in PDF in case anyone wants to save it and print it (FEA_HandCalculations_file).
Just a quick comment. You might have realised that the structure should be in equilibrium. That means that the sum of the forces in the horizontal direction should be equal to zero. The same principle applies to the vertical forces. However, if we have a look at the final results, they are not exactly zero… Why? Firstly because I haven’t used all the decimal numbers and secondly because Finite Element Analysis is an estimation. One might think that increasing the number of elements per bar (i.e. refining the mesh) would calculate more accurate results. However, as Dr Kevin Hughes (Brunel University and former director of my MSc at Cranfield University) stated, that option would result in errors, since we would be introducing pin joints. On the other hand, he also said that a refinement of the mesh would work if we used beam elements (remember that bars can only carry tension/compression stresses). Hope you enjoyed it and if you have any question, don’t hesitate to contact me!