I've currently begun studying Finite Element Method (FEM) and I'm finding it a little difficult to find resources that break it down into something comprehensible. All the resources I've found are simply too advanced for me to understand as I do not have a mathematics background (hence the confusion). I'd like to kindly request the community's advice on resources, preferably online and free, for a proper introduction to FEM, as well as other resources with more detailed information.

Thank you.

  • $\begingroup$ @Paul Yes, computer science. $\endgroup$
    – kfkhalili
    Jul 9, 2014 at 13:29
  • $\begingroup$ Hi and welcome to scicomp! Your question is very much on topic, but another user posted essentially the same question before (Modern Resources for learning FEM). On the stack exchange network, we discourage duplicating the same question over and over again. This is why your question was closed. However, I highly encourage you to post other questions you may have with respect to understanding/implementing the finite element method. $\endgroup$
    – Paul
    Jul 9, 2014 at 18:59
  • 1
    $\begingroup$ It's not big enough for an answer, but I still also wanted to point you at some video lectures (disclaimer: my own video lectures, in fact) on the finite element method: math.tamu.edu/~bangerth/videos.html Much of it is about the "mechanics" of how the FEM works, not the mathematical details. You may want to start with lecture 4 if you're looking for an overview of the FEM. $\endgroup$ Jul 12, 2014 at 11:22

3 Answers 3


I had the same problem you faced a number of years ago... I found lots and lots of resources online about the finite element method that were way too mathematically advanced for me at that time. What I eventually discovered is the following:

There are really two ways to approach the study of the finite element method: the engineering approach and the mathematical approach. Both are valid and arrive at the same conclusion, but have very different starting points. The mathematical approach requires a lot more background in functional analysis, measure theory, variational calculus, etc... It can be very daunting to learn it from a mathematical perspective if you don't already have this background. The engineering perspective uses principles such as virtual work and superposition, and 'shape functions', concepts that are probably more intuitive for a computer scientist's perspective such as yourself. Particularly, the so-called "Direct Stiffness Method" is the simplest approach for beginners in engineering. While the examples tend to be skewed towards mechanical engineering applications such as structural deformation problems, the direct stiffness method can also be used to study problems such as resistor network problems (which are somewhat related to computer science via electrical engineering). It also provides insight into a more generalized approach using the weak formulation and galerkin projection.

Most of the FEM books that I've read with an engineering emphasis tend to focus on HOW it works, and place very little focus on WHY it works. To gain some insight into why it works, you will need some mathematical tools from functional analysis. While it's now out of print, I found the book "Applied Functional Analysis and Variational Methods in Engineering" by Reddy to be particularly insightful and enlightening because it filled in all the "mathematical gaps" from an engineer's persective. Also, Mark Gockenbach's "Understanding and Implementing the Finite Element Method" was particularly helpful to me to understand the convergence theory behind the method and provides nice outline into data structures and matlab code to implement the method.

While I don't know of any particularly useful online resources, I hope I've at least given you some perspective into how to find good resources from a beginner's perspective.


If you're not planning to write your own code then why bother learning it.

The FEM is a means to an end, i.e., a solver for PDEs. It does the same job as any other mesh or particle based method. 15-20 years ago it was somewhat necessary for people to know about FEM in order to use FE software effectively. These days anyone (e.g. a freshman) can use it.

An example is Comsol which is also marketed as a generalized PDE solver. It indeed uses the FEM internally but hides all the complicated FE related details (including generation of mesh) from the user. In fact their product webpage doesn't even mention the word "finite element".

However if you still want to learn about the finite elements and don't have the required math background then look at books that emphasize implementation. One nice thing about computers is that they only understand numbers which everyone understands easily. Two examples of such books are "The Finite Element Method Using MATLAB by Kwon and Bang" and "Programming the Finite Element Method, 5th Edition by Smith et al".

However I would highly recommend (if you have the time) to learn the math behind finite elements. A good start will be to take the FE course offered by your Math department.


Carlos Felippa at the University of Colorado, Boulder has the notes from his Introduction to Finite Element Methods course online:


This course is definitely taught from a mechanical engineering perspective and emphasizes structural analysis and elasticity. He also has notes online for two more advanced finite element courses you might want to investigate later.


Not the answer you're looking for? Browse other questions tagged or ask your own question.