Endurica 2019 Updates Released

Endurica CL

Endurica CL received many improvements over the past year.  These improvements cover a wide variety of different aspects of the software:

Reducing Run-time

Our investments in code benchmarking and performance are paying off! We’ve been able to make internal optimizations to the code that reduce analysis run-times by approximately 30%. 

HFM and HFO Formatting

To make our output cleaner and more meaningful, small changes have been made to the number formatting in the HFM and HFO files.

All results reported in scientific notation are now formatted in standard form where the leading digit before the decimal point is non-zero (previously the leading digit was always zero).  This gives one more significant figure to all the results without increasing the output file size.

Signal compression

The shortest fatigue life for the analysis is now printed to the console and HFM file with six significant figures.  Previously, the life was reported with only two significant figures.  This change makes it easier to quickly compare two different analyses, especially when the analyses have similar fatigue lives.

New features have been added to Endurica CL to make it easier to process and analyze histories.  Using the new COMPRESS_HISTORY output request, you can generate new HFI files containing compressed versions of your original history.  The generated history is composed of the rainflow counted cycles from your original history.  An optional output parameter allows you to further compress the signal by specifying the minimum percentage of the original damage that should be retained in the new history.  When keeping a percentage of the damage, the cycles are sorted from most to least damaging so that the generated history always contains the most damaging cycles and discards the least damaging cycles.

This output request is useful when you want to reduce a long complex history while keeping the important damaging cycles.  This can reduce file sizes and simplify experimental testing setups as well as give you a deeper insight into your duty cycle. 

Endurica DT

Endurica DT is our incremental fatigue solver.  With Endurica CL, your analysis starts at time zero and integrates the given strain history until end-of-life.  With Endurica DT, you can start and end at a series of times that you specify.  This lets you accumulate many different histories and loading conditions repeatedly until end-of-life.

Endurica DT gives you new ways to control your analyses, and we have been using it over the past year in many applications.  For example, fatigue results for laboratory test procedures that involve multiple loading stages (such as FMVSS No. 139 for light vehicle tires, or block cycle schedules for automotive component applications) can be fully simulated using Endurica DT. You can also compute residual life following some scheduled set of load cases. 

Endurica DT can also be used to accumulate the actual loads measured on a part in situ.  This allows you to create a digital twin that keeps a near real-time record of the part’s current simulated damage state and the part’s remaining fatigue life. 

Stiffness Loss Co-Simulation

Endurica DT now includes a stiffness loss co-simulation workflow that allows you to iteratively update the stiffness of your part over a series of time steps, based on the amount of damage occurring in the part.  The stiffness loss is computed per element so you will have a gradient where the more damaged regions become softer.  Endurica DT computes the current fraction h of stiffness loss based on the stress and strain, and the finite element solver computes the stress and strain based on the current fractions of stiffness loss. The capability accurately predicts the effects of changing mode of control during a fatigue test.  For example, stress controlled fatigue tests show shorter life than strain controlled fatigue tests. 

Endurica EIE

Endurica EIE, our efficient interpolation engine, quickly generates long, complex histories using a set of precomputed finite element results (i.e. the ‘nonlinear map’).  We first launched EIE last year with the ability to interpolate 1-channel and 2-channel problems.  We have recently added the ability to interpolate 3-channel problems. 

In the example below, EIE was benchmarked with three-channels.  Three separate road load signals were computed from a single nonlinear map.  With EIE, you don’t need to rerun the finite element model for each history.  Instead, EIE interpolates from the nonlinear map, providing the equivalent results with a 60x speed-up in compute time. 


EIE – Effect of Map Discretization on Interpolation Accuracy


The accuracy of the interpolated results performed by EIE is dependent on the discretization of the map. Specifically, the results will become more accurate as the map’s point density increases. This study uses a simple 2D model to quantify the accuracy of results interpolated from maps with different densities.


A 1 mm x 1 mm rubber 2D plane strain model with two channels is used. The square’s bottom edge is fixed and the top edge is displaced in the x and y directions as shown below. The x displacement corresponds to channel 1 and the y displacement corresponds to channel 2. The working space of the model is defined by the x displacement ranging from 0 mm to 0.8 mm and the y displacement ranging from -0.08 mm to 0.8 mm.

Plane strain model with two channels

The model is meshed with 100 8-node, quadrilateral, plane strain, hybrid, reduced integration elements (shown below).

100 element mesh


We define as the benchmark reference solution a history that covers the model’s entire working space with a high density of points. An evenly spaced grid of 128×128 points for a total of 16384 points is used as the history (shown below). It is important that this history is more refined than the maps that we will create to ensure that we are testing all regions of our maps.

128×128 history points

These points are used to drive the finite element model and the results are recorded. For this study, we record the three non-zero strain components and the hydrostatic pressure (NE11, NE22, NE12, and HP) for each element at each time point. In summary, there are 4 result components, 100 elements, and 16384 time increments. This set of results is the reference solution since it is solved directly by the finite element model. We will compare this solution to our interpolated results to measure our interpolation accuracy.


Six maps with different levels of refinement are used to compute interpolated results for our history points. All of the maps structure their points as an evenly spaced grid. The first map starts with two points along each edge. With each additional map, the number of points along each edge is doubled so that the sixth and final map has 64 edge points. The map points for the six maps are shown below.

Six maps with increasing levels of refinement

The map points for these six maps are used to drive the finite element model’s two channels. The strain and hydrostatic pressure results from the FEA solutions are recorded at each map point in a similar way to how the results were recorded for the FEA solution that was driven by the history points. Next, EIE is used six times to interpolate the map point results at each resolution onto the high resolution reference history points.

We now have seven sets of history results: the true set of results and six interpolated sets of results.


To compare our results, we look at the absolute difference between the sets of results. The absolute error is used, opposed to a relative error, since some regions of the model’s working space will give near zero strain and hydrostatic pressure. Division by these near zero values would cause the relative error to spike in those regions.

Since we have 100 elements and 4 components per element, there are a lot of results that could be compared. To focus our investigation, we look at the element and component that gave the maximum error. The figure below shows contour plots for each of the six maps for this worst-case element and component. The component that gave the maximum error was NE12. The title of each of the contour plot also shows the maximum error found for each of the plots.

Error contours for the worst-case element and component. Titles report the maximum log10 error.

You can see that the error decreases as the map density increases. Also, you can identify the grid pattern in the contour plots since the error gets smaller near the map points.

Plotting the maximum error for each of the maps against the number of map points on a log scale is shown below. The slope of this line is approximately equal to 1 which is expected since a linear local interpolation was used to compute the results.

Maximum error vs the number of points for each of the six maps

Trial License RequestTrial License RequestTrial License RequestTrial License RequestTrial License Request