Open-source software is a significant topic in technology and affects all kinds of human activity. This also applies to engineering. Open-source for virtual prototyping has strong pros and cons and no wonder its reputation is very contradictory among engineers and even more among managers. While open-source is typically well accessible, flexible, and ready for further development, it is often missing a user interface, professional services like technical support, best practices, benchmarks, documentation, training, and a clear roadmap of its future development. The goal of this article is to make a summary of various aspects of using open-source for engineering and share 15 years of experience with open-source CAE and virtual prototyping. We have chosen a few most significant aspects that had proven to be critical for simulation software users.
What is CAE open-source Software?
For years, we have been maintaining the website of CAE Open-Source Software, where the most popular engineering open-source packages are listed. The website became quite popular over time and the number of its viewers is steadily growing. It’s evident that there are hundreds of open-source projects out there and open-source popularity is growing rapidly. However, using open-source for productive projects is an extremely complex task. In the following article, I would like to point out some important aspects of using open-source for engineering simulations compared to a traditional commercial code licensing model. To exclude all doubts, the term open-source stands for software that is allowed to be freely used, modified, and shared under a certain open-source license which is in the field of software engineering most typically GPL, BSD, or MIT license. The term commercial code (software) stands for proprietary software that requires a license key (or other authorization) provided by the software vendor to anyone who wants to use the software.
Cost & Effort
Being free is the most evident benefit of open-source. At least at the first sight. However, productive use of the open-source brings additional costs which are not obvious in the beginning. While commercial codes have known prices, are ready-made, and are relatively rigid, open-source is free in the beginning but additional effort is to be spent on understanding, implementation, and verification. And such effort is merely the cost in a way. All in all, open-source is not significantly cheaper than commercial software, which is a common myth. Users often confuse accessibility with cost. Yes, open-source is still cheaper and definitely easier to start with than commercial code, but at the end of the day, the difference in the total cost of ownership isn’t that enormous.
The visualization above shows a plot of imaginary open-source and commercial software positions with respect to effort and cost. For example, the letters ‘A’ corresponds to the technologically equivalent software solutions using either commercial software or open-source. When using commercial code, the software costs more but takes less effort and when using open-source, the equal software costs less but takes more effort to get going. At the end of the day, the difference in the total cost of ownership is not as big as you would expect. You can’t avoid costs. You can’t avoid effort. You can only choose their ratio. In fact, it’s a classical trade-off between time and money. There are additional important factors like time and scale that have tremendous effects on costs. But knowing this is just a big generalization. Let me express it in sports terminology. When it comes to costs open-source slightly wins. When it comes to effort commercial software slightly wins.
Simulation software accuracy is a broad topic itself. Open-source has by nature its source code open which makes it very transparent in terms of what methods are used and how they are implemented. Commercial software source codes aren’t available, leaving a lot of space for questions. We know that commercial codes tend to please their users (algorithms stay on the safe side which goes against the accuracy) but in return commercial codes bring back certain value out of the extensive experience with real industrial projects. Over the years, we made dozens of studies with our customers that confirm that none of the open-source or commercial code is more accurate than the other. After all, it’s humans and their skills and experience who make the results accurate, not software. When it comes to accuracy it’s a draw.
With the rise of modern trends in simulations like for example LES, simulation-driven optimization, ML/AI, and multiphysics – more and more simulations (or larger simulations) need to be done. Commercial software vendors often charge extra fees for additional users, HPC, or hardware installations. Open-source is free at all scales and for that reason, it has fantastic potential to scale up the simulations to the full capacity of the resources available. When it comes to the scaling potential open-source is greatly superior to commercial software.
Every simulation software user has to have certain minimum skills, CAE is not a calculator after all. By nature, the commercial software has to be sold and is being developed to be user-friendly and to make an impression on its users. Unlike open-source. Open-source is usually being developed under modest conditions in smaller teams or communities, with less emphasis on user-friendliness, GUI, or documentation. Open-source generally requires more skills than commercial codes to compensate for all those deficiencies. The good news is that those who learn to work with open-source, will be lifetime masters of commercial codes because then they are easier to use. But yes, when it comes to the required skills the commercial software requires less.
The collaboration potential of any software is extremely important. Open-source is highly collaborative because it has no hardware locking and similar limits. It can be not only used in a team (share & re-run) because it is freely sharable but it can also be further developed by anyone. With open-source, everyone is welcome. Due to its accessibility and open code, everyone can come and start where their predecessor ended and take the software to the next level and share it with the community. To allow someone else from a far far away to go on. And so on and on. On the other hand, commercial codes are by far not that accessible and definitely do not have an open code. When it comes to collaboration potential open-source largely wins.
A clear vision is typically a big problem for open-source software. Open-source is not directly committed to commercial success. While the commercial software has been created for business, open-sources are often missing a head, an authority that takes all the responsibility. It misses a leader who shows the way, and who is globally accepted in the community. Where there is no vision, the people perish. (Proverbs 29:18) There are many isolated groups, from lonely wolves to university groups and commercial companies who have no commitment or mandate to deliver any guarantees. As a result, all the open-source-related information is fragmented and scattered everywhere and nowhere at the same time. Various forks and flavors. Without the best practice. Without robust methods. Without a clear roadmap, documentation, or clear vision for the future. Technical support is a huge problem too. Open-source users remain dependent on freelancers or private companies of different quality. No wonder, many open-source users are confused and give up too early. When it comes to the vision and responsibility open-source badly loses to commercial software.
A bit of explanation for the beginning: Vendor lock-in is a situation in which a user who is using a product or service cannot easily transition to another product or service. Vendor lock-in is usually the result of proprietary technologies (commercial codes or services) that are incompatible with others in the market. In the CAE field, as well as in most other technological fields, the commercial codes are ahead. That allows them to be the first to the users and commit them to use their technology for years. For users, later, it’s very difficult to change one technology for another because changes bring complications and the fear of failure. It requires courage to change the concept that was working for years. There is a lot of inertia involved. Commercial codes are almost always connected to the vendor lock-in of its users who have no other option but to stay-and-pay or undergo a risky way of changing the technology. As with any technology, open-source too locks the users down but without having an obligation to pay the recurring fees for the licenses (or service). That gives the open-source users free hands to take the decisions based on the results not on the budget or fear.
In simulations, there is a huge difference between doing a project for the first time and repeating a project that has already been done before. As commercial codes tend to be general-purpose codes with user-friendly interfaces, they seem to be better prepared for first-time projects. That means, that if the user is more likely to do new and new different projects, the commercial code might be a better choice in that case. On the other hand, open-source is less user-friendly in the beginning but definitely pays back in long-term usage. That means, that if the user is likely about to simulate repeatable simulations, for example optimizing one specific product or similar products, then open-source might be a better choice because of its lower costs and flexibility.
Academic Ground Paradox
Open-source has all prerequisites to prosper on the academic ground. It’s accessible, shareable, and transparent because the code is open. Despite all these benefits, open-source is badly losing in competition with commercial codes on the academic ground. Universities and research centers are receiving super-cheap commercial software licenses not entirely because they are poor non-commercial institutions. They are also a source of young people – the future customers. According to the saying: What youth is used to, age remembers. Commercial code vendors are too smart to leave this opportunity behind. As a result, almost every university has access to cheap commercial software licenses and happily uses them for their readiness and easy start. Open-source is rather used in universities where enlightened leaders got to understand the value of deep knowledge and their own research.
All of you, who have ever been involved in a development project know that writing documentation is somehow not a very popular duty. Documentation is an eternal issue of open-source software because the authors are usually not forced to make great documentation. At least, documentation is not a primary goal. Unlike commercial software. There exists usually a well-maintained process of documenting things and some authority to give it a check. As a result, the open-source users are often left to Googling, fragmented information, and they have to wait for a while until their learning curve takes off.
Corporate Knowledge Management
Many corporations are relying on commercial software without realizing that they don’t own the process. If access to the software would be lost, what would be the consequences? Open-source is much more suitable for the management of corporate knowledge because the user technically owns the process. It’s all under the roof. As a result, open-source is very suitable as a basis for in-house software and for maintaining the unique proprietary know-how of the enterprise.
Here we go again, robustness is generally a highly important ability of any simulation software. While commercial code is from the beginning developed to be as robust as possible (in terms of convergence and input data) to please its users who are willing to pay for it, open-source is typically being developed for a single application where it shows the best possible performance, but the robustness is typically not on the top of the priorities. As a result, commercial codes in their ready-made form are in general more robust than open-source codes.
In real life, every project is different. And at the end of the day, the devil is always hidden in the detail. It often happens that the project that is currently on the table requires something a little bit different than you have at hand. Sometimes it’s a term in governing equations to add or to remove. Sometimes it’s a different results file formatting. It may be necessary to recompile the software to resolve the hardware or OS compatibility issue. For all that cases, open-source serves much better because it is very flexible (remember the source code is open).
Where are we going?
As we can see, open-source has many advantages as well as disadvantages compared to commercial software. However, for productive simulations, the vast majority of simulation engineers are still using commercial software. Even if open-source can do the same at very interesting conditions. I have discussed this phenomenon with some business partners, clients, competitors, and people who are well aware of market numbers. It seems that the drawbacks like the extra effort and required skills, together with vendor-lock-in, discourage engineers from putting open-source massively on production. It’s clear that those users who already have a working solution based on commercial software, are much less tempted to try the open-source. For them, cost savings (using open-source) are not the top decisive factor. It’s not easy to make changes to the concept that is working. It’s too risky.
On the other hand, open-source seems to be very viable if you want to create something new. It definitely fits and grows in environments with the start-up mindset rather than the established mindset (we have always done it this way). On top of that, sharing code doesn’t steal your knowledge. Sharing may help others and can give you valuable feedback. It’s people and their skills that are the most valuable corporate asset – not lines of code.
All in all, open-source is polarizing the simulation scene. Some people like it, and some people hate it. The game we play here is not about what is better. It’s rather about where are we going and what equipment are we taking with us. And I deeply believe that open-source is well set up and oriented to the future. Technology is rapidly developing, and to keep pace, we need to have flexible, transparent, and open (source) tools. I bet all my reputation that many new big things are still to come. The development is extremely expensive. The CAE technology is fairly complex and it’s next to impossible to make it just starting from scratch. Building up something on a solid basis of open-source might be the most effective way.
I am personally very optimistic and believe that open-source is the future of CAE. Because it’s transparent and accessible, it will always be here, everybody is welcome and it’s only up to us, engineers, what we will make out of it.
Feel free to let me know your opinion about this topic. I’ll be always happy to discuss it and see where it can take us.