Occasionally, **contact stresses** play a role in a mechanical design. **Hertzian stress** equations are needed to calculate indentation and to check that the yield stress isn’t exceeded.

Since programming is a hobby of mine, it seemed like a good idea to make a Hertzian contact stress calculator. Just for my own use. This simple calculator gradually matured. And it turned out that more people needed a **handy calculator** to calculate Hertzian contact stresses. So I decided to give the program a name and offer it on the website. Since then, HertzWin has grown into a calculator with **many features**.

## Using Approximation Formulas at First

Calculating elliptical contacts requires solving elliptic integrals. Since there are **no mathematical solutions**, approximation formulas are often used. Initially, the *HertzWin* program also worked with approximation formulas.

There are many **approximations**. The early versions of HertzWin used the approximations proposed by A. Horowitz in A contribution to the engineering design of machine elements involving contrashaped contacts (1971). In most cases, these approximations are accurate enough for the machine designer to use.

## Numerical Integration of Elliptic Integrals

At some point I came across a publication by E.W. Deeg, ‘*New Algorithms for Calculating Hertzian Stresses, Deformations, and Contact Zone Parameters*‘ (2004). It contains a clear description of how to solve the elliptic integrals relatively easily, including a detailed example in MathCad. Solving the elliptic integrals seemed to be a nice addition and improvement to *HertzWin*. The Hertz stress calculator becomes **even more accurate**!

## First Public Release

The first release that became available on the website, release 1.0, contained **two calculation methods**: the approximation method and the numerical integration method. The reason for including both methods was that colleagues of mine were using the MS-DOS program ‘Hertz.exe’, developed by C. Thijsse (Philips CFT 1990). And HertzWin used exactly the same approximation as Hertz.exe.

By implementing both methods, both results could be compared and confidence in the exact results could be built. As of release 2.0, the approximation formulas and method are **no longer present** in *HertzWin*. The method with approximation formulas no longer added any value and was at most confusing. Since the MS-DOS program ‘Hertz.exe’ no longer worked under Windows 7, the popularity of HertzWin increased rapidly.

## Implementation of Numerical Integration of Elliptic Integrals

Processing a simple formula in MathCad (from Deeg’s publication) in HertzWin requires some work. First, a suitable integration method has to be found. There are several, but Simpson’s rule is efficient and easy to implement.

*HertzWin* uses Simpson’s rule with an estimate of the truncation error. Although the program claims to give the exact solution, there is always a **small residual error** in the numerical process. **Speed** is also important, and *HertzWin* has experimentally determined the accuracy with which the integral function is computed. The relative **truncation error** is set to 2E-6.

## Regula Falsi, a Root-Finding Algorithm

Calculating the dimensions of the contact ellipse begins with calculating the ratio of the radii B/A. In this calculation process, the **root of a function** has to be determined. For this, the stable method of Regula Falsi with Hamming’s Correction for **faster convergence** was used. The Hamming’s correction seemed to be slightly faster (in HertzWin) than the Ridder’s Modification. The truncation error is also set at 2E-6.

## Starting Point for the Calculation of the Ratio Between the Radii B/A

Since the method of Regula Falsi is not very fast, it is important to start with a **good estimate** of the ratio between the radii B/A. This will limit the number of iterations required and benefit the overall computation time. The estimate from Deegs’ article has been replaced by a better, very good estimate found in Advanced Engineering Design by A. van Beek.

Unfortunately, van Beek’s estimate cannot be used for situations where the main axes of the **radii are not in line**. For these situations, the estimate from Roark’s Formulas for Stress and Strain by W.C. Young and R.G. Budynas is used, including interpolation between the values in the table.

## Maximum Shear Stress and Poisson’s Ratio

An approximation is often used for the **maximum shear stress**: 0.32*Shertz (Shertz = Hertzian contact stress). This maximum shear stress occurs **below the surface** at a depth of about 0.48*b (b = minor contact radius). However, this depth is only valid for a circular contact. For an elliptical contact, the depth can be ~0.8*b.

Initially, this simple approximation was not used in HertzWin, but a curve fit from Table 4.1 in Contact Mechanics by K.L Johnson (1985). However, the **disadvantage remained** that the result was only valid for a Poisson constant of ~0.3. An article by I. Green, Poisson Ratio Effects and Critical Values in Spherical and Cylindrical Hertzian Contacts put me on the path to calculating the shear stress as a function of the Poisson ratio.

In release 2.4.0, I. Green’s curve fit has been enhanced with my own curve fit for elliptical contacts. This curve fit also depends on the Poisson’s Ratio of the material. Since *HertzWin* 2.9.0 the calculation has been improved. Now the shear stress is calculated **at different depths** around the expected maximum. The real maximum and the corresponding depth are determined by a **quadratic fit**. The increased accuracy comes at the cost of some additional computation time, but can handle **all values** of Poisson’s ratio.

## Line Contact Poisson’s Ratio

Fortunately, the calculation of **line** contacts is much less intensive. The size of the contact area is easy to determine, as are the other data. The dependence on Poisson’s ratio is solved in a similar way as for point contacts.

## Stiffness of Line Contact

The main difference between line contact and point contact is that the **stiffness in a line contact does not fall within the Hertz theory**. The degree of compression depends on the dimensions of the cylinder. However, it is possible to calculate the compression with respect to a specific location in the material. HertzWin uses the ‘**anvil model**‘ from Contact Mechanics by K.L. Johnson (chapter 5.6), as also suggested by J.J. Barber, Contact Mechanics (2018).

## Von Mises and Tresca Stress

As a mechanical designer, you are interested in the maximum **allowable load** in your design. The **yield strength** must not be exceeded. The Tresca yield criterion is often used for point and line contacts. The reason is that the Tresca stress is **easy to determine**: 2x the maximum shear stress.

The disadvantage of the Tresca criterion is that it is **conservative**. The maximum allowable load is on the safe side. A **better criterion** is the Von Mises criterion, which is based on the maximum deformation energy. The Von Mises yield criterion is more difficult to determine for point and line contacts because the three main stresses have to be determined. You can use K.L. Johnson’s **rule of thumb** (Chapter 6.1) for the maximum **allowable stress**: Shertz < 1.6*Syield .. 1.8*Syield.

As of release 2.4.0, the von Mises stress is also calculated in HertzWin. In the main window, it is initially calculated based on curve fits. However, as of release 2.9.0, the von Mises stress is calculated in a similar way to the maximum shear stress. First, the main stress (the compressive contact stress) is calculated and the corresponding **von Mises stresses** are calculated at **different depths**. Then, the maximum value is determined.

## Deformation and Stress Graphs

For those who want to know in more detail how the material stresses develop at different locations, **HertzWin can draw all kinds of graphs**. This functionality was added to *HertzWin* in release 2.4.0. The book Contact Mechanics by **K.L. Johnson** (1985) is **the main source** of all formulas used here.

During the implementation it was however confusing (and a bit surprising) that there is a small error in one of the formulas for the stress in line contacts (formula [4.46b]). A double check in Shigley’s Mechanical Engineering Design, from R.G. Budynas and J.K. Nisbett confirmed it is an error.

When in HertzWin the graph is opened, it takes a few seconds before the entire graph is drawn. For the **stresses along the Z-axis** (below the contact surface), 61 positions are calculated. And for each position two elliptic integrals have to be solved. These are **many iterations**!

As of release 3.2.0, HertzWin can generate **contour plots** of material stresses in addition to line plots. Now you can get an even better understanding of the stresses in the material. The basis for these calculations was taken from “Mechanics of Elastic Contacts” by A. Sackfield, D. A. Hills, D. Nowell. HertzWin uses parts of the program code of ‘ELLIPS.FOR’, courtesy of professor D. Nowell (Imperial College London, Department of Mechanical Engineering).

## Surface Roughness Influence

The MS-DOS program ‘Hertz.exe’ (by C. Thijsse), briefly mentioned above, also had the ability to calculate the **influence of surface roughness**. The theory of Greenwood & Tripp, based on **Gaussian distributed roughness asperities**, is described in Contact Mechanics by K.L. Johnson. However, the implementation seemed to be rather difficult because it requires the input of (often) unknown parameters.

By chance, I came into contact with C. Thijsse who, when asked, agreed to give me the source code of the MS-DOS program ‘Hertz.exe’. In the source code I saw that he used a simple but **excellent curve-fit** from figure 13.12 of K.L. Johnson’s book. This curve fit is now used by HertzWin. See the help in HertzWin for more information.

## Faster Computation with Carlson Elliptic Integrals

Thanks to a recent article by J.A. Greenwood, “Hertz Theory and Carlson Elliptic Integrals” (2018), it became relatively easy to apply Carlson Elliptic Integrals in *HertzWin*. Verification of the correct application of the method was possible thanks to a series of numerical checks in “Numerical Computation of Real or Complex Elliptic Integrals” by B.C. Carlson. The result is a **dramatic speedup** of HertzWin!

## Lifetime Estimation

In addition to surface roughness, the MS-DOS program ‘Hertz.exe’ also included the ability to calculate a **minimum hardness** of the materials used. The required input was a desired speed and lubrication conditions. At the **request of users**, this functionality has also been added to HertzWin.

The lifetime calculation algorithm is derived from theories and measurements of various authors. These are mainly from **gear literature**. The sources used are:

- G. Niemann (“Maschinenelemente“);
- Dubbel (“Taschenbuch für den Maschinenbau“);
- E.C. von Pritzelwitz van der Horst (Philips);
- M.B. Peterson en W.O. Winer (“Wear Control Handbook”).

The results are valid for steel and cast iron materials only. Unfortunately, there are no further details or documentation about the background of the algorithms used.

## Microsoft Windows Compatibility

The development of *HertzWin* started with Windows XP. Besides the functionality, the program had to work on newer operating systems as well. The arrival of Windows 7 had a significant impact. The overall design was a mess and buttons and text were hard to see.

The problems were fairly easy to solve, although it was not as good as it should have been. A manifest file had to be added. Only then all elements of the program are displayed as they should be.

Thanks to the fantastic tool Manifest Creator by LaVolpe ‘, creating a manifest file became a breeze. With the latest update of the manifest file in version 2.9.0, HertzWin now **looks as intended** on Windows 10 as well as Windows 11.