CFD Training
Professional OpenFOAM and GPU CFD training programmes by TesboCFD
GPU-Accelerated CFD in Practice — Writing a Full-Field GPU Solver from Scratch
Across 15 live-coding sessions you hand-write every CUDA kernel, progressively turning an incompressible flow solver from pure CPU into a full-field, device-resident GPU solver — validated against the CPU to machine precision and reaching hundred-fold speedups on million-cell meshes.
Hand-Written CUDA Kernels
Starting from SAXPY, you write the LDU sparse matrix-vector product (SpMV), a shared-memory tree reduction, and a Jacobi-preconditioned conjugate gradient (PCG) — each validated against the CPU to machine precision.
Full-Field GPU Offload
Move gradients, fluxes (Rhie-Chow), momentum assembly, PISO correction, boundary conditions and device-resident fields onto the GPU, so the whole time step never returns to the CPU.
Breaking the Amdahl Ceiling
First offload only the linear solver and measure the modest gain, then break through with full-field offload for hundred-fold speedups — with Nsight profiling and SoA memory-access tuning.
What You Will Learn
- 1CUDA thread and memory model, host-device transfers, timing, and RAII device memory
- 2Structured mesh (Mesh2D) and finite-volume geometry (Sf / V / deltaCoeff / owner-neighbour)
- 3LDU sparse format and GPU SpMV (diagonal pass + off-diagonal atomicAdd)
- 4Shared-memory tree reduction and dot products; Jacobi-preconditioned conjugate gradient (PCG)
- 5Device-resident fields (GpuState) and the PISO time-loop skeleton
- 6Gauss gradient, face fluxes and Rhie-Chow interpolation to prevent checkerboarding
- 7Momentum assembly (upwind convection + orthogonal diffusion + Euler ddt), pressure Poisson and velocity/flux correction
- 8Geometric multigrid pressure solve, lid-driven cavity vs Ghia (1982), Amdahl-ceiling comparison and a three-way performance report
Prerequisites
Comfortable with C++, have run basic OpenFOAM cases, and understand the finite-volume method and incompressible Navier-Stokes. An NVIDIA GPU is required (your own machine or an accessible server/cloud instance) — this is a live-coding course where every kernel is built and validated on the GPU in class, and it cannot be completed without one. CUDA Toolkit and OpenFOAM must be installed beforehand (a setup guide is provided). No prior CUDA experience needed — taught from first principles.
Speedup figures are measured architectural-throughput comparisons in the teaching environment (same mesh, scheme and settings), not a controlled numerical benchmark; each solver passes its own correctness validation.
OpenFOAM Source Code Deep-Dive & Advanced C++ Practice
Approaching OpenFOAM from a general-purpose CFD / industrial software design perspective. Live coding, class diagrams, relationship maps, line-by-line mastery. The essential path to becoming an OpenFOAM code expert.
Advanced C++ In-Depth
Virtual functions & polymorphism, factory pattern & RTS, CRTP, smart pointers, observer pattern, template metaprogramming — driven by OpenFOAM's real engineering needs.
OpenFOAM Core Architecture
objectRegistry, GeometricField, patch system, ddt/div discretisation, thermo architecture — peeling back every layer from black box to transparency.
Emerging Technologies
Claude + OpenFOAM programming, AI meets CFD, CUDA & GPU computing, 4th-order Runge-Kutta for coupled equations, deep learning frameworks.
Core Topics
- 1Constructors, virtual functions, polymorphism
- 2objectRegistry: registration & lifecycle
- 3Factory pattern & Runtime Selection Tables
- 4autoPtr & tmp smart pointer system
- 5CRTP, observer pattern, friend & mutable
- 6Patch system & boundary condition design
- 7Function pointers, explicit, static/extern
- 8GeometricField: complete data structure
- 9typedef & variadic macros (VA_ARGS)
- 10ddt / div discretisation implementation
- 11Scope resolution operator: deeper usage
- 12thermo: thermophysical model architecture
Who Should Attend
- Those looking to elevate C++ skills from functional to proficient
- Those who want to independently read and understand OpenFOAM source code
- Those aiming to become independent OpenFOAM developers
- CFD / OpenFOAM / programming enthusiasts
New Features
- Using Claude for OpenFOAM programming
- AI meets CFD: deep learning framework introduction
- 4th-order Runge-Kutta for pressure-velocity coupling
- Deep learning and CFD
- CUDA programming and GPU computing models
- Coupled algorithm and architecture design
150-page notes, individually printed, uniquely numbered. Permanent post-course Q&A access.
Enrolment & Enquiries
Please contact us by email for reservation, registration, or consultation.