The Zienkiewicz-Zhu error estimator [100], [101] tries to estimate the error made by the finite element discretization. To do so, it calculates for each node an improved stress and defines the error as the difference between this stress and the one calculated by the standard finite element procedure.

The stress obtained in the nodes using the standard finite element procedure is an extrapolation of the stresses at the integration points [19]. Indeed, the basic unknowns in mechanical calculations are the displacements. Differentiating the displacements yields the strains, which can be converted into stresses by means of the appropriate material law. Due to the numerical integration used to obtain the stiffness coefficients, the strains and stresses are most accurate at the integration points. The standard finite element procedure extrapolates these integration point values to the nodes. The way this extrapolation is done depends on the kind of element [19]. Usually, a node belongs to more than one element. The standard procedure averages the stress values obtained from each element to which the node belongs.

To determine a more accurate stress value at the nodes, the Zienkiewicz-Zhu procedure starts from the stresses at the reduced integration points. This applies to quadratic elements only, since only for these elements a reduced integration procedure exists (for element types different from C3D20R the ordinary integration points are taken instead) . The reduced integration points are superconvergent points, i.e. points at which the stress is an order of magnitude more accurate than in any other point within the element [7]. To improve the stress at a node an element patch is defined, usually consisting of all elements to which the nodes belongs. However, at boundaries and for tetrahedral elements this patch can contain other elements too. Now, a polynomial function is defined consisting of the monomials used for the shape function of the elements at stake. Again, to improve the accuracy, other monomials may be considered as well. The coefficients of the polynomial are defined such that the polynomial matches the stress as well as possible in the reduced integration points of the patch (in a least squares sense). Finally, an improved stress in the node is obtained by evaluating this polynomial. This is done for all stress components separately. For more details on the implementation in CalculiX the user is referred to [53].

In CalculiX one can obtain the improved CalculiX-Zhu stress by selecting ZZS underneath the *EL FILE keyword card. It is available for tetrahedral and hexahedral elements. In a node belonging to tetrahedral, hexahedral and any other type of elements, only the hexahedral elements are used to defined the improved stress, if the node does not belong to hexahedral elements the tetrahedral elements are used, if any.