In 2004, OpenFOAM was released as free, open source software, under the GNU general public licence (GPL). It is now one of the most popular software tools for computational fluid dynamics (CFD). Those involved in the management, development and distribution of OpenFOAM, including all of us at CFD Direct, believe in open source because it gives users the freedom to modify and redistribute the software and a guarantee of continued free use, within the terms of the GPL.
Being freely available to all, the software is subjected to verification and scrutiny by members of the public who report errors and suggest corrections. It is this combination of code transparency and public scrutiny that makes open source software reliable, robust and effective. A good example is the Linux kernel which forms the basis for the Linux operating system used extensively in computer servers and embedded devices, and the Android operating system used for tablet computers and smartphones. The Linux Development Report shows a small number of developers contribute a lot of code to the kernel, backed by a large number of contributors making small changes and additions. While those contributions may be small in terms of lines of code, they are often as a consequence of a large amount of testing, verification and code study.
Free, open source, public distribution ✓
OpenFOAM developments at CFD Direct are always transferred to the OpenFOAM Foundation for free and open source public distribution under the GPL, so that OpenFOAM moves forward with useful, new functionality becoming available with each release. Most companies we encounter are willing to fund open source developments because they appreciate that they are already gaining from OpenFOAM that has been funded by others, and are happy to “give something back”. Increasingly, individuals within those companies also appreciate the benefits of open source and/or the underlying philosophy.
Non-free, private re-distribution ✗
There are individuals and organisations who take OpenFOAM, modify it, then re-distribute the modified version privately to customers for a fee. This is permissible only within the terms of the GPL. Under the GPL, those organisation cannot withdraw the right to be able re-distribute modified versions of the code to the public. A customer can therefore distribute the modified version of OpenFOAM to become part of the public commons of free software for the benefit of all. However, they rarely do this, perhaps because having paid for the software, they are reluctant to give it away for free. Perhaps they fear threats of legal action for re-distribution, without understanding that modified versions of OpenFOAM can only legally be distributed open source under the GPL and any software that links intimately enough to OpenFOAM also has to be distributed under the GPL.
In our view, this business practice of non-free, private distribution, which relies on the customers reluctance to publicly re-distribute, goes against the philosophy of free, open source software. It denies the customer of the principal benefit of code scrutiny by the public at large. It hinders collaboration. It also threatens the development of OpenFOAM because is more difficult to get funding to develop a feature for free, open source, public release, when that feature is available within a non-free, privately distributed version of OpenFOAM. So it promotes accessibility only to those who can afford it, instead of making CFD more inclusive. The public gains nothing from the marketing of these additional features that involve favourable comparisons between tests on “their version” and a free, public (often un-specified) version of OpenFOAM — tests they know cannot be verified by a public with no access to “their version”.
There may also be organisations and individuals who want to try to exploit OpenFOAM for themselves by including it within non-free and/or closed source software products that do not offer the freedoms described above. Under the GPL, they do not have the right to do this. Anyone who believes OpenFOAM is being exploited like this should contact the OpenFOAM Foundation.
— CFD Direct #OpenFOAM (@CFDdirect) May 1, 2015
When announcements are made on public forums, we urge people to respond to the post by asking this legitimate question. To make more people aware of the campaign, the question can be written in the form of a hyperlink to this page, or accompanied by a URL, e.g.
- Where is the Source Code? (this can be copied/pasted into the post editor on CFD-online, for example), or
- Where is the Source Code? | http://cfd.direct/openfoam/free-software/where-is-the-source-code
- Twitter: reply with comment #WhereIsTheSourceCode #OpenFOAM #freesoftware http://cfd.tips/ofsw
- LinkedIn: use short URL http://goo.gl/9vC4ym
Similarly, when a modified version of OpenFOAM is promoted at a meeting, event or conference, we urge people to put up their hand and ask “Where is the Source Code?”
Publishing the Source Code
You may have a binary executable and/or libaries of a privately distributed, modified version of OpenFOAM, but without the source code. If so, you are entitled to the source code under the terms of the GPL so please request it from your supplier. If they refuse to give it to you, please contact the OpenFOAM Foundation, the copyright holder of the OpenFOAM software.
If you have the source code of a privately distributed, modified version of OpenFOAM, please distribute it to the public. If you need assistance with that, or would prefer to distribute it through the OpenFOAM Foundation, please contact the OpenFOAM Foundation.