Carl Ollivier-Gooch is a professor in the mechanical engineering department at the University of British Columbia. He’s the resident computational fluid dynamics (CFD) and meshing algorithm development guy (discounting some CS visualization types, who have very different meshing goals). In addition to teaching a grad course in CFD, he also teaches undergraduate courses in fluid mechanics and aerodynamics.
JRC: What do you see as the biggest challenges facing CFD/CAD/whatever in the next three years?
CFOG: At a high level, the biggest challenge in CFD these days is that we don’t have a good way of quantifying the error in solutions. When problem sizes were smaller and geometries were less complex, we could go for grid convergence, but that isn’t all that practical for big problems (probably never was for the big problems of the day). So we rely on experience and intuition, which is great for those with enough experience, but not for average users. We need to get better at putting hard numbers on the uncertainty in the numerics in our solutions.
JRC: This also is an area of concern for the AIAA Meshing, Visualization and Computational Environments (MVCE) technical committee, of which you and I are members, although the committee’s interest is just a subset of the overall uncertainty issue. Strictly from a meshing perspective, we’re good at saying whether a mesh is bad, but not so good at saying whether it’s good or how good.
JRC: Does your current work tie into those challenges?
CFOG: My group at UBC (the Advanced Numerical Simulation Laboratory) is working in three areas. We’re continuing to work on high-order finite-volume methods for aerodynamics problems. We’ve recently added optimization capability to the code, complete with adjoints. Turbulent flows are the next big hurdle there.
We’re working on parallelizing our mesh generation algorithms. Parallel meshing scales okay for small numbers of processors in distributed memory machines, but poorly for thousands of processors. For multicore architectures, I think it’s possible to do better than “just” treating them as separate MPI processes, but the algorithms to do that may need to be very different than standard serial algorithms.
And we’re developing ways to estimate, analyze, and reduce truncation error for finite-volume schemes on unstructured meshes. That’s still at an early stage, so we’re generating questions faster than answers at this point.
JRC: So how did you end up at UBC?
CFOG: My undergrad degree from Rice is in mechanical engineering. Then I did graduate work in aero at Stanford, graduating in 1994. Like many other Stanford aero grad students, I did my thesis research at NASA Ames (in the CFD branch before it was re-organized and re-named out of existence). So it was an easy transition from there to a post-doc at Ames. That was where I started working on unstructured mesh stuff, which led to another post-doc, at Argonne National Lab. I’ve been on faculty at U British Columbia since then.
The most important work-related thing I learned outside the classroom was how to program. I’m just young enough never to have programmed using punch cards, but I did get my start writing Basic (and then assembler) on an Apple II back in high school.
JRC: My first programming also was done in Basic but on a Wang 3300 using punched paper tape. It was the first computer in my high school back in 1978 or thereabouts. Someone tried to teach me assembly once, but that was a disaster.
CFOG: With great power comes great responsibility, John.
JRC: Who or what inspired you to get started in your career?
CFOG: I read lots of science fiction as a kid, back in the era when Robert Heinlein’s novels for kids were still on the shelves in public libraries. So I grew up with this notion that space travel was going to be common really soon. For a long time, I wanted to grow up to be a spaceship designer. Somewhere along the line, I got fascinated by CFD for its own sake.
JRC: Kinda like how I’m fascinated by meshing for its own sake?
JRC: What advice do you have for young people entering the field today?
CFOG: Regardless of what your undergrad institution tells you, you need to know more math and more programming than they require you to take. Personally, I think that’s probably true for most engineers, but it’s unquestionably true for anyone in any part of CAE. And most North American universities aren’t requiring — or maybe even offering — those courses. So US and Canadian students who have those skills anyhow are in high demand in CAE.
Intuition about domain-specific problem physics is important, too, but that’s something that comes only through experience and lots of it.
JRC: I’ve always said that young engineers need to learn to write and communicate effectively because they do that more in the workplace that anyone thinks. If engineers aren’t being taught enough programming, what are the odds that they’ll get enough writing?
CFOG: Zero. Although there are some similiarities between the two, at least in terms of being able to think clearly. But don’t get me started on critical thinking and the education system…
JRC: How do you know Pointwise?
CFOG: I’ve known the people at Pointwise for long enough that I can’t be sure how long it’s been. The meshing field is small enough that you tend to meet a lot of the main players. You already mentioned the MVCE TC that we’re both on.
JRC: Will you share with us your favorite tools and resources that help you get your job done?
CFOG: One of my favorite tools is the valgrind suite. Once you know how to use it, it’ll tell about any suspicious memory-related things in your code. It also has an excellent profiling tool. I like the KDE-based tool for manipulating the profiling results — it’s visual, intuitive, and really helps you zero in on the expensive parts of your code.
JRC: We also use valgrind and it comes in very handy.
CFOG: My favorite conferences are the AIAA Aerospace Sciences Meeting and CFD conference, because they’re the best places to find out what other CFD algorithms geeks are up to. I also like the International Meshing Roundtable, which has an interesting mix of theoretical and practical meshing papers. And great T-shirts with pictures of meshes-as-art.
JRC: You and I talked about the annual meeting of the CFD Society of Canada, where a lot of north-of-the-border applied research is presented. It seems that Canadian CFD researchers can get a lot more visibility there than at a larger conference.
Speaking of meshes as art, you’ve heard about our Meshy Award for our upcoming Pointwise User Group Meeting 2011, haven’t you?
JRC: If we were to come visit you, where’s a good place to go out for dinner?
CFOG: Vancouver’s got a number of very nice seafood restaurants, many of them right on the water. But instead, we’d probably go out for breakfast. The Sylvia Hotel is a 1920s era hotel downtown, right across the street from the beach that serves the best breakfast in town. The omelets are excellent. Then after breakfast, there are options for a walk on the beach or along the seawall into Stanley Park.
JRC: I’ve only visited Vancouver once and then was only passing through. Next time, I’ll be sure to try the Sylvia Hotel. Thanks for taking time for this interview.
Also, I would’ve asked you a thermodynamics question about that technique for cooling off a hot car by slamming the door five times, but the video has been taken off YouTube. Consider yourself lucky. And, no, they’re not censoring bad science.