Abaqus Error Indicator

Introducing Abaqus/Standard Error indicators

In a displacement-based finite element (FE) analysis, the stress is usually computed from the displacement field in a postprocessing step. This directly calculated stress is obtained from the derivative of the displacement field, leading inevitably to a lower-order less-accurate field as compared to that of the displacement. As a result, a significant amount of research has been devoted to retrieve the lost accuracy and continuity of the stress field, leading to methods known as “stress recovery techniques.” Improved stress fields obtained through these procedures not only provide a better stress representation for reduced computational cost but also are widely used in a posteriori error estimates.

Abaqus/Standard determines error indicator variables based on the difference between a smoothed and unsmoothed distribution of the base solution, using a smoothing technique such as the patch recovery technique of Zienkiewicz and Zhu, (1987). With this technique, the idea is to fit a higher-order polynomial approximation of the stress field over each patch of elements. The distance in the energy norm between this smoothed stress field and the finite element stress field is defined as an error estimate.

One way to control the quality of a finite element solution with an optimal use of computational resources is to refine the mesh adaptively. The adaptive finite element analysis generally consists of two stages: a posteriori error estimate and the mesh refinement. The goal is to refine the mesh so that the error is within the specified tolerance and is as uniformly distributed throughout the domain as possible.

Superconvergent patch recovery approach

The superconvergent patch recovery (SPR) of Zienkiewicz and Zhu, became widely adopted and was further explored as an a posteriori error estimate. In this recovery technique, the stress at mesh nodes is obtained by using a complete polynomial of the same order as that used for approximating the displacement field. The polynomial is then fitted in a least-square sense to the directly calculated stresses computed at superconvergent points, or sampling points, over a patch of elements. Indeed, at these points, the accuracy of the derivatives is one order higher than at any other point in the element, resulting in a substantial improvement in the corresponding stresses.

For general nonlinear problems, only if integration points are used as sampling points, can SPR method be applied to stress recovery.

After finite element analysis, a patch is defined for each vertex inside the domain by the union of elements sharing the node. A typical patch of a bilinear quadrilateral element is shown in the figure below.

Abaqus error indicator variables

The finite element discretization of a model domain results in an approximation to the exact solution for all but trivial analyses. To aid you in understanding the extent and spatial distribution of the discretization error in a finite element solution, Abaqus/Standard provides a set of error indicator output variables. Ideally, error indicator output variables should be supplemented by other techniques, such as a mesh refinement study, to gain confidence that discretization error is not significantly degrading the ability of the finite element analysis to make useful predictions. In fact, error indicators can help automate a mesh refinement study through the adaptive remeshing functionality of Abaqus/CAE; error indicators variables are used by this functionality to determine where to refine or coarsen a mesh.

Error indicator output variables

These output variables

  • Indicate discretization error in a solution quantity (the base solution) and have units of the base solution
  • Can be requested with element output or contact output options or as part of an adaptive remeshing rule
  • Can be normalized by forms of the base solution to obtain nondimensional, such as percentage, indicators of error
  • Can increase your analysis solution time significantly in some cases
  • Are available in Abaqus/Standard but not in Abaqus/Explicit


Error indicator and base solution variables available in Abaqus/Standard

Abaqus error indicator variables provide a measure of the local error resulting from mesh discretization. Each error indicator (symbol [ce]) provides an indication of error in a particular base solution variable (symbol [cb]). For example, the Mises stress error indicator, MISESERI, provides an indicator of error in the Mises stress variable MISESAVG.

Some error indicator variables only indicate discretization error at the current analysis time—the particular increment in a step. Other error indicator variables provide a record of the solution history up to the current analysis time.

The table below shows the available Abaqus/Standard error indicator variables along with the corresponding base solution variable and indicates whether they record the solution history.

Effect of error indicator output requests on solution time

The smoothing calculations occasionally noticeably increase analysis time. If you find that adding an error indicator output request significantly increases analysis time, strategies for reducing this effect include reducing the output frequency and limiting the output request to a particular region of interest. Computations for most error indicator variables only occur just prior to writing the error indicator variable to the output database, so reducing the output frequency will tend to reduce the computation time; however this is not the case for the element energy density error indicator, because contributions to this error indicator are accumulated each increment regardless of whether this error indicator is output for a given increment.

Recommendation: Do not use ENDENERI unless history dependence is required and PEEQERI is not sufficient/applicable!

Calculating normalized measures of solution error

You can use corresponding error indicator and base solution variables [ce] and [cb] respectively, to compute a field of local, normalized error indicators

where [ĉe] is a normalized error measure. For example,

provides a percentage form of the Mises stress-based error indicator; however, this normalized error measure may not be particularly useful, because

  • It will tend to draw attention to regions where base solution values are small, which typically are not critical regions of a design
  • It will have divide-by-zero issues where the base solution value is zero


Other normalization approaches, such as normalizing based on a global norm of the base solution variable or a constant value that you choose (such as the maximum value of the base solution allowed in a design), may be more effective.

Normalized forms of an error indicator are not available directly through the error indicator output variables; however, you can calculate normalized measures using the Visualization module of Abaqus/CAE (Abaqus/Viewer) to operate on field output data. Alternatively, you can use the Abaqus Scripting Interface to read the error indicator and the base solution from the output database and calculate normalized forms.

Interpreting error indicator output

When interpreting error indicator output, you should remember that the error indicators are approximate measures of the local error in the base solution and are, themselves, subject to discretization error. The accuracy of the error estimates tends to improve as the mesh is refined. Each error indicator variable has the same units has the corresponding base solution variable, which facilitates comparison of local estimates of the error magnitude with local estimates of the base solution.

Regions of interest of a base solution and corresponding error indicator

Viewing contour plots of a base solution variable and corresponding error indicator variable side-by-side can provide a useful perspective on the solution accuracy. For example, if the base solution is expressed in units of stress, the corresponding error indicator is also expressed in units of stress. The contour plot below shows contour plots of CPRESS and CPRESSERI for an analysis of a sphere pressed into a rigid plate.

The plot can be interpreted as follows

  • The contact pressure solution is quite accurate near the center of the active contact region, where the contact pressure is largest, because the error indicator is a small fraction of the base solution in that region
  • The contact pressure solution is less accurate near the perimeter of the active contact region, where local variations in the contact pressure solution are largest (but the contact pressure is significantly less than the maximum value), because the error indicator is quite large compared to the base solution in that region


The analyst may judge that the level of mesh refinement is adequate if the maximum contact pressure is of primary interest in such a case. Local mesh refinement would be needed to accurately predict the maximum contact pressure if the active contact region was significantly smaller than that shown in the figure above.

An error indicator tends to give a crude, non-conservative approximation of the deviation from the exact solution if the mesh is coarse relative to local solution variations or the exact solution to the problem posed involves a stress singularity. The following qualitative interpretations of error indicator results exceeding approximately 10% of base solution results are often appropriate:

  • “Significant potential for solution inaccuracy exists in this region.”
  • “The mesh may be too coarse to give a good estimate of solution error in this region.”
  • “Perhaps a stress singularity exists at this corner.”


Warning: Error indicator output variables are approximate and do not represent an accurate or conservative estimate of your solution error. The quality of an error indicator can be particularly poor if your mesh is coarse. The error indicator quality improves as you refine the mesh; however, you should never interpret these variables as indicating what the value of a solution variable would be upon further refinement of the mesh.

Example case: Error indicator on different mesh densities

Abaqus error indicator of a rod: introduction

The following example case is about a rod with rectangular cross section under gravitational load. This case was analyzed six times using different mesh densities; in every subsequent run, the amount of elements in axial direction was doubled. The elements that were used are 8-node linear brick, reduced integration, hourglass control, C3D8R elements.
The figure below shows the rod with the initial mesh consisting of three elements. The gravitational load is applied on positive Z axis.

Stress results of the rod

The figure below shows the stress output [MPa] for every model with different mesh density, starting from a model with 3 elements, to 6, 12, 24, 48 and 96.

In this simple case is easily observed the discretization error created by the different mesh densities. For reference, the calculation of the stress by hand would be 10 [MPa] at the fixed end of the rod and 0 [MPa] on the free end of the rod. It is worth mentioning that the lowest stress value on each model is approximately halved for every subsequent mesh density, due to the position of the integration point over the length of the rod. As the element dimension in the axial direction of the rod become smaller, the integration points of the first and last elements approach the physical boundaries of the rod and the calculated stress value on those integration points comes closer to the analytical calculation of 0 [MPa] and 10 [MPa].

Error indicator results of the rod

For this very simple case, it could be possible to estimate the error indicator output using a very simple approach. The figure below is a graph showing the stress distribution over the length of the rod.

The three different graphs refer to the analytical calculation of the stress along with the discretized calculation using a three-element mesh and a six-element mesh. From that graph is easily calculated that for i.e. the first element of the three-element model (0-33.3 [mm]) the error at the nodes of the element is ~1.67 [MPa] dropping linearly to 0 [MPa] at the integration point in the middle of the element (16.7 [mm]). The averaged error value over the whole element can be calculated as half of the maximums, so ~0.83 [MPa], which is a simple estimation of the discretization error and a prediction for at least the order of magnitude of the error indicator output that Abaqus will calculate.

Following the same simple approach for the six-element model, one can easily observe that the estimated error will be approximately half from the value of the three-element model, which leads to the conclusion that doubling the amount of elements along the length of the rod leads to half the error indicator value.

The figure below shows the corresponding error indicator output (MISESERI) for the six models with the different mesh densities.

The estimated error of ~0.83 [MPa] for the three-element model is not exactly met, but the estimated value is quite close to the calculated one and this was a rough approximation into how this output is calculated. Also, the assumption that the error indicator output value will be halved for every doubling of the elements, is actually met, so it is noticeable the influence of the mesh density on the value of the error indicator. This value should be compared to the value of the base solution to estimate the size of the error introduced by the mesh discretization and whether a further refinement of the mesh is desired.

Normalized error indicator results of the rod

The figure below shows the normalized MISESERI output which is calculated based on the formula

It shows the percentage of the value of the error indicator over the value of the FEA calculated stress output.

The maximum normalized MISESERI output is similar between all the models. This is due to the fact that based on the aforementioned used formula the error indicator output that was halved as the amount of elements was doubled, was divided with the lowest stress value that followed exactly the same trend regarding the mesh density. Therefore, the maximum normalized error appears on the free end of the rod where the base solution value is the lowest, which can be confusing and misleading.

For that reason, a different normalized output was calculated based on the formula

In this case, the maximum expected value is, as already mentioned, 10 [MPa]. The results of this updated normalized output are shown in the picture below.

The updated normalized error indicator output is more describing, in this specific case, regarding the amount of error on each model. This output ranges between 9.6% for the three-element model down to 0.3% for the ninety six-element model. Such a threshold should be set by the analyst in order to identify the ideal mesh density and the balance between computational cost and accepted discretization error.

VCollab simulation results

The following file shows a 3D interactive report of the simulation results described before.

Additional considerations for extent of output requests for element error indicator variables

When you request element error indicator output, the request should only apply to elements supported for error indicator output.

The patch recovery technique used to compute element error indicator variables assumes that the solution should be continuous over the element set specified. Abaqus/Standard confirms that your error indicator output specification is consistent with this assumption by checking section property references within the error indicator domain and issues a warning message if the elements in the provided element set refer to distinct section definitions. You can safely ignore this warning if the sections are identical in their properties.

Limitations

Only the following element types are supported for error indicator computations

  • Planar continuum triangles and quadrilaterals
  • Shell triangles and quadrilaterals
  • Tetrahedrals
  • Hexahedrals

Elements with variable nodes are not supported.
Error indicator output is not supported in the following cases

  • Import analysis
  • Restart analysis
  • Post output analysis
  • Map solution analysis
  • Symmetric model generation analysis

References


[1] Zienkiewicz, O. C., & Zhu, J. Z. (1987). A simple error estimator and adaptive procedure for practical engineering analysis. International journal for numerical methods in engineering, 24(2), 337-357.
[2] González-Estrada, O. A., Nadal, E., Ródenas, J. J., Kerfriden, P., Bordas, S. P. A., & Fuenmayor, F. J. (2014). Mesh adaptivity driven by goal-oriented locally equilibrated superconvergent patch recovery. Computational Mechanics, 53(5), 957-976.
[3] Oh, H. S., & Batra, R. C. (1999). Application of Zienkiewicz–Zhu’s error estimate with superconvergent patch recovery to hierarchical p-refinement. Finite elements in analysis and design, 31(4), 273-280.
[4] Gu, H., Zong, Z., & Hung, K. C. (2004). A modified superconvergent patch recovery method and its application to large deformation problems. Finite Elements in Analysis and Design, 40(5-6), 665-687.
[5] Sharma, R., Zhang, J., Langelaar, M., van Keulen, F., & Aragón, A. M. (2018). An improved stress recovery technique for low‐order 3D finite elements. International Journal for Numerical Methods in Engineering, 114(1), 88-103.

Do you need more info?

Feel free to contact sales@4realsim.com if you need help from our support line (for customers only) or our engineering department.