Training students to compute confidently
When he began hearing of the same need from multiple sources, AE Professor Daniel Bodony paid attention.
“Students on senior design teams and registered student organizations regularly ask for computational fluid dynamics help. Recent alums were sending me emails saying, ‘one thing I wish I’d learned was how to use a CFD code’ and in conversations with aerospace alumni and their employers I heard that CFD is something their companies are looking for job and internship candidates,” Bodony said.
He said the department offers a computational aerodynamics course geared toward research needs, but few undergraduates take it. “Those who did say they were glad they took it because it helped them be a better user of a commercial or in-house code. That’s why I decided to offer a class for undergrad and graduate credit to teach computational fluid dynamics as it specifically relates to applied aerospace problems.”
Bodony uses computation in his own research and has collaborated with commercial companies and federal labs on CFD-related research. He learned what companies want from their employees running CFD calculations.
“I thought about what outcome companies want and how they want their employee to state problems and characterize the answer,” he said. “I took both of those goals and created a curriculum around that.”
Bodony uses ANSYS in his course because it is one of the commonly found commercial software packages that an engineer is likely to see and it’s one of the codes the university has a license for, so students can use it for free.
But Bodony emphasized, knowing how to code is different than being able to use the code effectively. He used an analogy of whether you can program your phone.
“I can't write an app for my phone, but I know how to use them and some of the apps I know how to use effectively. When an aerospace engineer goes into a company, there's a pretty good chance they’ll be given a code that already works, and they are asked to use it. But to use these codes requires training in how to define a problem and how to ensure the answer it gives you is correct – you have to know how to assess its correctness.”
Bodony’s computation class is tailored to the kinds of problems aerospace students would encounter in an aerospace job. For mechanical engineering students in the class, it’s not a difficult translation from the flow around an airplane to the flow around a race car. He said if students from other engineering disciplines expressed interest in the course, additional applications, relevant to their fields – like free surface flows of rivers and oceans for civil and environmental engineers – could be added.
The class is typically made up of 20 percent undergraduate seniors and 80 percent graduate students. To accommodate for the wide gap of comfort with computation in his class, Bodony uses a combination of skills scaffolding and freedom to explore ideas in a homework or project setting.
“The teaching assistants and I created over a dozen video tutorials that walk the student through very basic steps from sitting down at one of the workstations and clicking the icon to start the application to how to run one of the more advanced solvers in it. For every homework assignment or project, I indicate which tutorials are relevant.
“Many times, the tutorials are directly related to the homework. I define the minimum expectation but then give them opportunities to go beyond for those who want to explore something at a higher level. They are graded on the baseline, which is set to be accessible by a novice student who needs to use of all the tutorials.”
Bodony said one of the issues is time management.
“There is a perception that to run a CFD code you just click the button, and it runs, and in two seconds, you get an answer. That’s not the reality. It can take quite a bit of time for some of these simulations to run. It might take 10 minutes for an easy one. An hour is more typical. Two hours is common for the end-of-semester final project simulations. Those students that understand the timing tend to do a nicer job on the baseline assignments and then start exploring more advanced ideas.”
The other big challenge is to help students learn to think through the steps, Bodony said.
“A lot of students know how to code, but they don't how to think algorithmically. We use the example in class of sorting a table of names. What are the steps to sort them alphabetically, for example? How do I do that?
“It's easy for us to conceptualize, but it ends up being harder for people to think about that as an algorithm. And that’s often one of the key differentiators between a good CFD user and a mediocre one. We’re training our Illinois graduates to be the good ones.”