CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   Main CFD Forum (http://www.cfd-online.com/Forums/main/)
-   -   Please help me, I know nothing about CFD (http://www.cfd-online.com/Forums/main/107258-please-help-me-i-know-nothing-about-cfd.html)

ben1793 September 21, 2012 13:51

Please help me, I know nothing about CFD
 
I am starting a mechanical engineering degree soon and further into the degree students start learning about CFD, I have been looking into all the topics I will be studying and wanted to find out more about CFD.

Could you please answer a few of my questions regarding CFD:

I have a lot of experience with 3D modelling software such as solidworks and autodesk inventor and love using the software, is 3D modelling software used much when using CFD?

I understand now that you create a mesh when running tests on a CFD program, does this mesh have to be made even if the model is pulled in from a 3d modelling software?

Does CFD involve a lot of maths and if so where is this math used because I thought the whole point of the CFD software was for it to do all the maths for you (I love maths and hope CFD uses a lot of it but I ask because I am curious)

I have heard a lot about different types of CFD (programs?) such as FLUENT, openFOAM and others on this forum, but I do not understand what exactly are these programs, do they not all follow the same principle and are just different variations of the same software?

What do I need to learn before I start using CFD, on other posts I have seen some people saying c++ is needed (why is this?) and also if math is needed could you please tell me what type of math (matrix algebra, differential equations, calculus?)

And my final question (for now) is, is there any free CFD software such as openFOAM that can run on windows or is it all on linux?

Sorry for the long post and I am sorry about the silly questions but I have searched on this forum and online and can not find the answers to these questions, I even tried many times on yahoo answers and got nothing back, so I hope you can help me.

Thank you

dsking September 21, 2012 14:13

Modeling software is used to create the geometry of the problem, and knowledge of CAD will help when you work with complex models. A mesh is used to represent the geometry in order to solve the equations of motion (Navier Stokes, which is like F=ma for fluids). There is no known solution to the continuous, full set of equations so they must be "discretized" and/or simplified.

You may be able to follow some CFD tutorials and match their results, but before you start making your own, you should know basic fluid mechanics (and heat transfer). Before you can learn fluid mechanics you should know Calculus -> Ordinary Differential Equations -> Mechanics (static and dynamic) then, Fluid Mechanics -> Heat Transfer, with Partial Differential Equations/Linear Algebra/Numerical Methods being used in CFD in some form.

If you are interested in fluid mechanics I recommend watching a few of these videos -> http://web.mit.edu/hml/ncfmf.html
They are a good introduction and show some cool/non-intuitive behavior of fluids.

yonchong September 21, 2012 14:43

Quote:

Originally Posted by ben1793 (Post 383014)
I have a lot of experience with 3D modelling software such as solidworks and autodesk inventor and love using the software, is 3D modelling software used much when using CFD?

I use a 3D modelling software (mainly NX) to draw out fluid domain i.e. you receive a solid model but it is the fluid between the solid you want to model using CFD so you have to create a fluid domain out from the solid. However, lots of people who is doing CFD will ask a 3D modeller to do that job for them as learning a 3D modelling software takes time.

Quote:

Originally Posted by ben1793 (Post 383014)
I understand now that you create a mesh when running tests on a CFD program, does this mesh have to be made even if the model is pulled in from a 3d modelling software?

Yes. 3D modelling software will use equations to approximate lines and surface (you can call it analogue) but in CFD everything is digital (i.e. approximation using discrete small cells like a digital TV). Basically, creating discrete cells from analogue geometry is meshing. You could do meshless CFD but that is not very common and it is a whole lot of other discussion.

Quote:

Originally Posted by ben1793 (Post 383014)
Does CFD involve a lot of maths and if so where is this math used because I thought the whole point of the CFD software was for it to do all the maths for you (I love maths and hope CFD uses a lot of it but I ask because I am curious)

If you are going to write a CFD code for practice there are many textbooks on CFD which will discuss about this. However reading fluid dynamics or heat transfer textbook could be a better option before learning CFD because if you do not understand what you are trying to model you are going to have a hard time understanding why we do things in certain ways in CFD.

Quote:

Originally Posted by ben1793 (Post 383014)
I have heard a lot about different types of CFD (programs?) such as FLUENT, openFOAM and others on this forum, but I do not understand what exactly are these programs, do they not all follow the same principle and are just different variations of the same software?

90% of the time most of the popular CFD codes (FLUENT, openFOAM, CFX) will produce similar results. openFOAM is an open source code but others you have to pay license fees. Generally it takes times to learn a software so once one is starting to use a particular software he/she tend to stay with it. Most popular one is FLUENT but its license is probably the most expensive in the industry but it might be cheap in academy. Good marketing strategy, isn't it? ;)

Quote:

Originally Posted by ben1793 (Post 383014)
What do I need to learn before I start using CFD, on other posts I have seen some people saying c++ is needed (why is this?) and also if math is needed could you please tell me what type of math (matrix algebra, differential equations, calculus?)

When the computers were getting fast enough so that CFD can be useful in real situations Fortran was the people's choice for scientific programs. It is still popular because it is simple to learn and can generate efficient scientific programs. That's why there still are lots of CFD codes written in Fortran.

C was and still is a popular computer language for general programming and UNIX is written with C. People started to think that if I was going to learn just one language I would like to learn C because I may not be doing scientific programming for rest of my life.

Then C++ was introduced. It is an object-oriented language which basically means forcing people to check their coding more rigorously. This reduces human errors hence you can write longer codes with lot more people with less human errors. For this reason, as CFD codes got more complicated, people start to think it is a good idea to use C++ to write CFD codes (e.g. openFoam). Also it will be looking good on your CV when you apply for jobs if you say you know C++ :D).

However, they are not the only program languages you will find in the programming community and most of people will learn multiple computer languages. Also you can mix different languages in a code so choice of languages will become less important. Therefore choose one you would like to learn and see whether you can find help if you get stuck because you will get stuck.

[QUOTE=ben1793;383014]And my final question (for now) is, is there any free CFD software such as openFOAM that can run on windows or is it all on linux?[\QUOTE]

I am not a openFOAM user but I think there is a MS windows version.

I hope that this will be useful for you somewhat.

ben1793 September 21, 2012 16:34

Thank you for the very helpful replies and link (much more detailed than what I was getting on yahoo answers :p )

I have started looking deeper into fluid dynamics and heat transfer and also will look into programming languages very soon, but do you think it is possible for me to have a go at openFOAM before learning a lot about programming and heat transfer just so I get a feel of things or is it necessary to have a good understanding of all the above to use even the basics of CFD?

Again, I just want to say thank you for taking the time to help a new guy out

yonchong September 21, 2012 16:51

Sounds like you want to run a CFD code straight away. :D

There is no harm running a CFD code. There is a tutoring for a complete beginner for openFOAM. However, you probably won't enjoy very much becasue you are not sure why you are doing them.

The problem with CFD is like any complex tool you can easily mis-use it. You can have a very pretty picture but that does not mean it is a good solution.

Unfortunatly, CFD has a very steep initial learning curve. You will be frustrated for a while before you can use CFD tools very effective. Just keep carry on.

ben1793 September 21, 2012 17:32

I thought that I could jump into it and start off with some basic simulations but you are right, now that I have downloaded the openfoam software it looks very complicated, so many inputs required and I dont even know what 90% of them mean, I will do as you suggested and study the fundamentals and the programming languages before I do any simulations.

Thank you for all the help and advice, I will be back as soon as I get stuck :)

ben1793 September 25, 2012 05:15

Hello again :)

I am confused, not with the CFD software but with how far it goes, I mean if it is possible to learn CFD without much guidance then why are there PdD courses in CFD at my university?

Are CFD jobs hard to find in the UK?

Also, if someone did get a job in CFD what would that person be doing , would he be sitting in a office doing simulations all day, would he be writing code, would he be doing maths?

yonchong September 25, 2012 10:43

Quote:

Originally Posted by ben1793 (Post 383472)
Hello again :)

I am confused, not with the CFD software but with how far it goes, I mean if it is possible to learn CFD without much guidance then why are there PdD courses in CFD at my university?

Those CFD softwares are not answers to everything. There are many situations when we cannot simulate correctly. That could be because the software is not matured enough or you don't have computer resources or simply because you don't understand the fluid physics. Would you let me fly a jumbo jet without a training? In many sense using CFD is even more difficult than flying an airplane. I have done a PhD on CFD but I am still learning after many years in the industry.

Quote:

Originally Posted by ben1793 (Post 383472)
Are CFD jobs hard to find in the UK?

I have worked for a major UK engineering company in the past and now I am working for a major US engineering company. Good CFD engineers are hard to come by because even though there are many students who had experiences of running CFD softwares but don't understand the physics (e.g. fluid dynamics, aerothermals). To me learning the software is an easy part. Actually, making judgement calls on assumptions and understanding the result you have is more difficult. Big companies will be willing to bring you over the border to have you if you know what you are doing. That does not mean that you will be paid lots of money but your job security is very high. However, my advice is that if you want to get paid decent money for an engineering job leave UK or go into finance (e.g. actuary, predicting share price is similar to predicting particle movement inside fluid).

Quote:

Originally Posted by ben1793 (Post 383472)
Also, if someone did get a job in CFD what would that person be doing , would he be sitting in a office doing simulations all day, would he be writing code, would he be doing maths?

Depends on which company you will join, you could be running CFD to advise on designs, you could be writing code for a software company or staying in academy to work on maths behind CFD softwares. If you are interested in maths, you might want to stay in the academy. Why don't you go on a job search and see where are the demands for the CFD skill?

ben1793 September 25, 2012 11:48

Thank you yonchong, you always know the answers to my questions :)

I basically have a load of options since I have almost completed my general engineering course (electrical, mechanical, computer science) at college, I am just confused because of the amount of options available, I could do anything, mechatronics engineering, mechanical engineering with CFD for my PhD, bioengineering or even civil engineering, do you think going into CFD would be a good option? If you could go back and change everything, would you still choose to go for CFD?

Is being a CFD engineer repeatable? over my holidays I did a job at a 2D cad design company and hated it because every day it was basically the same thing, just modifying 2D drawings for clients, do you think the same will happen with CFD?

Everywhere I look it says CFD and FEA, I thought finite element analysis was stress analysis and was used to find things like the safety factor of a solid model, how does this relate to CFD?

Again, just want to say thank you for spending the time to answer my questions, you are really helping me a lot in deciding what I want to do with my future.

yonchong September 25, 2012 14:35

Quote:

Originally Posted by ben1793 (Post 383572)
I basically have a load of options since I have almost completed my general engineering course (electrical, mechanical, computer science) at college, I am just confused because of the amount of options available, I could do anything, mechatronics engineering, mechanical engineering with CFD for my PhD, bioengineering or even civil engineering, do you think going into CFD would be a good option? If you could go back and change everything, would you still choose to go for CFD?

All of them sounds great but I would not recommend PhD if you have to stay in UK. It would be far more effective if you can find a graduate scheme in a company. You can rotate to different departments and try different things including CFD. That's because in UK the years in the industry counts more than higher degrees in the academy. Also you will get paid better during the same time.

If you think you can move to different countries, PhD will be more useful but, if not, a master degree is still very useful. In fact, I would look at US universities for a master or PhD course because you get much more opportunities here. Pays for research assistants or engineers are better in US and if you go to a US university they do actively try to hold on to you as you are seen as an able person who can contribute to the US economy. (There are big debates about people from India and China going back to their countries to set up rival companies to US.)

If I start over again I would still choose CFD (interesting job, job security etc.) but I would try to go to a US university. It would have been much easier to get a job in US if I did.

Quote:

Originally Posted by ben1793 (Post 383572)
Is being a CFD engineer repeatable? over my holidays I did a job at a 2D cad design company and hated it because every day it was basically the same thing, just modifying 2D drawings for clients, do you think the same will happen with CFD?

If you just learn how to run CFD software it would be similar. If you learn the physics (aerodynamics, fluid mechanics, thermals etc) and use CFD as one of your tools to visualise or estimate what you can predict you are in a far better position.

As far as learning CFD software goes, I had a secondary student came in for 2 weeks of work experience. At the end of 2 weeks, she was able to run Fluent and get useful result for us to use. She did not quite understand why she need to do them but she can repeat the runs with some changes when she was told.

However, one would be working 2-3 years as a CFD Engineer before his options will be heard in a regular bases. That's because there are lot more reasons why a CFD result could be wrong than right. That is also why companies are reluctant to hire someone who does not have industrial experiences and difficult to find someone with good experiences.

Quote:

Originally Posted by ben1793 (Post 383572)
Everywhere I look it says CFD and FEA, I thought finite element analysis was stress analysis and was used to find things like the safety factor of a solid model, how does this relate to CFD?

There are many situations where fluid and solid interact. It could be the heat transfer between fluid and solid or vibrations between the two. In many case, the hardware will burn or break because of these interaction. An example would be turbine blades in gas turbine engine, too hot or fluid excite the blade it will fail catastrophically. Say the turbine blade will melt at 2000K. You want to designed the system at 1800K so you have some safty factor in the hardware. Normally you will run CFD and pass the result to FEA to use in its calculation or vice verse. You can even do a conjugate heat transfer calculation. Together you would estimate the life of the component with engineering judegments.

Quote:

Originally Posted by ben1793 (Post 383572)
Again, just want to say thank you for spending the time to answer my questions, you are really helping me a lot in deciding what I want to do with my future.

I hope that this is somewhat useful to you.

ABF September 26, 2012 12:20

Hi Ben,

(Warning - very long, and going mostly off-topic, more onto the general questions regarding university module choices etc.)

What university are you at/going to, and what stage of it are you at? I graduated from the University of Bath with an MEng degree this July, and I’m now working at a naval defence engineering company. I’m enjoying it so far, and perhaps most crucially to the point I’m about to make, I’m still learning a lot.

My general advice for you right now, assuming I’m right in my guess that you’ve actually not started your degree yet, is to calm down a bit. It might sound patronising, and I don’t mean it that way. It’s just to say, by the sounds of it you’re finding advanced learning on all your potential subjects, and trying to go in to each lecture ahead of the game. While that’s admirable, and probably helpful, in small amounts, I’d say overall it will likely cause you a lot more stress and hassle than necessary. The first year of any course is always laid out carefully to introduce every aspect anyway, and if you already know the basics you’re going to find it very boring. Being ahead of the game won’t necessarily yield you any tangible benefits in the long run. The only reason I say this, is because if you’re working this hard in your free time before your course has even started, you might well burn out by the time you’re in the fourth year of your degree.

There is a time for working your arse off, and I think many will agree with me in saying that it’s not in the weeks preceding the beginning of your first year :)

Now, on to the other questions of yours, regarding unit choice. Personally, I would advise two things – pick varied subjects that complement each other, and pick things you enjoy. The don’t have to be things you’re good at, but that WILL help. I’ve no idea how your course is laid out so my own experience here might not be that useful. The course at Bath is laid out for you with very little options for the first two years (the only real choice you get is whether to add a ‘with French’ or German to your degree title). The third year is when you pick your ‘classification’ – Aeronautical engineering, Design, Medical, Automotive, or just straight Mechanical Engineering. Among others! At this point, your choice determines which modules you did in your third year, and for some of them, a couple of mandatory modules in your final year. I did the straight mech classification, and so could pick all five of my first semester modules in my final year. Second semester was dedicated to a term-long project, so no module choices there. A little more on that later.

For my final year I picked what I liked, and what I wanted to be good at. I made a conscious decision that they should go well together, and give me a good overview of a lot of aspects of exciting, forward-thinking engineering. I picked an advanced materials course (not super-advanced detail on 'standard' materials like steel, but advanced materials as in, the really cool engineering (and engineered) materials like photovoltaic glass, self-repairing fabrics and viscoelastic foams), the biomimetic design course, the Advanced Control (control systems) course, the FEA course and a CAD course. I’m interested in all of those areas (except FEA, as a subject it’s not really interesting, just exceptionally useful, and CAD, I picked that because I enjoyed working with CAD software in general). I could have based my other module choices around any one of those – be it materials, design or systems and control, but I genuinely feel like I made the right decision in going for a variety rather than specialising. There are two reasons for this.

1) Until … hell, even by the time I was applying for jobs, I wasn’t actually dead set on what industry or type of job I wanted. I knew what interested me, and that largely dictated my choice of companies to apply to, but I was still very much open to suggestion. Had I limited myself by specialising heavily into one branch of engineering, I’d have pigeonholed myself before I even got started. You said yourself you want option for variety, not doing the same thing every single day. Having a varied degree will best serve you for a job that will have varied tasks. My job title is 'Mechanical Engineer'. I've done some basic variation design, full ground-up design for something that actually got made (a big milestone after 4 years of design projects.. :)) FEA, and now CFD. That's all in two months, so plenty of variety.

2) Companies recruiting graduates will mention endless points about only taking the best students, brightest young sparks, all that. Whoever they take, they will still know that you are a graduate, and while that means you know a lot in the wider view of the general public, to a specialised company it usually means that you don’t know jack – only that you have the proven aptitude to learn whatever it is they need you to do.

I’m generalising and exaggerating, of course, but my point remains. The most important thing is that you enjoy what you do at university, as if you’re studying something you enjoy you will naturally be more inclined to be better at it, you will be passionate about it when discussing it with friends, colleagues, or prospective employers, and that will be very clear. You’re also more likely therefore to smash it out of the park than something you wished you didn’t pick, but did ‘because it has the most jobs’.

None of my module choices are immediately relevant to my current job. They’re all exceptionally useful (except biomimetics… for now… eventually I’ll convince someone that my tuna-fish-submarine is worth building) and generally relevant, but it’s not like I did a module on naval architecture. I did have a directly relevant link to the job however, and that was through my final year project. Assuming your degree has one, that project is as much a relevant area of 'expertise'(/experience) as any module you studied. I did my project working on our human-powered racing submarine team, and as you can imagine that was hugely relevant. It was also working on that project that really turned my head toward marine-based engineering companies.

To bring it back on topic, that being CFD: I didn’t do any CFD at uni. I didn't even do any fluid dynamics past some fairly basic introductory stuff in the first year (which naturally I have now completely forgotten). I did FEA, which is related in that FEA and CFD are often both available in a single piece of software, ANSYS, ABAQUS for example. This is because while they’re solving different equations, the way they’re they’re doing it – splitting a domain into numerous finite, discreet regions, and solving differential equations simultaneously for these regions, is ultimately the same thing mathematically. So I did FEA, but no CFD. Now I'm working on CFD, and while I’m struggling like mad with it, I am getting somewhere, slowly, but I’m getting there. I can work my way around the software because I understand much of the terminology involved when dealing with elements and the general techniques, but my knowledge has a gaping hole on the actual fluid dynamics bit, so that’s what I’m having to pick up as I go, in addition to learning how to run the software properly. The real point here is that I’m learning. Learning from here, from books, from papers, from lecture notes (amazing what you can find on Google - MIT is very generous), and from my colleagues. As I said earlier, it’s as much about your ability to learn as it is about what you already know.

Anywho, that’s enough from me. I hope I’ve been helpful, and good luck with your studies. Let me know if you have any further questions.

Best,
Adam

P.S. Just saw the question about why CFD is offered as a PhD if you can learn it yourself - I would say that's a very narrow-minded question. You can learn about just about ANYTHING online now. Whether someone will give you a job because of it is entirely different. A PhD proves something - if you just teach yourself online then you have to prove what you know some other way, which likely won't be as easy. They'd also be less likely to even consider you, etc. :)

ben1793 September 26, 2012 13:09

Thank you yonchong and ABF for spending the time and effort to answer my question and help me decide what I want to do with my future.

ski September 28, 2012 06:10

If you do attempt any CFD pre-uni, one issue you will face is that open source CFD codes are generally very hard to use (at least for OpenFOAM and code_STAURNE, I can't comment on others). Commercial codes are easier, but extremely expensive. There is basically a barrier to entry before uni. At uni, the uni will have licenses for FLUENT or starCCM+ or something fairly user friendly-so you can learn how to use a commercial code before taking the open source plunge.

If your aims are simply to learn CFD, then start with just the FD bit pre-uni, and you will be in an excellent position to excel at CFD when the time comes. Believe me, there is plenty of fluid dynamics theory to keep you going for many years!!

As for C++ / fortran, etc., it is not necessary for using CFD codes (even open source ones). It's necessary for developing a code obviously (something you won't do until PhD level or if you get a development job with ANSYS or CD-adapco etc.). That said, programming knowledge will be invaluable for other areas of a mechanical engineering degree.

ben1793 September 28, 2012 17:22

Thanks for the info


All times are GMT -4. The time now is 20:26.