When we realise the huge investment required to use a commercial FEA software package, we all naturally think about using Open-source FEA software to solve the same problems for free… but is it so easy?
What is an Open-source FEA software by the way? How does it work?
That’s the question I’ll try to answer in this video and article.
What is the difference between a commercial FEA software package and an Open-source FEA software package?
Well, first… A software developed by a private company belongs to that company
Which means that they can do whatever they want with it.
It’s up to the company to choose what kind of problems it will solve, what kind of capabilities it will have and how the software will actually evolve.
The problem in private companies is that resources are limited to the developers hired by the company. So private companies need a lot of qualified developers and they need to invest capital into the development of their software.
If the company earns money and grow, a part of it will be reinvested into the software and it will improve…
But if the company doesn’t succeed in commercialising its software and can’t make it profitable, well… it might as well end up as a dead project…
(Sad to say, I know… but true… how many good software from the past have disappeared or have been purchased by bigger companies to be turned into the shadow of what they were??)
Now, Open-source FEA software are somewhat different…
The philosophy of an open source software is that it is developed by a community of engineers who have all a common interest into providing more advanced tools and developing together the current tools available.
It is something especially required in very complex topics such as finite element analysis because it requires an enormous amount of scientific knowledge…
Uniting together to create a common library of knowledge is much more powerful than trying to develop all the functions on our own…
Just think about wikipedia, which is also an Open-source based platform.
Everyone can contribute to improve the articles on Wikipedia and it becomes better and better every day!
It’s the same with Open-source FEA codes… they have been developed around a common basis of knowledge and remain open to new improvements by the community.
(Open-source software also have a license, so how you use them has still to comply with it…I’ll talk about that in the next article)
What are the advantages of using an Open-source FEA code?
Well, the first one (which is obvious) is that it is available in open access to everyone… for free.
The second huge advantage is that it runs natively on a linux machine and uses as many cores as you want to calculate very complex problems that require a lot of computational power.
Now…
Adding the experience of many of the most brilliant engineers to build the ultimate engineering tool is tempting…
So, why isn’t everyone just using Open-source FEA software if it is so powerful and free?
Open-source FEA Software are powerful, yes…
Also they are free to use, yes…
But they aren’t easy to use… far from that.
Especially if you find already that a software product like Ansys is complex, Open-source FEA is probably not for you…
This is probably the main advantage of a commercial FEA software package.
It is made to be usable almost “out-of-the-box” (well, in theory…)
Private companies put a lot of money into delivering FEA software products with a good graphical interface and a lot of automation tools that simplify the process.
(There are good aspects and bad aspects to that as well, of course. Read this article about Automation if that interests you)
Now, the question you are probably asking yourself is…
Why are Open-source FEA codes so difficult to use?
Like the name implies, the source code is open, so that’s almost exactly what you get ;-)
A lot of source code files…
What I mean by that is that you will need to do a major work to make it work by compiling all the files together
And without a background in C++, FORTRAN, Python and a good background in linux this task is almost impossible
(Notwithstanding the fact you should also be very good in FEA theory itself…)
Note: Some Open-source software DO come with an executable too… so you will have to search first if that executable exists ;-)
What is a source code and where does it actually come from?
Let’s come back to the very basics… what is a software?
A software is just some kind of tool that help you to calculate something efficiently using algorithms
Those algorithms are generally written in a low level programming language such as C++ or FORTRAN
(FORTRAN is more a language of the past, but still used a lot in the engineering community)
A low level language is a language that need to be compiled to a binary format to be read by the computer
This is done using a compiler such as GCC, GNU (or many others)
Then and only then can it be executed and provide some results.
Higher level programming languages such as python don’t need to be compiled and can be read directly line by line by an interpreter program, that’s the advantage, but they are much slower in terms of computational speed.
Low level language such as C++ or FORTRAN are used in software because they execute much faster than high level language … and this is crucial in applications such as FEA which have to run projects with thousands of lines of code
… Back to open source software
What you often get when you download an open source software is a bunch of C++ files that you need to compile yourself ;-)
So… you get the source code, and it’s up to you to transform it into a software which can perform the function you want
Try yourself if you have time, this is a very educational experience ;-)
An example of structural open source FEA code: Code Aster
Code Aster is an open source FEA code developed by EDF since 1989. It is under license GNU GPL since 2001. The core of the software is in FORTRAN while the modules are coded in Python language.
Code_Aster Website: http://www.code-aster.org/
In the next posts, I’ll explain how to install code aster and use it for you FEA projects
Interested?
Let me know in the comments if I should continue to write about this topic…
Flow Joe Galliera says
In my opinion, the main advantage of Open-Source software is that it is available for a much larger group of people (and sets of eyes) to dive into the code to improve its performance and nearly eliminate the software bugs. This requires the oversight of an organizing group (ideally) or individual to make sure that the code that is submitted is worthy enough to commit to the source code.
But once that happens, it creates a platform from which others can build upon and there is no need for re-writing solid source code which set the foundation for the application. I’d like to reference the Mozilla project for web browsers.
For CAE, I would push for a standard platform for meshers, solvers and visualization tools to be continually developed and built upon by the larger community, but leave it open to the entrepreneurs to put a front-end GUI pre-processor and post-processor as a commercial offering.
jeremy theler says
Dear Cyprien, as much as I always agree with you, open source software does also have copyright (you say that privative software does but you do not say that open source also does). Copyright is an essential concept for open source code (actually more for free software, but for the sake of argument let’s put them together in the same bag for now). One condition to publish software in an open source compliant license is that you have to publish the source code, but most of the programs are also distributed in binary form, ready to be executed in a number of architectures. From the top of my head, take FreeCAD https://freecadweb.org/ and you can run a fully free and open (LGPL’ed) source CAD system in no time.
Roberto says
Nice, please continue with this topic!
Krzysztof says
Considering Salome-Meca containing Code_Aster. Well, I can’t agree that you have to compile anything and the installation process requires uncompressing and writing one command in terminal. That’s all you need to do. All the prerequisities come with Salome-Meca. One download, one simple installation process, no hassle with dependencies…
You know what, in my opinion there are couple of reasons why Code_Aster isn’t used by a broad group engineers in companies, in commercial applications.
First is very steep curve of learning the software and new OS (it runs only under Linux).
Second (which will change 1 September this year) you have to write a command file in dedicated “text editor” (eficas) or by using any kind of text editor to write the code. This attitude is prone to mistakes. Commercial software does the same, but you don’t have to be a sort of programmer to create the file. You just choose options available by ticking some checkboxes or so. AsterStudy, which comes this year will be closer to the way commercial software behaves (https://www.code-aster.org/V2/spip.php?article1001).
Third reason is lack of good translation of the documentation to English. It’s only a machine translation with lots of mistakes. Original is only in French (this may be a problem for most of us, I think).
Fourth – people are convinced that when they buy a software it won’t have bugs inside which may lead to obtaining trash rather than results. Well, every Code_Aster version is tested by running test cases on different platforms. It’s shared online only when that particular version of C_A passes all the test cases.
There are some drawbacks in the package. In my opinion preprocessor is poor. I’m used to 3D CAD modelling software and the difficulty in preparing geometry in Salome (and meshing) is like going back from Catia to AutoCAD to draw a car. You can do that, but it takes ages.
I disagree about the reason why the cost is so huge. Well the cost of 3D modeling CAD software (for example SolidWorks) is lower than CAE system not because speeding up the developmnet process (if you exclude simulation from deign you will finish your project in shorter time). It costs so much because there are companies which can pay that much. If noone would buy it, the cost would be lower. I don’t believe that development of this kind of software differs in costs compared to development any other software. Don’t tell me that there is a huge difference in wages between programmers of SolidWorks ond of Abaqus…
Cyprien says
I wasn’t talking about Salome-Meca, I was talking about installing the solver as a stand-alone…If you install Salome-Meca, it’s much easier to install indeed.
Krzysztof says
OK, I see. Well, may be I’m nit-picking but considering installation of solver only and comparison to full commercial software makes little sense.
Flow Joe Galliera says
a) Software will always have bugs, regardless of whether it’s free or paid, anyone who thinks differently is mistaken.
b) If no one bought CAE software, cost would NOT be lower. The market defines the value of products that people buy, not how much it costs to make. One great example of market pricing is eyeglass / sunglass frames, which is basically a monopoly owned by very few manufacturers. If the company making a product cannot make a profit because the cost is too low, they will not manufacture the product. So if no one (except very large manufacturers that could afford it) bought commercial CAE software, the price would be raised accordingly to exclude mere mortals; in contrast, we are able to enjoy reasonably priced CAE software because more and more people realize the inherent value of the tool(s) as part of the overall design process.
3) Developers are paid based on experience, education and market averages, and only perhaps at most a tertiary reason on what type of software they develop. If it does depend on the type, then they will move to another type of software where they can demand a higher salary.
Cyprien says
I may have explained a bit hastily some of the things in the video… What I meant about the cost of the software is that it is mainly defined by the market. They do target big companies yes… but those companies know that the software is an investment for them, which mean that they can amortise the cost if you compare with the additional profit that those software help to generate by providing them with higher quality products, happier customers and a more efficient design process. The sum they invest on the software is small in comparison to the size of the projects that benefit from those same software. Moreover, as Joe mentioned, it’s true that it has to be beneficial for both sides, the company using the software and the company developing it. The price is higher but the number of copies sold is much less than a normal productivity software such as “Camtasia” for example… Developers are also paid higher than in other software developing companies from what I observed, because they need to be proficient both in developing software and in mechanics… (If you search on Glassdoor.com you’ll have an idea off the range)
Ravi Akula says
I am very much interested to contribute and be involved with the free software for CAE.
Kindly tell me where to start.
Gerrit Grundling says
Open source FEA makes itself available for customisation to suit each company’s needs. If that company wishes to share its enhancements/additions/modifications, it may do so. It may not sell it, however.
Making a convenient pre-processor and post-processor shouldn’t be more difficult than making an open source CAD package (some which exist already), provided there is enough interest from both the users (who are most likely not programmers) and coders (who likely don’t know or care about FEA and its use).
As a student, I had to write several FEA codes as part of my undergraduate training. We used Matlab. The pre-processing was tedious and time-consuming, but it gave us an understanding of how to potentially automate it. Post-processing was easier, as it was just knowing where the data is and plotting it. We even had to make our programs so that it could compile our inputs into a Nastran input structure, or open and solve a Nastran input file.
Cyprien says
Thank you for sharing your experience Gerrit, I am very curious to know more details about how to build a custom pre-post processor! That’s something that I would like to try as well. If you are interested to write an article about it, please let me know, I could share it on the blog.
Corrado says
Thank you Cyprien for your work.
Ram Dhiwakar S says
Thanks so much Mr. Cyprien for this very useful post.
Babacar Diouf says
Je voudrais implémenter un modèle mathématique de comportement de matériaux granulaires de chaussées dans code-aster. Est- ce possible?
Cyprien says
Ca doit etre possible avec MFront qui est integré a Code Aster