# Drag/air-resistance impulse

I'm simulating snowfall in a discrete-time physics engine, using this formula for the drag force on a snowflake: $F_d=CAv^2$ (where $A$ is the flake's cross-sectional area and $C$ is a catch-all constant). I need to calculate the drag impulse over a given $dt$, and that's where I'm stuck.

I've read this similar question, but it's been so long since I've dealt with differential equations that I can't follow the accepted answer well enough to adapt it for my purposes.

• It isn't obvious what you're asking. A snowflake will reach terminal velocity very quickly, and the terminal velocity will be given by $mg = CAv^2$. If you're trying to calculate the constant $C$ from first principles I suspect that's a tough problem. Oct 17, 2013 at 12:36
• I'm asking about how to calculate the impulse due to air resistance on an object with a given initial velocity, acted upon by a constant outside force (gravity), over a given period of time.
– phu
Oct 17, 2013 at 12:47

If you model the acceleration of a particle for small changes in speed as

$$a(v) = A_0 + A_1 v + A_2 v^2$$

with appropriate constants (like $A_0$ with gravity and $A_2$ with drag) then you can calculate the position $\Delta x$ and velocity change $\Delta v$ from the current speed $v_1$ ( $v \rightarrow v_1 + \Delta v$) as

$$\Delta t = \int_{v_1}^{v_1+\Delta v} \frac{1}{a(v)}\,{\rm d} v \\ \Delta x = \int_{v_1}^{v_1+\Delta v} \frac{v}{a(v)}\,{\rm d} v$$

The result is well defined, but quite complex. You can simplify things a bit for simulations by only considering 2nd order terms of $\Delta v$. Simplifications can be made then using the constant $a_1 = a(v_1) = A_0 + A_1 v_1 + A_2 v_2^2$

$$\Delta t = \frac{v-v_1}{a_1} - \frac{(v-v_1)^2}{2 a_1^2} (A_1 + 2 A_2 v_1) \\ \Delta x = \frac{v^2-v_1^2}{2 a_1} - \frac{v_1 (v-v_1)^2}{2 a_1^2} (A_1 + 2 A_2 v_1)$$

## Example

Initial Conditions: $$a(v) = 10 - 1 v - \frac{1}{5} v^2 \\ v_1 = 3 \\ a_1 = 10 - 1 3 - \frac{9}{5} = \frac{26}{5} = 5.2$$ Step $\Delta v = 0.5$, $v = v_1 + \Delta v = 3.5$ with exact solution $\Delta t = 0.10632$, $\Delta x = 0.3430$, and approximate solution

$$\Delta t = \frac{5 (v-3)}{26} + \frac{55 (v-3)^3}{1352} = 0.10632 \\ \Delta x = \frac{5 (v^2-9)}{52} + \frac{165 (v-3)^3}{1352} = 0.3430$$

so the simulation (for example) would move from $$\begin{Bmatrix} t_1=10 \\ x_1=1 \\ v_1 = 3 \\ a_1 = 5.2 \end{Bmatrix} \rightarrow \begin{Bmatrix} t_2=10.1053 \\ x_2=1.3430 \\ v_2 = 3.5 \\ a_2 = 4.05 \end{Bmatrix}$$

## Impulse Calculation

Now you can turn the solution around and state that

$$\Delta v = \frac{A_0 + A_1 v_1 + A_2 v_1^2}{A_1 + 2 A_2 v_1} \left( 1 - \sqrt{ 1 - 2 (A_1 + 2 A_2 v_1) \Delta t} \right)$$

which is a change is velocity over some time step, with impulse $J = m \Delta v$.

• I don't yet see how to calculate the impulse due to air resistance given the formulae you've written. Maybe it will help if I expand a bit on my situation:
– phu
Oct 17, 2013 at 13:33
• And impulse is a change in speed. If you turn the problem around and ask how much time will pass to change the speed a certain amount you then equations above. Now you can take the equations invert them for $\Delta x( t)$ and $\Delta v( t)$. Oct 17, 2013 at 13:37
• Are you referring to the total change in velocity here? The physics engine I'm using handles gravity itself by default (though I could disable that if necessary). Thus I'd like to calculate the impulse due only to air resistance, if feasible. Sorry if that wasn't clear from my original question.
– phu
Oct 17, 2013 at 13:44
• I edited the post. You can remove the $A_0$ to disregard gravity. Oct 17, 2013 at 13:48
• How would I find or calculate $A_1$ and $A_2$ given my initial equation, $F_d=CAv^2$? Just set $A_1=0, A_2=CA$?
– phu
Oct 17, 2013 at 13:52