The task of choosing a finite element analysis software may be daunting. With a
large choice of solvers upon us, it is tedious to find out which one is the best
suited to our needs. **This article aims at giving an overview of the
similarities, differences and pros and cons of each software available**. It will
mainly discuss finite element software from a structure and mechanics point of
view.

## A simple example

Finite element analysis has been around for about 50 years (Nastran was first
released in 1968). At its core, **it is simply a method to solve partial
differential equations on complex multidimensional domain** on which solutions are
not known in closed form. The domain has to be meshed, and then the method
tries to solve the problem over this meshed domain. To be more concrete, let’s
say we want to compute the vertical deflection \(w\) of a cantilever beam
under a tip force loading:

Where :

- \(E\) is the Young’s modulus of the beam material,
- \(I\) is the area moment of inertia,
- \(F\) is the applied tip load.

From the classical beam theory, this problem can be modelized as a one-dimensional problem and is governed by the following differential equation:

$$ EI\frac{d^4w}{dx^4}= 0 $$

Under the following boundary conditions:

\( w\big|_{x=0} = 0 \)

\( \frac{dw}{dx}\big|_{x=0} = 0 \)

\( \frac{d^2w}{dx^2}\big|_{x=L} = 0 \)

\( \frac{d^3w}{dx^3}\big|_{x=L} = \frac{-F}{EI} \)

To apply the finite element method, the beam is first meshed as multiple elements that define the beam domain.

Finite element method aims at translating the differential equation over the
continuous beam domain (plus boundary conditions) as a **discrete matrix vector
equation** over each node of the mesh:

$$ \lbrack K \rbrack \lbrace X \rbrace = \lbrace F \rbrace $$

Where:

\(\lbrace X \rbrace\) is the vector of displacements at the nodes,

\(\lbrace F \rbrace\) is the vector of nodal forces,

\(\lbrack K \rbrack\) is the stiffness matrix.

Of course, this example problem does not need finite elements to be solved because of its simplicity. However, as the domain gets bigger and modelization more complex, no solution can be derived in closed form, and finite element procedure may be used to solve such problems.

## Several kinds of software

From finite element beginning, many improvements and features have been added
to the different solvers. Moreover, as time passed, some common patterns have
merged among them. **The software available today can be split among two groups**:
“high level” software on one side and “low-level” software on the other side.
**The high-level software hide some details to the user for the sake of
efficiency. While the low-level software allow him to finely tune the problem
he tries to solve.**

### High level finite element software

High-level finite element software includes names and brands that are famous in
the field: **Nastran, Ansys, Abaqus, Comsol** and many others. These solutions are
the ones that are widely used in the industry. They try to speak at best the
language of a structural engineer to allow him to design and simulate product
behaviors quickly.

Going back to our equation, the software will ask the user for a mesh, beam
geometrical characteristics, material characteristics, the load and the boundary
conditions. **The user does not need to provide the equation as it is prebuilt in
the software**.

**The goal of such software is to hide the governing equation from the user to
allow him to focus on physical modelization of its problem**. Of course, it is
still possible to have some control over the underlying equation, but it is
always a choice made among predefined ones. This choice is commonly known as
the choice of element “behavior” the user should apply on a given mesh. For
instance, in the case of our beam, we could choose an element that respects
the classical (thin-)beam theory or another one that respects Timoshenko
(thick-)beam theory. Such elements behaviors are known to behave well under
specific hypothesis. Moreover, the user can use them without having to worry
about their low-level implementation.

High-level software are geared towards ease of use and mask the physically irrelevant details to the users. They offer many features:

resolution type (static, dynamic, non-linear, …),

material laws (elastic, elastoplastic, hyperelastic, composites, …),

different kinds of loading (inertia, pressure, point, …),

different types of boundary conditions (clamped, contact, …),

many elements that can represent multiple equations (beam, membrane, shell, 3D solid, axisymmetric, …).

And many others.

More recently they have developed massively in multiphysics simulations allowing the user to couple multiple fields in the same run (fluid and structure for instance). Furthermore, such software are made to handle large and complex model assembly such as planes, jet engines or cars.

**In addition to the solver itself, most vendors also sell pre and post-processing
software to interact with the finite element model**. For instance Patran/Apex for
MSC Nastran, Abaqus CAE, Ansys Workbench. The goal is to provide the user a
complete software suite for design and modelization.

However, high-level finite element software suffer some drawbacks. **Even though
they are powerful, they may lack simplicity**. Due to past technical
reasons that are no longer relevant today, they can be counter intuitive to use.
It is mostly a matter of taste and industry which lead to one solution or the
other.

We can shed some light over Comsol as it is a bit different from the others. Although it provides high-level features, it also allows the user to define the equations he wants to solve and bundle them as predefined choices that can be used while associating element behaviors to the mesh. It is, therefore, possible to solve any problem as long as we can modelize it with a bunch of equations.

To conclude, most of high-level software are commercial ones but some are not. We can mention for instance Code Aster which is probably the most impressive free finite element software. It has proved to be reliable in industrial context specifically at EDF. Code Aster has many features that are still lacking in some commercial software.

### Low level finite element software

Finally, the second group of software is made of low-level ones. They are not
well known by structural engineers as **they are more suited to research project
since they allow the user to have granular control over the equations solved
and the finite element solving procedure**.

They speak a language that is more “mathematical” than “engineering”. **They are
low level because they do not focus on predefined element behaviors** (as the beam
element from our example). It is up to the user to define entirely the equations
he wants to solve from the parameters that he chooses to be relevant.

Furthermore, most of them do not cover a large bunch of capabilities but focus on more deeper concerns that are critical to solve some niche problems efficiently. For instance, Hermes2D focuses on hp finite element method that allows exponential convergence rate; GetFEM++ focuses on contact modeling and discontinuities such as crack; MFEM focuses on arbitrary high-order finite elements; Deal.II focus on heavily parallelized solution procedure (10000 processors and more).

Most of such software are free and available as a library which can be used as basic blocks to build a complete finite element analysis software. They do not provide their own pre and post-processor solutions but rely mainly on open source ones such as Gmsh, Paraview or Salome.

## Conclusion

When you face a new software, it can sometimes be hard to find out which
group it belongs to. **A good rule of thumb is having a close look at the name. If it
contains “FE” or “FEM” (like MFEM, OpenFem, …) guesses are it is a low-level
finite element software**. In other cases, you will find your answer from their
documentation.

I hope this overview gave you a clearer vision of the finite element software world. My advice would be for you to look among the high-level software if you want to solve well known physical phenomenon (typically if you are a structural engineer). If your work focuses on some intricate physical modelizations (like it is often the case in research), my advice would be to have a look at low-level software.

I hope you enjoy reading and do not hesitate to share your thoughts or personal experience about it!

#### Did you like this content?

Register to our newsletter and get notified of new articles