Finite Elements - what are they used for?

Finite Elements - what are they used for?


Hello and welcome to my new blog. Here, I will share my experience on developing my own finite element code from scratch in C++.

So let us get started.

What are finite elements, and what can they be used for?

In physics, mathematical equations can be derived that govern the behavior of everything around us. Some examples are Fourier's equation, which governs how heat is conducted in a solid body, the Advection-Diffusion equation, which governs how any substance (e.g. color) would be transported in a flow or the famous Navier-Stokes equations that govern the behavior of fluids in general.

Now here comes the big problem: Most of these equations can not directly be solved, because that would make our lives as engineers much too easy. Much more, these equations give only relations, e.g. between the temporal evolution of the temperature and the spatial change of the heat-flux. Such equations are called partial differential equations (PDEs). Under some simple circumstances, one might achieve to solve such an equation with pen and paper - and many great scientists have done so. Generally, however, we need to make approximations to find the solution. 

One of these ways to make approximations are what is called spatial discretizations. Instead of trying to derive a solution that is valid at every point in space, we instead create a grid, also called mesh, on which we want to know the solution. This simplifies the matter quite a lot, because instead of looking for a general solution, we look for a solution in a finite space. 

Of course, this would still be extremely difficult if we wouldn't have computers.

In this image for example, you can see the solution for a rigid body deformation computed on a given tetrahedral grid.

 

351665157-4adfb49f8bcf7e86d8022e24e17e658f071b86187287ef2cb8b4cb7fab6209fa.jpeg

source

So to summarize for the first blog entry, we have gained the following insight:

  • It is desirable to solve some of the most important PDEs in order to make predictions of how physics will behave - and exploit that to e.g. build more efficient machines.
  • Solving these PDEs however is often not possible in an exact way. Therefore, we search for approximate solutions that are "good enough" for our purposes.
  • This approximate solution procedure is often done via computers. It is then called a numerical method.

In the next blogs, we will look at the most popular numerical methods and see what their strength's and weaknesses are. Eventually, we will get to the finite element method that I desire to write some source-code for.

How do you rate this article?

1


Thodin
Thodin

Engineer, hobby programmer, crypto believer.


Development of a finite element solver
Development of a finite element solver

I am developing my own finite element solver from scratch in C++ and will take you along for the ride

Publish0x

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.