OpenFOAM began in 1989 after Henry Weller, now a Director of OpenCFD, was introduced to the (then, fairly new) C++ programming language. He started by writing a generic framework for a CFD code that included algebra for fields such as velocity and pressure and so named the software “FOAM”, an acronym for Field Operation And Manipulation. That became a fully working CFD code during the 90s and, following a period of release under a partially-open licence, it was finally released by OpenCFD as free, open source software, under the GNU General Public Licence (GPL) in December 2004. The software was renamed “OpenFOAM” to reflect its new status as open source software.
OpenCFD develops OpenFOAM according to a set of values that have been shaped by Weller and others within the organisation. They include: releasing OpenFOAM only as free and open source software; using the power of generic programming to produce highly reusable code; implementing robust numerics and models to work on real, engineering cases; adopting pragmatic modelling approaches with a sound scientific basis; producing a transparent code that encourages users to understand CFD and providing training courses to help them; making realistic assessments of hardware, software, algorithms, models etc, rather than accepting perceived wisdom and hype.
There are also certain standards that can be expected from OpenFOAM, that have been established during the 20+ years of development, including: extensive use of certain programming idioms, such as templates and virtual functions; consistent coding conventions and programming styles, like the Allman indentation style that promotes code readability and allows for easier maintenance; clear naming of classes, functions, dictionary keywords, etc.; significant new, mature, tested functionality released annually within reliable distribution packs; rapid bug fixes through the tracking system.
Consumers associate these values and standards with OpenFOAM, both directly, and indirectly, through the way OpenFOAM operates and behaves. Some people do not share the same values and standards; they can be difficult to appreciate without having witnessed the evolution of OpenFOAM (and C++). The problem is that if those people then attach the OpenFOAM label to products, services or events, then consumers lose trust that the label carries the values and standards of OpenCFD. That is unfair to both consumers and OpenCFD.
A particular problem with open source software can occur when people, who do not share the values and standards of the code’s main developers, release a modified version of the software, as they are entitled to under the GPL. If they use the same (or similar) name for the modified software, the name no longer operates as a symbol of consistent values, standards and quality. This leaves consumers confused, and may damage the reputation of the software.
The purpose of trade mark law is to protect consumers from this kind of confusion and it is applied to open source software from time to time, e.g. when Mozilla® and Debian disagreed over code included in Debian’s distribution of the open source Firefox® web browser. Debian wanted to make unrestricted modifications to Firefox that were not approved by Mozilla. Mozilla objected because that did not meet their standards and refused to let Debian distribute it under the Firefox name and logo, both trade marks of Mozilla. In the end, Debian chose to release under a new name, Iceweasel, rather than comply with Mozilla’s standards.
OpenCFD registered the OPENFOAM® trade mark, amongst others, to protect consumers in a similar way. Because most people are unfamiliar with trade mark law, we published, first, a Trade Mark Policy and, later, some Trade Mark Guidelines to help understanding. Nevertheless, it seems that some people are either still unaware of the law or are choosing to ignore it.
8th March 2011, modified 24 July 2013