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:

  1. 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.
  2. For each element, write down the stiffness matrix in local coordinate system.
  3. 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.
  4. 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).
  5. Assemble the overall stiffness matrix in global coordinate system [K].
  6. 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!


  • Is there any manual calculation on plane truss structure analysis by using dynamic load?

    Liked by 1 person

    • Hi! Thank you for your question! It’s actually an interesting one and I might write about it in the future, so thanks for the idea!

      Well, I have never done this type of hand calculation, butif we considered the same structure with a dynamic load (i.e. load P would vary in time, P(t)), then the approach wuld be basically the same. We should define the number of intervals that we want to know, calculate the load for the exact time that we are looking at, and calculate the displacements for each step. For example, we would start with t=0: we would use the value of P(t=0) for the first step and we would be able to calculate the displacements for t=0. Then we could ove to t=1. So we should do exactly the same but knowing that the displacement should be updated using the one calculated earlier.

      However, other cases would imply the use of Impact Dynamics and energy based theories, which are way more complicated to solve.

      I will try to look into this in more detail and I’ll let you know if the approach that I suggested above would be accurate or not!



      • I’ve read some theory of dynamics analysis. It can solve by stiffness method for mass and stiffness, you right sir another way is by using virtual energy. But I’ve no find the example.

        Thank you sir, I’m waiting for your writing about dynamics calculation. I hope I can gain knowledge from an expert like you sir.

        Ichsan. Last year student of Ocean Engineering from Indonesian.

        Liked by 1 person

      • Thank you for your kind words, I really appreciate it. It’s really satisfying reading a comment like that. I will definitely try to look into that topic in the upcoming weeks!



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s