Dhaka, Bangladesh

A Complete Learning Path for CFD


Posted on 26 May 2022

Computational Fluid Dynamics (CFD) is a rapidly growing field that has become increasingly popular in recent decades. It encompasses a wide range of applications, including heat transfer, aerodynamics, turbulence, combustion, multiphase systems, and more. Due to its vast nature, it has become one of the top research fields in mechanical, biomedical, chemical, and civil engineering. CFD is a combination of mathematics, physics, and numerical analysis, making it essential to have a strong understanding of these subjects while learning CFD. However, many students, particularly undergraduates, believe that learning commercial software is the only aspect of CFD. This leads to a lack of understanding of the underlying principles and a reliance on “black box” solutions. To address this issue, this article is designed to provide a guide for learning CFD from the basics to the advanced level. It will help you understand the fundamentals of CFD and how to apply them in various applications. The resources provided in this article are open-sourced and completely free.

So let’s start!

learning path of CFD

Before diving into the world of Computational Fluid Dynamics (CFD), it is important to have a solid foundation in mathematics, particularly differential equations and engineering mathematics. These mathematical concepts form the backbone of CFD and are essential for understanding the underlying principles of the subject. Differential equations are used to model the physical phenomena that occur in fluid dynamics, such as the Navier-Stokes equations, which describe the motion of a fluid. Engineering mathematics, on the other hand, provides the tools to analyze and solve these equations. Understanding these mathematical concepts is crucial for understanding how CFD simulations are set up and how the results are interpreted. In short, a basic knowledge of mathematics, especially differential equations and engineering mathematics, is necessary to grasp the fundamentals of Computational Fluid Dynamics. Without this foundation, it will be difficult to fully understand the subject and apply it to various applications.

1. Differential Equations, Professor Leonard 
2. Engineering Mathematics, Dr. Steve Brunton

Before going into CFD, it is important to have a strong understanding of the fundamentals of Fluid Mechanics. Without this foundation, many of the parameters and concepts used in CFD simulations will remain unknown. Fluid mechanics is the study of the behavior of fluids at rest and in motion. It covers a wide range of topics, including fluid statics, fluid kinematics, and fluid dynamics. Understanding these concepts is essential for understanding how fluid flows and how it behaves in different situations. It also provides the foundation for understanding the mathematical models used in CFD simulations. To gain a better understanding of fluid mechanics, I suggest checking out the following playlists which I found beneficial in understanding the concepts and parameters:

Fluid Mechanics:
1. Fluid Mechanics I, Dr. John Biddle
2. Fluid Mechanics II, Dr. John Biddle
3. Fluid Mechanics, Dr. Roger H. Rangel
4. Fluid Mechanics, NPTELHRD
5. Fluid Mechanics and Compressible Flow, NPTELHRD
6. National committee of fluid mechanics films
However, if anyone wishes to learn Fluid Mechanics from books this blog could be useful. (Click here)

Like Fluid Mechanics, it is also important to have a basic understanding of Heat Transfer while working with CFD. Heat transfer is a crucial aspect of many CFD simulations, particularly those related to thermal management and energy systems. To understand heat transfer problems, it is important to be familiar with the different parameters of conduction, convection, and radiation. These concepts are used to describe how heat is transferred through a medium and how it affects the behavior of the fluid.

Heat Transfer:
1. Heat Transfer, Dr. John Biddle
2. Convective Heat Transfer, Dr. Josua Meyer
3. Heat and Mass Transfer, NPTELHRD 
4. Combustion, CEFRC

After gaining a solid foundation in mathematics, physics and fluid mechanics, the next step in learning Computational Fluid Dynamics (CFD) is to study numerical analysis. Numerical analysis is the branch of mathematics that deals with the design, analysis, and implementation of algorithms for solving problems numerically. Understanding numerical analysis is crucial for understanding how CFD simulations are set up, how the equations are solved, and how the results are interpreted. To gain a better understanding of numerical analysis in CFD “ME 702- Computational Fluid Dynamics, Lorena Barba” playlist is a great resource. It covers the fundamental concepts and principles of CFD and provides a thorough introduction to the subject. For modern CFD solution techniques, playlists of “Fluid Mechanics 101” would be very useful. It covers more advanced topics of the latest developments and techniques in the field of CFD. All the basic, advanced, and very advanced resources are given below:

Computational Fluid Dynamics:
1. Numerical Methods for Engineers
2. ME 702 – Computational Fluid Dynamics, Lorena Barba
3. Fluid Mechanics 101
     – Concepts 
     – Wall Functions and Wall Modelling
     – Meshing
     – Reynolds-Averaged Navier Stokes (RANS)
     – The Finite Volume Method in CFD
     – Solution Algorithms
     – Heat Transfer and Energy
     – Large Eddy Simulation
     – Residuals
     – Relaxation, Steady State Solution and Pseudo-Transients 
4. Aerospace – Introduction to CFD, Nptelhrd
5. Foundation of Computational Fluid Dynamics, NPTEL
6. Computational Fluid Dynamics for Incompressible Flows, NPTEL
7. Computational Fluid Dynamics – Prof. Suman Chakraborty
8. Computational Fluid Dynamics – Anirban Bhattacharya
9. Computational Fluid Dynamics, Jousef Murad
10. Introduction to Computational Fluid Dynamics (CFD) – Prof. S. A. E. Miller, Ph.D.
11. CFD Course, QuickerSim Ltd
12. Create Software for Computational Fluid Dynamics
13. CFD Lectures
14. Ph.D. content

There are many commercial software packages available for solving problems in Computational Fluid Dynamics (CFD), such as ANSYS, Comsol Multiphysics, Simscale, Altair, Converge, Star CCM+, Flow 3D, etc. Among these, ANSYS is widely used in industry and academia. It has several modules such as Fluent, CFX, Polyflow, Throughflow, and Turbomachinery, each of which is tailored to specific types of CFD simulations. However, the learning resources can be found in the internet if anyone wishes to start with any other commercial software.

1. A Hands-on Introduction to Engineering Simulations, edX
2. Ansys Innovation Courses, ANSYS
3. LearnCAx, ANSYS and STARCCM+
4. Ansys Fluent Course, abdouegy
6. ANSYS Fluent Tutorials, Ansys-Tutor
7. ANSYS Meshing Playlist, C. Nava
8. Ansys Meshing tutorial, hincapie Montoya
9. CFD Workflow & Best Practices for FSAE using ANSYS Fluent, LEAP Australia
10. Ansys Fluent Tutorial, Hatef Khaledi

As CFD simulations rely heavily on numerical analysis and computer programming, it is important to have a solid understanding of these concepts to effectively work with CFD. Programming knowledge is particularly important as it allows users to automate repetitive tasks, write custom scripts, and create custom solvers. To start learning programming for CFD, I suggest starting with Python. Python is a popular programming language that is widely used in the scientific and engineering communities. It is easy to learn, versatile, and has a large number of libraries and modules that can be used for CFD simulations. The following resources are suggested to start learning programming with Python:

1. CS50: Introduction to Computer Science
2. Python for Everybody – Full University Python Course
3. Learn Python – Full Course for Beginners
4. Introduction to Computer Science and Programming Using Python
5. Python 3 Programming Specialization, Coursera

In addition to Python, MATLAB is another popular programming language that is widely used in the scientific and engineering communities. It is particularly well-suited for CFD simulations due to its powerful matrix manipulation capabilities and extensive library of toolboxes and functions. It’s worth noting that both Python and MATLAB are widely used in CFD simulations and both have their own advantages and disadvantages. The choice of which language to use depends on the specific needs of the problem and the user’s personal preference. If you are interested in learning how to use MATLAB for CFD simulations, the following resources are suggested:

MATLAB (CFD based):
1. MATLAB, Jousef Murad
2. An Introduction to CFD using MATLAB, Tanmay Agrawal
3. MATLAB Programming for Numerical Computation, NPTEL

For high performance computations, Linux is often used in CFD labs. Linux is a powerful and stable operating system that is well-suited for running large-scale simulations. It is also free and open-source, which makes it accessible to a wide range of users. If you are new to Linux and want to become comfortable with the operating system, the following playlists are suggested. These playlists will provide you with a basic understanding of the Linux interface and help you understand how to navigate the system and use common commands. With this knowledge, you will be better equipped to use Linux for high-performance computations and CFD simulations.

1. Ubuntu (Linux) Complete Beginner’s Guide, Linux TV
2. Linux Pro, Jozsef Nagy

OpenFOAM is a powerful and flexible open-source package that is widely used in Computational Fluid Dynamics (CFD) research and applications. It is becoming increasingly popular due to its ability to facilitate the development of custom-built open-source CFD software for a wide range of problems, including those in the field of Wall-bounded Shear Flows (WSI). One of the key features of OpenFOAM is its extensive library of models and parallelization options, which allows users to tailor the software to their specific needs. This flexibility makes it an attractive choice for both industry and academia. Additionally, the fact that it is freely available and open-source makes it accessible to a wide range of users. If you are interested in learning more about OpenFOAM and how to use it for CFD simulations, there are a number of tutorials available online. The suggested tutorials are given here:

1. Ghent University OpenFOAM course
2. OpenFOAM, foamDude
3. OpenFOAM Basic, Jozsef Nagy
4. OpenFOAM intermediate, Jozsef Nagy
5. OpenFOAM Multiphase VOF, Jozsef Nagy
6. OpenFOAM Bash, Theo Ong Science and Engineering
7. Introductory C++ for OpenFoam Users, Theo Ong Science and Engineering
8. OpenFOAM Heat Transfer, Theo Ong Science and Engineering
9. OpenFOAM Intermediate Videos, Theo Ong Science and Engineering
10. OpenFoam for Windows Newbie Guide, OpenFoam for Windows Newbie Guide
11. OpenFOAM userguide
12. OpenFOAM wiki

Data visualization is an important aspect of Computational Fluid Dynamics (CFD) as it allows researchers and engineers to effectively represent and analyze the results of physical simulations. Most commercial CFD software packages come with built-in post-processing tools for plotting results, but there are also a number of external visualization software that can be used to enhance the scientific value of the results. Two popular visualization tools for CFD are Paraview and Tecplot. Paraview is a powerful, open-source data visualization application that can be used to visualize a wide range of data, including CFD results. It is known for its ability to handle large datasets and for its powerful visualization capabilities. Tecplot, on the other hand, is a commercial visualization tool that is widely used in the CFD community. It is known for its ability to handle complex data and for its user-friendly interface. Some suggested tutorials are:

1. Paraview Video Tutorials, Cyprien Rusu
2. Advanced Scientific Visualization with ParaView, cscsch
3. Paraview Beginner Tutorial
4. Paraview, Cuneyt Ertal

1. Tecplot, Mohammad Hadi Bagheri
2. Tecplot Tutorials, Genias Graphics

In conclusion, the resources provided in this article are designed to give you a deep understanding of Computational Fluid Dynamics (CFD). The materials cover a range of topics from the basics to the advanced level, and can help you gain a deep understanding of the subject. By starting with the fundamentals and working your way up, you can develop a solid foundation in CFD and apply it to various applications.

If you found this article helpful, please share it with others who are interested in learning more about CFD. Happy learning!

My CFD research page: Click here. For research collaborations with me, please send an email to: jahidhasan@iut-dhaka.edu