Why Productive CFD?
- Focuses on performing high quality CFD with OpenFOAM, rather than merely operating the CFD software.
- Explains how to get better, relevant results in fewer attempts, identifying and fixing issues quickly and with confidence.
- Teaches participants to assess a CFD problem to determine likely flow patterns (and heat transfer, etc) and flow regimes, in order to make insightful choices first time, of flow solver, mesh structure, physical models and boundary conditions.
- Through successive CFD simulations, the assessment and CFD configuration are adjusted until there is agreement between expected and predicted behaviour.
- Understanding the physical behaviour enables quicker diagnosis and remedy of critical problems, including whether failures are physical or numerical in nature.
- Teaches the coded environments in OpenFOAM to calculate metrics to assess the flow, and to report relevant results conveniently.
- Reinforces a set of processes (see below): define a CFD problem, estimate flow patterns, identify flow regimes, design meshes, select and verify solvers and models, monitor and extract data, perform control volume analyses, calculate characteristic parameters.
- Created and delivered by Chris Greenshields (16 years of OpenFOAM Training) and Aidan Wimshurst (Fluid Mechanics 101).
- Builds on the knowledge in Notes on Computational Fluid Dynamics: General Principles by Chris and Henry Weller.
Productive CFD | OpenFOAM Training | Course Modules
Part 1 — 2 days
Summary
- Flow, momentum and conservation
- Pressure, friction and forces
- Unsteady flow and turbulence
Flow and conservation
- Define the problem: characterize a flow measurement device
- Visualize pressure: verify kinematic and relative pressures
- Calculate discharge coefficient using probed pressure data
- Visualize velocity distribution: cutting planes and automated sampling for graphs
- Verify boundary conditions: noSlip and flowRateInletOutlet
- Validate with control volume / analytical solution: Bernouilli’s equation and Poiseuille’s Law
- Monitor flow rates: verify with flow area calculation using a coded function object
- Verify conservation of mass for incompressible flow
- Understand intensive and extensive properties when extracting data
Forces
- Define the problem: aerodynamics at low flow speed
- Design the mesh structure: refinement, boundary layers and far-field boundaries
- Visualize pressure: validate low-speed flow patterns
- Extract viscous shear and pressure forces
- Validate with control volume analysis, comparing estimated pressure difference and net force
- Verify solver: viscous/pressure force balance in low-speed flow
- Calculate force coefficients: characterize aerodynamic body by dimensionless parameters
- Monitor drag coefficient with a function object to assess steady-state convergence
- Validate solution by comparison with analytical solutions, calculated using a coded function object
Momentum
- Define the problem: aerodynamics at higher flow speed
- Visualize velocity: verify momentum transport / diffusion
- Visualize flow: display vortices using streamlines
- Understand flow regimes: the role of inertia and dimensionless parameters
- Identify flow regimes: calculating Reynolds number using a coded function object
- Validate solution by comparing data, calculated by a coded function object, with experiment
Wall friction
- Define the problem: assessment of turbulent wall functions
- Characterize wall friction: Darcy-Weisbach equation and friction factor
- Verify wall functions: unit test case using a coded fvModel to apply a fixed pressure gradient, automated to run and plot friction factor against Reynolds number on a Moody chart
- Calculate dimensionless friction factor and Reynolds number using a coded function object
- Visualize velocity profiles and verify against the universal profile and log law of the wall
- Validate with control volume analysis, comparing pressure and turbulent viscosity with wall shear stress
- Validate wall functions by comparing with cases where they are disabled
Unsteady flow
- Define the problem: unsteady flow at intermediate Reynolds number
- Estimate flow features: boundary layers, separation, shear layers, vortices, turbulent transition
- Select solver options: transient controls, time schemes, Courant number, advection schemes
- Set optimal pressure-velocity-flux coupling controls: numbers of correctors, momentum predictor
- Monitor force coefficients: calculate vortex shedding frequency
- Visualize boundary layers: identify separation, turbulent transition in shear layers
- Validate shedding frequency and Strouhal number against experimental data
Turbulence
- Define the problem: flow at high Reynolds number
- Estimate flow features: transition to turbulence in boundary layers
- Design mesh structure: cell height in boundary layers
- Validate the need for turbulence modelling by estimating cost of direct numerical simulation
- Verify turbulent kinetic energy generation with control volume analysis
- Visualize boundary layers: identify turbulent transition in boundary layers
Part 2 — 2 days
Summary
- Heat, thermal physics, thermodynamics, heat transfer/CHT
- Buoyancy, dispersion and particles
- Waves, discontinuities and boundedness
Heat and thermal physics
- Define the problem: characterize heat transfer from a solid
- Progress from an incompressible to compressible fluid solver
- Verify ideal gas equation of state using a coded function object
- Verify the momentum transport using a coded function object
- Verify consistency between incompressible and compressible fluid solvers
- Visualize thermal transport, and correlate with flow patterns
- Verify the thermal transport model by finding and examining relevant source code
- Calculate a heat transfer coefficient using a coded function object
- Calculate the average heat transfer coefficient and Nusselt number
Heat Transfer
- Define the problem: cooling of a solid
- Identify heat transfer regimes due to convective heat transfer and solid conduction
- Verify the lumped mass temperature model by control volume analysis and examining code
- Understand the stability of implicit and explicit calculations
- Monitor mean temperature using a function object
- Design mesh structure: meshes for fluid and solid regions, coupled across interfaces
- Validate conjugate heat transfer by comparison with lumped thermal mass model
Natural convection
- Define the problem: heating a room
- Estimate the flow features: flow speed, turbulent transition, boundary layers, recirculation
- Identify flow regimes: transient during an estimated heating and turnover time, steady flow
- Design the mesh structure: applicability of wall functions, boundary layer cell height
- Verify a heat source model: boundary condition versus internal heat source fvModel
- Monitor mean temperature and patch heat fluxes with function objects
- Perform control volume analysis: global heat balance using a customized function object
Environmental flow
- Define the problem: plume dispersion
- Estimate flow features: counter-rotating vortices
- Identify flow regimes: natural and forced convection
- Select CFD solver: include buoyancy effects
- Verify boundary conditions: atmospheric boundary layer, entrainment and freestream conditions
- Extract flue gas concentration and particle
- Visualize counter-rotating vortices using a coded function object
Open channel flow
- Define the problem: characterize an open channel flow measurement device
- Identify flow regimes: sub- and super-critical flow
- Select CFD solver and controls: interface-capturing, semi-implicit MULES and interface compression
- Monitor channel height and Froude number, using a parallel-enabled, coded function object
- Visualize Froude number to confirm flow regimes
- Extract flow rate using a coded function object to compare with empirical correlations
High-speed flow
- Define the problem: efficiency of a supersonic diffuser
- Identify flow regimes: sub- and super-sonic, and choked flow
- Estimate flow features: stationary shocks, expansions, boundary layers, turbulent transition
- Design mesh structure, e.g. boundary layer meshes
- Select CFD solver: compressible, shock-capturing, flux splitting
- Verify thermodynamic models with the equipartition theorem
- Verify turbulence models: examining source code of k–omega SST model
- Visualize density to display expected flow patterns
- Extract total pressure using a coded function object
- Calculate fraction of recovered total pressure using a coded function object
Who Should Attend
Target Audience
- New users of OpenFOAM and/or new to CFD
- Postgraduates working in CFD with OpenFOAM
- Existing users with limited experience of production CFD
- CFD practitioners wishing to become more productive
Pre-requisites
- A science/engineering/mathematics background is beneficial
- Familiarity with Linux is an advantage
- Working through the OpenFOAM Linux Guide is strongly encouraged