Never miss a story from Computational Fluid Dynamics (CFD). Subscribe for in-depth analysis and articles.
Hi, I’m Samuel Afari and I’m a CFD Applications Engineering Intern at Cadence. I am currently a PhD candidate at Embry-Riddle Aeronautical University in Daytona Beach, Florida. I also did my MSc in Aerospace Engineering at the same school, under Dr. Reda Mankbadi.
My current research at school involves investigation, prediction, and active control of multi-rotor noise, where I utilize and modify OpenFOAM, an open-source CFD code for high-fidelity prediction of flow fields and acoustics. I also served as an instructor of record and teaching assistant for Incompressible Aerodynamics, as well as for an experimental aerodynamics laboratory.
Accurate CFD is quite subjective based on the desired application. Currently, in academia, we require spot-on results, and can wait long days for high-fidelity results for research. However, for most of the industry, due to the desired quick turnaround time, only RANS or unsteady RANS computations are used.
However, with the recent advent of widely available computational power, more of the industry is driving towards higher fidelity methods. However, these are still not cheap. Additionally, most of the industry requires a tried-and-true method with little effort to get the desired results.
There have been great advances to HPC technology as well as a GPU-accelerated computational framework, which would definitely get us closer to high-accurate results, fast. Also, I believe the near future would drive towards artificial intelligence and machine learning to generate models that would spit out ultra-accurate results within minutes instead of hours, or even days.
JC: I’m curious how you react to the saying “If you know the physics, use the physics” when it comes to CFD and ML. And just how accurate is “ultra-accurate”?
Well, I also believe if the physics is known and can be solved relatively quickly, we definitely have to use that. Most often, “low-fidelity” methods usually only simplify the physics with some acceptable tradeoffs, which make them fast enough for preliminary design and analysis. However, for most real cases, the physics gets quite messy, and simplifications just won’t be enough for an accurate solution. This is where I believe with ML, provided we have a good enough database, would be very instrumental in getting very fast, accurate results. I would say “ultra-accurate” would be to match experimental data with very little to no deviation.
Currently, I am working on benchmarking a Formula One car (provided by Airshaper, and can be downloaded from their website) using the Fidelity suite of applications. That is, meshing in Fidelity HEXPRESS and then using the Fidelity DBS solver. The overall goal is to replicate the flow field and resulting forces.
This mesh for a Formula 1 type car was generated in Fidelity HEXPRESS. Geometry model from Airshaper.
Here are some of the pressure and velocity contours around the car. Overall, I learned the importance of good CFD-ready geometry. This was a very open geometry that had to be closed in various places for a water-tight geometry and was quite a challenge cleaning it up. Resolution of the features was quite difficult and drove the mesh count to quite large numbers.
Pressure and velocity contours around a Formula 1 type car computed using OpenFOAM.
I am using the Imperial front wing as another benchmark for exploring the geometry morphing/optimization feature in Fidelity as well in an attempt to improve the performance of the vehicle.
Use of the Fidelity optimization tools to improve the performance of the Imperial front wing. Original geometry (left) and optimized geometry (right).
I am also working on benchmarking the Onera M6 wing in OpenFOAM using semi-spherical boundaries, and “freestream” boundary conditions. This is particularly difficult because OpenFOAM generally uses a different external boundary conditioning called “inletOutlet” with box-style boundaries, which works fine. However, to benchmark with NASA simulation results, we try to match the shape and the conditions of the boundaries. For the transonic steady solver, it becomes a challenge as the lambda-shock is not well captured. Below I show a comparison between the experimental data and my best-case OpenFOAM results.
Pressure coefficient results from OpenFOAM for the ONERA M6 wing.
This benchmark was important because we wanted to compare our Fidelity solver with other known CFD solvers. We are currently also working with SU2 as well to compare their performance.
I would say my proudest work was my research I did for my Masters’ degree. I performed some of the earliest high-fidelity aeroacoustic computations of an isolated rotor. This was particularly challenging for me because of a few reasons. Firstly, I had to obtain a CAD geometry for a DJI Phantom blade, which was near impossible, as it was proprietary. Faced with this challenge, I decided to model it myself by buying the blades from Walmart, and using calipers, measured out the dimensions and tweaked it a number of times until I obtained a usable model with identical thrust values. Next, I had to mesh the blades and domain, which I was completely new at, and with rotating meshes, things get messy quite fast. However, after several attempts, I was finally able to run them and actually get great matching results. This was perhaps my first entry into the world of acoustics, as I had to nervously present my work at an AIAA conference, which to my relief, was met with very positive remarks and responses!
Snapshot of the dilatation field (acoustic field) of an isolated rotor.
I learned so much in this project about mesh quality metrics, as well as a lot of acoustic theories, and very advanced post-processing, which has taken me quite far in my academic journey.
Currently, some of my interests lie in the application of machine learning to CFD, and acoustics in particular. As such, I have been following a lot of research done by a UC Davis team using a neural network to train an algorithm for trailing edge noise. A few others are attempting to use other data-driven modeling techniques to achieve similar results. See AIAA Aviation papers 2020-2588 and 2020-2237.
I use my iPad Pro for most of my note-taking. Specifically, I use Good Notes. It is extremely useful for a student because you can group each task/research into notebooks and can also use it for teaching as you can project it like a whiteboard and write! For all of my FTP workflow, I prefer to use FileZilla, although at work, I used WinSCP. For all terminal interfaces in Windows, I use MobaXterm. For scripting in the Linux environment, my go-to is vim. For research, I use OpenFOAM for my CFD, and for work, I currently use Fidelity DBS. For meshing, I use Fidelity Pointwise and Fidelity HEXPRESS. For postprocessing of my results, I use a variety of tools – Paraview,and Tecplot for most of my results, and for additional programming, I use MATLAB, although for work, I switched to Jupyter notebooks (python).
JC: Another vim user – I love it. But I’ve gone down the note-taking app road many times and always return to paper.
Away from academia, I always love to do some sports. I am a big tennis lover and player. I try to play at least three times a week. Occasionally, I play soccer as well. I recently learned how to play pickleball, which is a nice medium between tennis and ping pong. Aside the sports, I do like to tinker quite a bit. I have two 3D printers, which I like to modify and improve in my spare time. I gained quite a bit of knowledge in the world of 3D printing, which sometimes has spilled into my CFD world, by printing models I either designed or use for teaching activities.
I have always looked at CFD as a tool that is very user derived. This means anyone could punch in a bunch of settings and get something out of it, that is if it does not blow up due to some egregious numerical error. That being said, I have always been told to analyze critically and select the best schemes and techniques for the task. I have had a number of “best practices” advice from senior colleagues in the graduate program. A notable one is to always do a preliminary mesh (usually very coarse) to identify the regions of interest in the first run, then with the knowledge of the flow properties, recompute your grid refinement regions and boundary layers to properly resolve the features of interest. With this, at least in academia, there has to be a mesh convergence study to validate the solution. Also, as CFD is largely a “garbage in, garbage out” tool, it is necessary to always verify solutions with either experimental or analytical results before going “gung-ho” with ambitious/ new designs.
I am not too familiar with the greater Bay Area as I only just moved here for my internship. However in the greater Daytona Beach area, I would recommend The Garlic for dinner. It is one of the few authentic Italian restaurants I have been to. The proportions are quite monstrous, although a bit on the pricier side. I would probably recommend Zen Bistro if authentic Thai cuisine is preferred. My last favorite is Ronin Sushi for some of the best sushi in the greater Daytona Area!
JC: The Garlic’s online menu had my mouth watering. I would probably choose the Spuntitori Italiano because it’s such a meat-fest. But the menu left me hanging because no desserts were listed. How do I know whether they have cannoli or tiramisu?
They do actually have a dessert menu that changes daily, so you would have to be there to ask for it.
JC: Thanks for sharing your work with our readers.