Finite Element Analysis in a Nut Shell
Click this link to download the pdf versions of the latest blog posts…
If you ever wondered what is finite element analysis, then hopefully you can learn more about it in this post. Finite element analysis is widely used in the aerospace industry (and many many others) to primarily create loads models. In some cases it is also used to create stress models. But let us not jump ahead into loads models and stress models just yet.
First of all, what is finite element analysis? Here is a good link: http://en.wikipedia.org/wiki/Finite_element_method
Too much to read? OK, finite element analysis in a nut shell can be summarized as:
F = KX
Where ‘F’ is the applied force, ‘K’ is the stiffness of the entire structure, and ‘X’ is the displacement (unknown). ‘K’ in finite element analysis is also called the “global stiffness matrix”. Meaning, the stiffness of the global or the entire combined structure. It is assembled from many little pieces of small discretized (elements) stiffnesses and then assembled into one big stiffness matrix. And yes, it can be a really big matrix depending on the model. The numerical simulation of the complex stiffness of the structure made up of many different parts is only possible (in almost all cases) with finite element modeling.
The known quantities in the static FEM world are the applied loading (F) and the stiffness of the structure (K). So the only thing that is unknown is the displacement. This is where the magic of the ‘finite element solver’ comes in (for example NASTRAN). In simple terms the solver’s job is the following:
Click to Get Two Free FEA Course Lessons
- Compile all the numerical data in the model
- Assemble the global stiffness matrix
- Make sure the model is numerically defined correctly, and is balanced with loads and constraints
- Invert this large stiffness matrix and generate all the equilibrium equations (is this how it is really done in commercial FEA codes? NO, keep reading to find out)
- Then solve all these equations to find the unknown displacements
- Once the displacements are solved for, then the solver calculates all the derivative quantities, such as strains, then stresses etc.
Pretty neat right? Its amazing what FEM can do for us. But it is very important the analyst checks the analysis results to make sure they make sense. Always look at the deformed plot and make sure the deformations make sense. Make sure the model behaves as expected. Look at the max displacement value and make sure that makes sense as well. Also, do some rough hand calculations using standard beam theory to make sure the reactions make sense, and so on.
It is very easy to be impressed with the pretty colors of FEM results, but it can be dangerous in the hands of someone who relies blindly on FEM, the FEM model is only as good as the input it receives. So preparation and checking the results is very important. But I have to tell you, even though FEM is fairly complex, it is an invaluable tool in today’s analysis. Having said that, here is my shameless plugin to my course, the “FEM Program Introduction” course is something you will find very useful. I will post an update once the course becomes available.
Want to get instant updates on the latest posts like this one and a free Ebook?
In today's FEA world, various advances in numerical methods and computing have been adopted in solving for the unknown displacements.
The following are excerpts from an interesting discussion I had on linkedin on this very topic (it goes a bit more in depth on the solution sequence than finite element analysis in a nut shell):
Click Here if you want to read that discussion. You may need a linkedin account and be a member of that linkedin group.
Thanks to Kirk Fraser:
For anyone performing FEA, it is always a good idea to have a reasonable understanding of what the linear solver has to do to solve F=KX.
I would say that, there are no commercial FE solvers that actually invert the stiffness matrix; It is simply too much work.
Most linear solvers are incredibly efficient because they take advantage of the sparsity of the stiffness matrix (do not need to perform calculation for the zero terms). A sparse matrix is one that contains more zero entries than not. Moreover, in FEM, the non zero terms in the stiffness matrix are mainly within a band along and near the diagonal of the matrix. Typically, only the non zero entries in the stiffness matrix need to be stored. A little note: The inverse of a sparse matrix is more often than not dense. So performing a fair amount of work is involved in multiplying the inverse of the stiffness matrix by the force vector.
Most solvers will use an iterative solution process to solve F=KX. Usually, the set of linear equations can be solved using an optimization algorithm. There are many approaches that can be used, for FEA, a common high performance and efficient one is the conjugate gradient method. The idea of this approach is to iteratively obtain a better approximation for the deformation vector, X. The goal of these methods is to minimize the error (or residual, r) obtained from evaluating r=KX-F.
The algorithm starts by choosing a starting value for u (an initial "guess" that can be any value). The initial residual can be very large, but quickly diminishes as more iterations are performed. Eventually, the deformation vector will be found within a reasonable level of allowable error, or displacement convergence parameter. There are a number of advantages of using an iterative solver:
* Takes advantage of the sparsity of the stiffness matrix
* Is very fast and converges quickly
* Is often more precise than inverting the stiffness matrix
* Is easy to perform the iterative solution in parallel (matrix inversion is notoriously complex to run in parallel)
Perhaps the nicest aspect of the conjugate gradient method is that it is ideally suited for sparse symmetric systems. The FEM almost always leads to symmetric stiffness matrices. And will always be positive definite (the inverse exists since the determinant is non zero) as long as adequate constraints are provided (there are no zero of negative eigenvalues).
This article provides an excellent introduction to a few iterative solution methods:
At the end of the article are ready to be coded "canned algorithms". A huge wealth of information on iterative methods is available through wikepedia. Just Google conjugate gradient (CG), steepest descent, bi-conjugate gradient (BiCGstab) or general minimum residual (GMRES).
I have always felt that a reasonable understanding of the solution process makes for better FE analysts. Knowing that a system with zero of negative eigenvalues (think rigid body motion) leads to a system of equations that do not have a unique solution is a valuable understanding. With this knowledge, an astute FE analyst will perform an eigenvalue (normal modes) analysis when faced with a difficult model with many different connections and parts. This is a common trick to find the areas of the model that are under-constrained and is an excellent model debugging trick.
The PCGLSS is the conjugate gradient method with a preconditioner. The preconditioner is an approximation of the inverse of K that helps to push the solver towards convergence. It is a "branded" linear system solver by CA&SI and is leased by many FEA companies such as NEi, Ansys, Marc, etc.
More information is available here:
Acronyms make a lot of people squeamish until they know what the letters stand for...