Articles on Armor Penetration and the Properties of Armor Plate

This article examines the progression of formulae used to quantify the phenomenon of armor penetration. This paper was updated on 26 November 2001.
This article lays out the physical properties of the major types of homogeneous and face-hardened armor steels from the 1800's to the present. This paper was updated on 26 September 2009.
A graph depicting the relationship between temperature and carbon content in liquid iron (large file - 1.3 megabytes).
A compilation of formulae, data tables, and related information that can be used to develop rules for ascertaining ship damage when hit by gun projectiles and aircraft bombs of various types.
Additional information.
Description of the Homogeneous Armor Penetration computer program found below.
BHN Formula vs. Actual Test NBL for Large Projectiles
An example of data used to create the armor penetration programs below. This one is on thick US Navy World War II homogeneous-ductile Class "B"/STS plates hit by US Navy large-caliber shells plus one 1490-lb British 14" Mk IB N.T. (K) shell. Data taken from the Hershey Index Cards Database.
The question often arises of where does Nathan get his data for the Facehard programs. Nathan has copies of thousands of tests with all kinds of projectiles. The document linked to above is a listing of all of the tests that Nathan has for the above AP projectile when used against regular and experimental U.S. Navy Class "A" (face-hardened) armor. This particular projectile weighed 1,500 lbs. (680 kg) and had a very blunt pointed nose under its AP cap. It was not as strong as the last versions (MOD 8-10) of this shell, so it had a higher average Naval Ballistic Limit than they did and broke up during penetration more easily.
U.S. Navy Proving Ground Dahlgren, Virginia Report No. 3-47 on the characteristics of USN Armor-Piercing projectiles at the end of World War II.
AP & APC Shot and Shell vs. Harvey Ni-Steel and old KC Armors
An expanded form of that analysis article on Harvey Armor and KC Armor from Ensign Davis's database.
Multi-plate Discussion
This document describes the many factors relating to the use of single-plate, laminated multi-plate and spaced multi-plate armor.
Japanese Type 91 AP Projectile Data
This document lists dimensional data for these Japanese AP Projectiles.
Armor Penetration Ballistics Acceptance Test Specifications for USN AP Projectiles from BuOrd O.S. 696
Standards in place during World War II
Comments on BuOrd O.S. 696
A review of BuOrd's AP Projectiles Test Specification
USN Armor Plate Ballistic Acceptance Tests from BuOrd O.S. 751
Standards in place at the end of World War II
Revisions to Information Promulgated by the British Admiralty Armor Technical Committee Meeting of 22 July 1948
Corrections for errors in PRO/TNA Document ADM 281/127 ACSIL/ADM/48/919c
German Army and Navy Fuze listing and description.
History and Technology
Other Articles by Nathan Okun may be found at the History and Technology page.

Armor Penetration Calculation Programs

The following sections show three different kinds of Armor Penetration Programs, all developed by Nathan Okun.

The first program set is the FACEHD (Facehard) series. These programs are applicable to all naval face-hardened armor that is at least 3 inches (76.2 mm) thick. They are not intended for use with thinner armor plates. The programs include a projectile data menu for most nation's APC-type projectiles. Russian M1909 "tough-capped" APC shells, used during World War I, are not in the program now, but can be approximated by using the British post-Jutland 13.5-inch Greenboy APC shell entry. The Facehd program calculates the armor thickness for complete penetration and holing. The program also calculates expected projectile damage effects (very important with this kind of armor).

The second program set is M79APCLC which are used for calculating penetration for homogenous armor types. These programs completely replace the DeMarre Formula. The programs calculate assuming the use of USN STS homogenous armor of World War II, which was a soft - 225 Brinell - form of rolled homogeneous armor against uncapped, undamaged, medium-length, pointed, ogival-nosed AP shot. Complete ("Base Through") penetration is predicted, but not "Through Crack" or "Nose Through" results. This program is based upon experiments with the US Army 3-inch (76.2 cmm) M79 AP shot projectile of World War II, but can handle most other projectiles of similar shape and of any size. However, be aware that the actual projectile nose shape and the damage the projectile suffers while penetrating armor have major effects that can invalidate the results. The program is accurate for obliquities up to 80 degrees. More information for this program may be found in the references listed in the above Article section.

The third program set contains FLATNOSE and TPRFLTNS which are specialized armor penetration programs for 3-inch (76.2 mm) flat-nosed undamaged AP shot projectiles for penetration into homogeneous steel armor. Flatnose calculates for a completely flat-nosed projectile with no cap or windscreen while Tprfltns calculates for a projectile with a 0.47-caliber-high truncated cone nose with 0.85-caliber flat end and a thin conical windscreen added. These programs are really only for use in calculating penetration of US Navy STS armor, the results may not apply for other homogenous armor types. Other nose shapes are not included, as even a small change to nose shape may make for a large change in the penetration characteristics. Only small changes in shell weight will work, as the experiments were based upon shell weights in the 11 to 15 lbs. region (5 to 7 kg). These programs are only for plate thicknesses of circa 0.85-caliber, as above this plate thickness all of the shells tested deformed or shattered, thus invalidating the results. Both programs work for all obliquities up to 80 degrees.

Operating Program Files

BRUN45.EXE is the runtime Basic engine that runs all of these programs. You must have this loaded on your computer in order to run any of the Basic programs on this page. This program must be in the same directory or folder as the compiled basic.exe program that you wish to run with it (Facehd58, M79APCLC, etc.), otherwise the programs will not run. One copy of it in a folder can support any number of such EXE files in that folder.

OBLICALC.EXE is an obliquity calculator which computes the final obliquity of an incoming shell. This program takes into account the target's course, roll, yaw, inclination of armor plates and so on. This program must be in the same directory or folder as the other programs.

Note: OBLICALC.EXE and BRUN45.EXE are generic programs, so if you have previously loaded these on your computer, you do not need to download them again.

Face-hardened Armor Penetration Calculation Programs

Version 7.5 (December 2016)

Download the following files to the same directory or folder where you have downloaded BRUN45.EXE and OBLICALC.EXE, which are required to run FaceHard, and then open the zip file and extract the files. You may then run the FACEHD75.EXE program from a DOS-Prompt.

In addition, here are various ico files which can be used to create shortcuts on your computer.

Changes incorporated into version 7.5 are documented below.

Homogeneous Armor Penetration Calculation Programs

Download the following files to the same directory or folder on your computer and then run the programs from a DOS-Prompt. is a Zip file containing the following program files:

If you are unable to open the Zip file, then use the individual links.

Note: BRUN45.EXE is required to run all of these programs.

FLATNOSE and TPRFLTNS Armor Penetration Calculation Program

FLATN3& is a Zip file containing updated versions of the FLATNOSE and TPRFLTNS penetration calculation programs discussed below. See the FlatnoseSTStests.docx and ReadMe.txt files inside for more information.

Flat-nose_and_Tapered_Flat-nose_Comments.docx describes the programs and show calculated results.

Those using WINDOWS 7 can get DOSBox 0.74 and one of the shell programs that use it to run MS-BASIC programs (I use DOSShell 1.7), install both programs, and add the executable to the list of programs in the shell program that can be run with just the click of a mouse, once the shell program is running (DOSShell's main window has icons just like the desktop and clicking on an icon in that window starts that program, once the MS-DOS program has been installed properly into DOSShell using its ADD/EDIT ENTRY feature). So far, at least for the text-only programs that I create, DOSBox has run every single one perfectly.

Both of these programs are for special U.S. Navy AP projectiles inspired during World War II from examination of samples of the Japanese Type 91 "diving" AP shells with their break-away noses and tapered flat-nose design for stable underwater travel -- but neither of these U.S. tests shell types had a break-away nose on top of the nose shape given below -- as follows:

FLATNOSE was developed from tests of 3-inch caliber 10-15 pound (W/(D-cubed) = 0.37-0.56) flat-nosed projectiles (solid cylinders of various lengths with the front end sliced off flat). No windscreen was fitted to any of them. The best results were for circa 13-lbs. projectiles (W/(D-cubed) = 0.48).

TPRFLTNS was developed from tests of 13-lbs. (only) 3-inch truncated-conical-nosed AP projectiles (0.85-caliber - 2.55-inch -- wide flat face raised 0.475-caliber - 1.425-inch -- above the cylindrical body's upper edge; there was a sharp crease at this cylinder/cone joint). This projectile had a thin conical windscreen, taking up about 0.65 lbs. (5%) of the total weight, extending the tapered nose to a point (the upper half-inch or so of the tapered solid nose was cut with shallow threads around the circumference to hold the windscreen on, so the width of the flat part of the nose if no threads had been cut would have been about 0.93 caliber (2.8") (about 0.25" wider than the 2.55" value). These shells had hollow cavities for explosives (inert-filled for the tests) and were prototypes of actual shells of this shape that were never actually produced for Navy guns. The weight used matched that of the actual standard-issue capped 3-inch Mk 29 AP shells sometimes used by the World War II U.S. Navy 3-inch/50 and 3-inch/70 AA guns (the hand-loaded version of these guns were used in some small ships throughout World War II and they were being introduced in rapid-fire, auto-load versions to replace the 40 mm AA guns at the end of World War II due to the danger of kamikazes) - the AP shells were primarily for shooting at surfaced submarines from smaller ships (not a major use for these guns), though 3-inch Army or Marine anti-tank guns may have also used them occasionally.

Both programs compute the striking velocity to barely allow an intact, undeformed projectile of that design to pass entirely through the plate (less and the projectile will bounce off or remain stuck in the plate, depending on the impact conditions) - the U.S. "Navy" Ballistic Limit. At high obliquity the projectile never slows down to a stop; it either skips off at some (usually high) velocity or punches through at a similar (but usually not quite so high) velocity,

These two programs give extremely good results for the 13-lbs. 3-inch projectiles of the shapes given at all obliquities from 0 degrees ("normal" or right angles) up to 80 degrees against plates from 0.1 to 0.85 caliber (0.3" through 2.55") of average U.S. Navy World War II Class "B" armor or Special Treatment Steel (STS) (115,000 psi ultimate tensile strength), as used extensively for thin armor, deck armor, or heavy conning tower armor or battleship turret face armor in many World War II U.S. Navy warships.

Below 0.1 caliber, the curves have been extended to 0.001-caliber (0.003") with a very good chance of being accurate there, too.

Above 0.85-caliber plate thickness (and slightly less for high obliquity impacts), the projectiles always shattered. Extrapolating the results for any kind of iron or steel plate above about 0.9-caliber (2.7") is thus not going to be reliable or even anywhere near correct.

The effects of scaling to other projectile diameters or with plates of different metallurgical properties are not given in any of these tests and, though the program allows such, cannot be considered accurate for projectiles much different from 3-inch in size or used against different kinds of plate. Changing the weight much from 13 lbs. will also give less reliable results.

NOTE: I have some test results for extra-long 20 mm (0.78") flat-nosed steel cylinders of circa 0.39 lbs. (W/(D-cubed) = 0.8) against a form of high tensile steel at right-angles and the shape of the penetration energy needed versus plate thickness (in projectile calibers to put them on the same graph) curve for the Navy BL is virtually identical to my 13-lbs. 3-inch flat-nosed-cylinder data up through 0.85-caliber plate thickness, but the 20 mm curve is offset from mine and I do not know what combination of adjustments are needed to match them with one-another, due to not enough data.

I am adding these programs to allow a contrast with the results of my M79APCLC program for typical blunt-point curved-nose AP or SAP projectiles (which replaces the old standard French DeMarre Nickel-Steel Penetration Formula to give much more accurate results for intact, undeformed projectiles of that nose shape, most especially for oblique impact, where the French formula was almost useless, being designed for normal impact only). The M79APCLC penetration program is based on an enormous number of tests performed by the U.S. Navy at the Naval Proving Ground during World War II using U.S. Army 3-inch M79 AP Shot projectiles (mainly), hence the name of the program. The results of this program are extremely reliable if the pointed projectile is similar to the M79 nose design and remains intact and undeformed during the impact.

The differences in results of these two flat-nosed-type projectile tests are striking (no pun intended!), both from the M79APCLC results in most cases and from each-other, indicating how sensitive penetration is to nose shape when the nose gets very blunt and has to punch through the armor like a fist, rather than drill through like a (somewhat blunt) needle.

More data is needed to calibrate these two programs for a wider range of projectile weights, plate properties, and projectile sizes. Also, some more data for intact projectiles against any plates at least up to about a caliber thickness (3-inch for the defining projectiles) would be of interest. Until then, the results are rather limited in usefulness.

Note: BRUN45.EXE is required to run these programs.

HCWCALC STS Armor Penetration Calculation Program

Version 2.0 (December 2016)

Some typo corrections and small changes. See text file for a complete listing of the changes.

Version 1.0 (April 2012)

The new HCWCALC.EXE program is a first attempt to include the three major forms of nose coverings in AP and SAP projectiles, the AP cap, the Hood, and the windscreen, separately and in combination (Hoods and AP caps are mutually exclusive). It is an extension of the previous M79APCLC STS armor penetration program, which it incorporates internally. If all of the nose covering weights are set to zero, the earlier M79APCLC program results are obtained. As currently written, it does not include all forms of AP caps, just one US Army and one Navy WWII AP cap, though it allows manual adjustments of the internal default table values used in most of its various AP cap calculations. I hope to add more kinds of AP caps as I get information on them (or can separate out the cap effects from the effects not due to the cap in test results and published armor penetration curve charts). AP caps have several different effects on penetration, depending on cap design, projectile nose design, method of cap attachment, cap hardness, plate thickness, and impact obliquity. Virtually all of these effects have canned default values that can be modified by user-supplied multipliers and answers to various questions during the user input process, if desired. Changing the weight of the cap adjusts the results of some of these effects, but not others. Complicated.

Most of my future work on this program will be adding more types of AP caps to the selection available and incorporating nose shape effects that can handle the several odd-ball AP cap face shapes (which include everything from pointed cones, to hemispheres, to truncated flat noses, to hollow conical pits, to flying saucer top shapes, and so forth). The projectile nose shapes under the caps are much less variable, but still require some new logic to get right, too. This update will have to wait at the moment as the data that I have is somewhat chaotic at the moment and will require some time to sort it out properly, after which I will have to evaluate a lot of tests to sort out how to handle this in the program.

Similarly, there is some variability as to windscreen designs where I allow manual adjustments to the table outputs on top of the weight adjustment. There is, however, only one parameter other than weight percentage that the user can adjust for a windscreen, unlike the several parameters for AP caps.

Other than adjusting for Hood weight changes, Hoods use the default calculated values as-is.

Under some conditions the changes caused by these nose coverings are minimal, but under other conditions the effects can be very large (up to over 18% change in the required penetration velocity, sometimes making it higher and other times making it lower). The several EXCEL spreadsheet graphs converted to PDF format included with the document describing this program shows the complexity of using just one of the two AP caps that can be selected, with an adjusted weight (more like the typical WWII cap weight) and manually selecting different cap effect option combinations, even when using the default program computations. Also shown are combinations with windscreens on top of Hoods and AP caps, to give more realistic results.

              Nathan Okun

HCWCAL Background Document

Graphs of Typical Program Functions

Zip file for HCWCAL2

Printing Note

These programs are all compiled under QuickBASIC 4.5 and run under an MSDOS window in a Windows OS. In many cases, when printing has to be done, the Windows printer utility program refuses to recognize the DOS LPRINT command, so printing does not happen.

There is a free Windows 4.0, NT, 200X, and XP (not, unfortunately, for Windows 95 or 98) package from A.N.D. Technologies that allows the user to "lock" the LPT1 through LPT9 printer ports in DOS to the same one in Windows -- you can even select which printer does what if you have more than one printer. You can disconnect the lock after you are finished. The FaceHard and associated programs usually work with LPT1 (the default for the DOS LPRINT command), but that can usually be changed by appropriate DOS or Windows commands.

Change History for FaceHard Calculation Programs

Facehard Version 7.5

This version fixes a number of small bugs in Version 7.4 that were found by someone who is translating it into C. It also adds a corrected method of handling the case where an uncapped high-quality projectile hits thin face-hardened armor at low obliquity (up to 15 degrees obliquity) and suffers only nose damage, rather than complete shatter. I had something that did this before, but it had little data except for one set of British post-WWI tests. I now have German WWII test data, so I was able to come up with an approximation that includes both sets of data and, hopefully, is somewhat realistic. A more detailed list of changes may be found in the FACEHARD75CHNGDOC.rtf document within the file.

Facehard Version 7.4

New update, fixing some typos and making some corrections/additions to 7.3. A more detailed list of changes may be found in the FACEHARD74CHNGDOC.rtf document within the file.

Facehard Version 7.3

This one was pretty extensive as to armor and projectile properties in those pre-WWI times, which I had had limited data on. German KC a/A armor was MUCH more complex than I knew, with FOUR significantly different types in either composition or resistance or both by the end of WWI. Who knew? This is now included in FACEHARD as far as the data I have allows, including re-calibrating the other older armors to give the same test data as before against projectiles with new, updated properties to match the new German projectiles of the period (I assume other shells were of similar capabilities and changing them to match the new German data requires armor property changes to retain the old known FACEHARD calculation results as closely as possible -- mostly, I was able to do this within a couple of feet per second of the 7.1 HL, NBL, and EL results, though a couple of these have more change than that, which I hope is now more accurate, not a screw up on my part!). A more detailed list of changes may be found in the FACEHARD73CHNGDOC.rtf document within the file.

Facehard Version 7.1

I found a big typo in 7.0 that prevented running FRENCH PROJECTILE SELECTION #9, the US Crucible Steel 380mm Mk 1 MOD 1 AP projectile for RICHELIEU (blueprint dated May 1943). When I updated the French projectile table some versions ago, I added a new entry to the table and forgot to add one to the counter, so the last entry, this projectile, "fell off the edge".

Facehard Version 7.0

I have made a few touchups primarily to make the Harveyized Armor scaling adjustments exactly match my graphs. They were "pretty close" but as a perfectionist I had to tweak them to within 0.1% error. A single adjustment worked for all face layer percentages and projectile sizes, so it was due to the nature of the Harveyized armor's hardened steel/cementite-only face combination (I assume it works with both nickel steel and mild steel versions of Harveyized armor), not due to my KC armor adjustments being wrong.

I also found a couple of typos and added some more information about those two captured VH experimental plates -- with deeper face layers than regular VH armor -- that were tested by the US and Britain after World War II that proved to be the best plates ever tested by those nations. They both had face layers more like German World War II KC n/A armor and were 1% (the US plate) and 1.5% (the British plate) better than average KC n/A, way above standard VH armor. Since they are so close to one-another in design and quality, even though one was more than twice as thick as the other one and tested with two different nation's projectiles almost over a nearly double scale of diameters, indicates again Japanese super-high quality control (British CA plates vary all over the map as to quality around their average, but not Japanese armor!!).

The only details that I still need to resolve completely are British changes to the ratio of HBL to NBL (varies a lot from plate to plate), Russian armor and projectiles (very limited test data), and the exact relationship between German and Austro-Hungarian projectiles and armor before and during World War I (have a lot of similarities, but not sure who developed what).

Facehard Version 6.9

Changes documented in the following rtf file: FH69_Changes_document.rtf

Facehard Version 6.8

I have been testing the thing "to death" and am finding all sorts of small problems that only occur under certain circumstances. Some more problems with the Hooded and soft-capped shells versus various KC armors. Fixed a major bug in the logic for the Japanese uncapped 15.5 cm and 20.3 cm Type 91 AP projectiles. Fixed flaw in Harvey armor logic and a few less serious design limitations in FACEHARD. The projectile tables for all nations are now modified as to their old pre-1900 shot and shells. Russian projectiles, as far as are now known to me, are now included as a Nation Selection with a number of shells available.

Facehard Version 5.8

Fixed problems with Gruson Chilled Cast Armor and Terni Cemented Armor. Fixed bug where not zeroing the plug weights when no hole made in the plate prior to using them. This caused a minor error where post-impact behind-the-plate damage was being worked out. Splinter damage is now possible if no backing layer is mounted behind the plate.

Facehard Version 5.7

Fixed minor bugs.

Facehard Version 5.6

Fixed problem where rounding error changed ballistic limits by 1 ft/sec and messed up some of the logic for projectile damage by causing the results to shift back and forth at boundaries. Changed logic so that if the actual value is only 1 ft/sec away from a "perfect" projectile boundary, then it is always set to equal that perfect projectile value.

Facehard Version 5.5

Corrects a problem where Selection 20 was still being referred to as Selection 18 in one place, which caused an error when either Selection 18 or Selection 20 was used and that logic was applicable. Also has some wording changes to better define what is really meant by "quite possibly" and "probably" when referring to projectile wobbling/tumbling after a penetration. Noted that a weak shell that is broken above the Holing Limit but below the Navy Limit may throw pieces of itself through the plate, while a stronger shell that does not break will only punch out armor pieces. Thus, sometimes a weaker shell is more dangerous!

Facehard Version 5.4

Fixed bug for shattered projectiles at low levels of armor penetration.

Facehard Version 5.3

Fixed bug where remaining velocity of projectile was not being reset between run loops (without restarting) if the projectile had its nose break (but no other breakage) at under 45 degrees obliquity and only made a hole in the plate.

Facehard Version 5.2

Various bug fixes.

Facehard Version 5.1

Various bug fixes and rebuilt the Grüson and Terni Cemented armor logic due to both of them having plate faces that get thinner as the plates get thicker. The program now gives you the current calculated back layer percentage ("UB") used in the program and this will make it easy to override this with your own manual input values (if you did not know the old UB value, how could you determine a new one?). I also did some minor editing and clean-up of the paper printout and added TC armor to it, which I had forgotten to do in 5.0. Boy, I am sure blind sometimes!! I ran some tests and things work OK now, as far as I can tell, at least as far as THOSE bugs were concerned. Anyone finding a bug, please tell me about it!

Facehard Version 5.0

I decided to jump to Version 5.0 because I have done an EXTENSIVE modification to how the program handles SHATTERED projectiles, among other things.

My problem was that I based the original design on the U.S. World War I and shortly thereafter tests using the U.S. Navy World War I MIDVALE UNBREAKABLE soft-capped AP projectiles, which were, by definition, 1.00 quality, since they rarely broke against the World War I-era U.S. Navy Class "A" armor at up to 15° obliquity. Thus, when they DID shatter at a higher obliquity, they still had 1.00 quality and only the effective plate thickness went up. However, this means that I only had good data on 1.00 projectiles, which is good for creating the baseline to compare other projectiles, but it is bad in that the "third dimension" (projectile quality variations when the projectiles are not as good and shatter or don't shatter) was missing.

When I did my re-evaluation of German APC projectiles and armor, I used an "analyze it to death" study of the captured (by the U.S. NavTecMisEu) World War II tests of Krupp KC n/A armor as used on SCHARNHORST and BISMARCK, which was tested using many kinds of Krupp APC projectiles, INCLUDING pre-World War I small hard AP capped L/3.2 and L/3.4 APC and soft-capped L/2.9 APC projectiles. By using G.Kdos. 100 and this data and U.S. and British tests of German World War II armor and projectiles, I cross-correlated the results back and forth and back and forth (it was a REAL messy job!) until I got some kind of correlation between the soft-capped projectiles, which were always shattering against this improved armor, as expected, and the World War I hard-capped projectiles, which were shattering at 30° obliquity, but not at normal, against thick plates of this improved KC n/A armor, which I had not expected, but which makes sense, since the later post-World War I Krupp APC projectiles obviously were given different, thicker AP caps for a reason!

After all this work, I reran my recent data on the World War II Italian Terni Cemented plates being fired at at 30° obliquity by uncapped Italian World War II AP projectiles and, lo-and-behold, my answers were now even closer to the results of the tests! Eureka! Win-win!!

What do these programs produce?

For a listing of tablurized data based upon Nathan Okun's programs, please Click Here.

Important Note

In order to further improve these programs, Nathan would like to obtain more data on Russian, Austro-Hungarian, Italian, and French armor and projectiles, especially test results. Also, any test results for the period prior to World War I would be most welcome. If you have data that you think would be useful in this regards, please click on the Contact link above or below and send an Email.