How to Learn CFD ? – The Beginner’s Guide
Beginner in CFD journey has the first question in mind “How do I start learning CFD ?” Because of the depth of subject and ocean of knowledge available online, there is high probability of getting lost in the learning journey and in many cases getting demotivated from learning CFD itself. This question is asked by many, so I thought of laying out the learning path for CFD beginners. This guide gives a head-start to beginners about what to learn, what to focus on and most importantly from where to learn.
Note: A PDF copy of this beginner’s guide is provided for your reference. The files is available in the download section above. You need LearnCAx account to download file. If you do not have an account, create your FREE LearnCAx account here.
When one wants to start learning CFD without any prior knowledge about the subject, the biggest inertia is starting point. This inertia is expressed in many form of queries. Few of them are (Source http://www.quora.com/ and others)
- I am a Mechanical Engineering guy. How should I start learning ANSYS Fluent online / offline?
- How does a mechanical engineering student with no knowledge of computer science (apart from C programming) learn CFD?
- I am a mechanical engineering student with CAD software knowledge. How can I start learning CFD?
- I want to learn CFD software. Which is best institute in “XYZ” location?
- Where I can learn CFD software?
- I have done my civil engineering, can I learn CFD?
These are different forms of the same question “How do I start learning CFD ?” Few questions above are related to pre-requisites for learning CFD and few have flavour of “From where” in the question.
The Two Paths
The CFD learning path is same for all. Few learners might have prior knowledge and skill sets, and would skip few millstones, but the path remains the same for everyone. Each and every learner has to go through the all required learning phases.
The learning path also depends on the end objective or nature of work one wants to do. There are two main views for learning CFD, first “The CFD developer’s view” and second “CFD application engineer’s view”. CFD developers is the one who writes computer programs/codes related to CFD. Developer’s main objective is to write CFD computer programs/code which will be used by himself or others for CFD analysis. CFD application engineer is the one who uses available programs/codes/software for the analysis of engineering problems. Application engineer uses CFD as a tool for analysis, design and optimization of engineering devices.
The learning path for CFD developer and application engineer is not entirely different. First few milestones in learning path are must and necessary for both. At later stage, developer starts focusing on numerical schemes, programming languages etc. and application engineer starts focusing on learning different CFD software and using them for solution of variety of engineering problems. So before starting learning CFD, one needs to define end goal for “Why he is learning CFD ?” Does he want to be developer or application engineer ? This question needs to be answered before starting CFD learning journey so that he can choose the required learning path. This guide is written for those who wants to be CFD application engineer.
Milestone I : Basics of Fluid Mechanics and Heat Transfer
For beginners, CFD is all about solving fluid flow and heat transfer problems. At later stage CFD might be used for multiphase flows, chemical reactions etc., but the start point is fluid flow and heat transfer problems. CFD software always gives some sort of results. It is CFD engineer’s responsibility to interpret if the results are correct or wrong. To do this correctly, one must have good idea about fluid dynamics and heat transfer physics. In my opinion, CFD just validates one’s thinking with more insights and accurate data. If your thinking and understanding of physics not correct at the first place, CFD results might not be useful to you. To make sure that you have visualized the behaviour of fluid or heat flow in a particular device before you do CFD, you should have very strong fundamentals of fluid dynamics and heat transfer subjects. You also need to learn these subjects so as to understand the underlying equations for CFD.
So the first stage of learning is clearing required fundamentals of fluid mechanics and heat transfer. It is expected that one has already crossed this milestone during academics. But let’s not assume that here. I strongly recommend to go through these subjects once more before starting journey in CFD.
There are many locations/platforms from where you can learn fundamentals of these subjects. I recommend following two courses available on National Programme on Technology Enhanced Learning (NPTEL). NPTEL is an initiative by seven Indian Institutes of Technology (IIT Bombay, Delhi, Guwahati, Kanpur, Kharagpur, Madras and Roorkee) and Indian Institute of Science (IISc). The course access for all the courses available on NPTEL is free and distributed under Creative Commons Attribution-ShareAlike license.
- Fluid Mechanics Course by Prof. S.K. Som (IIT Kharagpur)
- Heat Transfer Course by Prof. Sukhatme and Gaitonde (IIT Bombay)
Another great place to learn fluid mechanics is flow visualization videos with explanation about basics concepts. In 1961, Ascher Shapiro founded the National Committee for Fluid Mechanics Films (NCFMF) in cooperation with the Education Development Center and released a series of 39 videos and accompanying texts which revolutionized the teaching of fluid mechanics. In my opinion, if you are learning fluid dynamics, it is must for you to watch these videos. All these videos focuses on basics concepts and explains them through real flow visualization. Here is the link to National Committee for Fluid Mechanics Films (NCFMF). I recommend to watch these videos even before starting any of the above course. This would definitely help you to understand many concepts covered in the course.
While working on this milestone, make sure that you refer to good books. Following are two of my personal recommendations.
Fluid Mechanics Fundamentals and Applications |
|
Heat and Mass Transfer: Fundamentals and Applications |
You need not to go through the complete course or book. What you need to understand is basic concepts, derivation of governing equations, physical meaning of each term in the equation and simplification and assumptions you can make to simplify the governing equations.
Milestone II : Fundamentals of Computational Fluid Dynamics
For using Computational Fluid Dynamics codes/software/tools, one needs to understand what happens behind the screen or UI (User Interface) of software. It is very critical to understand basics concepts of CFD before you start using it for analysis and solution of industrial problem. In long run what will distinguish good CFD engineer from average engineer is his/her understanding about CFD fundamentals. This milestone is considered as one of the tough one to cross. Learner always gets scared with the complexity of equations, numerical methods etc. Here your end goal of “being application engineer” would come to your rescue. Application engineer need not to be expert in equation mathematics and numerical methods. If you have deep understanding of mathematics and numerical methods, that’s a good thing to have but not must. What is must is your understanding of the overall equations, its terms and its physical meaning. You also need to know the limitations of numerical schemes and where to use what. So just look at each concept from physics point of view rather than focusing on mathematics.
Following are the two courses from NPTEL. There is some overlap between content of both the course. So you can decide which one you would go for first by looking at the content and your comfort.
- Computational Fluid Dynamics by Prof. S. Chakraborty (IIT Kharagpur)
- Computational Fluid Dynamics by Dr. K. M. Singh (IIT Roorkee)
During your learning, I would recommend you to refer to following books (in the order given below).
Computational Fluid Dynamics |
|
An Introduction to Computational Fluid Dynamics: The Finite Volume Method (2nd Edition) |
Precautionary note: There is large amount of material available over net on CFD. Just do google search on “Fundamentals of CFD” or do search on YouTube with “Computational Fluid Dynamics Course” and you will see many courses/articles/blogs on the subject. The information given in each resource is excellent. If you are enthusiastic about learning CFD, you would be inclined towards going through the details of each and every link and start reading the material. Not to lose your focus, I would strongly recommend not to do that until you first learn it in systematic manner. First go through the courses and two reference books given above. Once you are comfortable with the subject and starts understanding the terminologies, you can dive into the ocean of the information available on internet.
Milestone III : Learning CFD Software
The first question to ask is “why to learn CFD software ?” That’s a good question to start with. CFD application engineer is the one who uses some sort of codes/ programs/ software to solve engineering problems. So he/she has to learn how to use those software, what are different inputs required to solve particular problem and what sort of results are given by software. So learning software is must for an application engineer.
The next question would be “which software to learn ?”. Before answering this question, one needs to do some background work. Find out the dream companies you want to see yourself working for. Find out what software those companies are using. I suggest to have a list of at-least 10 companies with you so that probability of getting job is good. Once you decide which companies and which software, you can start learning those software.
Following are the typical activities done during analysis of any problem using CFD:
- Creating a CAD model which will define shape and size of domain in which CFD equations will be solved (typically called as CAD modeling)
- Discretizing the domain (Typically called as grid or mesh generation)
- Setup and solution of governing equations (Typically called as solver stage)
- Visualization and extraction of results (Typically called as post-processing)
Combining all above four stages, the CFD process is called as three step process "preprocessing-solution-postprocessing" In my opinion, CFD engineer need not to be good in CAD modeling. Generally in any companies, CAD model is given an input to CFD engineer. So you need not learn CAD software if you want to be CFD engineer. Having said that, acquiring skill sets for CAD modeling always gives some advantage for CFD engineer. So learning CAD software is a personal choice and not a must skill set to have.
Many times I see students concentrating on learning solver and post-processing. Yes, that’s kind of attractive and interesting steps in CFD which you want to get involved into, but almost everyone has to first pass the stage of meshing engineer. Learning meshing software is must and required for being good CFD engineer. The software to be learned would be decided by companies you want to get into. Few of the standalone meshing software are ANSYS ICEMCFD, Hypermesh, ANSA, GAMBIT, TGrid, Pointwise. You can get the full list by doing google with “CFD meshing software”. Make sure that you are learning the software which is getting used in the company you want to work for.
When you learn meshing, it’s better to understand fundamentals of grid generation. Following are two good reference books on grid generation. Again the focus should be to understand overall logic rather than understanding detailed mathematics of each method.
Handbook of Grid Generation |
|
Fundamentals of Grid Generation |
Once you acquire meshing skill sets, you can start learning solvers. There are many solvers and post-processors and the choice again would depend on your target company. ANSYS FLUENT, STAR CCM+, ANSYS CFX, OpenFOAM, AcuSolve are few of the solvers used in industry. When you learn any solver, focus on how to use the solver, input required, output given, what are settings to be used for particular physics. Also make sure that you read the “theory guide” of each solver so that you will come to know mathematics behind the solver, its limitations and advantages.
The method of learning software could be self-learning/ traditional classroom learning / online learning. You can have any choice and each learning method has its own pros and cons. Rather than doing a self-learning, I personally recommend to go through the well-structured course covering both, usage of the software and backend / theory of functions in the software. You can / need-to do self-learning, but not during your start of the journey. Doing self-learning during start of journey may lead to very long learning period and loss of your interest in learning subject. I also recommend to get comfortable with online learning. This will open the doors for ocean of knowledge available on internet. Online learning also gives a freedom of learning as per your comfort and gives access to good tutors across the globe.
LearnCAx is one place where you can learn CFD software. It offers variety of course on various CFD software and has beginner to advance level course. All the courses are well designed considering learning capacity and speed of students and learning needs for creating CFD analysis engineer out of fresh graduate/post-graduate.
Following are few important links:
- LearnCAx Website: https://www.learncax.com/
- LearnCAx Courses: https://www.learncax.com/courses
LearnCAx also has good knowledge base of blogs, webinars and software tutorials.
- Blogs: https://www.learncax.com/knowledge-base/blog
- Webinars: https://www.learncax.com/knowledge-base/webinar
- CFD Software Tutorials: https://www.learncax.com/knowledge-base/cfd-software-tutorials
All the courses offered by LearnCAx are FREE and has dedicated discussion forum to support students during their learning journey.
Milestone IV : Working on Industrial Project
If you have crossed first three milestone, you have all the required knowledge to use CFD for solution of any industrial problem. But most probably you have not solved any complex problem yet. It's like, you have learned everything about how to drive a car, but have not gone out for road trip yet. Working on industrial projects is must before you start applying for CFD engineer position in industry. It is also required to test all the knowledge you have acquired so far.
The important question asked is “how to get exposure to industrial projects ?”. Does it mean that one has to do some sort of internship at industry ?. If one don’t get an internship what can be done ?
In my opinion, for getting exposure to industrial problems, its not must to get an internship at industry. If you get one, that’s great, if not, that’s not end of the road. The main objective is that you solve some industrial problems using CFD to make sure that you know how to solve them. Every company now publishes their work. In-fact, companies you have shortlisted before, must have published something about their CFD work. What you can do is, start defining a similar problem for yourself from their published work. You can start with simple problem and then move towards complex project definition. Now a days, you can get CAD geometries for almost all devices online (for your personal and learning use). GRABCAD and 3D CONTENTCENTRAL are two location where you can find 3D CAD geometries of almost everything. May be do google on the “component + 3D CAD model”, and I am sure you will get what you want.
Download few geometries, tryout your meshing skills, define boundary conditions from your sample problem and get CFD results. Start interpreting those results and see what improvements you can do in the performance of that device. Make sure that once you are done with the project, you create a small report on the project. This will help you to show your work to companies when you attend interview. This will also make you more comfortable with use of CFD solution for real industrial problems. Work on 4-5 such project, and you are done and ready to work as CFD application engineer.
If you have any difficulty during working on the projects, you can always get help from CFD community. There are many platforms where you can ask questions and get help. LearnCAx Community Forum is nice platform where students can ask questions which are answered by expert team from industry.
The End (or Beginning of New Journey)
You have learned basics of fluid mechanics, CFD. You have learned required software and worked on 4-5 industrial projects. I don’t think anything else is expected by a company from “Fresher” in CFD. This is a great knowledge and skill sets for beginner in CFD. I am very sure, if everything above is done correctly, the end is going to be awesome. Make sure that you prepare nice profile, include what software you know and level of expertise you have, include all your projects in the profile. And that’s it, you have transformed yourself from enthusiast who wants to learn CFD to CFD application engineer.
You can decide rest of your CFD journey. You can select particular domain / industry as your target or you can decide particular physics as your next target to learn. I am not sure, but I may write something on “I am CFD analysis engineer, whats next for me !!”
Hope, you like this beginner’s guide. Please rate this article based on your satisfaction level :)
Note: As this is really an open ended discussion, I would love to know your views. Please post them as a comment to this blog. There are all my personal views and opinions based on my experience in CFD domain. Links and software references given here are without any personal bias. The complete article/document is created in the best interest of CFD beginners. If you have any concerns, please post them as comment and I will review / respond accordingly.
Also note that all the external links (other than those referring to https://www.learncax.com website) may go down or break in future. If you see any broken (non-working) link, please report that as a comment and we will try replace them with correct working link if available.
The Author
{module [311]}