A familiar commercial software can boost engineers productivity to a maximum. The downside is cost, especially for research and education projects. The good news for 2020: We found that some GNU software evolved to user friendly products, suitable for a variety of problems and user knowledge levels. This article outlines our opinions, hints and conclusions regarding FreeCAD, GMSH and Salome Meca open source suftware.
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…
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).
Let’s turn this question the other way:
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?
One complication here is that user requirements and knowledge levels vary. It is 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
If you are novice in FEA, we have an introductory article about this method: https://www.quanty.com.au/blog/2019/09/12/fea-tips-and-tricks/
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 use single bundles equipped with diverse features.
This article shows only three favorites we have identified from this search.
We hope this info will help you to make your own choice pretty quickly.
According to the above tiers of needs, 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 welcome our champions. All of them 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
These two options of the workflow have generally similar features, but 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 were used to sweep a pipe mid-surface along the path (too easy):
- Technical Drawing workbench helps making drawings from bodies nearly automatically, similarly to commercial CAD software:
Some other interesting Workbenches:
- 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
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. There are some nuances though:
The current pre-processor capability is intended to 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).
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 the pipe was modeled 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 is: 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.
I managed to find another workaround for this limitation:
Good structured Quad and Hexa meshes can be generated externally, particularly using GMSH GUI, then – imported 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. The external GMSH GUI is discussed more 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.
Few words about structural elements: Beams, Shells: Yes these are supported, cross-sections, orientation and thicknesses can be assigned. FEM workbench is indeed a minimalistic marvel!
Finally, FreeCAD FEA results can be exported to the bespoke ParaView post processor https://www.paraview.org/
To wrap out 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 suited 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)|
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.
This reputable software is known for decades and has recently obtained a graphical interface (GUI) https://gmsh.info/. Initially let’s focus on the meshing (elements generation) capabilities, which we have already used in the FreeCAD FEM workbench as explained above.
Meshing algorithms are classified by GMSH 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 a matter of workflow for complex surfaces, 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).
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|
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.
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).
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.
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.
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 missed in all the reviewed 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. Since I was exposed to 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, groups of geometry need to be re-created at the mesh level again, and similar pedantically appearing rules).
- 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|
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. Providing these issues are alleviated in the next releases, this bundle could be out-performing most commercial packages (providin that you will have time to learn it).
I’m always jealous about people working at R&D agencies, where reading a 1000 page manual is a part of a paid work process. Sadly, we are in the competitive consultancy jungles, where such long tasks aren’t tolerated.
And 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. FEA is already implemented well at a basic level, 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. [Autodesk is sobbing in the corner]
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. Providing this is fixed and equipped by problem focused tutorials, the Salome Meca bundle may outperform most commercial FEA software for free. [ANSYS goes fainted]
3rd place: GMSH GUI with getDP solver was rather scarce on the interface and continued the Jesuitic 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 can be regarded truly as a meshing authority for advanced users. Luckily, it can also be used as an external meshing program for the FreeCad and even Salome workflow. [ICEM reaction is unknown, as it was bought by someone and presently absent]
DISCLAIMER: I hope, you appreciated some humor here. More seriously, you choice of software depends on your needs and needs to be carefully examined prior to any decision making. This article is just to show how the GNU free software managed to evolve towards a practical applicability.
With sincere gratitude 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.