I'm trying to code a simple physics simulator in C++ but I'm stuck on the air resistance issue. Surfing the Internet I only find a drag coefficient for very basical area shapes when the air is perpendicular to the area. However, even when simulating a falling parallelepiped, I found this not sufficient to describe the motion of the falling body, as the air is not always perpendicular to each face. More precisely, I'm able to calculate the air drag on each face of the object, obtaining a 3D vector which describes the force acting on the body.

However it's obvious that when such an object falls through the air, even an angular momentum is induced to the body. I'm not able to determine it.

I was thinking about describing the air flow as a matrix of parallels vectors, thus obtaining a resultant force as a weighted sum of the effect of each vector hitting the body. However in this case I'm not able to determine the force of each single wind vector hitting the surfaces of the body.

What is the simplest way to obtain object rotation due to air resistance? And what is the finest way?

  • $\begingroup$ I think you might want to take a look at computational fluid dynamics, this sounds sort of like a CFD problem. $\endgroup$
    – ilent2
    Sep 15, 2013 at 16:45
  • $\begingroup$ Unfortunately as a computer engineer I never read about fluid dynamics. Do you know where can I find some material over the Internet? Thank you $\endgroup$
    – HAL9000
    Sep 15, 2013 at 16:50
  • 2
    $\begingroup$ There simply isn't a "simple" way, and to the extend that this is about writing a code it is off-topic here (use SciComp.SE). To the extent that the question address the physics it is still OK. $\endgroup$ Sep 15, 2013 at 17:01
  • $\begingroup$ @dmckee Approximate it as a sphere would be the "simple" approach :) $\endgroup$
    – Bernhard
    Sep 15, 2013 at 17:10

1 Answer 1


When accuracy is needed wind tunnel experiments are pretty much necessary.

The simplest semi-accurate way is usually to run a simulation in a program like COMSOL or fluent. A steady state 3D solution usually would take hours to run for a single orientation. Dynamic simulations where the object is allowed to rotate would probably run at 100th of real-time speed.

The issue with simple simulations is that small changes in the surface topology can result in large changes in the air flow, so anything too simple won't be able to capture these large changes.

To give you an idea about the weirdness of drag, in the absence of viscosity, every object of any shape would have zero drag on it. Yet when you look at the simple drag equation $F=\frac12\rho\,C_D\,A\,V^2$ viscosity doesn't even show up, and in fact when you double or quadruple viscosity, the drag is usually unaffected. This is in large part due to "separation" where the air will flow around the object but at some point separate from the object. The pressure within the region where the flow is "attached" is roughly $P_0+\frac12\rho V^2$ but the pressure behind the object where the eddys and backflow are is usually closer to $P_0$. Without viscosity you never get flow separation, so there's approximately the same pressure everywhere. If you assume the flow separation happens at the edges of the silhouette of the object then you end up with the equation of drag $F=\frac12\rho\,A\,V^2$. The drag coefficient is thrown in there as a correction for where the flow separation usually occurs.

So if you want a bare minimum simulation that can account for torque, you can model drag as a pressure of magnitude $\frac12\rho V^2$ acting only on the forward facing surfaces. The net torque and force would be equivalent to a pressure on the forward facing side of the surface connecting the edge of the silhouette to the center of mass which might be faster to calculate. This of course will overestimate the drag in most cases as flow rarely separates right at the edge of the silhouette. If you want to increase the accuracy you might be able to model the flow separation line further back on the body by specifying an angle at which flow separation occurs but since that angle varies from about 10 to 45 degrees I wouldn't put much confidence in how much that would improve the simulation.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.