1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Starting a Career in CFD

  1. Jan 7, 2012 #1
    Hello all! :smile:

    After graduating with my BS and MS in mechanical engineering, I have come to the conclusion that I want to start a career in CFD. I used CFD on a co-op that I worked for a while and have always been drawn to and excelled in fluid dynamics related courses. I am currently on the job search trying to get an 'in' at a company doing/learning (mostly learning :wink: ) CFD. However, in the meantime, I feel like I need to get a headstart on the learning process. Experience is always a plus, so I want to start developing the right kind of experience. So in my free time have been doing some reviewing of the fundamentals of Fluid Dynamics. But I also want some input on what else I can be doing. Something more along the lines of the types of things that an employer would see as useful.

    My plan is as follows, but I am open to suggestions, corrections, and the like.

    1) Review, review, review. I am talking about the fundamental physics, thermodynamics and maths. This part of my plan is going pretty well. In addition to my fluids and thermo, I have been reviewing/learning linear algebra and PDE's.

    2) Write my own small (small is relative term here) CFD codes to solve some problems. I have never taken a formal CFD class, but I am teaching myself so that I can learn things like problem formulation and well-posed-ness of said problems. I am currently using Anderson's CFD: The Basics with Applications because it is very accessible, but I think there are more modern books that I should look into.
    Any suggestions on 1) texts and 2) some common CFD problems that I could program solutions to? I have access/experience to/with C++, FORTRAN, and MATLAB​

    3) I think this might be the most important from an employer's perspective: Get some more hands-on experience using CFD software. The problem with this is the cost associated with the software. FLUENT and the like are pretty much out of the question. I was looking into OpenFOAM and was wondering if this would be a good one to start with? Will the things I learn carry over to more commercialized packages? I have a feeling the answer is yes since the problem solving approach should be the same, just the interfaces being different.

    Thanks for reading and any additional insights those of you with CFD experience might have I would be grateful to hear about. :smile:
  2. jcsd
  3. Jan 8, 2012 #2
    I'm interested in seeing the responses here too.
    Last edited: Jan 8, 2012
  4. Jan 9, 2012 #3
    I have taken several classes related to CFD. Although I come from a physics background the classes have been/are from the Mechanical Engineering department.

    Note: These are questions you ask yourself, don't answer them for me:
    1) Can you solve the heat equation?
    a) Can you do it using the Finite Difference Method?
    b) Can you do it using the Finite Volume Method?
    c) Can you do it using the Finite Element Method?
    d) Ever heard of the Lax Wendroff technique?

    Increase the difficulty:
    2) Do you know how to solve a system of Partial Differential Equations?
    a) Can you vectorize them?
    b) Can you apply all previously stated techniques to these?

    Know the stability and accuracy issues:
    3) How stable are the above techniques when used to discretize various classes of PDEs?
    a) How can you tell whether and when and how much a method converges to the correct solution?
    b) Can you distinguish between accuracy lost from discretization error and accuracy lost from bogus PDE used for model?

    Just a few things to keep in mind for understanding the material.

    I'm not nor have I ever been a CFD employer; those are the responses that I am most interested in hearing about. :)
  5. Jan 9, 2012 #4


    User Avatar
    Staff Emeritus
    Science Advisor

    One will also want to consider the type of fluid - gas, liquid or multi-phase, or plasma, and in the case of gas or plasma, subsonic or supersonic (and shock behavior) flow.

    The one should consider whether or not the flow is heated or not, and whether or not there one will have fluid-structure interaction.

    One should understand Navier-Stokes equations: theory and numerical analysis in the aforementioned domains.

    It's easy to find folks who can run CFD codes - basically inputing data and processing the output. The demand is for those who can adapt and/or modify codes, or generate new code/models, especially when coupling multi-physics (different phenomena, e.g., chemical diffusion, combustion, heat transfer, turbulence, . . . ) into the flow field.
    Last edited: Jan 9, 2012
  6. Jan 9, 2012 #5
    Hi FF :smile:

    This is a great start! Great questions that I indeed do not have all of the answers to.

    Exactly. I want become proficient at the underlying solutions. Not just be a 'CFD monkey' pushing buttons and not knowing why.

    As a project:
    I was thinking of maybe trying to create a matlab program that solves discretized Euler equations on some simple geometries. It could have a GUI for input parameters from the user as well as some pretty graphical output. I am not sure though. Maybe something like inviscid flow over a cylinder would be neat? I think I could get an exact solution and a finite difference solution and could do some comparisons.

    In addition to the text by Anderson that focuses mainly on finite differences, I also picked up the text by Versteeg and Malalasekera on finite volume methods.
  7. Jan 9, 2012 #6
    The problem is that CFD problems are often very domain specific. Techniques that work well in one type of CFD situation are totally useless in others. It helps a lot to be flexible so that you can learn a new set of techniques quickly.

    One thing that people need is the ability to *read* code. You can go online, download one of several dozens of CFD codes on the web, and then spend two to three weeks to get it to work and then you see what makes it tick.

    The reason it's important to work on working code is that you want to repair race cars. You aren't going to be able to build a race car yourself, but you can get one and disassemble it.
  8. Jan 9, 2012 #7
    I'd say the most beneficial thing to do is to learn OpenFOAM straight away. Not only the skills that you'll learn are transferable as you said, but there is a possibility that you keep using it in the company you'll eventually work for. More companies are now heading towards this direction. The point that Astonuc mentioned regarding adapting and modifying codes according to the physics of the problem you're handling is very crucial and that's another reason to learn openFOAM. OpenFOAM users modify codes almost on a daily basis while the idea of adding a mere source term in a certain equation in FLUENT is a nightmare. Moreover, since OpenFOAM is an open source code, it will enable you to read the code and understand it just as Twofish advised. Most commercial codes wouldn't allow that.

    I'd also advise against writing small codes in order to learn CFD. I've always found this approach to waste time and effort which you'd better invest in learning a code that you will actually use for doing practical problems.

    The book you are using is a classic CFD book but it's too old and outdated for a field that changes almost every year. Also, this book is almost entirely concerned with finite difference algorithms which is almost non-existent in today CFD codes. I'd recommend that you find a modern book that deals with finite volume extensively rather than finite difference
  9. Jan 9, 2012 #8


    User Avatar
    Staff Emeritus
    Science Advisor

    Ability to read code is a key skill.

    With regard to theory, see - http://www2.mech.kth.se/~henning/stromning/CFD_main.pdf


    http://www.numerik.uni-hd.de/Oberwolfach-Seminar/Galdi_Navier_Stokes_Notes.pdf [Broken] (mathematical theory)

    There are two critical skill with regards to numerical methods in computational physics - one is the ability to translate the equations into appropriate numerical models, and the second is the ability to select the appropriate numerical solution scheme/system.
    Last edited by a moderator: May 5, 2017
  10. Jan 10, 2012 #9
    For you are a true newbie, I would advise spending a week writing a small code once. Take Euler's equation, write a quick, short program that crunches that equation, and then watch it fall apart.

    Converting a PDE or ODE into code is one of those things that seems trivially easy, but when you actually do it, there is a 99% chance that what you write won't work, and seeing something that should "obviously work" not work is a very useful way of spending a week, and that gets you ready for spending the next several decades coming up with things that do work.
  11. Jan 10, 2012 #10
    I completely agree with that provided that 1) it's only for a couple of weeks or so 2) he hasn't done it before

    The reason for me advising against it in my original comment is that I've seen students spending a whole semester writing codes for the heat, wave, and Laplace equations in some formal CFD course and while there are lots of mathematical and programming skills to learn from that, many students did not get a feel of how CFD is actually used in practical problems and eventually lost interest in the subject.
  12. Jan 10, 2012 #11
    @twofish: Thanks for the ideas. I had set up a linux VM on my machine a month ago in order to get into openFOAM. Looks like it might finally get some use. Also, I literally lol'd at the "...and watch it fall apart' part of your first response.

    @HossamCFD: Great! openFOAM it is. There seems to be a good amount of documentation on. We'll will see how well kept it is. Hopefully I can fond something in the way of some decent tutorials, though that might be asking too much.
    Also, do you have any thoughts on this text by Versteeg and Malalasekera ?

    @Astronuc: Thanks for the links! Foresee my brain hurting for the next few months at least. :biggrin:

    Thanks for all of the input so far folks! I really appreciate it!
  13. Jan 10, 2012 #12
    That's a great book indeed. I was actually going to recommend that same book to you but I was being too lazy to search if anything newer and perhaps better has been published lately.
  14. Jan 12, 2012 #13


    User Avatar
    Staff Emeritus
    Science Advisor

    Last edited: Jan 13, 2012
  15. Jan 12, 2012 #14
  16. Jan 13, 2012 #15
    Find an old FEA book, and work though some of it. I can set up runs in Fluent in my sleep. I attribute this to a healthy understanding of what the computer does for you. It adds quality and depth to what just end up being default values and arbitrary clicks to most people. It will also show in your results. Plus everything else post before. Good Luck. I once had a CFD case take 13 days to iterate on a 35 node cluster just to find out I made a silly error.
  17. Apr 21, 2013 #16
    Saladsamurai asked a very good question, and one I have been wanting to ask. I want for a company that designs and manufactures welding fume extractors and I have become very interested in how to model a.) the fumes being generated, and b.) how to model how the fumes are traveling through the extractor and the various product improvements that come along with those models. Everything that has been suggested so far has/will be very beneficial.
  18. Apr 23, 2013 #17
    I'm very interested in this subject, it is in fact pretty much what I want to go to graduate school for. Is there any kind of position where a fresh physics BS versed in numerical methods, fortran, scilab/matlab and fluid dynamics would stand a chance at getting hired, even if just as a temporary contract/intern? Any tips on breaking into this field without a masters degree?
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook