• CFD, Fluid Flow, FEA, Heat/Mass Transfer
  • +91 987-11-19-383
  • amod.cfd@gmail.com
CFD, FEA, Turbulence

Mathematics is perfect but has limitations!

Realm of Numerical Simulations!

Applications of any numerical methods such as Computational Fluid Dynamic (CFD) Simulations for fluid flow and heat transfer problems in industry have many virtues. Such tools and methods not only help make products better but also lead to reduction in the overall product development cycle time.

Werner Heisenberg: When I meet God, I am going to ask him two questions: why relativity? And why turbulence? I really believe he will have answer for the first! […]


The flow over bluff bodies has applications ranging from electrical high tension wires to cars to aeroplanes

Flavours of Numerical Methods

Topics in CFD and Structural Analyses

  • FEA in Excel

    A step by step approach to explain FEA methodology […]

  • Mesh Generation

    Meshing for CFD is 50% capability and 50% art! […]

  • Rotating Flows

    Flow through turbo-machines: centrifugal blower […]

  • Symmetric Geometries

    Automation in ICEM CFD - Labyrinth seals […]

  • Write your own code?

    Fortran programs for Gauss Elimination & TDMA […]

  • Try Free Softwares?

    Learn methods of simulations using OpenFOAM […]

  • Shape Function

    Complicated mathematical arrangement demystified! […]

  • Validate Results

    CFD can be Colorful Fluid Dynamics! […]

blog icon Visit the blog page to view topics on mathematics, human resource, textbook solutions, data analytics in stock market trading, politics and media, online quizzes and much more ...

Step-by-Step Guide to CFD Simulation

A typical division of a CFD simulation or as a matter of fact any numerical simulation is in 3 category namely Pre-Processing, Solution and Post-Processing. However, for beginners into this field this does not convey much insight. The complete simulation process is explained here in a step-by-step sequence to be followed.

  • Step-01: Before you jump on the simulation methods, define the problem statement and expected output, accuracy and turn-around time. This requires asking questions like
    • What would be size of the computational domain (the volume in 3D or area in 2D)? Do I need to model solid or only fluid?
    • Where the fluid is entering into the chosen computational domain and how? Is it fully developed or uniform? What would be the trubulence level?
    • What is the information available at inlet: pressure, velocity, temperature, turbulence level?
    • Where can I put the location where fluid exits from computational domain? What are the known parameter there: pressure, velocity...? Will it be prone to reverse flow? Can I extend the location without affective the result?
    • What are the conditions at the walls: known temperature or heat flux? Do I need to consider the surface roughness?
    • Do I need to define the full size or use a reduced scale?
  • Step-02: Once you are clear with expected goal and outcome from your simulation, prepare the computational domain in a CAD program such as FreeCAD, Solidworks, CATIA or inside the pre-processor directly such as GMSH, Salome, OpenFOAM ... The CAD data stored in format of the program used to create it is called Native format such *.FCStd for FreeCAD. There are neutral file formats which are used to exchange data such as IGES (surface data), STEP (solid data), STL (triangulated surface data) and Parasolid to name few of them. Additional information can be found here for considerations required to create the computational domain.
  • Step-03: This step is not requires if geometry has been created specially for CFD simulation. This step is required when you use CAD data created by design engineers which may contain additinal information not needed for numerical simulations. These may be small fillets at corners, bolts and screws, gaps for shrink-fit or CAD modeling error... The purpose it to get a water-tight geometry where all the faces are connected with single edges. This step is called geometry simplification and defeaturing (removing features like chamfer, fillets, taper, bolt holes...). Additional information can be found here for defeaturing methods and recommendations.
  • Step-04: Mesh generation - this is a process of dividing the overall volume into smaller pieces or smaller volumes. A given computational domain may have infinite degree-of-freedom (DOF) or locations where solution need to be found out. However, numerical method need to reduce the DOF to 'some' finite number of DOF and hence this process is also also Finite-Element Method or Finite-Volume Method. Additional information can be found here for mesh generation methods and recommendations.
  • Step-05: Material Property and Boundary Condition Setting - most of the numerical methods are known as boundary value problem. That is they need to satisfy some known conditions or constraints on a pre-defined locations or boundaries. For fluids, walls, inlet and outlet are some of the basic boundary types. Refer to this page for type of boundaries and recommendations.
  • Step-06: The set-up is now ready for solution. All the numerical simulations gets reduced to the format [A]{x} = {b} where [A] is large matrix and {x} is the unknowns we are looking to estimate. In this step, the method to model turbulence, wall function, discretization scheme for differential operators such as du/dy and d2u/dy2 is specified. Refer to this page for methods and recommendations. A detailed description of turbulence modeling can be found here.
  • Step-07: Initialization, solution monitoring and trouble-shooting - this step the user needs to provide a good guess of pressure, velocity and turbulence then start the simulation run. Then the user need to monitor the progress while program solves equation [A]{x} = {b} iteratively. The program may not result in a solution (known as divergence of solution process) or may lead to a solution but the residuals may not reach to low level recommended by the developers of the program. There might be sharp fluctuations in the calculated values and one will need to adjust the solver parameters to eliminate abnormality. This may be achieved by changing relaxation factors, discretization scheme to first order or even refining and improving the mesh quality.
  • Step-08: Once solution is achieved (known as convergnece of iterative process), the results need to be presented in visual form using graphs, contour plots and tabulated data. This step is called post-processing. However, this step is not limited to present the result but share the insight gained through simulation process in the form of design recommendations, justification for accuracy of results and effect of assumptions made during the start of the simulation activity. Refer to this page for methods and recommendations. Some futher information about validation and checking errors associated with simulation can be found here.

All these steps have been explained through an example simulation for "Flow Over a Back-Step" and can be found here! If you have access to ANSYS FLUENT, a step-by-step guide with GUI screenshots can be found in this PDF file. Similarly, if you have experience in using any commercial tool say CFX and want to try open-source product such as OpenFOAM, a comparison of methods is summarized in this page.

In addition to the steps, as a thermal and fluid flow analyst, you may need to make many other considerations as summarized below.

  • Boundary layer height: How do I know well in advance what should be the first layer height to resolve boundary layer properly? While no unique method exist, most of the flow conditions can be approximated to either of the 3 conditions - flow inside a duct, flow over a bluff body and flow over a flat plate. This page provide an initial estimate of first layer height for required Y+ requirements.
  • Rotating parts: Which methods are available to model rotating components and turbo-machines? A short summary on simulation methods of rotating walls and turbomachines has been summarized here.
  • Steady or transient? Steady state refers to the condition when field variables (velocity, pressure, temperature ...) are not function of time. Sometimes simulation does not converge when a steady state solution approach is used and one of the reason can also be inherent transient nature of the flow phenomena.
  • Porous zones: The simulation parts may involve components with not only very thin passage but also large number of them. Examples include heat exchnagers like automotive radiators, HVAC condensers, honeycomb geometry in catalytic converters, perforated grilles... The need to be modeled in a special way known as porous domain (3D) and porous jump (2D).
  • More than one phases? Sometimes mixing of two fluids need to be modeled. These phemomena are called multi-phase flows such as flows in emulsification, mixing tanks, continuously stirred tank reactors (CSTR), filling of a tanks, sloshing in a automotive fuel tank... A basic description of multi-phase flows and methods to simulate such phenomena in OpenFOAM is described here.
  • Buoyancy and Natural Convection: This is one area which had wide applications in cooling of electronic components and HVAC. However, such simulations are prone to divergence and special considerations are required. One of them is to chose which assumption is best applicable to model the buoyancy effect.

Convergence and relaxation factors

This is one of the most talked about (and sometimes dreaded) term used in numerical simulation field. The term 'convergence' refers to the process where the iterative method moves towards "expected final result". It is best explained using a problem from algebra where we need find out value of x in equation y = 5x2 + 25 when y = 1000. We all know a direct method:
x = [(y - 25)/5]0.5.

  Let's try an iterative method using algorithm xi+1 = xi × (1 - Δyi). Here, i refers to the iteration number and Δy refers to deviation of the calculated value of y from desired value of y = 1000, Res-Norm-1 refers to the absolute value where the residual % is normalized (divided) by the residual % obtained in 0th iteration based on guess value, Res-Norm-3 refers to the absolute value when the residual % is normalized (divided) by the residual % obtained in 0th ~ 2nd iterations.

Iteration, i xi yi Δyi Res-Norm-1 Res-Norm-3
Initial Guess10.00 525.0 +475.0 +47.5% - -
1 14.75 1112.8 -112.8 -11.3% 0.2375 -
2 13.09 881.2 +118.8 +11.9% 0.2501 -
3 14.64 1096.7 -96.70 -9.67% 0.2036 0.6032
4 13.22 899.45 +100.6 +10.1% 0.2117 0.6272
5 14.55 1084.1 -84.14 -8.41% 0.1771 0.5248
6 13.33 913.40 +86.60 +8.66% 0.1823 0.5401
7 14.48 1073.9 -73.93 -7.39% 0.1556 0.4611
8 13.41 924.57 +75.43 +7.54% 0.1588 0.4705
9 14.42 1065.4 -65.40 -6.54% 0.1377 0.4079
10 13.48 933.77 +66.23 +6.62% 0.1394 0.4131
11 14.37 1058.1 -58.14 -5.81% 0.1224 0.3626
12 13.54 941.50 +58.50 +5.85% 0.1232 0.3649
13 14.33 1051.9 -51.86 -5.19% 0.1092 0.3235
14 13.59 948.11 +51.89 +5.19% 0.1092 0.3236
15 14.29 1046.4 -46.39 -4.64% 0.0977 0.2894
16 13.63 953.82 +46.18 +4.62% 0.0972 0.2881
17 14.26 1041.6 -41.59 -4.16% 0.0876 0.2594
18 13.67 958.79 +41.21 +4.12% 0.0868 0.2570
19 14.23 1037.3 -37.34 -3.73% 0.0786 0.2329
20 13.70 963.15 +36.85 +3.68% 0.0776 0.2298
21 14.20 1033.6 -33.56 -3.36% 0.0707 0.2094
22 13.73 967.00 +33.00 +3.30% 0.0695 0.2059
23 14.18 1030.2 -30.20 -3.02% 0.0636 0.1884
24 13.75 970.40 +29.60 +2.96% 0.0623 0.1846
25 14.16 1027.2 -27.19 -2.72% 0.0572 0.1696

Look how the calculated value of x still makes y off the final value by 2.72% even after 25 iterations. What are the ways to speed-up this process - that is how can we reach to the correct value with lesser number of iterations? One option is to change the way the value of xi+1 is calculated from xi. This method is known as use of "Relaxation Factors" in numerical simulation technology. Let's try the approach: 0.8 in the following equation is the relaxation factor (also called under-relaxation factor as the value is < 1.0).
xi+1 = [xi × (1 - Δyi)] * 0.8 + xi * 0.2

Iteration, i xi yi Δyi Res-Norm-1 Res-Norm-3
Initial Guess 10.00 525.0 475.0 47.5% - -
1 14.75 1112.8 -112.8 -11.3% 0.2375 -
2 13.42 925.30 +74.70 +7.50% 0.1572 -
3 14.22 1036.1 -36.11 -3.61% 0.0760 0.2480
4 13.81 978.54 +21.50 +2.10% 0.0452 0.1474
5 14.05 1011.6 -11.56 -1.16% 0.0243 0.0794
6 13.92 993.39 +6.61 +0.66% 0.0139 0.0454
7 13.99 1003.7 -3.66 -0.37% 0.0077 0.0251
8 13.95 997.94 +2.06 +0.21% 0.0043 0.0141
9 13.97 1001.1 -1.15 -0.11% 0.0024 0.0079
10 13.96 999.35 +0.65 +0.06% 0.0014 0.0044
11 13.97 1000.4 -0.36 -0.04% 0.0008 0.0025
12 13.96 999.80 +0.20 +0.02% 0.0004 0.0014
13 13.97 1000.1 -0.11 -0.01% 0.0002 0.0008
14 13.96 999.94 +0.06 +0.01% 0.0001 0.0004
15 13.96 1000.0 -0.04 +0.00% 0.0001 0.0002
16 13.96 999.98 +0.02 +0.00% 0.0000 0.0001
17 13.96 1000.0 -0.01 +0.00% 0.0000 0.0001

This is an excellent example of relaxation factor improving the speed of convergence. Readers iare advised to try out the calculation with different values of inital guess (say 12, 15 instead of 10) and relaxation factor (say 0.2, 0.5 instead of 0.8) to see the effect on rate of convergence (number of iterations required to find result x = 13.96).

  • Absolute Residuals: The values reported in column-4 of the tables above are absolute residuals, "in this example" estimated as difference of exact solution and value calculated during iterations. In most of the simulations, the result (or target value) is not known in advance. Hence, for a system of linear equation [A]{x} ={b} the absolute residul is sum of residuals at each node. In 2D case:

    A*xP + B*xN + C*xS + D*xE + E*xW = FP where P denotes the calculate node and N, S, E, W denotes the nothr, south, east and west nodes respectively. Here, absolute residual is

    εn = [A*xPn + B*xNn + C*xSn + D*xEn + E*xWn - FPn] where n is the iteration number.

  • Scaled Residuals: The values reported in column-5 of the tables above are scaled residuals. They have been divided by the calculated value of dependent variablle and hence indicate relative change with respect to expected result. In comparison to "absolute residuals" which has no bounds and bounds themselves change from problem to problem, scaled residual has well-defined bounds on a scale of 0~1 or 0~100 and easy to interpret for all types of iterations. ANSYS FLUENT reports this residual by default. It also has option to report normalized residual as explained below.
  • Normalized Residuals: The values reported in column-6 and colum-7 of the tables above are normalized residuals. Note that the residuals are further divided by another residual hence there cannot be an upper bound defined. What if the residual is very low in first iteration (occurs when the initial guess is very close to exact result)? The subsequent normalized residuals will be high even if the solution approaches (converges) to a correct and accurate result. In order to avoid this ambiguity, one of the following two approaches can be adopted.
    • Normalize by average of first 'few' iterations
    • Normalize by maximum residual obtained in first few iterations. ANSYS FLUENT uses this method with default value of first '5' iterations and can be set by user.
  • Convergnece of Residuals:Typically the recommened practice it to have residuals (scales or normalized) of the order of 10-4 or lower (this threshold varies across the industries and desired accurcy - for example an accuracy in lift coefficient or drag coefficient prediction of 0.001 for airfoils). However, even in cases where such low residuals are not achieved, it does not necessarily mean that the simulation results are poor. In the absence of good residual convergence, more emphasis should be placed on the convergence of integral values (known as monitor points) such as lift or force coefficients, area-averaged wall shear stress ... Yet what constitutes good convergence of a such integral value needs to be evoloved for each field of applications (as it may not always be asymptotic especialy in cases of large region of separation and flow instablities in wake regions).
  • Oscillating Residuals: In many application such as turbomachines, flow around ships andbluff-bodies, there is always some amount of separation and unsteadiness in wake regions. In such cases, residuals show a "steady oscillation" pattern where such oscillations tend to be periodic and reaches a constant amplitude about a constant mean value. The outcomes of such simulation can be considered faily accurate and meaningful with average value used in final calculations of field variables.

Allied Methods

  • DEM: Discrete Element Method: The well-known FEM and FVM method is a continuum-based calculation techniques where the media is assumed to conform to continuum hypothesis (where the properties of the matter are considered as continuous functions of space variables x, y an z. Though all matters are composed of atoms and molecules, the concept of continuum assumes a continuous distribution of mass within the matter with no void or empty space). DEM is application similar to CFD which applies to flow (rather movement) of granular media such as grains, stone chips, sand. In DEM, the masses are numerically represented as a group of points which is subsequently is associated with a physical particle in the mass. Further, interaction among the particles (friction, collision,, deformation) are modelled by springs and dashpots that are applied in normal and shear directions (at the point of contact or collision) respectively. In civil engineering, this method is being applied for failure of slopes, calculation of angle of repose... Ease of applicability to moving boundary problems is one of the key characteristics of this method. Recently, it has is also being used to study the fracture of brittle materials.
  • BEM: Boundary Element Method - also known as the "boundary integral equation method" or "boundary integral method": As the name suggest, this method discretizes only the boundaries of the computational domain. Widely used in field problems with unbounded exterior domain but bounded boundaries such as magnetic field calculation and acoustics - this method does not need to model the entire domain required in FEM/CFD. Mathematical definition: "boundary element method" (BEM) refers to any method for the approximate numerical solution of a "boundary value problem" (BVP) of "partial differential equations" (PDE). This method is limited to only for linear partial differential equations with constant coefficients whereas problems with nonlinear differential equations require coupling between FEM and BEM.
Contact us
Disclaimers and Policies

The content on CFDyna.com is being constantly refined and improvised with on-the-job experience, testing, and training. Examples might be simplified to improve insight into the physics and basic understanding. Linked pages, articles, references, and examples are constantly reviewed to reduce errors, but we cannot warrant full correctness of all content.