Top products from r/CFD
We found 34 product mentions on r/CFD. We ranked the 36 resulting products by number of redditors who mentioned them. Here are the top 20.
1. An Introduction to Computational Fluid Dynamics: The Finite Volume Method (2nd Edition)
Sentiment score: 3
Number of reviews: 4
Prentice Hall
3. Computational Methods for Fluid Dynamics
Sentiment score: 4
Number of reviews: 3
Used Book in Good Condition
4. Computational Fluid Mechanics and Heat Transfer (Computational and Physical Processes in Mechanics and Thermal Sciences)
Sentiment score: 1
Number of reviews: 2
CRC Press
5. Numerical Computation of Internal and External Flows: The Fundamentals of Computational Fluid Dynamics
Sentiment score: 2
Number of reviews: 2
Used Book in Good Condition
6. Fundamentals of Engineering Numerical Analysis: Second Edition
Sentiment score: 2
Number of reviews: 2
Used Book in Good Condition
7. Boundary-Layer Theory
Sentiment score: 1
Number of reviews: 2
Used Book in Good Condition
8. Finite Volume Methods for Hyperbolic Problems (Cambridge Texts in Applied Mathematics)
Sentiment score: 2
Number of reviews: 2
9. The Finite Element Method: Linear Static and Dynamic Finite Element Analysis (Dover Civil and Mechanical Engineering)
Sentiment score: 1
Number of reviews: 1
10. The Finite Element Method for Fluid Dynamics
Sentiment score: 1
Number of reviews: 1
NewMint ConditionDispatch same day for order received before 12 noonGuaranteed packagingNo quibbles returns
11. Vortex Methods: Theory and Practice
Sentiment score: 1
Number of reviews: 1
Used Book in Good Condition
12. Sea Loads on Ships and Offshore Structures (Cambridge Ocean Technology Series)
Sentiment score: -1
Number of reviews: 1
Cambridge University Press
13. Chebyshev and Fourier Spectral Methods: Second Revised Edition (Dover Books on Mathematics)
Sentiment score: 1
Number of reviews: 1
15. Introductory Functional Analysis: With Applications to Boundary Value Problems and Finite Elements (Texts in Applied Mathematics)
Sentiment score: 0
Number of reviews: 1
16. Nodal Discontinuous Galerkin Methods: Algorithms, Analysis, and Applications (Texts in Applied Mathematics (54))
Sentiment score: 1
Number of reviews: 1
17. Smoothed Particle Hydrodynamics: A Meshfree Particle Method
Sentiment score: 1
Number of reviews: 1
18. Fluid Mechanics with Student DVD (McGraw-Hill Series in Mechanical Engineering)
Sentiment score: 1
Number of reviews: 1
>I'm not sure what kinds of other heavy scientific computing you've done, but CFD is a very difficult field and takes years to understand.
CFD isn't this difficult.
On one side you have partial differential equations (PDEs) describing fluid flow. On the other side you have numerical methods used to solve those PDEs. Put the two together, implement it in code, and you get a rudimentary CFD simulation. For CS students, who typically already have knowledge of numerical methods, coding one of these basic simulations can be done within a semester's worth of focused effort. Venturing into finer, more complex domains and trying to model more advanced flow phenomenons do indeed require years of study, but a beginner -- a 3rd year CS undergrad of all people -- has no need to deal with that stuff when all they want to accomplish is to get their feet wet with the inner workings of the simplest CFD simulation.
So let's not intimidate the poor kid and not oversell the profession. A lot of people love pretending like this stuff is black magic, presumably because it promotes job security, but it just isn't. There are lots of people doing CFD that come from CS and Applied Math backgrounds instead of Engineering or Physics. They all started somewhere. So can the OP.
-------------------------------------
@ /u/AnotherBrownBike
Khan Academy Physics, Fluid Dynamics lectures are your best friend in this.
I would recommend that you start with getting a decent physical understanding of incompressible (also called divergence-free) advection-diffusion equation. This is a simple PDE that describes how particles (or other quantities like energy) are transferred inside a physical system due to the process of diffusion and advection (aka convection). Solving this equation using a numerical solution method for PDEs (such as finite volume or finite element) will allow you to practice the fundamental underpinnings of a CFD code.
Finite Volume methods are more popular in CFD than finite element methods, because they're mathematically easier for people who have a robust understanding of fluid mechanics. That's not going to be the case for you, because you're not studying fluids academically. I would recommend that you focus on finite element methods instead. These are mathematically more challenging -- using them with fluid PDEs require stabilization terms (like SUPG or GLS) to prevent the solution from oscillating. However, the application of finite element methods to fluid PDEs require essentially no knowledge of the physics behind the PDE. It's pure mathematics, and you as a CS student should be well equipped to handle this.
If you're not familiar with finite element methods for solving PDEs, I would strongly recommend starting with a Python library called FEniCS. This is a brilliant finite element solver that allows you to input the bilinear form of your partial differential equation (Google what "bilinear form" is for finite element methods) in Python and generate a solution. This will allow you to practice the mathematics of finite element methods without getting tangled up in the code implementation of the solution process. Solve the Poisson equation first, and then the advection-diffusion.
Simple solvers you might like working with:
EasyCFD -- Educational program intended to teach the basics of a "black-box" CFD solver.
CFD Python -- A Python program designed with a 12-step lesson plan to solving Navier-Stokes equations.
PyFR -- Another Python-based flow solver. Documentation is a bit sparse, so you need an understanding of how CFD works to use it. But once you have that, PyFR's open-source nature allows you to break apart an actual full CFD solver and look at its components before trying to write your own.
Useful literature you might want to check out from your campus library:
White, Fluid Mechanics and/or Cengel and Cimbala, Fluid Mechanics -- Basically the two beginner level fluid mechanics bibles, depending on who you ask. An overwhelming number of engineers out there have had one or the other as their textbook in school. They're both fantastic. Flip a coin.
Moin, Fundamentals of Engineering Numerical Analysis -- Yet another undergraduate bible, this time on numerical methods commonly used by engineers (of all types). It covers material so crucial in all scientific computing that one of my doctoral qualification examiners specifically requested that I know this book from cover to cover.
Anderson, Computational Fluid Dynamics -- Superb introductory book that covers most everything related to CFD. If you're going to buy anything in this list, buy this one.
Hughes, Finite Element Methods -- The bible on finite element methods. The book focuses on structural applications (which do not require stabilization terms) but the mathematics involved are identical regardless of the physics behind the PDE, so this is still a very useful reference.
Zienkiewicz, Taylor and Nithiarasu, Finite Element Method for Fluid Dynamics -- Great supplement to Hughes' book for anyone using FEM on fluid flow. Covers stabilized methods, starting with easy equations (like advection-diffusion) and scaling up all the way to turbulent flows (which you shouldn't bother with right now).
Anderson, Fundamentals of Aerodynamics -- Just putting this down in case you ever need to specifically learn about aerodynamic applications of fluid flow.
Anderson, Introduction to Flight -- Used nationwide as an introductory aerospace engineering book. I recommend it to everybody outside of the industry who wants to work/study in it. Superfluously covers every aspect of the discipline, from structures to propulsion, from aerodynamics to flight control, from aviation to space.
Panton, Incompressible Flow -- Often used as a graduate level book on theoretical fluid mechanics. Focused mathematical approach. Not an easy read, required some prerequisite knowledge of fluid flow (overview of the fundamentals is very brief), but it's the next logical step up when you're ready to take your fluid work further.
First off, I have used OpenFOAM for the past 7 years and I used it throughout my PhD work. I am now in a position in which I develop code, fix bugs, perform analysis using only Open Source tools.
I responded to another thread with nearly the same comment as I am going to make now:
Learning OpenFOAM
Granted, all of this can be done while playing with OpenFOAM and the tutorials, but...if you want to master it...then look through what I have provided. Also, if you want to get using it quickly, try using a preprocessor like swiftSnap or HELYX-OS.
General Comments on OpenFOAM
I could talk for hours about my experience in it, but I think OpenFOAM will gain a greater market share in the US and students/engineers need to be prepared to answer questions in job interviews like "have you used OpenFOAM?". I see it all the time, so if you want to keep saying that OF is an academic code and wont make it in US industry then I would at least entertain the thought of OF making a larger impact on the US engineering community since it already has in many other parts of the world.
My two cents.
If you're looking to get started, you should start with a good book like this one:
http://www.amazon.com/Computational-Fluid-Dynamics-John-Anderson/dp/0070016852
That book starts out with the basics of Fluid Dynamics equations and is really very good.
Turbulence theory and turbulence modeling is a pretty advanced topic. You will first have to learn about laminar boundary layers, boundary layer equations and then about transition to turbulence, turbulent boundary layers and turbulence modeling.
This is the best book I have read on Boundary Layer theory that covers both laminar and turbulent flow:
http://www.amazon.com/gp/aw/d/3540662707/ref=mp_s_a_1_1?qid=1425473580&sr=8-1&keywords=schlicting+boundary+layer&pi=AC_SY200_QL40&dpPl=1&dpID=41ZQZkmQBNL&ref=plSrch
Turbulence modeling is something you can move on to after that. I recommend this book:
http://www.amazon.com/gp/aw/d/1928729088/ref=mp_s_a_1_1?qid=1425473660&sr=8-1&keywords=wilcox+turbulence+modeling
Wilcox goes into much detail about the nature of turbulence and the different methods that have been formulated to model this phenomenon.
Here is a book that talks about the basics of fluid dynamics that is pretty good too:
http://www.amazon.com/gp/aw/d/0123821002/ref=mp_s_a_1_1?qid=1425473759&sr=8-1&keywords=kundu+fluid+mechanics&pi=AC_SY200_QL40&dpPl=1&dpID=41h-Ynv4uGL&ref=plSrch
Another great resource is this set of fluid dynamics videos made a few decades ago. They are awesome and will give you a strong conceptual understanding:
http://web.mit.edu/hml/ncfmf.html
There you go. I'm sorry if I was unclear on anything. Let me know about it and I'll be glad to help you out more.
Now could you point me to some material about how you use hydrodynamics in your field? I love to learn about different fields! Thank you in advance!
> I want to at least give myself some experience with using CFD oriented programs
Allow me to read between the lines a little. Your original request seems to imply you want experience using commercial CFD applications. This is certainly a good sub-reddit for that, but I think you also will want/need experience with underlying CFD theory/algorithms to be successful in a graduate program on the subject (although a more industry focused Master's program might not need this at all, but I'm assuming you mean PhD programs). Academic research and advanced applications work tends to be beyond what commercial applications can provide and usually involves in-house or purpose built codes.
As suggested here Dr. Barba's "12 Steps" is a decent starting place. You'll touch on both theory, algorithms, and write code. There a couple additional recommendations I might add. There are a number of methods for CFD, the earliest one is Finite Difference methods and this is what "12 Steps" uses. However for the most part modern academic work uses either Finite Element/Volume, Discontinuous Galerkin, or Spectral methods. You'll likely branch out into one these methods depending on what your PI likes.
That isn't to say that your knowledge from "12 Steps" will be useless, there is a fair degree of overlap, but you'll likely move on from it. Having an applied math background puts you in a good place foundation-wise to quickly dive into other material. I recommend starting with Gustafsson's text Fundamentals of Scientific Computing. It's relatively simple and may cover things you already know depending on your background, but it is a comprehensive starting place that will also walk you through each of the main methods.
From there you could branch out into a method that interests you, my recommended starting texts:
Finite Volume: Leveque's "Finite Volume Methods for Hyperbolic Problems".
Finite Element: Rather than a text, I highly recommend Dr. Garikipati's online course from UMich. The video lectures are all on Youtube and are high-quality both production and layout-wise.
Discontinuous Galerkin: The defacto text is Hesthaven and Warburton's "Nodal DG Methods". I don't think it's a great intro to DG for students, but it's certainly a good reference. Shameless self-plug: I put together a set of Intro to DG video lectures that walks you through a high-order 1-D solver.
Spectral/Spectral Element: I'm least familiar with this area, but have looked through both Boyd's Chebyshev and Fourier Spectral Methods and Kopriva's Implementing Spectral Methods for Partial Differential Equations and found them to be pretty good.
Domain specific wise I'd expect you to be using a FV or DG method to deal with shock-capturing for hypersonic flow. You'll inevitably want to take a look at Toro's Riemann Solvers for shock handling and flux function related stuff. Look here last (or at all) once you actually need it.
I'm not sure what's specifically standard for those types of applications and what sorts of cases are run, but industry standard changes a lot even in single industries.
CFD is often the long pole in the tent because of the plethora of assumptions made on the flow physics. We don't have computers fast enough to resolve everything easily so generally engineers use lots of models which don't always work. Good boundary condition data is often hard to come by, complex geometry is hard to mesh well, and you end up in a position where lots of subtle things can make everything go wrong.
It sounds like you're doing a sort of aero analysis, which often are very costly computationally because the mesh requirements are so large. If you want to buy hardware you're looking at $2-3k minimum in equipment to get the job done very slowly. Which doesn't include the software, if you want a commercial package those are very, very costly, typically far outside hobbyist range. Open-source packages exist but you have to be willing to put a lot of effort into them, since they often lack good documentation and training. You may be able to limit the size of the case to save yourself computational cost, but then see my comment about assumptions above.
If your work has a commercial package onsite that you're allowed to play with on company hardware this is your best entry route. The two most common packages are Fluent from ANSYS and STAR-CCM+ from Siemens PLM. They will have good documentation and step-by-step tutorials.
If you really want to delve into things yourself, you can download OpenFOAM, which is an open-source package. It has a steep learning curve, but tutorials exist with varying quality on youtube and elsewhere.
CFD is not really something to jump in to without learning theory, though. I would recommend you pick up a book or two. My recommendation for your sort of scenario would be this one: https://www.amazon.com/Introduction-Computational-Fluid-Dynamics-Finite/dp/0131274988 though you may be able to find PDF copies on the internet. You really need to learn what the buttons do before you press them, else you can easily land yourself in a position with good-looking pictures that are nonsense.
I'd be interested to hear about the really horrible downsides of LBM and SPH. That's not a sarcastic comment either - I'm genuinely interested in their major failings! Do you mean in terms of accuracy achieved per compute unit utilised when compared to say, FVM? One of the major benefits of SPH is the lack of traditional mesh generation. I've seen it utilised on some incredibly complex fluid-solid interaction problems with very tricky geometries.
My background was high-speed aerodynamics/compressible flows with FVM/Riemann solvers and I did not come across much (any?) work utilising SPH in those regimes. I gather the method isn't suited to it?
SPH seems to really shine when used for incompressible multiphase flow (air/water interface) and for a lot of computer graphics work where accuracy is less important than the 'effect'. The guys at CG Freiburg have some fun videos utilising the method: https://www.youtube.com/user/CGFreiburg/videos. There's also the textbook by Liu and Liu, but I've not read it myself: https://www.amazon.co.uk/Smoothed-Particle-Hydrodynamics-Meshfree-Method/dp/9812384561/
It also seems to work well for astrophysics, as /u/ElhnsBeluj mentions. I believe Joseph Monaghan (one of the 'co-creators' of SPH) is at Monash University. Daniel Price, also at Monash, seems to have done a lot of interesting work on SPH in astro as well (http://users.monash.edu.au/~dprice/). Most of that work is found in research papers, rather than textbooks however.
A good friend of mine at university worked with Sherwin. He utilised the Nektar++ code, which is a Spectral/hp-element code. The gallery is interesting: http://www.nektar.info/gallery/
Numerical Simulation in Fluid Dynamics: A Practical Introduction
The nice thing about this book is that it guides you through the creation of a basic CFD code with lots of pseudo code and recommended method interfaces and data structures. The discretization is done in finite differences. Advanced topics like turbulence, energy transport and free boundary problems are also discussed.
Computational Methods for Fluid Dynamics
In contrast to the first one, this book does not provide you any recommendations regarding the implementation but covers more topics like finite volume discretization, numerical solvers, multigrid, DNS, LES etc.
I would say, if you want a practical approach, pick the first one, if you are more interested in the theory of different methods and concepts, pick the second one.
While Anderson's book is pretty good, I wouldn't recommend it in this case. He writes primarily from an aerodynamics view, with the assumption that the Mach number will be important, and deals mainly with density based solvers. None of that is going to be relevant to most hydrodynamics situations. I would instead recommend something that focuses more on pressure based solvers and low Mach number flows, like Ferziger & Peric, or Versteeg & Malalakesera if you want something that is a bit more of a hand book. I find Ferziger & Peric especially helpful for dealing with OpenFOAM because so much of the terminology is similar.
Yeah, baby steps indeed! None of us learned this stuff overnight. I think a decent number of people in this subreddit have devoted at least a year (if not more) of advanced undergrad or beginner graduate level coursework to really master the principles behind CFD solvers.
I cannot recommend Moin's Fundamentals of Engineering Numerical Analysis enough. It starts with the very basics (numerical integration and finite differences) and then builds all the ODE/PDE discretization techniques right on top of these basics. If you're going to be learning about PDEs this semester, and then linear algebra next, this numerical methods book from Moin will be a great companion.
By the end of your linear algebra class, you should be able to write a program that discretizes an ODE with central differencing, which creates a linear matrix system (Ax=b), which in turn is solved using some iterative method (i.e.: Gauss-Seidell). That's not exactly how CFD solvers work (they use different discretization methods) but the general workflow is identical. Doing an exercise of that sort would be very helpful, and the general framework of your code can later be upscaled to more advanced discretization techniques.
If you are interested in a book on numerical solution of PDE, you should check this one out. This is the book I learned out of, and it is particularly suited to finite difference methods (but covers some of FVM and FEM and has a chapter on linear solvers).
This is a good introduction to finite volume methods.
As for books about CFD, I am not too sure, my research is on numerical solution of hyperbolic PDE (think Euler equations), and I work with a particular method (discontinuous Galerkin). But these two books should be accessible to you with your background. Read them, try to code things up. See what happens when you break stability conditions, see what happens why you do not limit a shock. These things will help you understand and interpret CFD results.
If you never took any modules in CFD you might learn where to click on any software but I will invest some time in learning the founding bricks of CFD. This might seem strange but when doing CFD you are always confronted with modelling decisions and having that strong background can really help you. To really start I would suggest a rather general book like the one from Prof Hirsch https://www.amazon.com/Numerical-Computation-Internal-External-Flows/dp/0750665947
Computational Fluid Mechanics and Heat Transfer 2nd or 3rd Edition by John C. Tannehill, Dale A. Anderson, and Richard H. Pletcher Amazon Link
I've read through some of this book, and it's been recommended to me by my mentor. It's a great book to build a strong foundation in CFD
https://www.amazon.co.uk/Introduction-Computational-Fluid-Dynamics-Finite/dp/0131274988
This book is great for starting out. There are others more suited to aerodynamics but that book is a good starting point.
This is a good book for you to start: An Introduction to Computational Fluid Dynamics: The Finite Volume Method
You will find the definition of some terms and how the different models work. I think it is important for you to get acquaintance with RANS equations. If I can suggest you one more thing it is to look for an publication of a similar work, even if the focus is different than yours, you can find some tips of how to run your simulations.
If you are interested in vortex methods, this is a decent book.
https://www.amazon.com/Vortex-Methods-Practice-Georges-Henri-Cottet/dp/0521621860
I briefly worked with vortex methods and I actually had to cycle between papers and theses and this book to get it working. Its actually a nice method for incompressible flows but I could never get boundary conditions for walls to work. But in say, a periodic domain it works well.
There's a lot out there. I would probably recommend Hirsch's Numerical Computation of Internal and External Flows. It's got good coverage "from the beginning" and still has a decent amount of rigor.
Buy or check out this book from a library. That will be your goto for all the cfd aspects(AKA the numerical simulation of a physical problem). Other resources you'll find will be more strictly programming based(Things like MPI, OpenMP, Fortran, etc.).
Edit: For getting your feet wet.
I would recommend Introductory Functional Analysis with Applications to Boundary Value Problems and Finite Elements as it is written as "Functional Analysis for Engineers" and with direct focus on FEM.
Here is the desktop version of your link
Check out chapter 10 of the Anderson CFD book. It's an explicit FD formulation of this exact problem.
Link: https://www.amazon.com/dp/0070016852/ref=cm_sw_r_cp_apa_xiTZAbSJCCYF4
If you're just looking for source code, it's somewhere out there on them interwebs, in Matlab and C at least.