Project Artemis Introduction

After parting ways with RHR performance, I got really, really interested in CFD. Working with RHR, and our aero consultant meant that I had to learn 3D CAD (I’m an old school AutoCAD 2D cad person), so Fusion 360 was the tool I chose, and after messing with basic CFD programs, settled on openFoam, since it’s what our consultant used, it’s free, hardcore, and super flexible. The downside is that I am weak on Linux, and dual booting computers is boring.

So openFoam: it’s awesome, it just takes a lot of trial and error. And when you get to big and complex models, you need serious hardware or openFoam simply crashes when it runs out of memory. I tried working on a 4 core 16GB laptop, but it could only just barely handle simple models. My new prized workstation is a used (ebay) dual 10 core Xeon, so 20 cores with 128GB of RAM. I got a nice SSD and an old graphics card, installed Ubuntu, and got to work. I’d love to try CentOS and a Rocks/Beowulf cluster, but I’m not a professional, so I don’t need to spend more money on hardware to further accelerate things at this point. I think for fun I’ll build a cluster in Virtual Box so I can see how it works, but not needed for my work).

For reference, my good Dell laptop could run the built-in openFoam motorbike tutorial natively on Ubuntu in 6:40

VirtualBox under Win 10 with 4 cores and 10GB RAM, 10:18,

Windows 10 native Ubuntu virtualization (Bash on Windows) 8:00.

My new workstation chews through the tutorial at 2:46, with a 5,2,2 split of the meshing domain- I haven’t spent a lot of time messing with optimization of the decomposition of the domain, so it’s possible I can lower the times a bit. However, using the Scotch domain decomposition algorithm it ran a 3:21, so I think my 5,2,2 was a pretty good guess.

After figuring out the basics of openFoam and Paraview, my primary issue I had deal with is learning how to turn surface 3D models into watertight solids. Hum3D, where I bought the model for the S197, delivers an awesome and highly detailed exterior and interior surface model, but it needs to be converted to a solid, and then to an STL for openFoam. If there is no thickness to the surface/solid, Paraview will show this odd splotchy pattern, which means it’s trying to display the pressure or velocity, or other values, on the backside of the surface. Took a while to figure that out, Also importing those STL’s into Meshlab to remove non-manifold edges would result in massive holes in the body.

Honestly, I don’t know the best process for the surface to solid conversion- I had tried many ways to do this in Fusion, but what I settled (mostly) on doing is using the stitch command in the patch environment to get a reasonable number of joined surfaces, and then using the thicken command (by 1mm) on each surface. I had to go back and forth with unstitching and stitching various parts, while deleting really small but complex geometrical features like the mustang logo, or bleeder screws on brake calipers, or the lightbulbs hidden behind the surface of the headlight. Also, I deleted the entire interior (steering wheel, seats, etc.)

After much handwork, I got model that was “mostly” watertight when exporting as an STL from Fusion. I then would bring it into Meshlab and use the Quadratic Edge Collapse Decimation command to bring the model down to about 1 million faces and remove all non-manifold edges and vertices. At that point, it was ready for openFoam.

Building the openFoam case was tricky, it took many iterations until I was able to get results that were believable. I read up on standard practices of how large of a virtual wind tunnel domain should be used, and then I had to pick a block mesh density. I ended up with a block mesh of .25m blocks, and then a SnappyHexMesh setup of a basic refinement region, feature edge refinement and then a series of distance based refinement regions from the base model. I also had to increase the number of relaxation iterations to 300 for snapping the mesh to the surface.

In the end I got this pretty nice looking mesh, although meshing it took slightly over 3 hours, and then the actual run around 3 hours for only 500 iterations- which isn’t enough, the residuals were still converging when the run ended..

Still, 6 hours for a mesh, 500 iteration run, and some decent results isn’t bad. I’m still modeling the underside of the mustang, the model from Hum3D only gives you a flat floor, so I had to take measurements from my actual car to model things like the control arms, rockers, fuel cell, exhaust, etc. It’s a work in progress, but once I have an accurate floor and fender model (to design wheel well exhaust vents), I’ll be able to start designing a splitter, the canards, and the wing.

The goal is to make things out of wood or plastic, or 3D prints as much as possible, so that I can have total control of the aero elements


Modifying an AIM Solo DL for Steering Wheel Buttons

A while ago I bought an AIM Solo DL. It does a great job of logging data from the car's ECU and displaying predicated lap-time. It's not as handy as a full size racing dash, but it's half the cost. One of the nice feature about the SoloDL is that you can program pages to display channels from the ECU like engine temp, fuel level, etc. or from the onboard sensors (Accelerometers, GPS Speed, etc.). However, the screen is really quite small. 2.5" or something like that. I wanted to be able to flip through the pages without reaching up (and in my case) through the steering wheel to press the buttons on the front of the unit.

So, I pulled the unit apart to take a peek inside. It comes apart very easily, just beware that the battery is mounted to the rear case lid and needs to be unplugged when you split the case.

There is no need to further disassemble the unit, but for reference there is a small board behind the main board that is populated with the buttons and connected via the 5 pin header to the main board. These 5 pins are common plus the 4 buttons on the front of the unit.

Solder the wires onto the pads here (first use a meter to find the common pin and then the pin for the button you want to use (I used the "right most button" for paging through the screens). 

Simply drill a small hole in the side of the case and run a pair of wires through, strain relief them on both sides with a small ziptie or something similar and a dab of RTV for weather protection.

On the external side, i pinned the connectors to a Weatherpack 4 pin plug, so that i could easily disconnect the Solo from the car. 

Obviously, this will violate the warranty!

Buttons and dials galore. Makes me feel like i'm driving a GT3 car. 

MoTec Coasting Distance Channel

I recently thought to look into coasting analysis and find a way to present this information in a way that was more impactful and visually provided a way to quickly focus on areas that needed improvement- after all, that is the power of these data acquisition packages, once you get past scratching the surface of these software packages.

Recently I was helping Lee (also the owner of Advance Motorsports) with a couple of his Porsche 997 Cup clients. As these drivers are at a fairly high level, most of the low hanging fruit for making improvements have been plucked. These guys are pretty good. 

 Beautiful machines..One day i will drive one of these cars.

Beautiful machines..One day i will drive one of these cars.

When you think about coasting for .4 seconds, that seems a fairly short time. However, if you then add speed into consideration, you might find that .4 seconds is a quite a long distance travelled.

His clients upgraded to Motec I2Pro which gave us access to powerful mathematical functions, so here is what I did:

Build a Coasting Channel that is true when the brakes are not applied and the throttle is less than 2%:

('Brake Status' <1 AND 'Throttle' [%]<2) == 1

Then, build a Coasting Begin Channel using the stat_start function. This will calculate the expression (using the built in Motec Corr Distance channel) when the Coasting channel is true:

stat_start('Corr Dist' [ft],'Coasting' [s] == 1,'Coasting' [s] == 0)

Then do the inverse to get a Coasting Over Channel:

stat_start('Corr Dist' [ft],'Coasting' [s] == 0,'Coasting' [s] == 1)

Finally, build the Coasting Distance Channel:

'Coasting Over' [ft]-'Coasting Begin' [ft]

There you have it. You can see in this screenshot that the driver at Lime Rock's uphill turn coasted for 173 feet and lost 7.9MPH. He could have braked latter and harder.

Click to see the image in fullscreen

S197 Mustang T-3650 5th Gear

VIR Testing- March 2015

We brought our 2006 Mustang to VIR for the first time in March for a post winter shakedown. The car got a long winter's rest and standard maintenance- rebuilt dampers, new suspension hardware, several new bushings, and a new helmet blower/fresh air intake system. Some continual weight reduction in several miscellaneous areas also got the car weight down to 3,295lbs with fluids, no driver.

However, our primary takeaway from the weekend was our gearing issue.

We learned that the gears we have been running all of last year (the 3.73's) are not ideal for this long track. The stock mustang transmission has a .62 5th gear overdrive that takes 1.1 seconds to engage, which at 125mph translated into a an amazing 194feet of coasting! The drag of the car lowers the speed by 2.3MPH, when then takes 2.5 seconds and 453 feet to regain the speed lost due to the shift. While I still contend it's possible the lower gears make for a better run out of some of the corners, i think it's outweighed by the extra shifting. 

Click for Fullscreen

While our quickest time was a 2:11.2, it seems that Mike Skeen in a Spec Iron car has been able to set a 2:08.2. I think that with some more practice, fresh tires, grippy track conditions, and a 3.31 gearset we might have be able to get close.

Personal Driving Review by Ross Bentley

Last year I entered a contest to get 2 laps of my driving reviewed by famed racing coach and ex-IndyCar driver Ross Bentley. I sent him a link to this video, from the middle of my Championship race of 2014. Here is what he had to say:

Video Review

Olaaf Rossi – Road Atlanta; NASA Mustang

February 17, 2015



I thought I would start off by listing the things that I typically look and listen for when reviewing video:

• The line – are there any obvious changes needed?

• Hand/steering movement

• Pedal movement (if in view) – foot speed, transition between pedals, timing, etc.

• Driver head movement, looking for movement indicating where driver is looking

• Listen to engine sound, and how it relates to throttle movement

• Tire sounds, possibly indicating how close the car is being driven to limit

• Consistency, lap to lap, corner to corner

• Smoothness, indicated by hand/steering movement and car/chassis movement

• Adapting to track conditions

• Race craft – positioning to other cars, passing maneuvers, strategy, etc.

• Relationship of video to data acquisition information (if available)

• Comparing speeds and/or RPM at certain parts of the track to see what made an improvement

• Errors – responses to them, learning opportunities, why they occurred

There could be other things that pop up when I’m reviewing a video, but these are the main things I look for. I hope that the list might help you when you review your own videos. So, here are a few notes I made as I reviewed your video:

• Overall, your hand/steering movement looks great. It’s smooth, and in the two times that your car stepped out a little (turns 3 and 7 on the second lap), you were quick to catch it.

• I didn’t see any line issues. Too bad, because it’s nice to find some “low hanging fruit” with a change in line, but I’m not seeing it. Of course, I’m not driving your car, and your car may want something a little different – so don’t be afraid to experiment.

• Entering turn 1, is the release of the throttle quick enough? It sounds a little like you slowly release the throttle, which is something I see/hear a lot of drivers do (it’s a habit from driving on the street). You may be releasing it quick enough, and I just can’t hear that from the video (and it’s hard to tell from the speed of the throttle graph). But think about it, and be aware of it next time on track. You want to stay on the throttle as long as possible, then quickly release it and go to the brakes. I saw 126 MPH show up both laps as you entered turn 1… if you stayed at full throttle a fraction of a second longer, and then quickly released it and went to brakes with a faster transition from one to the other, could you see 127 MPH? That’s something to think about the next time you’re on track.

• Could you carry another MPH or two entering turn 1? That was one place on the track where your hands looked, well… almost too calm and smooth. That makes me think the car would take a little more speed entering the corner. With turn 1 at Road Atlanta, you have to turn in with slightly too much speed, and know and trust that the car will gain grip as you hit the hill just before the apex. From the video, it looks like you’re entering with the right speed for that radius of a turn, if it was flat. But because of the elevation change, you can carry more entry speed and trust that the hill will help you out.

• On your second lap, you didn’t use all the track on the entry to turn 6. Was that because of the car behind you? Did you need to leave room there, or would it have been better to use all the track?

• The section from the exit of turn 3 to the braking for turn 5, down through the Esses… Your goal should be to take that at full throttle, with no breathing of the throttle. I can’t tell from the video whether that is possible or not in your car, but that should be your goal. In many cars I’ve driven at Road Atlanta, they tell you to breathe the throttle – it feels as though you’ll fall off the track if you don’t lift a little through there. But every time I’ve just kept my foot flat full throttle, the car took it. Yes, I had to change the timing of where I turned in when heading down the hill, but it stuck. Don’t get me wrong – your car might not be able to take it, or you may not want to take that level of risk. And that’s okay. My job is to challenge you. And to remind you that sometimes when you breathe the throttle in sections of track like that, you change the balance of the car, and it actually then has less grip. If you stayed at full throttle, the car would be better balanced, and it would stick. Sometimes. So I’m challenging you to do that, safely. Trust your gut, but challenge it.

• Obviously, on your second lap, you got loose exiting turns 3 and 7, which cost you a little time. What caused that? Was it your brake release? Did you stay on the brakes just a little too long, possibly because you felt you were entering the corners with a little too much speed (that wouldn’t have been a conscious decision, but instead, something you did without thinking, subconsciously)? There’s nothing really wrong with either of those situations, but is there something you can learn from them? Yes, they cost you a couple of tenths of a second, but the most important thing is what you can learn from them.

That’s it. Like any driver that has gotten to your level, there are not going to be one big area where you’re going to find half a second or more. It’s going to come from a few places, where you pick up a tenth there, a tenth there, half a tenth here, and so on. I think if you work on your corner entry speed in turn 1, be aware of how quickly you come off the throttle, and work at hustling the car through the Esses, you might find a few more tenths. And once you find them, some other things will become apparent to work on. Because there’s always more!

Let me know if you have any questions.

Have fun!


"The one thing I didn’t mention in the report is this: After reviewing the video a number of times, writing my notes and report, I went back and re-read your original email… and realized that you’re relatively new to the sport. That didn’t show in the video. From the video, I would have guessed you had much more experience. You’re very good!"