Calculating the elastic modulus with software involves using software filtering techniques to separate the critical unloading data from the rest of the load-displacement data. The start and end points are usually found by using user defined percentages. This user input increases the variability because of possible human error. It would be best if the entire calculation process was automatically done for more consistent results. A good nanoindentation machine prints out the load unload curve data with labels to each of the segments such as loading, top hold, unload, bottom hold, and reloading. If multiple cycles are used then each one should be labeled. However mores nanoindenters only give the raw data for the load-unload curves. An automatic software technique finds the sharp change from the top hold time to the beginning of the unloading. This can be found by doing a linear fit to the top hold time data. The unload data starts when the load is 1.5 times standard deviation less than the hold time load. The minimum data point is the end of the unloading data. The computer calculates the elastic modulus with this data according to the Oliver—Pharr (nonlinear). The Doerner-Nix method is less complicated to program because it is a linear curve fit of the selected minimum to maximum data. However, it is limited because the calculated elastic modulus will decrease as more data points are used along the unloading curve. The Oliver-Pharr nonlinear curve fit method to the unloading curve data where formula_25 is the depth variable, formula_54 is the final depth and formula_55 and formula_26 are constants and coefficients. The software must use a nonlinear convergence method to solve for formula_55, formula_54 and formula_26 that best fits the unloading data. The slope is calculated by differentiating formula_5 at the maximum displacement.