In 1989, Henry Weller created FOAM, which was later released open source as “OpenFOAM” in 2004 by Henry Weller, Chris Greenshields (both Directors of CFD Direct) and Mattijs Janssens. OpenFOAM is software trusted by many thousands of engineers and scientists in industry and academia worldwide. Its continued growth for nearly 30 years would not have been possible without a commitment to sustainability. In 2018 we organised the OpenFOAM Open Day, an event dedicated to OpenFOAM sustainability, on behalf of the OpenFOAM Foundation (which licenses OpenFOAM under the GPLv3). This article provides a summary of OpenFOAM sustainability, following the event.
Sustainable Software Development
OpenFOAM sustainability involves sustainable software development which we define as “developing software that meets critical needs of users, through a balance of resources, technology, investment and institutional support.” The critical needs from the users’ perspective are:
- Availability: can I get hold of the code?
- Usability: can I use it effectively?
- Robustness: does it produce reliable results?
- Extensibility: can I customise it for my specific needs?
Critical Work (Maintenance)
The critical work (maintenance) required to meet the critical needs of users falls into the following categories.
- Publishing: including code management, compilation, packaging (e.g. for Ubuntu, other Linux, Windows, macOS), download, licensing, documentation, cloud deployment and promotion (e.g. newsletter, social media).
- Repair: maintaining a tracking system for users to report issues; resolving issues promptly; publishing updated software to the public development line and packaging it for easy installation.
- Redesign: reducing complexity to a sustainable level by modifying code interfaces, refactoring code, reducing duplication and improving functionality.
The primary resources are individuals who are capable of contributing critical work. There are undoubtedly many individuals who could contribute effectively to OpenFOAM, with 35 signatories (2018-10-02) to the OpenFOAM Contributor Agreement, including organisations with thousands of employees. However, available resources are severely limited because very few organisations allocate time to individuals to contribute significant critical work to OpenFOAM. When individuals contribute code, they rarely undertake any associated critical work — publishing, repair and redesign. Instead, the critical work is left to a small group of “career maintainers” of OpenFOAM at CFD Direct, generally without any provision to fund the work.
A lot of technology supports the critical work, for example the following.
- Open source software: GNU/Linux operating systems; GNU Compiler Collection (GCC); Git distributed version control system; WordPress, Apache web server and MySQL relational database.
- Cloud/hosting: Amazon Web Services (AWS) for building packages and hosting the OpenFOAM website, Source Code Guide, Download Server and Issue Tracking System; SourceForge and GitHub software hosting.
The OpenFOAM Hub
Our recently adopted technology is The OpenFOAM Hub: a team collaboration and messaging platform for the contributors and funders of OpenFOAM. The Hub is the platform for decision-making for OpenFOAM with levels of access based on contribution and/or funding (see below).
The cost of critical work in currently € 250k per year. The OpenFOAM Foundation offers Maintenance Plans for organisations to contribute to this cost. There are three levels of Plan: Gold (€ 20k per year); Silver (€ 5k); and, Bronze (€ 1k). Organisations with a Maintenance Plan gain access to The OpenFOAM Hub where decisions about OpenFOAM are made, split into in three teams:
- Architecture Team, for Gold funders and core developers: responsible for major (re-)design decisions, e.g. library redesign.
- Functionality Team for Silver funders and developers (and above): responsible for new applications, models, tools, etc.
- Patch Team for Bronze funders and patch contributors (and above): responsible for patches, e.g. bug fixes, model options, etc.
In 2018, € 150k was raised for OpenFOAM sustainability, i.e. 60% of the funding target. Insufficient funding means some critical work does not get done and it is difficult to recruit the top talent into a career maintaining OpenFOAM.
Some companies that use OpenFOAM fund the critical work to sustain it. However, funding is practically non-existent from institutions such as research councils, universities, high-performance computing centres and professional associations. This is despite the fact that each year, globally, they spend many millions of $/€/£ on projects, staff and equipment that use OpenFOAM. They generally provide little support or funding for staff to collaborate with contributors to OpenFOAM.
Where support is lacking, individuals with shared interests in OpenFOAM should pool resources. Together they can fund a Silver or Gold Maintenance Plan, appointing one person as their representative on the OpenFOAM Hub. A small group can, in time, grow into a consortium to represent the interests of an industry, sector or region — as we have seen with the Process Engineering Consortium.
- OpenFOAM sustainability involves meeting critical needs of users by doing critical work.
- Employers rarely allocate time to individuals to contribute critical work.
- Therefore, critical work is therefore left to “career maintainers” at CFD Direct.
- There is insufficient funding for the critical work — only 60% of the total needed.
- Decisions about the critical work are made by those who fund and/or contribute the work, via The OpenFOAM Hub.
- Institutions provide little support for OpenFOAM.
- Individuals can pool resources within a consortium to represent their interests in OpenFOAM.