I was once asked if it was possible to integrate support for OpenFOAM into an IT telephone support team. The telephone support would be part of a support subscription, similar to that provided for other open source software, e.g. RedHat Enterprise Linux (RHEL). The IT support staff had no experience of CFD analysis. Was it was possible to train them to deliver effective support with a few one-hour training webinars? I explained that effective support requires staff who have practical experience of CFD analysis. A list of standard questions with scripted responses was not enough.
Why is it so much more difficult to deploy CFD software than software such as RHEL, which is commonly used to set up a computer server to host websites? RHEL is an operating system based around the Linux kernel. To provide effective support for an operating system requires experience in computing and knowledge that is generally accessible on the Internet. The scope of advice that IT support would be expected to provide is quite limited. No-one would expect them to provide advice on how the electronic components work in the underlying hardware that the operating system runs on.
Providing support for CFD analysis is much more difficult. Questions may arise that cover a very broad range of topics which must be answered effectively to bring a CFD project to a successful conclusion. Rather than competence in one area – computing – CFD involves competency in 6 distinct areas:
- Fluid dynamics: governing equations, fields, initial conditions, boundary conditions, basic physical modelling, …
- Physical modelling: turbulence, transport, heat transfer, multiphase, combustion, particle flows, …
- Geometry and Meshing: CAD, geometry clean-up, mesh generation, refinement, zones, baffles, …
- Numerical Methods: discretization, diffusion and advection, transient simulation, algorithms, matrix solvers, …
- Data Analysis: interpretation of results, visualization, graphs, objective measures, animations, …
- Computing and Programming: operating system, software installation, parallel computation, I/O, code customization, …
It is difficult to obtain knowledge and experience in these CFD competencies, even with broad access to information brought by today’s Internet. People are forced to rely heavily on informal learning, e.g. asking questions to colleagues or on an online forum, because most CFD teaching is inadequate in the following ways.
- Fluid dynamics and physical modelling courses are generally geared towards analytical (pen-and-paper) solution, rather than computational solution. There is insufficient coverage of writing a problem statement with clearly defined outcomes and using it to choose appropriate models and solvers.
- CFD studies often involve canonical cases with simple geometries that present none of the challenges to meshing from real-world complex geometries. Issues of solution stability and accuracy relating to mesh quality are not addressed.
- Numerical methods are the main focus of books on CFD, which generally focus on manipulation of mathematical expressions in discretization and algorithms, rather than explaining the purpose and behaviour of numerical schemes and algorithms. The information presented is often 20 years out of date, caused partly by more recent knowledge being hidden within proprietary software – OpenFOAM being the major exception.
- The importance of data analysis, and interpretation of results, is generally overlooked. Topics such as convergence are generally misrepresented.
- Teaching of programming often describes outdated techniques and antiquated programming languages. There is a lack of interest in understanding computers and their interaction with software is generally poor and selection of appropriate software tools.
Supporting CFD Analysis
At CFD Direct, it is our aim to support CFD analysis to enable people to deliver timely, quality CFD solutions at a reasonable cost. Our belief in open source software means that the public are able to access information, such as numerical methods and physical models, through the source code of OpenFOAM. We supplement this in the following ways.
- Publishing free technical information on this website (e.g. OpenFOAM Linux Guide).
- Writing and maintaining free information on the OpenFOAM Foundation website.
- Writing and maintaining free OpenFOAM documentation, e.g. OpenFOAM User Guide and Source Code Documentation.
- Offering OpenFOAM training with courses created to cover all components of CFD.
- Offering OpenFOAM support covering all components of CFD.
- Engaging actively in issues in CFD technology through the OpenFOAM bug reporting system.
- Improving usability of OpenFOAM through case templates, packaged tools and default configurations.
- Organising projects to establish best practice in CFD, e.g. in turbulence modelling, that will be reported through our website.