In May 2017, we implemented water wave modelling into the public, development line of OpenFOAM (OpenFOAM-dev), to simulate flow conditions experienced in marine and offshore engineering, e.g. on a ship in open water. The initial implementation includes the first order Airy wave and the second order Stokes wave (Stokes II), a second-order accurate utility to apply waves for case initialisation to the entire domain. A verticalDamping source (fvOption) provides wave damping towards outlet regions and an interfaceHeight function object processes interface elevation at specified locations.
OpenFOAM and the OpenFOAM Foundation
OpenFOAM is the leading free, open source software for computational fluid dynamics (CFD), owned by the OpenFOAM Foundation. It is developed and maintained by a group of dedicated individuals, most notably from CFD Direct, who willingly contribute their work free and open source, with the support and consent of the organisations that employ them. CFD Direct includes the creator, architect and co-founder of OpenFOAM, Henry Weller, and co-founder Chris Greenshields, who both manage OpenFOAM as Directors of the OpenFOAM Foundation.
OpenFOAM is licensed under the GNU General Public Licence. The GPL gives users the freedom to run, copy, distribute, study, change and improve the software. It attempts to preserve these freedoms by preventing the inclusion of open source software within non-free, closed sourced software products, by the following two rules.
- Software that includes source code licensed under the GPL inherits the GPL licence.
- If compiled binaries of software licensed under GPL are distributed, the source code must also be made available by the distributor.
The licence discourages sale of the software, in either original or modified form, because anyone purchasing the product could demand the source code and redistribute it for free. If a company or user modifies the software, e.g. as the basis of an in-house tool, the licence does not require them to redistribute those modifications.
Download the latest and development versions of OpenFOAM for Ubuntu and other Linux, Windows and macOS, and explore the history and archives.
OpenFOAM is the leading free, open source software for computational fluid dynamics (CFD), managed and developed by CFD Direct and released by the OpenFOAM Foundation.
Free OpenFOAM Documentation resource including the OpenFOAM User Guide, OpenFOAM Linux Guide and articles about the underlying technology.
CFD Tips is our YouTube channel containing a series of free instructional videos for computational fluid dynamics (CFD) with OpenFOAM.
OpenFOAM has an extensive set of features in meshing, core numerical methods, physical modelling and data analysis for a wide range of CFD applications.
In April 2017, we added barycentric tracking into the public, development line of OpenFOAM (OpenFOAM-dev), as a complete replacement to the tracking algorithm that existed in OpenFOAM for over 10 years. Barycentric tracking works on any decomposed tet mesh, irrespective of mesh quality, including poor quality, flat and inverted tetrahedra. The new development was funded from the €100 k for OpenFOAM maintenance, raised through the OpenFOAM Foundation in 2017, in which “particles and tracking” was identified as an area in OpenFOAM “requiring significant code refactoring and/or rewriting”.
During Year 2, CFD Direct made over 1000 code commits to the public development line of OpenFOAM, making us by far the largest contributor of code to OpenFOAM. We produced the major new version 4.0 release of OpenFOAM and the minor update version 4.1 release. We transformed OpenFOAM-dev into stable software of “always-releasable” quality and package it weekly for Ubuntu. Ubuntu packs can now be installed directly on Windows 10 and we also provide “containerized” versions, hosted on Docker Hub, accompanied by launch scripts for easy installation of OpenFOAM on Linux and macOS.
In Year 2, CFD Direct handled almost 500 issues on the OpenFOAM issue tracking system. We upgraded the system and and analyzed metrics relating to timely resolution of issues which concluded that current unresolved issues relate to badly designed components of OpenFOAM that require significant code rewriting. To fund that repair work and ongoing maintenance, we ran a successful campaign to raise €100 k from companies that benefit from OpenFOAM. We carried out substantial maintenance to OpenFOAM websites, significant updates to documentation, and administration for the OpenFOAM Foundation.
OpenFOAM is free, open source software in computational fluid dynamics for real-world engineering and scientific applications. CFD Direct is committed to maintain OpenFOAM, demonstrated by the thousands of code commits to OpenFOAM-dev, with support from contributors. Maintenance concerns the evolution of software in response to changes in user expectation and environment. We have introduced an agile strategy suitable to the feedback process of software evolution and have identified key areas of OpenFOAM that requiring significant redesign, e.g. AMI and particles.
A breakdown of outstanding issues in OpenFOAM (2016-10-26) shows 90% of unresolved issues falling within only 7 categories. The two worst offenders account for almost half of all unresolved issues: 1) AMI, ACMI and cyclic interfaces; and, 2) heat transfer, including conjugate heat transfer (CHT). These categories, and “particles and tracking” and “sources/constraints” in particular, require significant refactoring and/or rewriting. Their current state of disrepair was caused by poor funding under a roadmap development strategy. Funding of agile development of OpenFOAM is now needed to support our aim to improve quality, with a target 50% reduction in unresolved issues in 2017.
Agile development of OpenFOAM emerged following the public distribution of the development line in December 2014. It relies on user participation, which is encouraged by rewarding users for reporting issues with timely resolution. OpenFOAM was in poor health at version 2.3.0, with unresolved issues increasing rapidly and long resolution times. Following the move to agile development, unresolved issues are reduced and under control, with ~70% of issues resolved in 1 day and ~90% resolved in 1 week, taking OpenFOAM to a new level of quality and maturity (always releasable) by version 4.0.
The OpenFOAM Issue Tracking system exists to enable users to report issues. An issue exists when OpenFOAM behaves in a manner that does not meet reasonable expectations, including in design and usability. OpenFOAM is mature, quality software, whose successful development demands that issues are resolved in a timely manner. Roadmap development obstructs issue resolution, resulting in unreliable software and inefficient development. Instead, free, open source software can exploit agile development with frequent code release, as the best strategy for CFD development. Users should adopt continuous upgrade to minimize cost and to benefit the agile development strategy.
OpenFOAM version 4.0 is the latest major version of OpenFOAM, released on 28th June 2016. CFD Direct was by far the largest contributor to OpenFOAM 4.0, contributing the vast majority of new functionality including post-processing, numerous boundary conditions and physical models. Additionally, we contributed across all other aspects of software engineering that make OpenFOAM a mature, modern environment for CFD. This article provides the inside view of that work on the software engineering behind OpenFOAM 4.0, contributed largely during a 3 month period from April-July, 2016.
During our first year, we made over 900 code commits to the to the public development line of OpenFOAM, making us by far the largest contributor of code to OpenFOAM. In 2015, we produced one major, one minor and one patch release of OpenFOAM. We carried out maintenance on OpenFOAM, reducing the number of outstanding issues by approximately 35%, involving over 500 commits to the bug fix line of OpenFOAM 3.0. We managed the OpenFOAM Foundation, established a free OpenFOAM documentation resource, and our posts on social media updated users about developments to OpenFOAM , which encouraged a strong community to support and contribute to OpenFOAM as free software.