# Lift below the speed of sound

Whether the bullet's lift, in the Spin model, is cut to about two thirds of its Mach-2 value once the bullet is below the speed of sound.

## Generated table

**Setting:** Lift below the speed of sound

| Choice | Used by |
|---|---|
| Standard | Standard, Physics, Classic, Spin |
| Reduced | Custom only |

## What it does

This setting applies only to the Spin model. There the bullet's small angle to its path gives it a sideways lift, and how strong that lift is depends on the Mach number. The setting decides what that lift is once the bullet slows below the speed of sound.

- **Standard:** the lift follows the coefficients' own Mach line all the way down, unchanged.
- **Reduced:** the lift below Mach 1 is held at about two thirds (0.63) of its value at twice the speed of sound, the typical value in published measurements on rifle bullets. Between Mach 1 and Mach 1.45 it eases back onto the coefficients' own line, and above Mach 1.45 it is as in Standard.

It has an effect only under the Spin dynamics (the simplified Spin value does not use it, and the app says so). It changes only an estimated coefficient set (the estimate from the bullet's weight, diameter and length). A set attached to the profile is never changed, and point-mass models do not use lift at all.

## When to choose it

Leave it on Standard unless you shoot far enough that the bullet is near or below the speed of sound for a long stretch, and you are comparing spin drift. Reduced lowers the spin drift on a long, slow flight and raises the elevation a little; the table in On a real shot shows both on a 3,520 yd and a 4,400 yd shot. The app's own hint is the same: better spin drift, slightly more come-up error. Check either choice against your own groups; the estimated coefficients are low confidence in the subsonic range.

## How to picture it

Draw the lift coefficient against Mach number, from 0.4 to 2.5. In Standard, for the public estimate, it is a straight line that falls as Mach falls below 2 and is flat above 2. In Reduced the same line is pressed down below Mach 1 so that at Mach 0.5, 0.6, 0.8 and 1.0 it lies at two thirds of the Mach-2 value (or at the line, where that is lower), a nearly flat shelf; below Mach 0.5 the pressing-down factor is held while the line keeps falling. From Mach 1 it climbs on a short ramp and meets the original line near Mach 1.45; above that the two lines are the same. A second picture: the bullet's flight with the lift arrow drawn at three points. At the supersonic start the arrows are identical in both settings. Once the bullet is subsonic the Reduced arrows are shorter than Standard's (by 10 to 21 % for the public estimate), and the sideways one is what builds spin drift.

## The math

Lift enters the Spin model as the force $\mathbf a_L=\rho S U^{2} C_{L\alpha}(M)\,\boldsymbol\alpha/(2m)$ (equations of motion and symbols in [dynamics](dynamics.md)). This page owns the function $C_{L\alpha}(M)$ and what the two values do to it. The overturning slope $C_{M\alpha}$, the Magnus slope and the yaw drag are not touched.

| Symbol | Meaning | Unit |
|---|---|---|
| $M$ | Mach number at the bullet | none |
| $c_l,\ \sigma_l$ | the set's lift slope at Mach 2 and its change per Mach | 1/rad, 1/rad |
| $M'$ | the Mach number the line is evaluated at: $M$, or $\min(M,2)$ when the set says its lift slope applies below Mach 2 only (every estimate does) | none |
| $L(M)$ | the set's own lift line | 1/rad |
| $r$ | the reduction ratio, 0.63 | none |
| $K(M)$ | the multiplier the Reduced value puts on the line | none |

**Standard.** The line, with its magnitude kept at least 5 % of the Mach-2 value:

$$C_{L\alpha}(M)=L(M)=\max\big(c_l+\sigma_l\,(M'-2),\ 0.05\,c_l\big)$$

For the public estimate, $c_l=1.6+0.2\,l$ with $l$ the length in calibers and $\sigma_l=0.2\,c_l$, below Mach 2 only, so $L(M)=c_l\,(1+0.2\,(M-2))$ there (0.7 $c_l$ at Mach 0.5, 0.8 $c_l$ at Mach 1). The original (textbook) estimate has $\sigma_l=0$.

**Reduced.** The same line times a multiplier:

$$C_{L\alpha}(M)=L(M)\,K(M)$$

$K$ is piecewise linear in $M$ through six knots and flat beyond the first and the last:

$$K(M_i)=\min\!\Big(1,\ \frac{r\,c_l}{L(M_i)}\Big)\quad M_i\in\{0.5,\ 0.6,\ 0.8,\ 1.0\}\qquad K(1.15)=0.92\qquad K(1.45)=1$$

At each of the four Mach numbers $M_i$ the product $L\,K$ is therefore exactly $r\,c_l$, 0.63 of the Mach-2 value, unless the line is already lower there, in which case $K=1$ and the line is kept: the rule never raises lift. On the public estimate $K$ is 0.900, 0.875, 0.829 and 0.788 at the four. Below Mach 0.5, $K$ keeps its Mach-0.5 value; at and above Mach 1.45, $K=1$. The constants 0.5, 0.6, 0.8, 1.0, 1.15, 1.45, 0.92 and 0.63 are fixed; they do not depend on the bullet.

**Source of 0.63.** The median ratio of the lift slope below Mach 1 to the Mach-2 value over 27 subsonic spark-range rounds on 11 public-release bullets (Army ballistic research reports BRL-MR-3733, BRL-MR-3810, BRL-MR-3476, BRL-MR-1833 and others) was 0.64, interquartile range 0.59 to 0.70; medians of 0.61 to 0.68 came out under other reasonable choices. The code rounds it to 0.63. The ease values (0.92 at Mach 1.15, 1 from Mach 1.45) are the medians of the same public data in those Mach bands.

**Where it has an effect.** Only where $C_{L\alpha}$ is evaluated at a Mach number below 1.45; the factor departs from 1 there but is negligible until the bullet is near the speed of sound. The crosswind jump uses $C_{L\alpha}$ at the muzzle Mach number: it is the same under both values when that is at least 1.45 (ordinary rifle loads), and changes for a subsonic load. The stability factor uses $C_{M\alpha}$, so it is the same too.

## The algorithm

Where it runs: when a solve with `dynamics` set to `'mpm'` builds the coefficient set it will fly, after the Magnus choice is applied, and again each time the integrator asks for $C_{L\alpha}(M)$.

```text
mpmAeroFor(set, options)
  1. m = the set with the magnus choice applied                    (see magnus)
  2. if options.subsonicLift == 'reduced' and m.source == 'estimated':
         return m with cl_alpha_subsonic = 0.63
  3. return m                                                      // 'standard', or any fitted or measured set

clAlphaFn(set) -> function of Mach
  1. line(M) = c_l                      if the set has no lift slope
             = lin(c_l, sigma_l, min(M, 2))   if its slope is for below Mach 2 only
             = lin(c_l, sigma_l, M)           otherwise              // lin keeps the magnitude at least 5 % of c_l
  2. if set.cl_alpha_subsonic is absent:  return line
  3. knots = subsonicLiftKnots(line, c_l, set.cl_alpha_subsonic)
  4. return M -> line(M) * K(M), with K linear between the knots and flat outside

subsonicLiftKnots(line, c_l, ratio)
  1. for M in (0.5, 0.6, 0.8, 1.0):  k = min(1, ratio * c_l / line(M))
  2. then the two ease knots (1.15, 0.92) and (1.45, 1)
```

An estimator rule set may carry the same field, and then every estimate has it; none of the public rule sets does. A value outside 0 to 1.5 is refused. The app reaches the same function through the profile's Spin block, where the setting is called "Lift below the speed of sound" with the choices Standard and Reduced; with a coefficient set attached the app says the setting is not used.

## On a real shot

Read from the tables below; every decimal in these sentences is copied from them. All three tables are under the Spin model with public estimated coefficients, and the only change is the setting. On the 3,520 yd shot, Reduced asks for +0.005 mil more elevation and +0.099 mil on windage on the monolithic tipped bullet, and +0.003 and +0.076 on the lead-core bullet (North, level). The windage change is a correction: spin drift to the right is smaller, so the correction moves to the right, which the plus sign shows. The elevation change is small and positive: the nose-up push on a right-hand twist grows with the square of the lift slope (the full form of [yawRepose](yawRepose.md)), so less lift means a little less push. At 4,400 yd the same changes are about twice as large on the monolithic tipped bullet (+0.011 and +0.237) and +0.007 and +0.182 on North, level, because more of the flight is below the speed of sound. East, level and 10° uphill give +0.181 and +0.186 on windage at 4,400 yd, close to North, level. The velocity change is 0.0 in every cell: lift acts at right angles to the path, so it does not change the speed at the shown precision. The third table repeats the 3,520 yd shot with the original coefficients, whose lift line is flat, so the multiplier is the full two thirds at every pinned Mach number; there windage moves +0.296 on the monolithic tipped bullet and +0.226 on North, level, about three times the public estimate's +0.099 on the monolithic tipped bullet, and elevation moves +0.001 and 0.000.

**The 2-mile shot, under the Spin model**

The shot: a 350 gr 0.375 in bullet at 3048 fps muzzle velocity, fired at 3520 yd in air of 60 °F, 40 % humidity, 24.43 inHg at the firing line, latitude 42.1°, wind 10 mph from the right (90° to the line of fire), the same wind in every column; site altitude 5,500 ft. In the app, type it as "Site altitude" (shown when the profile's model reads one); left blank, the classic values count from sea level and can differ from this table. All other settings are the Spin model's. In the first column (North, level, monolithic tipped bullet) the reference arc reaches 220 ft above the line of sight at 2150 yd. Compared with the first column, the bullet differs in "North, level", "East, level" and "North, 10° uphill".

| Value | Shown in the app as | North, level, monolithic tipped bullet | North, level | East, level | North, 10° uphill |
|---|---|---|---|---|---|
| `'standard'` | Standard | reference | reference | reference | reference |
| `'reduced'` | Reduced | +0.005 / +0.099 / 0.0 | +0.003 / +0.076 / 0.0 | +0.003 / +0.076 / 0.0 | +0.003 / +0.075 / 0.0 |

**A 4,400 yd shot, under the Spin model**

The shot: a 350 gr 0.375 in bullet at 3048 fps muzzle velocity, fired at 4400 yd in air of 60 °F, 40 % humidity, 24.43 inHg at the firing line, latitude 42.1°, wind 10 mph from the right (90° to the line of fire), the same wind in every column; site altitude 5,500 ft. In the app, type it as "Site altitude" (shown when the profile's model reads one); left blank, the classic values count from sea level and can differ from this table. The shot is changed from the scenario's for this table: 4400 yd. All other settings are the Spin model's. In the first column (North, level, monolithic tipped bullet) the reference arc reaches 476 ft above the line of sight at 2660 yd. Compared with the first column, the bullet differs in "North, level", "East, level" and "North, 10° uphill".

| Value | Shown in the app as | North, level, monolithic tipped bullet | North, level | East, level | North, 10° uphill |
|---|---|---|---|---|---|
| `'standard'` | Standard | reference | reference | reference | reference |
| `'reduced'` | Reduced | +0.011 / +0.237 / 0.0 | +0.007 / +0.182 / 0.0 | +0.007 / +0.181 / 0.0 | +0.007 / +0.186 / 0.0 |

**The 2-mile shot, with the original coefficients**

The shot: a 350 gr 0.375 in bullet at 3048 fps muzzle velocity, fired at 3520 yd in air of 60 °F, 40 % humidity, 24.43 inHg at the firing line, latitude 42.1°, wind 10 mph from the right (90° to the line of fire), the same wind in every column; site altitude 5,500 ft. In the app, type it as "Site altitude" (shown when the profile's model reads one); left blank, the classic values count from sea level and can differ from this table. All other settings are the Spin model's, except: Estimated coefficients: Original coefficients. In the first column (North, level, monolithic tipped bullet) the reference arc reaches 220 ft above the line of sight at 2150 yd. Compared with the first column, the bullet differs in "North, level".

| Value | Shown in the app as | North, level, monolithic tipped bullet | North, level |
|---|---|---|---|
| `'standard'` | Standard | reference | reference |
| `'reduced'` | Reduced | +0.001 / +0.296 / 0.0 | 0.000 / +0.226 / 0.0 |

Each cell is the change from the reference row (`'standard'`) in the same shot, as elevation (mil) / windage (mil) / velocity at the target (fps). Elevation: plus means more elevation must be dialed. Windage: plus means the windage correction moves to the right (dial further right); this is a correction, not where the bullet lands. Velocity: plus means the bullet arrives faster. A zero means no difference at the shown precision.

---

[All reference pages](../index.md)
