Best OSS CFD Package For High School Physics?
RobHart writes "I am teaching a 'physics of flight' unit to grade 11 Physics students. Part of the unit will have the students running tests on several aerofoils in a wind tunnel. I also want to expose them to a Computational Fluid Dynamics package which will allow them to contrast experimental results with those produced by the CFD package. There are a number of open source CFDs available (Windows- or Linux-based are both fine), but I don't have much time to evaluate which are the simplest to use in terms of setting up the mesh, initial conditions, etc. — a very important issue as students do not have much time in this unit." Can anyone offer insight about ease of use for programs in this niche?
It's not OSS, but Orbiter may be what you're looking for.
I agree that CFD would be something nice to teach a high school student. However, unless this is an AP course, CFD is just too complex for high school students. Most people don't learn CFD until grad school.
One of our competitors trademarked the term "hypothesis". From now on, we will call them "boneheaded ideas".
Check out openFOAM. You might find that it meets your needs.
"Software is the difference between hardware and reality"
I like Code_Saturne. It has a GUI that greatly simplifies the whole process. You can use SALOME to make the initial model and then mesh it, and also use it to visualize the results. All of these programs come precompiled on a live Linux distro called CAElinux. http://www.code-saturne.org/ http://www.caelinux.com/CMS/ http://www.salome-platform.org/ In any case, check out CAElinux. It's going to be the least hassle out of any of your choices because everything comes precompiled.
As an aerospace engineering PhD, I can tell you that CFD with mesh generation, turbulence model selection, numerical method selection, etc. is definitely above the level of your typical 11th grade student, even a gifted one. At best, you could have them run OpenFOAM tutorial cases, though it is highly doubtful that they would understand what is actually going on and would be able to say little more than "I've run a CFD code before, but I don't know what the results mean" at the end of the experience. There are number of panel-based aerodynamic analysis tools that would be appropriate, and of them, I'd say XFOIL is your best bet.
I like the idea of exposing your students to CFD packages, particularly the variation between experimental results & results off of a theoretical model. My concern would be that mastering a CFD package (or even become a basic user of one) is pretty time consuming. As others have pointed out you usually don't touch CFD packages until late undergrad or grad school.
Consider building the models yourself and running them as a demonstration rather than asking your students: They get the benefits of seeing what the software can do & being able to reference the theoretical data generated, but won't have to deal with the frustration/learning curve of CFD software.
If there's an interest you can offer an extra credit project where students design (or modify) a mesh & report the results.
/~mikeg
Just because they don't have the mathematical background to fully understand the models, doesn't mean that it is worthless to expose them to the concepts. Playing around with flow simulations and seeing how changes in geometry affect flow is fun, and can give them a feel for the basic concepts of aerodynamics. It will make the class more interesting, and encourage them to pursue physics or engineering as a career.
But "Student package" include in ubuntu 9.10, 10.04 version for General physics and C.F.D. It's a python with clean interface, some add Tkinter interface, some add wxWidget or QT4 to run home-made modules, It give you a simple interface, similar to Wolfram-stylish framing where you can add yourself information, comment... even RPC server... I mean, walk through IT classe's to find out goods students looking "final-staging" to design couple of RPC-function from python instance from elmer where you can create a simple server to let student access to information, like modeling, matrix sets and simplify the work... Ubuntu distribution is simple, order the cd by mail, buy an extra usb-stick of coupels of Gb, and format it into ext2 while booting the Ubuntu cd-rom is done whithing hours if you try-it first, secondly add elmer or previous one with code-saturn. You can even look to sf.net trying python wiimote example to draw you example on-drawboards, being reflected on you computer... But Wii-remote not included Python is really easy to do...
OpenFOAM is included in a much broader package, CAELinux, which offers additional Open Source solutions that may be of interest to the education community, such as Scilab and Octave, replacements for Matlab. In addition to OpenFOAM for CFD, the package includes Salome for mesh generation (somewhat easier than OpenFOAM) and a GUI-based Code_Saturne for CFD analysis. CAELinux is a complete system, built on Ubuntu 8.04, such that it works right out of the box, no configuration required. It can be run from a LiveDVD or built as a second boot option on a Windows or other Linux machine.
As a trainee physics teacher for A-level students (age 16-19, i believe about equivilant to grades 11-12) i will be watching this thread with interest.
Some have suggested that we will not be able to teach this level of physics to this level of students. However if something comes up which can be used for simple attractive demonstrations then that would be great.
E.g in my course my students need to know the difference between laminar and turbulent flow, and fast move fluids will break into turbulent flow. If a simple simulation allows the demonstration of this then i feel it would help alot with that simple idea, and high achieving students will be able to just play around and see how fluids behave.
Thanks in advance to anyone who provides good links
http://slfcfd.sourceforge.net/
I haven't used it, but I've used his related SLFFEA for a project before, and was surprised how easy it was to use.
* OpenFOAM
Very capable CFD package with many features. Can read meshes created by gmsh, but also many other formats. Only runs on *nix systems. Very good parallel support. Rather steep learning curve, but doable.
* Gerris
Unconventional meshing process consisting of an tree structure which is automatically refined during convergence.
* Elmer FEM
Multi-physics package which includes a GUI, while the other two do not. (I have not had much luck with the GUI for anything other than easy initial setup of the case. After that it's back to the text editor) Windows binaries are available. Reads gmsh meshes, or can create its own from a simple file format. Can easily couple the Navier-Stokes equations with the Heat equation, Linear Elasticity, Electrostatics, etc for more complex scenarios.
Basically, this is similar to XFoil, which is the standard 2-D CFD software for beginning Aeronautical Engineers (after they made us write our own...in FORTRAN77).
Since it is not 3-D, it runs MUCH faster and lets them discover the basics of pressure over an airfoil, which is the important part of wing design. The details of taper, sweep, tip shape, twist, and such are a bit too much for a high-school project. Surface area and aspect ratio are the simplest and most important criteria for airplane design. These values can be calculated on paper after coefficients of lift and drag are generated.
Javafoil can be run stand-alone or in an applet. It's free, and fairly straightforward to use.
Best of luck. I'd be interested to hear how quickly they catch on to the concepts.
http://www.mh-aerotools.de/airfoils/javafoil.htm
I've taught computational fluid dynamics and molecular dynamics workshops to university faculty members and can say this: You need to setup the examples for them to play with BEFORE class. There's really no such thing as an easy to use CFD or MD package, especially when looking at what it takes to setup initial conditions. I would strongly recommend that you do a good deal of the leg work, especially for participants that do not have the mathematical background or a background in fluid dynamics, period. It will only help you in the end.
This link will take you to lists of free and free-to-academics CFD codes, but the free ones are really, really bare bones in a lot of cases when it comes to UI. I would not turn high school students loose on these codes without pre-determined examples.
Xfoil by Mark Drela at MIT. I've used this professionally. Fast, Accurate, and fast to pick up, (with guidance could probably have results inside half and hour)
NASA has several Open Source CFD packages. Unlike the ones developed by the regular OSS community (which may technically be superior), NASA Langley's CFDs are used by engineers there in real aircraft design. No matter what problems there may be (and there are sure to be some), they have to be "good enough" for real-world commercial aviation. That is certainly good enough for a physics lab.
The problem with other CFD packages is that even if they produce good results, unless you analyze the code, you can't be certain if the results are scientifically correct. Personally, I like programs like Gerris and some of the other packages out there, but I can't be certain of their correctness.
As a complete aside, there's a fascinating story emerging over amateur fusion scientists. Apparently, ITER expects amateurs to make some useful discoveries, and several amateurs have made claims of achieving some nuclear fusion events. This would put fusion technology in the same state as garage computing was in the early 1970s.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
The highest level science class available in my HS was AP Chemistry. It would have so cool to take physics in HS.
I judt got a nre Kinesis keybiartf so please excusr ant egregiou typos.
Are you looking for real CFD software for pressure distributions or are you looking for something that returns lift, drag, side and moments?
On the CFD side: OpenFOAM. Learning this is quite a bit of work because you need to work with meshing, boundary conditions, etc. But I would be very surprised you really want flow visualisation.
For loads: XFOIL or AVL (Athena Vortex Lattice, http://web.mit.edu/drela/Public/web/avl/). AVL allows 3D visualisation of loads, perturbations, etc. When it comes to a first iteration in aeroplane design this is first thing we use in academia and is quite nice. XFOIL is 2D and is used for analysis on an aerofoil. Both allow arbitrary geometries, but I believe both are strictly for inviscid flows.
What theories in particular are you trying to validate?
GO BLUE!
I will be getting my PhD in Computational Engineering in August, and as a former university, high school and middle school math teacher, there are things that can be applied to teaching young students about CFD without them having all the mathematics background they need. I am the STEM outreach coordinator at the SimCenter, and I have a website http://www2.utc.edu/ which includes an Euler solver on a NACA 0012 airfoil with changeable parameters for students to study the various solutions based on mach, angle of attack, etc. It also does grid adaptation. There is a graduate student tutorial and a high school student activity. I have used it with precalc, calc, and physics students at local high schools. Please feel free to contact me at vincent-betro@utc.edu for anything else I can help with. Vince P.S. Another good (and longer running) package can be obtained from NASA Lewis and can be run on any platform: http://www.grc.nasa.gov/WWW/K-12/airplane/foil2.html. Good luck!
The X-plane flight simulator has an aircraft designer module and it models the airfoils with simple CFD models AFAIK. It's also certified for use as a flight trainer if you have the expensive physical cockpit parts to build around the software.
Perhaps a good question is- will running CFD be a learning experience for your students? Will they just be blinding clicking options without getting much out of it? Perhaps they could interact with a CFD solution that you ran instead. They could still do a comparison to experimental results. I have found that simpler 2-D or other approximate codes offer better learning experiences that full-up CFD because changing options, creating geometry and viewing results is much simpler. Check out XFOIL and maybe ASWING: http://web.mit.edu/drela/Public/web/xfoil/ http://web.mit.edu/drela/Public/web/aswing/
If you're looking for an airfoil simulator, you might try NASA's FoilSim II. "Elementary," student, and undergraduate versions are available, and the non-applet download gives an even more complete version that allows file output. While it's not a full CFD package, it may be good enough for an introduction to airfoil analysis. And while it's not open source, it is free and in the public domain (since it was government produced).
Also, if you're generally looking for open source physics simulations, you should check out Open Source Physics at http://www.compadre.org/osp/
In particular, a brief search there yielded the Tracker Air Resistance Model - a level appropriate simulation that lets students explore the air resistance of falling coffee cups with both viscous (linear) and drag (quadratic) models.
Nearly all of the OSP items have the source code available for modification of the models.
Dance like no ones looking and love like it's never going to hurt.
Well a CFD-System for just verifing wind tunnel tests might be a bit too much, but verifying lift and drag for such airfoils is possible.
This is based on my experience in the wind industry, so this means I'm refering to blades which consists of many airfoils attached to a rotor but the basic principles remain the same.
When dealing with windturbine aerodynamic simulations Aerodyn[3] implements the BEM[1] but BEM is based on MT[2] and can caculate Lift/Drag for Airfoils due to a certain wind either constant or
turbulent. Turbulent wind can be generated by Turbsim[5].
And if you don't want to stop there, with FAST [4] you get an "easy" design code for load caculations on a simplified turbine model,
with example simulation models like the NREL 5MW-Offshore Turbine.
In the wind industry CFD will not be used for caculating aerodynamic loads acting on the rotor and drive train, we use reduced theories like BEM[1] (which exists in various even spiced up versions, for things like dynamic stall, tower drag, tower shadow etc..)
CFD is taken into account when the blade design is going to be tuned, for example finding vortices which consume kinetic energy and generate certain unwanted noise levels.
And by the way all NREL-Tools are OSS.
Draw back -> you can't "see" the vortices unless using CFD.
[1] http://en.wikipedia.org/wiki/Blade_element_theory
[2] http://en.wikipedia.org/wiki/Momentum_theory
[3] http://wind.nrel.gov/designcodes/simulators/aerodyn/
[4] http://wind.nrel.gov/designcodes/simulators/fast/
[5] http://wind.nrel.gov/designcodes/preprocessors/turbsim/
I recommend gerris flow solver for something that is fairly easy to use.... http://gfs.sourceforge.net/wiki/index.php/Main_Page
30 minutes after building it I had this: http://myrandomnode.dyndns.org:8080/~gmaxwell/theora/hot_xiph.ogv
and I think I spent more time figuring out how to build models in blender. It's not as powerful as openfoam, which is what I normally use now.... but its easier to get started with.
For mesh generation (surface+volume meshing, boundary layer creation, etc):
enGrid: http://engits.eu/cms/index.php?id=4
netgen (used as a library in enGrid): http://www.hpfem.jku.at/netgen/
For the CFD simulations:
http://www.openfoam.com/
Debian/Ubuntu packages:
https://launchpad.net/~cae-team/+archive/ppa
For visuals, UIUC's Airfoil Data Site is a good place to start.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
You should be happy students even know how to calculate integrals.
X-Foil - hands down. Designed by MIT, you can download .dat files for airfoils to load them, create NACA airfoils, and output all sorts of polar graphs.
If you're even more ambitious, look up XFLR5 on sourceforge - it does CFD over the entire surface of the aircraft in 3-D, as you can create a wing plan, tail surfaces and even a fuselage using curves.
XFLR5 is great because of the visualizations you can get from it - including animated lift/drag/pressure distributions, static airflow trails, and of course all of the graphs you can get from XFoil.
Just lookup both on Sourceforge - they're designed specifically for aircraft analysis, so you don't need to deal with a complete CFD package that needs more setup.
---- I am certain of only one thing : I know nothing else.
There is a lot you can do to introduce useful concepts related to CFD without burying them with all the complexities.
Try doing some 1D or 2D heat conduction, diffusion, or potential flow problems (Poisson's Equation).
- It can be done in parallel with some simple lab experiments (reinforce the fact that computational models *should* be modeling actual physical reality)
- It is a great introduction to numerical methods (finite differences, implicit vs. explicit stepping, all needed for CFD).
- It can be done in Excel or another spreadsheet program, or simple programming code.
- The numerical solutions can be compared to analytical solutions (so you can play around with the effect of grid size on accuracy).
I once taught a heat transfer course. In one class, after introducing the finite heat equation, I had the students line up in two rows facing each other (one for the actual calculation, the second for error checking). Using their calculators, I had each student represent a cell in a 1-D transient heat transfer calculation, and they "stepped" through a transient conduction problem. It was a little tedious at first, but when they got the hang of it they started seeing their local temperature changing they got very interested and excited. Then I changed the time step (Fourier number) which caused their explicit solution to go unstable. The class started to see their numbers diverging wildy (yet their numbers were correct as their partner calculated the same number) which caused a lot of uproar and excitement. I then presented an animation of what their solution was supposed to look like. It was a little tedious, and probably a bit slow for university students, but they really got a feel for the numerics. I think it would go down well in a good high school physics class.
Ask those 7th graders who discovered a cave on Mars.
I believe they wrote their own CFD code from scratch over one weekend.
With wooden models, a big water tank with flowing water and food dye squirted down a straw they will get a better grasp of fluid flow than you'll get from computational fluid dynamics. It's like having a dirt cheap wind tunnel. Then you have the whiteboard next to it to describe why the fluid flows that way. Much more memorable than pretty pictures on a screen produced by a mathematical black box of equations that they will not be able to understand. I'm not being condescending since that is what has worked at a third year University level.
Keep it visable and never more than two dimensional.
Elmer from http://www.csc.fi/english/pages/elmer ... free, windows executable available, MPI capable. Geometric model has to be made separately I believe.
Yes, I know this is Slashdot, but you got the first post and the first thing I read when I clicked on the to read comments is your somewhat counterproductive answer.
I would imagine that the instructor has already decided that the topic would match the students. If it were a regular level course, then it's likely he'd show a video on the topic and it would be good enough. Instead he's chosen to broach the math involved by attempting to simulate a fluid dynamics scenario.
In short, instead of assisting the teacher in his attempt to try and broaden the minds of ambitious youngsters, it almost appears that you're simply recommending that he stops doing his job, packs up and maybe instead teaches ABCs and 123s.
Let's face it, if he's a teacher who is "qualified" to teach a topic like computational fluid dynamics, I'd imagine that he wasn't hired to teach just the average "who gives a shit" student. There are enough useless teachers who wouldn't bother out there already. This guy at least makes the effort of trying to figure out how he can best accomplish the task of teaching a complex subject.
Please don't EVER!!!! stop an ambitious teacher from attempting to educate ambitious students in the future. Especially not under the premise of suggesting that it shouldn't be done.
I suggest X-plane. It is free for 10 minutes use. You can design an aeroplane and then fly it in the game.
I am using openflower for CFD. I am not a professional aero,hydro,or-other-dynamicist, just an amateur. Openflower (openflower.sourceforge.net) is capable, though it seems to be limited to models with restrictive symmetry. (Models you start with must be built by extruding a plane model; trying to build one without extrusion, arbitrary placement of walls, all fail; maybe because of my ignorance, but there it is...)
It uses GMSH to build the models and generate the mesh, with a xxx.flw control file to define source, sinks, and impenetrable walls, and other initial conditions. All control files are text files, easily edited with a simple text editor.
There are a bunch (30 or so) examples, that you can modify to meet your own needs; all are basic, simple models, probably very appropriate to students.
I will agree with the respondent who said "NEVER discourage a teacher from trying..." or whatever his exact message. If it fails, so what? There will be one student who says, "Gosh, maybe if I did this, it will work?" And that may lead to a career in aerospace, or other things.
The tutor offeering from Zeus Numerix is a good option http://www.zeusnumerix.com/products/cfd/zntutor_cfd [www.zeusnumerix.com] This is meant to be an aid for the instructor in teaching fluid dynamics.
You can do this easily with physical models held in place by a stand, colored smoke from smoke bombs or even dry ice, and a fan. What you are looking for is turbulence. Which is easy to spot as the smoke passes the variaous parts of the model. It shows up as swirls.
Most CFD software is too complex to learn in a reasonable timeframe in a classroom environment, but that doesn't mean the teacher can't learn it, set it up and run it to demonstrate the results to the kids. They won't need to understand the Navier-Stokes equations, they just need to see what can be done computationally, using equations based on the physics that they are learning in school.
See Caedium, which also implements a version of OpenFOAM. In the simple screencast tutorial, you can see how quickly a Wing model can be put together, with simple visualizations of flow and turbulence. This can be done in 5 minutes. http://www.symscape.com/product/caedium Not sure of the licensing costs for education, but this is MUCH simpler and easy to use and it is fully cross platform, including Mac. I would simply ask for educational terms and see what you find out. I think it's effectively a one-man shop. And I completely agree with other comments that we are talking about teaching, not about becoming overnight engineers. You are to be commended for reaching out to do this for your students.