Our review of free CAD & FEA software. Contest results of FreeCAD, GMSH and SalomeMeca2019. Explore their features pros and cons for general use cases. We found one absolute winner in this contest. A familiar commercial software can boost engineers productivity to a maximum. The downside is its cost, especially for research and education projects. The good news for 2020: We found that some GNU software has now evolved to user friendly products, suitable for a variety of problems and user knowledge levels.
To begin with, being involved in any kind of engineering, either by profession or as a hobby, you have probably faced the challenge of choosing a CAD software for:
- making a drawing,
- preparing a model for your 3D printer,
- simulating an object for stress analysis (FEA),
- solving a fluid-structure simulation using parallel computing maybe,
- and more…
Indeed, is there any ‘best-of-the-best’ software package to do it all?
Perhaps yes, but it would rather cost a fortune (and only if they ever get back to us with a quote). But let’s turn this question the other way now:
Is there a free of charge ‘all-in-one’ Computer Assisted Modeling software suitable for domestic and commercial use, thereby offering a good user experience? In 2020?
However, one major complication here is that user requirements and knowledge levels vary. It is, thus, handy to outline few relevant tiers of problem complexity:
- Tier 1: Home user or designer just willing to model an object and check the stress state under loads to compare it with safety factors
- Tier 2: Strength engineer familiar with Finite Element Analysis (FEA) and having an own judgement on the modeling quality within a basic analysis: linear static, natural frequency, steady state thermal problems, seeking a cheap and robust tool
- Tier 3: Researcher facing a wide rage of specific physics (electricity, magnetism, fluid flow) or non-linear problems, with no limitations on the time spent in reading sophisticated manuals
By the way, if you are novice in FEA, we already have an introductory post about this method.
We’ve spent quite a while on updating the free market picture in 2020, as there are numerous options of using separate packages, combining them into a workflow, and even using single bundles equipped with diverse features. Correspondingly, the present article shows only three favorites we have shortlisted from that search. And our screening criteria were:
- Bundled software, with a minimum need for import/export or using substitute tools
- Easy to Use interface, at least for basic analysis types, with a good documentation available
- Comprehensive FEA features for advanced modeling and analysis, desirably with validation cases, and specific physics capabilities
Now, it’s the time to watch the competition. All the contestants have quite a history of development and still need some polishing of a various extent, which will hopefully occur in a near future:
FreeCAD v0.19 bundle
FreeCAD software www.freecadweb.org is a GNU community project with the own Wiki for tutorials and reference manuals. This is a bundle product having a common interface to various specific workbenches (tools), such as:
- Sketcher (2D) used for PartDesign (3D) extrusion, boolean etc. operations to create parametric bodies
- Draft (3D) creates primitives (profiles, paths) for the Part (3D) workbench sweep, loft etc. geometry operations
While these two options of the workflow have generally similar features, they offer some specifics as well. For example, if you need a 3D path for a sweep operation, use Draft in lieu of the Sketcher, latter limited to plane geometry only. It may sound a bit cumbersome, but their Wiki tutorials will quickly help.
Next picture shows how the Draft and Part workbenches can sweep a pipe mid-surface along the path (too easy):
- Technical Drawing workbench of FreeCAD helps making drawings from bodies nearly automatically, similarly to commercial CAD software:
Some other useful FreeCAD Workbenches are:
- Assembly (creating assemblies of bodies, actively developed for v0.20)
- Arch (architectural model with BIM)
- 3D printing (.stl model generation and preparation for printing)
- Robot (motion simulation and analysis)
- Rendering (creating realistic visual scenes)
- … and more
Overally, What a Gem! In addiiton, FreeCAD supports import/export for many external file formats. But in our context, let’s rather focus on the built-in FEA capabilities:
- FEM Workbench provides a pre/post processor interface to free solvers: Calculix, Elmer FEM, Z88. Though , there are some nuances:
The current pre-processor can work seamlessly with solid geometry, automatically producing triangular (Tria) and tetrahedral (Tet) meshes at a minimum demand to user’s knowledge (using the well known Netgen or GMSH engines).
Although, this is good and bad simultaneously. Ease of use opposes the user’s need for learning FEA and the best practices of using it, including mesh control, choice of element formulations etc.
For example, the below triangular mesh on the swept surface looks strange to me. It would be even worse if we modeled the pipe as a solid and then meshed by tetras, which is a ‘piece of cake’ task in the FreeCAD FEM (yes, these are nuances, but quite important ones):
My question was: Why providing interfaces to such advanced tools as GMSH and Elmer FEM solver when promoting triangular meshes? It needs to be Quad shape! Thankfully, the FEM workbench supports 2nd order elements to alleviate the problem. Luckily, I’ve managed to find another workaround for this limitation:
We can generate good structured Quad and Hexa meshes externally, particularly using GMSH GUI, then – import them into the FreeCAD FEM. The only limitation – you’ll need to use Calculix solver of the workbench afterwards. By the only reason that the Elmer solver interface says: Wrong mesh, it needs to be created using GMSH! Knowing that the imported mesh (.unv) came specifically GMSH indeed, this warning sounds quite funny. We will discuss the external GMSH GUImore in the next section.
Nevertheless, this solver limitation to Calculix engine isn’t critical in most cases, as the Calculix solver supports Linear static, Thermo-mechanical and Natural frequency analysis – a gentlemen’s kit for basic FEA tasks. And just a few words about structural elements: Beams, Shells: Yes these are supported, cross-sections, orientation and thicknesses can be assigned. The FEM workbench is indeed a minimalistic marvel!
Finally, FreeCAD FEA results can be exported to the bespoke ParaView post processor https://www.paraview.org/
Summarizing the FreeCAD FEA features, while still applauding standing on my feet, here are the pros and cons:
|FreeCAD FEM Pros:
|FreeCAD FEM Cons:
|Single bundle for all sorts of CAM
|External components (mesh, solvers) are needed for an intermediate FEA level . Solvers are not fully interfaced as yet
|Excellent import/export list
|Best suits for solid geometry and triangular meshes, validation cases are rather absent
|Easy to use FEA for beginners, with many tutorials
|Can be dangerous for beginners as nuances matter (such as mesh and elements formulation)
MY VERDICT: FreeCAD is a must have for everyone involved in Computer Assisted Modeling (CAM). FEA capabilities are still basic, but there is a perspective for an improvement towards an intermediate level in a short term. Keep watching it.
Truly fascinating that this reputable software known for decades has finally obtained a graphical interface (GUI) https://gmsh.info/. Firstly, let’s focus on the meshing (elements generation) capabilities, which we have already used in the FreeCAD FEM workbench as explained above.
GMSH classifies its meshing algorithms into structured and non-structured ones:
- Structured meshes are in conformance with the body shape, as in the title picture: the elements just repeat geometry when being swept along it:
Limitation: I didn’t mange to make a structured mesh on a FreeCAD .step geometry. To obtain the above shown quality, it was necessary to create and sweep primitives inside the GMSH GUI, which isn’t difficult for simple cases (Extrude/Rotate, etc.). Imported geometry tends to produce non-structured meshes:
- Non-structured meshes are created within boundaries using sophisticated algorithms. Not all shapes can be meshed solely by Quads. In these cases, the mesh becomes quad-dominant with some triangles in-between. Occasionally, you may also get seriously distorted Quad mesh without any explicit warnings:
As such, a workflow for complex surfaces you can consider the following sequence:
1) Create complex geometry in FreeCAD, export .step file
2) Import into GMSH GUI, heal the geometry as required, and create a quad-dominant unstructured automatic mesh, export .unv file
3) Return to FreeCAD, import .unv, move it into the FEM workbench analysis tree, apply physical conditions, analyze, visualize in ParaView
This sequence will produce quite professionally looking outputs for basic FEA analysis types (remember, imported meshes are apparently limited to the Calculix analysis only, maybe to Z88 too – I didn’t check that).
Indeed, the GMSH GUI entered our competition and performed very decently as it has geometry modeling capabilities and even a partner multi-physics solver getDP https://getdp.info/, which is sadly interfaced in the GUI only briefly. This means that one needs to create or edit a getDP analysis input file manually to get something shown in the GMSH GUI. We sincerely didn’t have time to learn the input file scripting as well, and concluded straight on the pros and cons, while holding our breeze and looking in the future:
|GMSH GUI Pros:
|GMSH GUI Cons:
|Built in geometry engine
|Controlled by text menus and tree browsing, seriously lacks buttons to speed up the work
|Pro-level meshing, value to master by anyone FEA
|Demands an appropriate experience from the user, steep learning curve, lacks documentation
|Partner solver (getDP) is only briefly supported
|Solver interface is minuscule, requires text file editing and getDP commands knowledge
MY VERDICT: GMESH GUI is another bundle with professional capabilities, rather of the Tiers 2 or 3. Not suited for beginners, unless the sole meshing feature is used in conjunction with the FreeCAD FEM workbench. There is a great perspective that the GMSH becomes a value of choice, providing that the interface will be re-vamped, especially for the getDP solver support.
Surely, the Salome and Code_Aster bundle (called Meca, https://code-aster-windows.com/) is perhaps the most reputable among the studied options. This project was inspired a long ago by the Electricite De France (EDF) consortium. It had nuclear energy applications, and there are thousands of validation cases for the Code_Aster solver. Salome as such is a geometry, mesh and visualization Pre.Post processor (also using the ParaView engine).
HINT: Salome viewport navigation is similar to the FreeCAD ‘Gesture’ navigation style, and to the GMSH GUI OpenCascade pan, zoom, rotate manner. This means that very similar mouse controls apply to all the bundles studied here.
Salome Geometry modeling capabilities are very similar to FreeCAD: Creating bodies through extruding sketches (since recently) and using 3D drafts for Extrusion, Booleans, and so on. There is a range of geometry healing options, which are very useful. Though, one remarkable feature of Salome it the capability to automatically create structured meshes, and even to model piping junctions for these correctly:
Swept and otherwise made regular shapes can be seamlessly meshed with structured meshes of Quads and Hexas. Next pictures shows a Salome Quad mesh:
One thing I was missing in two other packages was a manual editing of elements (splitting, combining, moving nodes) giving a full control over the mesh quality. Salome offered some of these features, but not a complete set.
Code_Aster solver has hundreds of element formulations, plenty of advanced analysis settings, deals with non-linear and other sophisticated problems. In conjunction with the Salome impeccable geometry modeling and meshing capabilities, my feel of the bundle escalated to a WOW FACTOR! But again, there were some nuances though:
- The worst thing about the current Salome Meca is the solver interface, which is just an overwhelming bunch of French abbreviations, each having a dozen of pages of theoretical explanations. As I studied the French FEA language before, that didn’t hurt me, not too sure about you. Luckily, there are YouTube enthusiasts producing understandable video tutorials for Salome FEA.
- Some workflow sequences are not too logical and need user adaptation (for example, the need to re-create the groups of geometry again at the mesh level, and more similar rules of a pedantic appearance).
- Support for structural elements (Beams, Shells) is present, but when it comes to the analysis, the Code_Aster instructions appear rather transcendent, so that you may need DAYS to figure out how work with another element formulation. Once again, despite the numerous documents, the present documentation is a practically poor tutor.
Nevertheless, from my FEA experience, I said WOW! What a software! While still dreaming to learn all the Salome Meca 2019 capabilities (it’ll take a year to be frank), let’s nail the major pros and cons of it:
|Salome Meca Pros:
|Salome Meca Cons:
|Impeccable geometry and mesh control capabilities
|Interface is overloaded and has a sometimes strange logic, needs long user training
|Advanced and sophisticated solver with validation cases
|Not user friendly interface to the solver, only fragmentary translated into English
|Huge number of FEA controls and supported element types, including beams and shells
|Exhaustive but theoretical documentation lacking step-by-step tutorials for typical problems
MY VERDICT: Salome Meca 2019 is obviously a Tier 3 software with the highest number of capabilities. I can’t recommend it as a bundle for basic analysis needs due to the cumbersome documentation and user-unfriendly interface. Otherwise, this bundle could out-perform most commercial FEA packages (providing that you have enough time to learn it). Not surprisingly, I much envy those people working at R&D agencies, where reading a 1000 page manual is a part of their paid work process. Sadly, I’m now in the competitive consultancy jungles, which don’t tolerate such long retreats.
Finally, here are the places we have assigned subjectively in our context of practical and timely engineering modeling and analysis needs:
1st place: FreeCAD v0.19 was our discovery of the year. Incredibly user friendly all-rounder for all things CAM. Its FEA capabilities are quite impressive for a basic level of tasks, and there are perspectives that it will get even better shortly. Applauding with a great respect to their open source team! I will personally donate if it ever makes us any revenues.
2nd place: Salome Meca 2019 was a WOW FACTOR for its comprehensiveness and advanced capabilities. A special prize for the excellent improvement over years (I last tried it in 2011 and it was rather non-usable then). Nowadays, it only has significant issues in the Code_Aster interface. If they fix that interface and add some tutorials in English, the Salome Meca bundle may outperform most commercial FEA software for free.
3rd place: GMSH GUI with getDP solver was rather scarce on the interface and continued the Jesuitical tradition of making user write analysis input files. Cosmetic fixes to GUI (buttons, solver interface) would make this bundle a good opponent to the above two. Currently, GMSH is truly the meshing authority for advanced users. Luckily, we can also used it as an external meshing program for the FreeCad and even Salome workflow.
DISCLAIMER: I hope, you appreciated some humor here. More seriously, you choice of software depends on your needs: carefully examine them prior to any decision making. This article is just to show how the GNU free software evolved towards a convenient usability by now. If you ever require specific FEA services in our responsibility, please feel free to contact us here.
Gratefully to the involved open source teams, and particularly to Salome tutorial enthusiasts Cyprien Rusu and Digvijay Ptankar, we publish this particular post as a Creative Commons License (free to re-use by anyone):
This particular work is licensed under a Creative Commons Attribution 4.0 International License.