We are proud to announce that the following article written by Monica Schnitger appears in the April/May 2013 edition of Economic Engineering:
Open Like a Book
The roots of simulation software are in universities and government labs, where researchers developed tools to solve problems for which there were no commercial solutions available. The programs these teams developed eventually made it to the commercial world as software vendors built solution portfolios around these public domain codes.
Fast forward to 2013. Today, we call these communally-developed, freely available software codes “open source”. By formal definition, open source software is distributed under a license agreement that gives the user the right to study, change and improve the software and then redistribute it, if they so desire, at no cost. One can immediately see some of the benefits: Multi-core simulations don’t bear the cost of a license per core. Developers can add proprietary software to an open source platform to create strategic differentiation without starting from scratch. An OEM can distribute copies of a program to its partners and suppliers at no added license cost and ensure that everyone is using the same version of the code.
This open source license creates a very special dynamic among its users: they collaborate, resolve common issues rapidly and, often, create innovative solutions. The sheer number of people using the solution every day means that bugs will be identified and fixed more rapidly since the releases are frequent and not on a commercial schedule. Also, since the code’s developers are also its customers, the quality of the solution is typically quite high as all equally feel the pain if quality suffers. Open source spreads the cost and risk of the project among many developers, resulting in a customer-centric development process.
Because of its organic, freeform nature, open source software provides some unique positives and negatives. On the plus side,
- Its low price tag means that universities are increasingly adopting open source solutions in their teaching programs so that graduates are just as likely (if not more so) to have experience in open source solutions as in commercial codes.
- It is unlikely that a good open source product, one that is in widespread use, will disappear the way a commercial product can if its maker sees a better opportunity elsewhere. Open source projects have participants spread across enterprises and universities, so development is likely to continue since as one team loses interest others rise up to support the project.
- Open source codes tend to adhere more closely to international standards so that a large community can participate in their development, which may make it easier to integrate open source programs into an existing IT infrastructure.
- License management that can be so complex for large enterprises managing many vendors’ codes simply doesn’t exist for open software, so user companies can dispense with monitoring and compliance programs.
On the other hand, the very nature of open source means that one cannot pay a supplier to fix a bug or bump something higher in the enhancement queue. The project is developed according to the interests of all participants, and their priorities may not suit every user. Since the solution isn’t acquired in the traditional way from a vendor, training and support may not be readily available. The larger open source CAE products have well-established support channels; many of the smaller efforts do not. Finally, open source programs often have a decided “IT” look and feel to their user interfaces, as they were developed by programmers and advanced users — they may be difficult for novices to use.
One of the biggest misperceptions about open source is that all users must contribute to the project by programming. While the majority do contribute code, many companies either lurk (meaning they don’t contribute at all) or help in some other way. Some assist the project by defining and setting up test scenarios, others by documenting the project or offering training or mentoring to new users.
Perhaps the best-known open source program in CAE is OpenFOAM. ESI Group in 2012 acquired OpenFOAM Ltd., the maker of the OpenFOAM CFD Toolbox, a free, open source CFD software package. The modular design of OpenFOAM means that users can customize and extend its functionality, either for their own proprietary use or submitted to OpenFOAM for the entire community. The OpenFOAM CFD Toolbox today includes over 80 solver applications and over 170 additional applications for meshing, visualization and other pre- and post-processing tasks. Users who want help with OpenFOAM can engage ESI (or another service provider) to provide support, CFD assistance and code customization and specific feature development.
Another widely used open source solution is Elmer, an open source multiphysics simulation suite developed by CSC – IT Center for Science, a governmental non-profit organization owned by the Ministry of Education and Culture in Finland. Work on Elmer began in 1995 and was published under open source licensing in 2005, which led the use and development of Elmer to become international. Elmer includes physical models of fluid dynamics, structural mechanics, electromagnetics, heat transfer and acoustics, and more. Elmer is a bit different from other open source activities in that its development is, to a large extent, funded by the Ministry and collaborating universities. CSC also provides contracted support and development, such as tailored solvers that solve the customers non-standard differential equations.
Modelica is another open source effort, where the Library and Language are open source with front-ends available from a number of commercial suppliers. Modelica is an object-oriented, equation based language that is used to model complex physical systems that can combine mechanical, electrical and other component types. The commercial wrappers create a more approachable user interface and organize Modelica’s vast libraries into industry and application-specific toolkits to speed productivity.
Modelica embodies all of the attributes of open source: a large developer network that ensures a high level of quality and continuous development, with a well-specified process for adding functionality and qualifying releases. It has a thriving commercial ecosystem that specializes its vast capabilities, offers training and customization and ensures that Modelica meets the needs of its commercial customers, many of whom are in the automotive industry.
Making the Right Decision
Deciding whether to use an open source package is no different from any other software investment decision: do the benefits outweigh the costs? The license cost of the software is, in essence, zero but if new hardware or operating systems need to be bought to support it, then that must be factored in. If the code does 90% of what is needed, who will develop the other 10%? When? How often are updates released? Does the code pass the benchmark tests that matter for the use case? What will it cost to train users to be productive? How much time will it take to convert models to use the new code?
Too many people are initially seduced by the perception that open source is a synonym for free and lose sight of the fact that it is a software investment, even if there is no initial fee for the license. That said, open source software is very often a viable alternative to commercial solutions and, in some cases, may not have a commercial counterpart.
Update: This is the link to the article at Economic Engineering, and this is a link to a piece in the same issue by Allen Behrens on the impact of the cloud on engineering software.