Sie sind auf Seite 1von 12

Where Open Source FEA Fits in the CAE Ecosystem and

What to Know Before Adopting


Jeffrey S. Baylor1
Convergent Mechanical Solutions, Seattle, WA, 98117, USA

Open source finite element analysis (FEA) solvers and pre and post processors have been
available for more than a dozen years. Most of them have been developed by academic
institutions or governmental agencies though some have been sponsored by industry. These
open source tools can be a highly accessible and valuable resource to industry. This paper
surveys open source FEA software tools and how these tools currently fit into the ecosystem
of computer-aided engineering (CAE) software, with an emphasis on industry applications.
This paper specifically focuses on several niches that open-source tools fill that are otherwise
not well populated by commercial equivalents and identifies uses for which these tools are
not well-suited. Specific concerns related to the use of open source tools in industry are
addressed such as validation of results, licensing concerns, user and development support,
usability, and stability.

I. Introduction

pen source software tools are often dismissed from consideration for use in engineering applications for several
reasons. Engineers may not trust open source software to yield valid results. They may be concerned that the
software will not be supported when questions arise. Finally, many fear divulging proprietary information due to
misunderstanding the licensing requirements. Unfortunately, these assumptions cause engineers to overlook many
software options that can provide high-quality, well-supported, and low cost solutions particularly for companies
that find the high cost of many commercial software packages out of their reach.
Open source software is becoming more and more pervasive in many applications that millions of people use
daily. The best example of this is web browsers. Two of the three most common web browsers, Chrome and Firefox,
are open source platforms. Chrome is based on the open source project Chromium which is managed by Google, and
it currently has 40% of the market share. The second most commonly used browser is Microsofts proprietary
Internet Explorer at 29% of market share, but the third most popular browser is another open source project - Firefox
at 18% [1]. Firefox, unlike Chromium is managed by an organization dedicated to its development, the Mozilla
Corporation. Chrome and Firefox are examples of the two most successful support structures for Open-Source
Software.
Although not quite as apparent to the casual internet user, the webservers we interact with every time we
browse the internet largely depend on Open-Source Software as well. At present, the open source web server
software Apache has the largest market share of 41%. Second is IIS the commercial solution from Microsoft which
has 24% market share, and the open source server software Nginx (pronounced Engine-X) is the third most
popular at 14% [2]. Two-thirds of the web servers are running in a Unix-type operating system with the largest share
of those being the open source operating system GNU/Linux [3].
An interaction with Open-Source Software that is even more personal than our web browser is our smart
phone. The largest selling operating system for smart phones is the Android Operating System [4]. Android is based
on the Linux kernel and is licensed as Open-Source Software. The firmware and device drivers are typically
proprietary though. This combination of open source and proprietary software is not uncommon, but must be
thoughtfully done in order to not violate the open source license (the topic of licensing will be discussed in detail
later in this paper).
These examples reflect the growing movement towards open source software in many everyday uses. Adoption
of open source software in the engineering community, however, has been much slower due to the perceptions stated

Principal Consultant, jbaylor@bConverged.com, Member, ASME


Copyright 2014 by Jeffrey S Baylor. Published by the American Institute of Aeronautics and Astronautics, Inc.
with permission.
1of 12
American Institute of Aeronautics and Astronautics

in the first paragraph. The purpose of this paper is to introduce open source software concepts to engineers who are
not familiar with the features and rules of use for open source software, to argue that open source software can play
a viable role in the engineers suite of software tools, and to help engineers decide what open source options might
be right for them.
Open source software is software for which the source code is made available to the users. Additionally, the
software license must not restrict who may use or modify the software or restrict the way in which it is used,
including commercial use. Users may change the source code to serve the purposes for which they are going to use
the software. If a user intends to redistribute the new software, then the user is required to make the modified source
code available to the recipient under the original open source license. If any portions of the source code are used to
build another software application, that entire new application must be open source if it is redistributed. However, if
the user modifies the source code and does not redistribute the code (meaning the user intends to use the modified
code only for in-house purposes), the user is not required to share the modified code. This condition, therefore,
allows engineers to use, and even modify open source engineering tools for their own commercial purposes without
any requirements to reveal proprietary uses or data again as long as the engineer is not redistributing the modified
software. This paragraph offers a basic definition of open source software. There are variations in open source
definitions, and further information about these variations may be found at Open Source Initiative website [5]. For
the purposes of this paper, however, the definition offered in this paragraph will be used. The next section will
discuss issues that engineers need to be aware of when considering open source software. This will be followed by a
review of some currently available open source products.

II. Considerations When Choosing Open-Source Software


While open source software offers many benefits, there are several issues that engineers need to consider to
ensure that any particular software will meet their needs. This section will address some of the key concerns related
the software maturity, licensing, usability, and concerns specific to computer-aided engineering.
A. Maturity
Maturity refers to the extent to which software has been used, maintained and updated. The first features to
research when considering an open source software tool is whether it is under active development and
approximately how many people are dedicated to using and developing the project. This information about activity
and updating is not likely to be explicitly given, but it is not hard to infer. The download site should have a build
date for its most recent distribution. The revision history will also give a good impression of the projects age and
development activity. The source code repository should have dates associated with the last update. Some
repositories have a browser-based interface that allows for navigation. If there is no repository, download the source
code and look at the last modification dates. If the most recent distribution is more than a year old, or if the source
code repository has not been updated for over month, then the project is likely dead. There are many software
projects that have been started and updated for a year or less and then never updated again. This is common if the
project is maintained by a single developer.
Another way the maturity of a project should be judged is by the activity of its user forum or mailing list. Any
open source software project with much complexity that is actively being used should have a user forum or mailing
list of some kind as these are the standard venues for support questions, bug reports, and general communication
among users and between the users and developers. Looking at these communications can give a quick view into
the state of a project. Look for the date of the last few posts, frequency of posts, as well as a quick scan to see if the
developers are replying to, or initiating any posts. If a project has no active users, it is unlikely to ready for use or is
a dead project.
One way many users choose to contribute to open source projects is by creating tutorials, You-Tube
demonstrations, or written documentation. This user-generated content can reflect the level of activity around a
software tool and can also give valuable insight into the ways users are using the software and the limitations they
are encountering. If none of these are found after a few minutes of searching, there is likely not an active user base.
This section has provided examples of several ways of finding evidence that an open source tool is being
maintained and updated through the level of activity of its community. If the project is actively being developed and
seems to have an active user base with forums and user generated content, it is worth considering further. Keep in
mind, however, that the user base and development team size for many engineering software products are generally
going to be much smaller than for the larger everyday consumer projects. A successful web browser project will
have many orders of magnitude more of each than a successful FEA solver.

2of 12
American Institute of Aeronautics and Astronautics

B. Licenses
Many questions arise regarding licensing of open source software. There are actually many open source
licenses, each with a nuanced approach to how it restricts or allows usage of the software it covers. Determining the
license of open source software and understanding what that means to a user is an initial critical step. Because of
these variations, taking time to thoroughly read and understand the specific license for an open source tool is
imperative. Do not skip this step. Consider consulting a lawyer to ensure complete understanding of licensing
agreements. The three licenses that will be discussed in this paper are the most common and will be listed in order of
increasing permissiveness: Gnu Public License (GPL), the Lesser Gnu Public License (LGPL), and the Berkley
Software Distribution (BSD) Licenses. Each of the licenses discussed here include a reference to the text at their
online source, and there are many resources to help the user understand the content if there is any doubt. These
licenses were meant to be understood by the layperson.
The most common open source software license is the Gnu Public License, or GPL [6]. There are currently
three versions of the software license which are not fully compatible with each other though their purposes are
essentially the same. They are written to ensure that a software products source code is open to all users, and if it is
used in any other application, then that application must also be released under the same license. This license itself
is copyrighted by the Free Software Foundation and was written to cover the GNU project (an acronym for GNUs
Not UNIX), which is the operating system layer distributed with the Linux kernel and called GNU/Linux
(Frequently the GNU/ portion is mistakenly omitted in references to this operating system). While it is not legally
binding, the GPL Frequently Asked Questions (FAQ) [7] is an excellent resource for helping to understand this
license since it explains in detail the intent of the license authors in various circumstances. Using GPL software
within an organization is permitted. The source code can be modified and used within a company as long as it is not
redistributed outside of that company. A key difference between this license and more permissive licenses is that if
a software product is linked to a GPL software in a way that the GPL software cannot be used separately then both
must be considered GPL. This applies to linking software libraries (a library in computer science is a compiled set
of routines and data that are made available for use in multiple programs). A GPL application can be used in a
commercial application as long as they remain separable. One recommendation for redistributed applications is that
any redistributed GPL applications only be called from non-GPL software using system calls to the command line,
and whenever possible the redistributed GPL software should be the official copy from the applications owner with
the same last-modified dates and checksums. This seems to be more conservative than the FAQs interpretation of
the license, but not unreasonable in practice.
Another important license to be aware of is the Lesser Gnu Public License, or LGPL [8]. The key difference
between the LGPL and GPL is that LGPL libraries may be linked to other software without effecting the licensing of
that software. If the source code of the LGPL libraries were modified, then that source code must be shared with
any distribution of the software that includes those linked libraries. It is important to dynamically link these libraries
rather than statically link them. On the Windows platform, this would mean linking to, and distributing the DLL
files. Whenever possible, these libraries should be unmodified and any redistribution should be the official
distribution from the owner of the code with the same last-modified date and checksum so there is no doubt about
the libraries being unmodified.
One of the most permissive licenses is the Berkley Software Distribution License (BSD) [5]. This license
allows for inclusion of the source in proprietary software. It is essentially a warning that there is no warrantee for
the software and a requirement that any source distributed which includes the BSD licensed source also retain the
BSD license. The Apache License, MIT License and X11 License are similarly permissive [5].
The most permissive an author of software could be is to put the software into the public domain. This is not
strictly open source software in that it can be included into any other software application without affecting that
applications licensing. A noteworthy public domain code is the SPOOLES library (SParse Object Oriented Linear
Equations Solver). This is a very fast in-core solver used in open source and proprietary analysis software.
It is not uncommon for an open source software product to use a custom license depending on the aim of the
copyright holder(s). The Open Source Initiative [5] is good source for helping to understand these licenses and their
variants. Again, consultation with a lawyer is recommended.
C. Usability
Once an open source software tool has demonstrated that it is mature and has a license that is appropriate for
the purpose, the next issue to consider is usability. This is a somewhat a subjective test of how easy it will be for the
users to be productive with the application and for the IT staff to install and maintain it. Usability seems to be the
Achilles heel of open source software. Many great open source software projects are available but come with little
or no up to date documentation. Often they do not have a graphical user interface of any kind. They may not have
3of 12
American Institute of Aeronautics and Astronautics

compiled distributions and frequently only have versions which will work on GNU/Linux systems. Since many of
the applications were written and are maintained by volunteers, these more tedious aspects of software development
often tend to be lacking.
There is often a disconnect between the computing platform of choice by the general population and the
developers of open source software. While many developers who choose to offer their software as open source use
GNU/Linux, most personal computers run Windows. If the computer where the open source software will be run is
a Windows system, then start by checking to be sure there is a Windows installer for the application. If not, then it
may require some effort for a savvy user or IT professional to build the application in a GNU emulation
environment link Cygwin or MinGW. This build step may be nontrivial and will have to be repeated for each
update.
An initial impression of an applications usability can be gauged while considering some of the same issues
reviewed when determining the maturity of the project. Is the project fully documented in a language users are
fluent in? Are there user tutorials to help users get started? Is there a forum of users and developers for support
questions and bug reports? Without these, users will likely struggle to learn to use the application. This may not
always be an issue of concern. For example if the software is a LGPL library that is going to be linked to another
application, or if it is an application that the corporate computer services group is writing a custom interface for and
using system calls to interface with the GPL application, there may only be a few developers who will need to
navigate the learning curve. They may be able to browse the source code to learn what they need to before
developing an application or user interface for the ultimate end-users.
Once the existence of sufficient documentation and an installation for the computing environment are
established, the efficiency of use and stability ought to be considered. How quickly can the application be set up to
perform the task it is designed to perform? How long does it take to perform that task? Does the application
function without error? These questions can only be answered by having a domain expert use the application and
work through use cases. Start with any tutorials. If it is not a critical application, it is often sufficient to integrate the
application into a users work flow to test it. If it is an open source Computer-Aided Engineering application then
there are some specific considerations that should be addressed in tandem to these usability tests.
D. Computer-Aided Engineering Specific Considerations
While the issues described above related to maturity, licensing, and usability apply to all open source software,
there are additional considerations for use of open source software in computer-aided engineering (CAE).
Specifically, validation of results and compatibility with other tools in the product development process must be
weighed when evaluating any new software tool. Any CAE software should be tested with problems with known
solutions for each type of problem it is meant to solve. The analysis domain specific to the CAE software will have
classic problems which have been solved using hand calculations. In the case of Finite Element Analysis (FEA),
there are many such problems in Roarks Formulas for Stress and Strain [9] which are appropriate for validating the
accuracy of the results. There are also benchmark problems published by NAFEMS, a non-profit association for the
engineering analysis and simulation community, which were designed to exercise specific functionalities of CAE
software [10]. Working through some of these problems will demonstrate the limitations of the solver and the
efficiency of setting up a problem. These steps will also demonstrate the efficiency in processing the solver results
and will give the user a chance to evaluate the stability of the application.
Comparison to results obtained with commercial software is also useful. Many of the commercial FEA
vendors publish the NAFEMS results for their software, but it is recommended that anyone using these problems
resolve them. The NAFEMS benchmarks have strict mesh requirements that are often ignored. Doing so skews the
results giving an unrealistic impression of the accuracy of the solution and the appropriateness of element types.
Finally, CAE software is just one tool among many in the engineering design process. The input and output
files of the CAE software need to conform to a standard to fit into this process. Some of the open source preprocessing tools have STEP and IGES file input capability for geometry and some solvers can handle a subset of the
input file format used for commercial codes, but additional work will be required if seamless integration is a
requirement. If so, then it is likely that a data translation tool will need to be inserted into the process flow. Some
open source and commercial translation tools are available [11]. The development of a translator for a specific
application is often inexpensive in comparison to the other costs associated with CAE software.
E. Summary of considerations
The previous section has raised important issues related to maturity, licensing, and usability for all open source
software; and issues related to validation of results and compatibility with software tools specifically for CAE. If all
of these considerations are not fully realized there are a few steps that can be taken. If the missing functionality is
4of 12
American Institute of Aeronautics and Astronautics

not proprietary, ask the owner of the code if the functionality is in development or planned. Some developers may
adjust their development schedule to accommodate enhancement requests. When this is not possible or successful,
consider the development costs of extending the application yourself (or hiring someone to develop this
functionality), and compare this cost to the paid-up or annual license of the cheapest commercial alternative. The
former option is often an economical alternative to the latter. Keep in mind however, that this new code will need to
be updated to keep current with future updates in the open source code. Maintenance costs for these updates need to
be included in project estimates if the changes to the source code are not submitted back to the open source project
owner for inclusion into the main distribution.

III. Survey of open source software associated with Finite Element Analysis (FEA)
In the CAE software industry, where a single node-locked license could cost $20,000 per year, access to free
and Open-Source Software solutions may be surprising. Most of these open source tools have been developed by
academic institutions or governmental agencies. Some are managed by small companies who have built a business
on supporting the open source software. A minority of them have been sponsored by industry users of CAE
solutions who are seeking a less expensive and customizable solution.
Many of the open source CAE software programs share some common code which has made them faster to
develop and more reliable. Over many years, free and Open-Source Software libraries have been developed to solve
the various math problems common in numerical methods. These libraries include BLAS, LAPACK, EISPACK,
ARPACK, SPOOLES and many more. They have been tested by researchers in academia and industry and have
become robust industry standards.
In 1999 the geometry kernel and application infrastructure called OpenCASCADE was released as open source
by its owner Matra Datavision as it left the Computer-Aided Design (CAD) market. This set of libraries has been
continuously updated since then and is now in nearly every significant open source pre and post processor (Salome,
Gmsh, NETGEN, FreeCAD). These libraries have even found their way into the commercial pre and post processor
Patran as well. These math and geometry libraries have given open source CAE software a strong foundation on
which to build. Another common library for visualization is VTK. This is particularly useful for visualizing results
data during post-processing. The license is the very permissive BSD License (3-clause version). The use of these
libraries and their significance to the end user will be discussed further later in this section.
Open source FEA solvers and pre and post processors have been available for more than a dozen years. Most
of these have failed to garner enough support to continue past their original developers contribution. Those that
have are able to compete well in niches against their expensive commercial counterparts. This survey will consider
these open-source FEA software tools and how they currently fit into the ecosystem of computer-aided engineering
(CAE) software. This review will specifically focus on niches that open source tools fill that are otherwise not well
populated by commercial equivalents. One particular niche where these tools are very well suited and have
flourished is when a finite element solver and possibly geometry and mesh generation are needed as part of an
optimization routine or other automated system where no users need to directly interact with the software. There are
also uses for which open source tools are not well-suited. The most salient reason to favor the commercial software
products is their usability. None of the open source suites can go from a solid model to solution for a complex
assembly faster than ANSYS Workbench or Abaqus CAE when they are used by a proficient engineer.
The following survey of open source FEA tools is organized according to the typical FEA workflow. In
preparation for that, a brief review of FEA workflow and organization of steps is provided:
1.
2.
3.
4.
5.
6.
7.
8.

Geometry is imported or created then discretized (meshed) into elements


Section properties are defined for non-volumetric elements like beams and shells
Materials are associated with every portion of the mesh
Loads and boundary conditions are applied to the mesh
An analysis type and any associated parameters are defined
Output data types are defined
The model is solved
Results are processed and visualized based on the type and goals of the analysis

Steps 1 through 6 are considered pre-processing and step 8 is post processing. Traditionally step 7, the
solution step is done in a separate application which is unlikely to have a graphical user interface (though a graphical
launcher application which sets up the command line and manages the process is not uncommon). The pre and post
processing are typically driven by complex graphical user interfaces. In the most general case, there are three tools,
5of 12
American Institute of Aeronautics and Astronautics

the pre-processor, solver, and postprocessor, though in most cases the pre
and post processing is done in the
same tool. This review of FEA open
source options will start by dividing
the software tools into these three
categories, and will then compare the
tools to each other and to the
expectations of a user in industry.
This survey is not meant to be
exhaustive, but was intended to
include the tools available at this time
which come close to meeting the
considerations given in the earlier
section. An additional criterion is that
the application is available on both
Windows and UNIX-like operating
systems. For each tool evaluated there
will be an explanation of how the tool
currently fits into the ecosystem of
CAE software, with an emphasis on
industry applications. This review
specifically focuses on niches that
open source software tools fill which
are not otherwise well populated by
commercial equivalents. Finally, uses
for which the tool is not well-suited are identified.

Figure 1. CGX with mouse menu shown

A. Pre-processors
1. CGX
CGX is the pre and post processor for the CalculiX FEA Suite and is available for both Windows [12] and UNIX
type [13] operating systems. It is a very mature application with a world-wide user base. It is distributed under a
GPL license.
What CGX does very well as a pre-processor is to generate geometry and to mesh that geometry using a
structured meshing technique. The geometry can be generated within the graphical user interface but it requires
learning and typing commands that may feel foreign to some users. As surfaces and volumes are created they must
be partitioned so a structured mesh can be applied to it. Surfaces need to have 3 to 5 edges and bodies 5 to 7
surfaces. Partitioning complex geometry can be complex so it is difficult to translate a standard geometry file
format into a CGX geometry that can be meshed. Translations do exist for VDA/FS, ACIS V4, STEP and IGES.
The latter two are partial in that they only provide points, curves and some surfaces. While CGX is capable of
generating and meshing very complex geometry by a skilled user, this is something that CGX is not best suited for,
nor is it well suited to fit into a workflow where it must mesh geometry based on a CAD file.
An important feature of CGX is that it can be run as a background process to generate a structured mesh and
certain boundary conditions. This enables it to be used as part of a workflow in an automated way. It fits well into
an optimization routine where the geometry is well defined and easily partitioned. It also enables running CGX in
the background from an external application to generate input mesh and boundary conditions for a solver. The input
file format does not support parameters and some of the view-related functionalities, but otherwise is very complete
and useful.
CGX is a versatile pre-processor in that it can generate the mesh and certain boundary conditions in the formats
used by Abaqus, Ansys, CCX, Code_Aster, Dolfyn, Duns, Isaac, NASTRAN, OpenFOAM, Samcef and Tochnog.
It can also input and render mesh in the following formats: Abaqus, CCX and Netgen (.vol). That makes CGX a
nice mesh viewer for quickly checking a mesh that might have been generated in an application without a graphical
user interface. It also allows for CGX to add boundary conditions to a mesh generated by another application or to
translate that mesh to another supported format.
6of 12
American Institute of Aeronautics and Astronautics

Figure 1 shows an example of a


mesh rendered in CGX with the
mouse menu. This example is
included
in
the
CalculiX
distribution.
2. Gmsh
Gmsh uses the OpenCASCADE
geometry kernel and application
framework with the Netgen and
Tetgen meshing libraries. Gmsh is
a mature application licensed as
GPL and supported on Windows
and UNIX-like platforms. [14]
Gmsh excels at generating
geometry or importing geometry in
STEP, IGES or BREP formats and
then
meshing
them
with
unstructured mesh of triangles for
surfaces or tetrahedral elements for
solids. It can be run as a batch
process in the background or
Figure 2. Gmsh rendering of a mesh of an imported STEP geometry file
interactively. Its input file format is
complete and supports parameters, making it very nice for optimization routines. Since it inputs STEP and IGES
file formats, which are standard vendor neutral CAD formats, Gmsh makes a nice CAD viewer for quickly opening
up a file to view its contents without taking a license. Gmsh also inputs mesh files in its own MSH format, Diffpack
3D, I-deas Universal, MED, INERA Medit, Nastran Bulk Data, Plot3D Structured Mesh, STL, VRML, VTK and
PLY2 formats, making it a good viewer for these formats as well.
Gmsh does not explicitly create boundary conditions, but does have a grouping construct which is retained in its
mesh file. These can added to a mesh be used to apply boundary conditions by a downstream process. It is very
versatile in that it can save mesh files in its own MSH format, Abaqus, CELUM, Diffpack 3D, I-deas Universal,
Iridum, MED, INERA Medit, CEA
Triangulation, Nastran Bulk Data,
Plot3D Structured Mesh, STL,
VRML, VTK, PLY2 and SU2
formats.
Figure 2 shows Gmsh rendering
an imported STEP geometry file
which has been meshed in Gmsh.
3. Netgen
Netgen uses the OpenCASCADE
geometry kernel to enable it to
import STEP, IGES and BREP
geometry files [15]. Netgen is a
mature application distributed as
LGPL or GPL. It is distributed as a
library or an application with a
graphical user interface and supports
Windows and UNIX-like operating
systems. Netgen is a good meshing
tool for surfaces (triangles and
quadrilaterals) and solids. The solid
mesh is an unstructured mesh of
tetrahedral elements using either an

Figure 3. NETGEN generated mesh from STEP file in distributed tutorial

7of 12
American Institute of Aeronautics and Astronautics

advancing front or Delaunay


method.
Netgen is the most noteworthy
unstructured meshing library with
an LGPL license. If a closed
source application needs to link to
an open source meshing library,
then Netgen the best choice. If a
general pre-processor application
is needed, using Netgen from the
Gmsh graphical user interface or
Gmsh as a background process is
recommended due to the greater
flexibility you would have with its
richer feature set.
Figure 3 shows a mesh created
by importing a STEP file
contained in a tutorial which ships
with the distribution.
4. Salome
Salome is the most reliant of
the
pre-processors
on
the
OpenCASCADE geometry kernel
Figure 4. Salome rendering a mesh from its distribution's samples
and
application
framework.
Meshing is done with the NETGEN meshing library [16]. Visualization is done with the VTK libraries. Its
copyright is held by the French company, Open CASCADE which also holds the copyright for the OpenCASCADE
libraries. It is supported by the French energy industry (EDF and CEA). It is mature on the UNIX-like platform,
but the Windows build had lagged behind and is not yet stable. It is licensed as LGPL.
Salome is most noteworthy for its promise. It is well on its way to becoming a complete graphical user interface
driven pre and post processor and there seem to be significant resources being put into making project successful. It
also has a Python API for scripting and extending the functionality.
B. Solvers
Finite element solvers are often more akin to the web server or web infrastructure type application than it is to
most software we interact with on a daily basis. It is a typically a command line tool with little regard to aesthetics.
The pre and post processors often provide the graphical user interface. The purpose of the FEA solver is to
efficiently solve a math problem.
1. CCX
CCX is the solver for the CalculiX FEA suite. It is distributed as GPL and available for the Windows [12] and
UNIX-like [13] platforms. It uses the SPOOLES and ARPACK libraries for some of its solutions. The application
is very mature, well documented in English, and has an active developer and user base.
CCX supports a long list of a analyses: static, frequency, complex frequency, buckling, modal dynamic, steady
state dynamics, direct integration dynamics, heat transfer, acoustics, shallow water motion, hydrodynamic
lubrication, irrotational incompressible inviscid flow, electrostatics, stationary groundwater flow, diffusion mass
transfer in a stationary medium, aerodynamic networks, hydraulic networks, turbulent flow in open channels and 3D
Navier-Stokes calculations. It supports contact, many material models and nonlinear geometry.
The input format for CCX is similar to that of Abaqus, so many pre-processors can be used to generate the mesh
data. It also designed to have user functions to extend and customize its capabilities. These include: creep,
hardening, initial conditions, loads, mechanical material law (UMAT), thermal material law, nonlinear equations
(MPCs) and output.
CCX supports a wide range of 2D and 3D elements, 51 in total. While it has a selection of shell and beam
elements, they are internally expanded into 20-node hexahedral elements with the appropriate boundary conditions
applied to emulate the beam or shell behavior. This adds a significant number of degrees of freedom for models
with many such elements. It also limits the possible beam sections to elliptical and rectangular shapes.
8of 12
American Institute of Aeronautics and Astronautics

2. Code-aster
Code_Aster is developed by by
lectricit de France S.A. (EDF) and
the French Atomic Energy and
Alternative Energies Commission
(CEA). It is integrated with Salome as
part of the Salome-Meca package.
Code_Aster is licensed as GPL and is a
mature code on the UNIX-like
platforms [17].
There have been a few independent
ports of Code_Aster to Windows over
the past seven years, but none recently
and none complete. Code_Asters
documentation, code variables and
syntax are in French.
What
documentation that could be parsed
has been auto translated to English
with limited success.
The
reason
for
including
Code_Aster in this survey is to call it
to readers attention. If it is ported to
Windows and included with a stable
build of Salome, the combination will
be a serious competitor to many
commercial FEA suites. The feature
set in Code_Aster is very rich.

Figure 5: CGX post processing compress example.

3. Elmer
Elmer is a mature multi-physics solver from the Finnish non-profit CSC - IT Center for Science Ltd [18]. It is
released as GPL, supported on Windows and UNIX-like operating systems and has an active user and developer
base. The pre-processors commonly used are Gmsh, Salome and GiD. It can generate VTK format results for postprocessing in ParaView. Its documentation is online and in English.
Elmer is noteworthy for its coupled multi-physics solver. The analyses include: heat transfer, fluid flow, species
transport, elasticity, acoustics, electromagnetism, microfluidics and quantum mechanics. As a structural analysis
tool, there are many features which are expected that will be lacking. For example all the elements in a model are
required to be the same time (no mixing shells with solids) and beams are not implemented. If a coupled analysis is
required the user may need to accommodate for the lack of these features.
4. OOFEM
OOFEM was written and is maintained by a researcher at the Czech Technical University [19]. It is mature, has
an active user and developer group, is available for both Windows and UNIX-like operating systems and is licensed
as GPL. The documentation is online and in English. It uses IML, PETSc and SPOOLES libraries among others.
The results can be exported to VTK so post processing can be done in ParaView.
OOFEM has the expected structural element types, nonlinear geometry, and quite a few different analyses:
linear static, linear dynamic (eigenvalue analysis, direct integration methods - implicit and explicit), nonlinear static
(robust CALM solver), nonlinear dynamic (explicit, parallel version). There is also a transport module and a fluid
dynamics module.
A limitation on OOFEM is the lack of pre-processing. Some minor features one might expect, like shell offsets
and groups are not available, but it is otherwise a very good solver.
C. Post-processors
1. CGX
As a post-processor, CGX is focused on CCX results [12] [13]. This is the only results file format that it parses.
For more information about CGX, see its entry in the pre-processing portion of this survey.
9of 12
American Institute of Aeronautics and Astronautics

Figure 5 shows CGX post


processing the compressor example
which is distributed with CalculiX.
2. Gmsh
As mentioned earlier, Gmsh uses
the OpenCASCADE geometry kernel
and application framework.
Gmsh
parses results in Gmsh POS and MSH
formats and also the MED format. For
more information about Gmsh, see its
entry in the pre-processing portion of
this survey. [14]
Figure 6 shows Gmsh post
processing the dataset in the tutorial
which is distributed with Gmsh.
3. ParaView
ParaView uses the VTK libraries
and is developed by the same company
who maintains VTK (Kitware, Inc.)
Figure 6: Gmsh post processing the data distributed with its tutorial.
[20]. It started as a collaborative effort
between Kitware and Los Alamos National Laboratory. ParaView is licensed under a custom, but permissive
license similar to the BSD. See the ParaView website for the license text.
ParaView is most noteworthy for its incredible speed at rendering very large data sets.
Figure 7 shows ParaView post-processing the results from CCX for the compressor example which is distributed
with CalculiX.
4. Salome
As mentioned earlier, Salome uses the OpenCASCADE geometry kernel and application framework and is
maintained by the same company who holds the copyright for those libraries. Salome also makes use of the VTK
library for visualization. [16]

IV. Conclusion
Engineers looking to adopt open
source software to perform FEA related
tasks will find many good choices as
well as support in the online
communities dedicated to each of the
tools. The decision to use these tools
should be made with more caution than
is typically given to a commercial
equivalent because of maturity,
licensing, usability, validation and
compatibility considerations. There are,
however, good reasons to consider
open-source platforms. Specifically,
FEA-related open-source software is
worth considering for the following
applications:

For
an
organization
looking
to
automate
structural analysis on a
server or as part of an

Figure 7: ParaView visualizing stress results from CCX

10of 12
American Institute of Aeronautics and Astronautics

optimization routine there are ample Open-Source Software tools which are sufficiently robust and
sophisticated to fill this niche.
Application developers who need a finite element solution to support their application and are able to
interface with it via a system call will find that the Open-Source Software solutions adequate for most
of their needs.
Companies on very a tight budget or in developing nations will find open source tools very useful if the
cost of the commercial applications is out of reach.
Professors teaching Finite Element Analysis who want their students to see more of the inner workings
of the process may find the open source solutions a good choice.

The FEA related Open-Source Software is not a good choice at this time for the following applications:
If a large company is looking for a replacement for the commercial analysis software on the desktops of
their analysts, the open source tool sets are not yet up to the task due to usability considerations, though
there is every reason to believe that they will be some day.
If the goal of an FEA class is to prepare students for industry by getting them used to driving the large
commercial software packages, then the open source tools may not be a good choice.

Acknowledgments
I would like to express my appreciation for the many hours of work the members of the Open-Source Software
and hardware community have freely given to develop and support the many tools I and many others have come to
rely on. I particularly want to thank Guido Dhondt and Klaus Wittig, the authors of CalculiX, an open-source finite
element analysis suite.

Disclosure
The author is a consultant with Convergent Mechanical Solutions, LLC, with a specialty in open source FEA
tools. He has been an active contributor to CalculiX, an open source FEA suite since 2005. While the author has
spent many years working with and advising companies about open source software, he is not a lawyer. Consider
consulting a lawyer regarding legal considerations discussed in this paper.

References
[1] "StatCounter Global Stats - Browser, OS, Search Engine including Mobile Market Share," StatCounter,
[Online]. Available: http://gs.statcounter.com/#browser-ww-monthly-200807-201312. [Accessed 9 December
2013].
[2] "December 2013 Web Server Survey," Netcraft LTD, 6 December 2013. [Online]. Available:
http://news.netcraft.com/archives/2013/12/06/december-2013-web-server-survey.html#more-13637. [Accessed
9 December 2013].
[3] "Historical Trends in the Usage of Operating Systems for Websites," 9 December 2013. [Online]. Available:
http://w3techs.com/technologies/history_overview/operating_system. [Accessed 9 December 2013].
[4] "Apple Cedes Market Share in Smartphone Operating System Market as Android Surges and Windows Phone
Gains, According to IDC," International Data Corporation, 7 August 2013. [Online]. Available:
http://www.idc.com/getdoc.jsp?containerId=prUS24257413. [Accessed 9 December 2013].
[5] "Open Source Licenses," Open Source Initiative, [Online]. Available: http://opensource.org/licenses. [Accessed
9 December 2013].
[6] "GNU General Public License," Free Software Foundation, 9 December 2013. [Online]. Available:
http://www.gnu.org/licenses/gpl.html. [Accessed 9 December 2013].
[7] "Frequently Asked Questions about the GNU Licenses," Free Software Foundation, 11 June 2013. [Online].
Available: http://www.gnu.org/licenses/gpl-faq.html. [Accessed 9 December 2013].
[8] "GNU Lesser General Public License," Free Software Foundation, 9 December 2013. [Online]. Available:
11of 12
American Institute of Aeronautics and Astronautics

http://www.gnu.org/licenses/lgpl.html. [Accessed 9 December 2013].


[9] W. Young, R. Budynas and A. Sedegh, in Roark's Formulas for Stress and Strain, New York, McGraw-Hill,
2011.
[10] "The Standard NAFEMS Benchmarks," in NAFEMS publication TNSB, Rev. 3, NAFEMS, 1990.
[11] J.
Baylor,
"Data
Translators,"
Convergent
Mechanical
Solutions,
[Online].
Available:
http://bconverged.com/calculix/translators.php. [Accessed 9 December 2013].
[12] J. Baylor, "bConverged Products," Convergent Mechanical Solutions, [Online]. Available:
http://bconverged.com/products.php. [Accessed 9 December 2013].
[13] G. Dhondt and K. Wittig, "CalculiX," [Online]. Available: http://www.dhondt.de/. [Accessed 9 December
2013].
[14] C. Geuzaine and J.-F. Remacle, "Gmsh: a three-dimensional finite element mesh generator with built-in preand post-processing facilities," International Journal for Numerical Methods in Engineering, vol. 79, no. 11,
pp. 1309-1331, 2009.
[15] J. Schberl, "NETGEN - automatic mesh generator," [Online]. Available: http://www.hpfem.jku.at/netgen/.
[Accessed 9 December 2013].
[16] "Salome," Open CASCADE , [Online]. Available: http://www.salome-platform.org/. [Accessed 9 December
2013].
[17] "Code_Aster," lectricit de France S.A., [Online]. Available: http://www.code-aster.org. [Accessed 9
December 2013].
[18] "Elmer," CSC - IT Center for Science Ltd, [Online]. Available: http://www.csc.fi/english/pages/elmer.
[Accessed 9 December 2013].
[19] B. Patzk, "OOFEM - Object Oriented Finite Element Solver," 18 March 2013. [Online]. Available:
http://www.oofem.org/en/oofem.html. [Accessed 9 December 2013].
[20] "ParaView," Kitware, Inc., [Online]. Available: http://www.paraview.org/. [Accessed 9 December 2013].
[21] "The Open Source Definition," Open Source Initiative, [Online]. Available: http://opensource.org/osd.
[Accessed 9 December 2013].

12of 12
American Institute of Aeronautics and Astronautics