• Simon

Open source engineering toolsets

Updated: Mar 9, 2021

Free and open source software (FOSS) has been around for many years, with open exchange of code being the norm before the evolution of more uniform and widespread software. Today the breadth of capability available stretches wide across a number of domains, not least engineering and science.

Let's take a peek in to FOSS in the engineering and science applications world, starting with numerical simulations, where geometries are replicated in the virtual world and their behaviour simulated using computers.

In the computational fluid dynamics (CFD) space, where complex fluid flow problems are modelled, OpenFOAM® is a well known and diversely applied open source software, developed at Imperial College London as "FOAM" in 1989 and released as open source in 2004. It's application stretches from Formula 1 and commercial automotive aerodynamics and cooling, through built environment wind simulations, to particle dynamics in medical inhalers. But it's not the only game in CFD town. SU2 (Stanford University Unstructured) was developed at Stanford University and released as open source in 2012, focussing on aerodynamics and optimization problems. Code Saturne was developed at Electricte since 2000 and made open source in 2007. Recently the UCNS3D solver developed at Cranfield University was released as open source in 2019, with a focus on applying the latest approaches for generating high resolution solutions.

If you're looking to solve structural or solid mechanics problems using open source tools, well known options include Code Aster (Code Saturne's solid mechanics brother, developed by the same poeple) and Calculix, which was developed over many years by employees of MTU aero engines, Munich, as an alternative to the widely used commercial solver Abaqus.

As is often the case, technical problems in the real world tend to get complicated quickly, and the required solution may need to consider more than just isolated fluid dynamics or solid mechanics. Considering heat transfer and thermodynamics of fluids and between fluids and solids is relatively straight forward in the CFD codes above, but what about problems where the solids deform under pressure from the fluid flow, and in return influence the direction of the flow? These fluid structure interaction (FSI) problems require a coupling of the fluid dynamics and solid mechanics worlds.

There's a few routes to take here. One is to couple different solvers using an additional tool set. A very capable approach is preCICE (precise Code Interaction Coupling Environment) developed at the Technical University of Munich and the University of Stuttgart. It's a library of adapters for coupling existing solvers across physics domains - there are released adapters for coupling both OpenFOAM and SU2 with Calculix for FSI problems, and the capability to couple across other physics.

Another approach is to address this "multi-physics" requirement directly, by making the coupling available in a single framework, removing the need to bring different software together via an adapter. Elmer, developed in Finland in collaboration between universities, industry and research institutes was released as open source in 2005. It offers a wide range of physics: fluid dynamics, solid mechanics, electromagnetics, acoustics and the ability to couple across these domains. FEniCS, initiated in 2003 as a research collaboration between the University of Chicago and Chalmers University of Technology, is a platform for solving partial differential equations - the way the mathematics works out to describe nearly all physical phenomena - where you can construct models based on the specific equations you want to solve, allowing you to describe your own problems. Interestingly OpenFOAM has the same capability, but as a result of the way it solves these equations it's main strength is in fluids, and many solvers across a wide range of fluids applications have already been written. FEniCS development is supported financially by NumFocus, setup to promote and sponsor open practices in research, data, and scientific computing which we'll meet shortly.

Numerical simulations are a great tool for many problems where you have or can describe the relevant geometry. In cases where your problem is around understanding data you already have, or where geometry is not a significant factor then solutions can be found without employing often complex software and high performance computing resources. These solutions can be delivered by employing a range of data analysis techniques and algorithm development, a large swathe of which are available as FOSS.

A key player here is the high level interpreted software language Python, conceived in the 1980's and first released in 1991. Today an enormous range of modules providing problem solving capability is available. Remember the Apple Trademark "There's an app for that."™? Well, with Python, there's nearly always a module or package for "that". Anaconda is a Python (and R) distribution and package manager with over 1,500 packages, covering capabilities such as data science with Google's TensorFlow and image processing with scikit-image. NumFocus, who we met briefly earlier, have a great range of sponsored and affiliated packages, across a range of software languages (Python, R, Julia, Javascript) and features - too many to list, but as well as FEniCS above, PYMC3 is great for statistical analyses, Effective Quadratures for uncertainty quantification and Signac for managing complex file based data workflows.

With the tools listed above really just being the tip of the iceberg, so much capability available for solving such a broad range of physics and data based challenges, and experience of applying these approaches to problems across different sectors, I decided to start Upstream Applied Science to offer a solutions driven service based around these tool sets. We are a small, family business with a focus on using this broad availability of FOSS capability to solve problems. Our key skill is in understanding your problems and selecting, using and if needed, developing, FOSS based tool sets. We do have specialist competence in CFD and OpenFOAM, but our core offering is customized and cost-effective problem solving.

So, if you are facing an engineering or data challenge, we'd love to hear from you.


Recent Posts

See All