Introduction to Computational Fluid Dynamics
Dmitri Kuzmin
Institute of Applied Mathematics (LS III)
partial differential equation (PDE) models of fluid flows
numerical solution methods and their properties
https://www.mathematik.tu-dortmund.de/sites/cfdintro
Examples of fluid flows
Fluids (gases and liquids) are flowing
around us: rains, winds, floods, hurricanes
in our body: blood flow, breathing, drinking
in our homes: heating and air conditioning
around cars, planes, buildings, wind turbines
in automobile engines and propulsion systems
in furnaces, heat exchangers, chemical reactors
in geophysical porous media (rock, sand, soil)
Experimental fluid dynamics
Experimental studies are performed with laboratory-scale models
The amount of information is limited and the costs are very high
There are measurement errors and disturbances caused by probes
Theoretical fluid dynamics
Generic conservation law
Z Z Z
∂
u dx + f · n ds = g dx, ∀V ⊂ Ω n f
∂t V S V
V
∂u
+∇·f =g in Ω × (0, T ) S
∂t
Convection - diffusion equation
∂u
+ ∇ · (vu − d∇u) = g in Ω × (0, T )
∂t
Equations of fluid mechanics
Navier-Stokes equations
∂U
+∇·F=G
∂t
conservation of mass
conservation of
momentum
conservation of energy
ρ ρv 0
U = ρv , F= ρv ⊗ v + σ , G = ρg
ρE ρvE − κ∇T − σ · v ρg · v
Simplified models
Compressible Euler equations
ρ ρv
∂
ρv + ∇ · ρv ⊗ v + pI = 0
∂t
ρE ρEv + pv
Incompressible Navier-Stokes equations
∂v
+ v · ∇v − ν∆v = −∇p, ∇·v=0
∂t
Millennium Prize: $1,000,000 for a proof of existence and smoothness
Computational Fluid Dynamics
The Euler and Navier-Stokes equations have been known since 1755
(resp. since 1827). No closed-form solutions are available to date...
Numerical methods can be used to calculate approximate solutions
Computational Fluid Dynamics makes it possible to perform detailed
numerical simulations of fluid flows in a “virtual flow laboratory”
von Karman vortex street CFD simulation
Why use CFD?
Numerical simulations of fluid flow (will) enable
architects to design comfortable and safe living environments
designers of vehicles to improve the aerodynamic characteristics
chemical engineers to maximize the yield from their equipment
petroleum engineers to devise optimal oil recovery strategies
surgeons to cure arterial diseases (computational hemodynamics)
meteorologists to forecast the weather and warn of natural disasters
safety experts to reduce health risks from radiation and other hazards
military organizations to develop weapons and estimate the damage
CFD practitioners to make big bucks by selling colorful pictures :-)
Experiments vs. Simulations
CFD gives an insight into flow patterns that are difficult, expensive or
impossible to study using traditional (experimental) techniques
Experiments Simulations
Quantitative description of flow Quantitative prediction of flow
phenomena using measurements phenomena using CFD software
for one quantity at a time for all desired quantities
at a limited number of with high resolution in
points and time instants space and time
for a laboratory-scale model for the actual flow domain
for a limited range of flow for virtually any problem
problems and operating and realistic operating
conditions conditions
Error sources: measurement errors, Error sources: modeling, discretiza-
flow disturbances by the probes tion, iteration, implementation
CFD in aerospace industry
CFD in automotive industry
CFD in chemical industry
CFD in defense industry
CFD in hazard analysis
CFD simulation of contaminant transport in Chicago (G. Patnaik et al.)
Colorful Fluid Dynamics
Experiments vs. Simulations
CFD does not replace the measurements completely but the amount of
experimentation and the overall cost can be significantly reduced
Experiments Simulations
expensive cheap(er) Equipment and personnel
slow fast(er) are difficult to transport
sequential parallel CFD software is portable,
single- multiple- easy to use and modify
purpose purpose
The results of a CFD simulation are never 100% reliable
the input data may involve too much guessing or imprecision
mathematical model of the problem at hand may be inadequate
the quality of numerical solutions depends on the accuracy of
approximation techniques and available computing power
What hides behind colorful pictures?
Mathematical modeling
Mesh generation
(block-)structured meshes
unstructured meshes
Discretization techniques
space discretization
time discretization
Solution of algebraic systems
direct solvers
iterative solvers
Implementation in a computer code
What can go wrong with CFD?
Linear advection equation ut + vux = 0, u(x, t) = u0 (x − vt)
1st order approximation 2nd order approximation
low-order schemes produce a lot of numerical diffusion
high-order schemes produce non-physical oscillations
some approximations are unstable and therefore useless
Fluid characteristics
Quantities of interest Classification of fluid flows
ρ density viscous inviscid
µ viscosity compressible incompressible
p pressure steady unsteady
laminar turbulent
T temperature single-phase multiphase
v velocity
The reliability of CFD simulations is greater
for laminar/slow flows than for turbulent/fast ones
for single-phase flows than for multi-phase flows
for chemically inert systems than for reactive flows
CFD design cycle
CFD uses a computer to solve the equations of a mathematical model.
The main components of a CFD design cycle are as follows:
the human being (analyst) who states the problem to be solved
scientific knowledge (models, methods) expressed mathematically
the computer code (software) which embodies this knowledge and
provides detailed instructions (algorithms) for
the computer hardware which performs the actual calculations
the human being who inspects and interprets the simulation results
CFD is a highly interdisciplinary research area which lies at the interface
of physics, applied mathematics, and computer science
CFD analysis
1. Problem statement information about the flow
2. Mathematical model IBVP = PDE + IC + BC
3. Mesh generation nodes/cells, time instants
4. Space discretization coupled ODE/DAE systems
5. Time discretization algebraic system Ax = b
6. Iterative solver discrete function values
7. CFD software implementation, debugging
8. Simulation run parameters, stopping criteria
9. Postprocessing visualization, analysis of data
10. Verification model validation / adjustment
Problem statement
What is known about the flow problem to be dealt with?
What physical phenomena need to be taken into account?
What is the geometry of the domain and operating conditions?
Are there any internal obstacles or free surfaces/interfaces?
What is the type of flow (laminar/turbulent, steady/unsteady)?
What is the objective of the CFD analysis to be performed?
computation of integral quantities (lift, drag, yield)
snapshots of field data for velocities, concentrations etc.
shape optimization aimed at an improved performance
What is the easiest/cheapest/fastest way to achieve the goal?
Mathematical model
1 Choose a suitable flow model (viewpoint) and reference frame.
2 Identify the forces which cause and influence the fluid motion.
3 Define the computational domain in which to solve the problem.
4 Formulate conservation laws for the mass, momentum, and energy.
5 Simplify the governing equations to reduce the computational effort:
use available information about the prevailing flow regime
check for symmetries and predominant flow directions (1D/2D)
neglect the terms which have little or no influence on the results
model the effect of small-scale fluctuations that cannot be captured
incorporate a priori knowledge (measurement data, CFD results)
6 Add constituitive relations and specify initial/boundary conditions.
Discretization process
1 Mesh generation (decomposition into cells/elements)
structured or unstructured, triangular or quadrilateral?
CAD tools + grid generators (Delaunay, advancing front)
mesh size, adaptive refinement in ‘interesting’ flow regions
2 Space discretization (approximation of spatial derivatives)
finite differences/volumes/elements
high- vs. low-order approximations
3 Time discretization (approximation of temporal derivatives)
explicit vs. implicit schemes, stability constraints
local time-stepping, adaptive time step control
Iterative solution
The coupled nonlinear algebraic equations must be solved iteratively
Outer iterations: the coefficients of the discrete problem are updated
using tentative solution values from the previous iteration to
get rid of the nonlinearities by a Newton-like method
solve the governing equations in a segregated fashion
Inner iterations: the resulting sequence of linear subproblems is
typically solved by an iterative method (CG, multigrid) because
direct solvers (Gaussian elimination) are too expensive
Convergence criteria: checking the residuals, relative solution
changes and other indicators of convergence.
The algebraic systems to be solved are very large (millions of unknowns)
but sparse, i.e., most of the matrix entries are equal to zero.
CFD simulations
The computing times for a flow simulation depend on
the choice of numerical algorithms and data structures
linear algebra tools, stopping criteria for iterative solvers
discretization parameters (mesh quality, mesh size, time step)
cost per time step and convergence rates for outer iterations
programming language (most codes are written in C++ or Fortran)
many other things (hardware, vectorization, parallelization etc.)
The quality of simulation results depends on
the mathematical model and underlying assumptions
approximation type, stability of the numerical scheme
mesh, time step, error indicators, stopping criteria . . .
Postprocessing and analysis
Postprocessing of the simulation results is performed in order to extract
the desired information from the computed flow field
calculation of derived quantities (streamfunction, vorticity)
calculation of integral parameters (lift, drag, total mass)
visualization (representation of numbers as images)
1D data: function values connected by straight lines
2D data: streamlines, contour levels, color diagrams
3D data: cutlines, cutplanes, isosurfaces, isovolumes
arrow plots, particle tracing, animations . . .
Systematic data analysis by means of statistical tools
Debugging, verification, and validation of the CFD model
Uncertainty and error
Whether or not the results of a CFD simulation can be trusted depends
on the degree of uncertainty and on the cumulative effect of errors
Uncertainty is defined as a potential deficiency due to the lack of
knowledge (turbulence modeling is a classical example)
Error is defined as a recognizable deficiency due to other reasons
acknowledged errors have certain mechanisms for identifying,
estimating and possibly eliminating or at least reducing them
unacknowledged errors have no standard procedures for detecting
them and may remain undiscovered causing a lot of harm
local errors = solution errors at a single grid point or cell
global errors = solution errors in the entire flow domain
Local errors evolve and contribute to the global error.
Classification of errors
Acknowledged errors
Modeling error due to uncertainty and deliberate simplifications
Discretization error ← approximation of PDEs by linear algebra
spatial discretization error due to a finite grid resolution
temporal discretization error due to a finite time step size
Iterative convergence error which depends on the stopping criteria
Round-off errors due to the finite precision of computer arithmetic
Unacknowledged errors
Computer programming error: “bugs” in coding and logical mistakes
Usage error: wrong parameter values, models or boundary conditions
Awareness of these error sources and ability to control/avoid errors are
important prerequisites for developing and using CFD software
Verification of CFD codes
Verification amounts to looking for errors in the implementation of the
models (loosely speaking: “are we solving the equations right”?)
Examine the computer programming by visually checking the source
code, documenting it and testing individual subprograms.
Monitor iterative convergence and check if the prescribed tolerance
is attained for certain norms of the residuals or relative changes.
Check if discrete conservation laws (if any) are satisfied.
Check grid convergence: as the mesh and/or and the time step are
refined, the spatial and temporal discretization errors, should
asymptotically approach zero (in the absence of round-off errors).
Compare the computational results with analytical and numerical
solutions for standard benchmarks (representative test cases).
Validation of CFD models
Validation amounts to checking if the model itself is adequate (loosely
speaking: “Are we solving the right equations”?)
Verify the code to make sure that the numerical solutions are correct.
Compare the results with available experimental data (making a
provision for measurement errors) to check if the reality is
represented accurately enough.
Perform sensitivity analysis and a parametric study to assess the
inherent uncertainty due to insufficient understanding of physics.
Try different models, geometry, and initial/boundary conditions.
Report findings, document model limitations and parameter settings.
The goal of verification and validation is to ensure that the CFD code
produces reasonable results for a certain range of flow problems.
Available CFD software
ANSYS http://www.ansys.com commercial
COMSOL http://www.comsol.com commercial
FEATFLOW http://www.featflow.de open-source
FEniCS https://fenicsproject.org open-source
deal.II http://www.dealii.org open-source
OpenFOAM http://www.openfoam.com/ open-source
Existing CFD software is not yet at the level where it can be blindly
used by designers or analysts without a basic knowledge of the
underlying numerical methods.
Experience with numerical solution of simple ‘toy problems’ makes it
easier to analyze strange results and avoid troubles.
Complex applications (e.g., multiphase flow models coupled with
population balance equations) require modification of basic CFD
models and development of new simulation tools.
Course syllabus
1 Introduction, flow models.
2 Equations of fluid mechanics.
3 Finite Difference Method.
4 Finite Volume Method.
5 Finite Element Method.
6 Implementation of FEM.
7 Time-stepping techniques.
8 Properties of numerical methods.
9 Stabilization techniques.
10 Advanced simulation tools.
Literature
1 J. D. Anderson, Computational Fluid Dynamics: The Basics with
Applications. McGraw-Hill, New York, 1995.
2 J. Donea and A. Huerta, Finite Element Methods for Flow
Problems. John Wiley & Sons, 2003.
3 J. H. Ferziger and M. Peric, Computational Methods for Fluid
Dynamics. Springer, 1996.
4 C. Hirsch, Numerical Computation of Internal and External Flows.
Vol. I and II. John Wiley & Sons, Chichester, 1990.
5 D. Kuzmin and J. Hämäläinen, Finite Element Methods for
Computational Fluid Dynamics: A Practical Guide. SIAM, 2014.
6 R. Löhner, Applied CFD Techniques: An Introduction Based on
Finite Element Methods. John Wiley & Sons, 2001.
7 P. Wesseling, Principles of Computational Fluid Dynamics.
Springer, 2001.