Calculates the drag function for a bullet of a given shape

This is a powerful and flexible program, but the usual rule applies - garbage in, garbage out.

Required data
Bullet diameter
Bullet length
Nose length
Meplat diameter
Drive-band diameter
Base diameter
Boat-tail angle (degrees)
Boat-tail length
If the bullet has a secant nose . . .
Secant radius (calibres)

If no secant radius is entered, a tangent radius will be assumed and calculated automatically.

BBT logo

Dimensional units

- Chamber reamers
- Headspace gauges
- Other gunsmithing tools
Bullet dimensions
Bullet name:

Weight or Specific Gravity of the bullet
Either Enter the bullet weight,- - in grains
or grams
-Or Select a Specific Gravity.
Jacketed lead core, soft point or FMJ bullets (10.4 gms/cc.)
Jacketed lead core, hollow point bullets (11.4 gms/cc.)
Jacketed steel core military type bullets (9.9 gms/cc.)
Soft lead, unjacketed bullets (11.4 gms/cc.)
Cast linotype, unjacketed bullets (10.4 gms/cc.)
Bronze or brass, used for 'solid' bullets (8.4 gms/cc.)
Enter your own Specific Gravity gms/cc.
Boundary layer - Laminar or Turbulent
For an all laminar boundary layer
For a laminar nose and turbulent afterbody
For an all turbulent boundary layer

Experience suggests that smooth projectiles under 20mm diameter are laminar/turbulent, and larger shells are turbulent/turbulent. However, this is not an infallible rule and inspection of a spark-shadowgraph is the best way to determine this parameter.

What this program does
Using the entered dimensions of your bullet of interest, the program produces an image of the bullet so you can check that the shape is correct. A curve of Drag Coefficient against Mach number is generated. Also computed is the G1 and G7 Ballistic Coefficients for a range of Mach numbers, and the barrel twists required for a Stability Factor 1.5 for a range of muzzle velocities. If requested, the program will go on to calculate a table of bullet drops, wind drifts, terminal velocities and terminal energies every 50 yards up to 1000 yards, (and also for a custom range at any distance) using the computed drag curve.

Using the program
Try to fill in as many of the bullet dimensions as possible, even if the value is zero, as in the boat-tail length for flat based bullets. If you miss out some dimensions, the program will try to make intelligent decisions about what those dimensions are, but it is best to be clear about the bullet dimensions in the first place.

However, too much information can lead to conflicts! They are resolved in this way. Any entered value of base diameter will take precedence over that calculated from a boat-tail angle and boat-tail length. If a bullet weight is entered for the first calculation, the bullet density will be estimated from this weight and the calculated bullet volume. In any subsequent re-calculations, the bullet weight will be estimated from the volume determined from the new bullet dimensions and the bullet density carried through from the previous calculation. The only way to change the weight of the bullet without changing any other dimensions is to change the bullet density (which tacitly changes the bullet construction). When a trajectory is required, values entered for the local atmospheric pressure (anything other than 29.92 in. Hg) will take precedence over local pressures estimated from the barometric pressure and the altitude.

The program needs at least two of the following three dimensions: base diameter, boat-tail length and boat-tail angle. Given two of these, the program can calculate the third.

Drive-bands are standard for large calibre artillery shells, and are often used on small calibre 'solid' bullets made of bronze or some other metal that will not easily engrave into the barrel rifling. If your bullet of interest does not have a drive-band, enter a diameter the same as the bullet diameter.

The nose angle (the angle between a line from the nose-body junction to the nose-meplat junction - or the nose point if there is no meplat - and the bullet axis) must not more than 45 degrees. If the bullet nose is shorter than this, the program may have difficulties in drawing the bullet. For example, a hemispherical nose will have a 45 degree nose angle (no meplat in this case). If you want to describe a shorter nose, ensure the meplat diameter is increased correspondingly. However, note the warnings about short noses below!

The results of this program are considered valid for Mach numbers between 0.5 and 5, and projectile diameters from 4mm up to 400mm. The original "McDrag" program (see "History" below) on which this program is based, was tested against the actual experimental data for a large range of projectiles of differing shapes. This showed that the typical standard deviation errors to be expected were about 3% in the supersonic region, 11% in the transonic region and about 6% in the subsonic region. For nose lengths shorter than one calibre, the calculated contribution of drag from the bullet head will probably be too high for transonic and supersonic speeds. Boat-tail lengths longer than 1.5 calibres will result in calculated contributions of drag from the base and boat-tail that are incorrect. Likewise, the base diameter should not be less than 0.65 calibres or greater than 1.5 calibres, as the resulting boat-tail angle (or conical flare) will be too steep to give accurate results. This does not mean that the results will not be useful if these limits are stretched, but warnings will be given to indicate that the accuracies quoted above will probably not be valid.

This program is based around Robert McCoy's "McDrag" program, first written as a Fortran program back in the early 1970's when McCoy was working at the Aberdeen Proving Ground. The program is described in the Aberdeen Proving Ground Technical Report ARBRL-TR-02293, "McDrag - A Computer Program for Estimating the Drag Coefficients of Projectiles". In the 1980's as personal computers became widespread, the program became available to the shooting fraternity in a BASIC format and ASCII listings of the program can be currently downloaded from a number of websites in this format. This version of the "McDrag" program is written in Perl script and is believed to be unique (outside very expensive commercial software) in its ability to "draw" an image of the bullet and in giving the calculated drag curve in a graphical format, rather than as a table. The logical extension is to use McDrag as the front end of a complete external ballistics program, using the calculated drag curve to generate ballistic tables rather than use the usual Ballistic Coefficient with reference to a standard projectile as the starting point. This is what has been done here.