CFD Direct provide a catalogue of training courses for OpenFOAM and CFD: Essential CFD, Applied CFD, Productive CFD (parts 1 and 2) and Programming CFD.  The courses span a total of 12 days when delivered online, and 10 days when in person.  Each course is accompanied by a manual of approx. 160-200 pages in length.

The details of the courses are provided below with an explanation of their coverage and purpose.  In summary:

  • Essential CFD covers the general operation of OpenFOAM, so recommended for new to intermediate users of OpenFOAM.
  • Applied CFD applies operational knowledge of OpenFOAM to more complex applications; not suitable for beginners.
  • Productive CFD teaches how to do high quality CFD, including custom coding, for both beginners and experienced users alike.
  • Programming CFD takes a more detailed look at programming in OpenFOAM, addressing key aspects of C++ used in OpenFOAM.

Essential CFD (2½ days online, 2 days in person)

Essential CFD covers the general operation of OpenFOAM.  It provides a general overview of the software and configuration of CFD simulations.  It takes the participant through exercises that create new CFD simulations from scratch, from mesh generation, to initialization and running simulations and calculation of objective data.

  • Getting started: Overview of OpenFOAM, introduction to meshing, start running cases, numerical solution overview.
  • Start engineering meshing: Geometry generation, snappyHexMesh: introduction, enhancements, mesh refinement.
  • Prototype simulation: Fields and boundary conditions, writing objective data, parallel running, parallel data processing.
  • Turbulence modelling: Introduction to turbulence and applying turbulence models in practice.
  • Numerical methods and algorithms: Discretisation schemes, solving for pressure.
  • Visualization: With ParaView, display the flow domain, mesh, cutting planes, streamlines, velocity vectors, with colour maps.

Applied CFD (2½ days online, 2 days in person)

Applied CFD takes the general knowledge of the operation of OpenFOAM (e.g. from Essential CFD) and applies it to specific examples including transient flows, multiphase flows, rotating/moving geometry and thermal flows.  It takes the participant through several exercises to create new CFD simulations including a static mixer, flow over a weir, a propeller, electronics cooling and flow/heat through an exhaust system.

  • Advanced meshing: baffles with snappyHexMesh, useful meshing tools, complex 2D meshing, multi-region meshes.
  • Transport and transients: non-Newtonian fluids, scalar transport, transient simulation, particles.
  • Multiphase flows: VoF method for interface capturing, boundedness and MULES.
  • Rotating/moving geometry: rotating reference frames, dynamic meshes, non-conformal coupling.
  • Thermal flows: Conjugate heat transfer, compressible/thermal flow, thermophysical modelling, porous media
  • Visualization: With ParaView, isosurfaces, animations, with/without VTK files generated by OpenFOAM.

Productive CFD

Productive CFD looks more broadly at analysing fluid dynamics problems with CFD.  It connects the underlying technology (science and numerical methods) with the OpenFOAM code and demonstration examples.  It includes exercises in writing small pieces of code (in the form of coded inputs), that make small calculations to verify simulations and models.

Part 1 (2 days in person): Flow, momentum, conservation, pressure, friction, forces, unsteady flow and turbulence.

  • Flow and conservation: pressure, velocity, discharge coefficient, boundary conditions, analytical comparison, flow rate, mass conservation, calculating flow area using a coded function object, intensive and extensive properties.
  • Forces: aerodynamics, mesh refinement, boundary layers and far-field boundaries, low-speed flow patterns, viscous shear and pressure forces, control volume analysis, force coefficients, steady-state convergence, coded analytical solutions.
  • Momentum: momentum transport / diffusion, display vortices using streamlines, inertia and dimensionless parameters, calculating Reynolds number (Re) using a coded function object, validate with experiment with a coded function object.
  • Wall friction: turbulent wall functions, Darcy-Weisbach equation, friction factor, using a coded fvModel to apply a fixed pressure gradient, correlation with the Moody chart, universal profile and log law of the wall, wall function validation.
  • Unsteady flow: intermediate Re, boundary layers, separation, shear layers, vortices, turbulent transition, transient controls, time schemes, Courant number, advection schemes, pressure-velocity-flux coupling, vortex shedding frequency, Strouhal number.
  • Turbulence: high Re, transition to turbulence in boundary layers, cell height in boundary layers, cost of direct numerical simulation, turbulent kinetic energy generation, visualization and more control volume analysis.

Part 2 (2 days in person): Heat, thermal physics, thermodynamics, heat transfer, buoyancy, dispersion, particles, waves and discontinuities.

  • Heat and thermal physics:  heat transfer from a solid, compressible fluid solver, ideal gas equation of state, momentum transport, thermal transport and its source code, calculate a heat transfer coefficient and Nusselt number using a coded function object.
  • Heat Transfer: cooling of a solid, convective heat transfer and conduction, lumped mass temperature model and its source code, stability of implicit and explicit calculations, mean temperature coupled fluid and solid regions, conjugate heat transfer.
  • Natural convection: heating a room, turbulent transition, boundary layers, estimated heating and turnover time, boundary layer cell height, heat source fvModel, mean temperature, patch heat fluxes, global heat balance using a customized function object.
  • Environmental flow: plume dispersion, natural and forced convection, buoyancy effects, atmospheric boundary layer, entrainment and freestream conditions, flue gas concentration and particles, visualize counter-rotating vortices using a coded function object.
  • Open channel flow: flow measurement device, sub- and super-critical flow, interface-capturing, MULES and interface compression, channel height, Froude number and flow rate using a parallel-enabled, coded function object, empirical correlations.
  • High-speed flow: efficiency of a supersonic diffuser, sub- and super-sonic flow, stationary shocks, expansions, boundary layers, shock-capturing CFD solver, komega SST model and its source code, recovered total pressure using a coded function object.

Programming CFD (3 days online, 2 day in person)

Programming CFD takes a more detailed look at programming in OpenFOAM, with exercises in creating a new utility application, a solver module, a boundary condition and function object.  Assuming no prior knowledge, we gradually build an understanding of aspects of programming in the C++ language which are heavily adopted in OpenFOAM.

  • Introduction to programming: Coding and compiling, OpenFOAM core classes, lists and fields.
  • Writing a utility application for case pre-processing: Data construction, data access, data input, data operations.
  • Writing a solver module: interfaces, data initialization, virtual functions, inheritance, model options.
  • Writing a boundary condition: class hierarchy, generic programming, class functions/data.
  • Writing a function object for case post-processing: data processing, object registry and data output.