Free Web Hosting Provider - Web Hosting - E-commerce - High Speed Internet - Free Web Page
Search the Web

Computational Fluid Dynamics - CFD
Broken Damthis guy is clearly frustrated with CFD...
Home Engineering Sports HTML Tutorial Fun Stuffs Personal
CFD
CFD Books
Fortran Codes
FM Books
Top Universities
Mathematicians
Athletics
100m Sprint
Tennis
ATP Winners
Grand Slam
Rankings
HTML
Optical Illusion
Mind Reader
Java Applets
about
Guest Book
| Humorous Article | CFD People | Navier-Stokes Eqn |

Computational Fluid Dynamics

 
    | CFD | FEM | Brief Review | CFD Journals | CFD Links |


CFD - An Introduction

Computational Fluid Dynamics, or simply CFD is concerned with obtaining numerical solution to fluid flow problems by using computers. The advent of high-speed and large-memory computers has enabled CFD to obtain solutions to many flow problems including those that are compressible or incompressible, laminar or turbulent, chemically reacting or non-reacting flows.

The equations governing the fluid flow are the continuity (conservation of mass), the Navier-Stokes (balance of momentum), and the energy (conservation of energy) equations. These equations form a system of coupled non-linear partial differential equations (PDEs). Because of the coupled nature of the equations and the presence of non-linear terms, the fluid flow equations are generally not amenable to analytical method of obtaining the solution. In general, closed form analytical solutions are possible only if these PDEs can be made linear, either because non-linear terms naturally drop out (as in the case of parallel flows or flows that are inviscid and irrotational everywhere) or because the nonlinear terms are small compared to other terms so that they can be neglected (eg., creeping flows, small amplitude sloshing of liquid etc.). If the non-linearities in the governing PDEs cannot be neglected, which is often the case for most engineering flows, one normally has to resort to numerical methods to obtain solutions.

CFD is the art of replacing the differential equations governing the Fluid Flow, with a set of algebraic equations (this process is called the discretization), which in turn can be solved with the aid of a digital computer to get an approximate solution. The commonly used discretization methods in CFD analysis are the Finite Difference Method (FDM), the Finite Volume Method (FVM), the Finite Element Method (FEM), and the Boundary Element Method (BEM). Some special cases of flow problems can also be solved using nonstandard method like, Boundary Integral Methods, Spectral Methods, and Pseudo-Spectral Methods.

FDM is the most commonly used method in CFD applications. Here the domain including the boundary of the physical problem is covered by a grid or mesh. At each of the interior grid point the original Differential Equations are replaced by equivalent finite difference approximations. In making this replacement, we introduce a discretzation error which is proportional to the size of the grid. The error can be reduced by making the grid size smaller to get an accurate solution within some specified tolerance.

This brief description is hardly sufficient to demystify the seemingly esoteric world of CFD. Those who are really interested in learning CFD is referred to the list of some excellent books classified into various categories.

FEM - A Brief Introduction

Students often ask me about the difference between FEM and CFD. Many of them had an impression that they are related to each other. Below I try to give a brief and nonrigorous description of FEM.

Finite Element Method (FEM) is a mathematical (numerical) tool (just like Finite Difference Method) used to solve complex physical problems which are not amenable to classical techniques of mathematics. It has found it's applications in the fields of Structural Design, Vibration Analysis, Fluid Dynamics, Heat Transfer, and Magnetohydrodynamics to name a few.

The basic idea in FEM analysis of field problems is as follows:

  The solution domain is discretized into number of small subregions (ie, Finite Elements).
  Select an approximating function known as interpolation polynomial to represent the variation of the dependent variable over the elements.
  Integrate the governing differential equation (often PDEs) with a suitable Weighting Function, over each elements to produce a set of algebraic equations - one equation for each element.
  The set of algebraic equations are then solved to get the approximate solution of the problem.

In principle, any well posed Boundary Value Problem can be solved by the techniques of FEM.

CFD - A Brief Review

Computational Fluid Dynamics (CFD) provides a good example of the many areas that a scientific computing project can touch on, and its relationship to Computer Science. Fluid flows are modeled by a set of partial differential equations, the Navier-Stokes Equations. Except for special cases no closed-form solutions exist to the Navier-Stokes equations, and this fact was one of the motivations John von Neumann provided for the development of electronic computers.

Solving a particular problem generally involves first discretizing the physical domain that the flow occurs in, such as the interior of turbine engine or the radiator system of a car. This discretization is straightforward for very simple geometries such as rectangles or circles, but is a difficult problem in CAD for more complicated objects. Currently automatic ``mesh generators'' are simply not adequate, requiring extensive investment of time on the part of the scientist or engineer. This leads to problems in human-computer interfaces (HCI) and CASE tools, as well as fundamental problems in graph theory since the resulting discretization gives a mesh that is best dealt with as a graph.

On the discretized mesh the Navier-Stokes equations take the form of a large system of nonlinear equations; going from the continuum to the discrete set of equations is a problem that combines both physics and numerical analysis; for example, it is important to maintain conservation of mass in the discrete equations. At each node in the mesh, between 3 and 20 variables are associated: the pressure, the three velocity components, density, temperature, etc. Furthermore, capturing physically important phenomena such as turbulence requires extremely fine meshes in parts of the physical domain. Currently meshes with 20 000 to 2 000 000 nodes are common, leading to systems with up to 40 000 000 unknowns.

That system of nonlinear equations is typically solved by a Newton-like method, which in turn requires solving a large, sparse system of equations on each step. Sparsity here means that the matrix of coefficients for the linear system consists mainly of zeros, with only a few nonzero entries. With 4.0e7 unknowns, clearly we cannot store the matrix as a 2D array with 1.6e15 entries! Storing the coefficients requires development of efficient data structures which require little overhead storage but allow the necessary manipulations to be performed efficiently.

Methods for solving large sparse systems of equations are a hot topic right now, since that is often the most time-consuming part of the program, and because the ability to solve them is the limiting factor in the size of problem and complexity of the physics that can be handled. Direct methods, which factor the matrices, require more computer storage than is permissible for all but the smallest problems. Iterative methods use less storage but suffer from a lack of robustness: they often fail to converge. The solution is to use preconditioning; that is, to premultiply the linear system by some matrix that makes it easier for the iterative method to converge.

CFD problems are at the limits of computational power, so parallel programming methods are used. That brings in the research problem of how to partition the data to assign parts of it to different processors; usually domain decomposition methods are applied. Domain decomposition is often expressed as a graph partitioning problem, namely finding a minimum edge cut partitioning of the discrete mesh, with roughly the same number of nodes in each partition set. This is an NP-hard problem, so rapid heuristics are used to get quick and dirty solutions. An additional problem with parallel programming is that the better methods for solving the resultant linear systems often have inherently sequential characteristics, while parallel solution methods are not robust enough to tackle real world problems.

Boeing Fighter Aircraft Once the solution is found, analyzing, validating, and presenting it calls into play visualization and graphics techniques. Those techniques are useful for more than just viewing the computed flow field. Visualization can help with understanding the nature of the problem, the interaction of algorithms with the computer architecture, performance analysis of the code, and, most importantly, debugging!

This example of CFD indicates where computer science comes into play: graph theory and algorithms, computational complexity, numerical analysis, parallel programming, graphics and visualization are all needed here.




Simulation of Flow Around a Square Block

 
CFD and related journals
Some useful CFD links
Unstrctured Grid Around a Cylinder