The work presented in this paper uses a GOEE approach that utilizes a dual formulation, the Zienkiewicz-Zhu (ZZ) smoothing recovery for the strain, and a GOEE definition that incorporates these methods, expanding the work in [45]. This GOEE estimates the error due to the mesh in the global system. The other aspect of this paper focuses on multi-scale propagation of this GOEE field into a refined local feature, discussed in further detail in “Application to multi-scale GOEE propagation” Section. To better illustrate this GOEE approach and multi-scale propagation, a general workflow is presented in Fig. 1. This illustrates how some methods are used multiple times, such as the ZZ recovery. As a note of nomenclature, the use of the term “primal solution” refers to a traditional FE evaluation utilizing the coarse global mesh with applied Boundary Conditions (BCs) and forces resulting in the nodal displacements. This section is split into three sections that describes the main formulations used in this work, which are further referenced in Fig. 1. In “Global GOEE approach” Section, the definition of the dual formulation, how it is calculated, the ZZ recovery, and the GOEE formulations are expressed. “Custom element formulation” Section explains the custom shell elements used in this work to mimic the ABAQUS S4 shell element using python, but with the ability to output the required quantities used in the dual formulation. Finally, “Specifics for using the GOEE” Section describes how this specific implementation makes adjustments on the original definition of this methodology due the multi-scale nature and the material used in the test system.

### Global GOEE approach

The first method used in the GOEE approach utilized in this work is the introduction of a dual formulation to characterize a Quantity of Interest (QoI) such as stress at a location. Utilizing this formulation requires an additional FE evaluation to calculate the QoI that is used to estimate the error [46, 47]. The first evaluation is the standard primal formulation. This is a traditional FE evaluation with applied forces resulting in nodal displacements. The system considered in this work is static, so only the stiffness matrix is required for these calculations, but this methodology is not limited to static simulations. Additional information (in addition to the stiffness matrix and displacement) from the primal solution is required to formulate the GOEE estimate and is discussed later in this section. For any given system, only one primal solution is required. In the current implementation, the stiffness matrix from the primal solution is also used in the dual equations of motions to eliminate the need to regenerate the system multiple times thus reducing the computational time.

The dual formulation, used in quantifying the error, is heavily dependent on the selection of the QoI. This formulation requires the generalized displacement due to a generalized forcing vector. For a static system, this can be expressed as:

$$\begin{aligned} \left[ K\right] \left\{ Z_i \right\} = \left\{ Q_i \right\} , \end{aligned}$$

(1)

where \(\left[ K\right] \) is the stiffness matrix, \(\left\{ Z_i \right\} \) is the generalized displacement corresponding to the DoF’s contribution to the *i*th QoI, and \(\left\{ Q_i \right\} \) is the generalized forcing vector that depends on the QoI and location. The stiffness matrix is the same as the primal stiffness in the cases presented in this paper, while the generalized forcing vector is dependent on the type of QoI (average stress, max displacement, etc.) and the location of interest.

To calculate \(\left\{ Q_i \right\} \), the QoI must be written in the FE setting as:

$$\begin{aligned} QoI_i = \left\{ Q_i \right\} ^T \left\{ u \right\} , \end{aligned}$$

(2)

where \(\left\{ u \right\} \) is the displacement field from the primal solution. In this work, the average displacement in a region is considered due to the utilization in the multi-scale propagation workflow. As an example, the average displacement in the y-direction, Eq. 2 is expressed as:

$$\begin{aligned} \bar{u_y}=\left\{ Q_{u_y} \right\} ^T \left\{ u \right\} , \end{aligned}$$

(3)

where the value of the *Q* vector is calculated as:

$$\begin{aligned} \left\{ Q_{u_y} \right\} =\frac{1}{|\Omega _{0i}|}\int _{\Omega _{0i}} N_y \left[ {\hat{i}}\right] \; d\Omega _{0i}, \end{aligned}$$

(4)

with \(N_y\) being a matrix of the y-component of the \(C^0\) elemental shape functions, \(\left[ {\hat{i}}\right] \) is a pointer matrix to identify the DoFs associated with the location within the integration (this is 24 by the number of DoFs where each row is comprised of zeros with a single unity entry), and \(\Omega _{0i}\) is the total domain being considered. This integration is typically decomposed by the element boundaries since both \(N_y\) and \(\left[ {\hat{i}}\right] \) are dependent on the which element is being evaluated.

This formulation is useful if a specific region is desired. For this work, average QoI measurements are of interest due to the multi-scale propagation. Taking the displacement at a specific point would require information at an exact location, which can introduce errors associated with interpolation. To eliminate this issue, a sharp Gaussian distribution is applied centered at the location of interest. This results in, with the addition of Gauss quadrature integration, the calculation of the *Q* vector in Equation 4 is approximated via:

$$\begin{aligned} \left\{ Q_{u_y} \right\} \approx \frac{1}{\Omega _{0i}}\sum _k^{N_{int}} N_y \left[ {\hat{i}}\right] _k |J_k| W_k \hat{W_k}, \end{aligned}$$

(5)

where *k* is the Gauss quadrature location with a total of \(N_{int}\) in the domain, \(|J_k|\) is the determinate of the Jacobian matrix, \(W_k\) is the Gauss quadrature weight for the integration point, and \(\hat{W_k}\) is a spatial distribution weight (via the narrow Gaussian). This formulation is used since the information from the FE (Gaussian weights, Jacobian, etc.) is known at the Gaussian integration locations. With this formulation, there is one normalization constraint of:

$$\begin{aligned} \sum _k^{N_{int}} \hat{W_k} = 1, \end{aligned}$$

(6)

due to the applied spatial weighting function.

The spatial weights (\(\hat{W_k}\)) in the analysis is based on the Euclidean distance from the target location. In this paper, these weights are based on a Gaussian distribution via:

$$\begin{aligned} \hat{W_k}=a \exp \left( -\frac{|x_k-x_i|^2}{2l^2}\right) , \end{aligned}$$

(7)

where *l* is a user-defined length, \(x_i\) is the location of the centre of the distribution, \(x_k\) is the location of the Gaussian integration point, and *a* is a normalization factor to ensure Eq. 6 is valid. Once the *Q* vector is determined for a specific QoI, then the FE analysis can be recomputed in order to determine the dual solution \(\left\{ Z_i \right\} \).

The main calculation of this GOEE approach is based on the difference between the discontinuous and smoothed strain fields. To create a smoothed field, ZZ recovery is used. ZZ recovery creates a piece-wise continuous field [48, 49] of the directional strains. For the shell element considered, the shape functions are \(\hbox {C}^0\) continuous, such that the derivative (strain) is not continuous across element boundaries. In order to make the strain continuous, the ZZ recovery method is used to create a smooth strain field [50, 51].

To perform the ZZ recovery, the strain must be known at specific locations. For the use in FE, these locations are specified as the Gauss integration locations (similar to the calculation of the stiffness matrix). Once these values are known, then the ZZ recovery can be performed for the location of each node in each component of stress individually. For each node, the ZZ recovery averages the known strain values at the nearby integration points. This work utilizes the Nearest Neighbour’s (NN) approach, which requires the information about the nodal connectivity (which nodes are in each element). The NN approach then takes the nearest integration point location for each element that node is connected to and averages them based on distance. Note that this information is easily available in the mesh data that describes each element as a collection of nodes.

Once the nodal values of the recovered strain field are determined, a surface is applied to the system. For ease-of-use, the \(C^0\) element shape functions are used as the basis function for this surface. The equation for this surface is defined as:

$$\begin{aligned} \epsilon ^*(x)=\sum _e N_e(x)\left\{ \epsilon ^* \right\} _e, \end{aligned}$$

(8)

where \(\left\{ \epsilon ^* \right\} _e\) is the recovered strains at the nodal values for element *e*, the superscript \(*\) represents a recovered value, and \(N_e(x)\) are the element shape functions.

Once the ZZ recovery is performed on both the primal and dual strain fields, the GOEE is calculated. This formulation of the GOEE closely follows the work in [52] with slight differences on how the dual problem results are incorporated. The calculation is based on a modification of the energy norm. For the GOEE approach used in this work, the dual problems are implemented into this energy norm to be calculated as:

$$\begin{aligned} GOEE_i = \int _\Omega (\epsilon _u^*-\nabla u_h):C:(\epsilon _{z_i}^* - \nabla z_{hi}) d\Omega , \end{aligned}$$

(9)

with \(\epsilon _u^*\) and \(\epsilon _{z_i}^*\) being the ZZ recovered strain for the primal and dual problem respectively, \(u_h\) is the displacement determined by the primal FE problem, \(z_{hi}\) is the generalized displacement from the dual FE problem (in units of the force normalized QoI), \(\Omega \) is the domain of interest, *A* : *C* is the double dot product of the two tensor quantities, *C* is the material constitutive tensor, and \(\nabla \) is a vector operator of derivatives. In simplified terms, the difference \((\epsilon ^*-\nabla u_h)\) is a measure of the difference between the discontinuous strain field and the smoothed recovered strain field.

### Custom element formulation

Commercial finite element codes, such as ABAQUS [53], are widely used for the structural analysis of components and structures within industrial applications. However, for the purposes of this work, additional information is required to calculate the error estimator that is not returned by ABAQUS. This information is used within the element formulation (to create the stiffness matrix) but is not stored or returnable to the user. To overcome this, a custom, general purpose, iso-parametric, flat shell element has been developed for the simulation of 3D components within Python.

The custom shell element, named Q4, is used to store all the information used in the calculation. In the GOEE evaluations, values such as the strain-displacement matrices, integration point locations, and other quantities are required. For a typical ABAQUS analysis, this information is either not stored in memory or is not easily available. Ideally, this analysis could be performed using ABAQUS’s S4 element if all the information was stored, but due to the black-box nature of the ABAQUS element formulation, this is not possible.

The proposed, degenerate continuum, element formulation, is implemented using the Mixed Interpolation of Tensorial Components (MITC) approach, first attributed, for a quadrilateral, four node elements (MITC4), to [54, 55]. The element formulation uses a bi-linear interpolation with 4 nodes, with 2 \(\times \) 2 Gauss points for the bending and membrane integration with a single point contribution for shear, derived from the Reissner–Mindlin theory assuming linear material/geometric properties and small strains. The MITC4 formulation, developed to reduced shearing locking, has five DoF per mid-surface node, as the rotational stiffness about the z-axis, often termed the drilling DoF, is neglected due to the thin nature of the elements. To allow for three dimensional system and subsequent non-planar global coordinates, the element is implemented with a sixth DoF, but is constrained as a boundary condition. For the purpose of this paper, as the mid-surface is assumed as flat (i.e. there is no curvature to the elements and all nodes are co-planar), the shell element can essentially be classified by the superposition of plane stress, plate bending and shear stress, where the effects are assessed independently [56]. The internal energy for this formulation is defined for each element by a linear geometric interpolation scheme throughout the element, expressed as:

$$\begin{aligned} U^{e} = \frac{1}{2} \int _{\Omega _{e}}\sigma _{b} \cdot \epsilon _{b} d\Omega _{e} + \frac{1}{2} \int _{\Omega _{e}}\sigma _{m} \cdot \epsilon _{m}\Omega _{e} + \frac{\kappa }{2} \int _{\Omega _{e}}\sigma _{s} \cdot \epsilon _{s}\Omega _{e}, \end{aligned}$$

(10)

where \(\sigma _\alpha \) and \(\epsilon _\alpha \) are defined for the corresponding bending, membrane and shear components \(\{\alpha \}\) for each element domain \(\Omega _{e}\), and \(\sigma _\alpha \cdot \epsilon _\alpha \) is the tensor dot product of the stress and strain. The linear-elastic stress-strain relations are defined for a homogeneous isotropic material as:

$$\begin{aligned} \sigma _{\alpha } = C_{\alpha } \cdot \epsilon _{\alpha }, \end{aligned}$$

(11)

where \(\epsilon _{\alpha }\) is the applied strain and the material matrix \(C_{\alpha }\) is defined by the constitutive equation for plane stress/plate bending as:

$$\begin{aligned} C_{m}= & {} \frac{E t}{(1-v^{2})} \left[ \begin{array}{ccc} 1 &{} \nu &{} 0 \\ \nu &{} 1 &{} 0 \\ 0 &{} 0 &{} \frac{1-\nu }{2} \end{array} \right] \end{aligned}$$

(12a)

$$\begin{aligned} C_{b}= & {} \left( \frac{t^{2}}{12} \right) C_{m} \end{aligned}$$

(12b)

$$\begin{aligned} C_{s}= & {} \left[ \begin{array}{cc} G &{} 0 \\ 0 &{} G \end{array} \right] , \end{aligned}$$

(12c)

where *E* and \(\nu \) are the material Young’s modulus and Poisson’s ration, *t* is the shell thickness, which is constant over the shell, and *G* is the shear modulus given as:

$$\begin{aligned} G = \kappa \frac{E t}{2(1+\nu )}, \end{aligned}$$

(13)

where \(\kappa \) is an additional classical shear correction factor. The coefficient is applied to take into account the thickness variation at the surface rather than the theoretically defined constant distribution for the transverse shear stress across the thickness. In accordance with [57], *k* is usually taken equal to 5/6 for a homogeneous, isotropic, rectangular section with no curvature.

The generalised strain-displacements for bending, membrane and shear are independently interpolated in the local coordinates by:

$$\begin{aligned} u (x,y) = \left\{ \begin{array}{c} u_x \\ u_y \\ u_z \\ \theta _{x} \\ \theta _{y} \end{array} \right\} = \sum _{n=1}^{4} N_{n}(\xi ,\eta ) u_{n}, \end{aligned}$$

(14)

where \(N_{n}(\xi ,\eta )\) are the shape functions of a standard bi-linear four node element and \(u_n\) is the nodal deflection for node *n*. With strains computed from displacements from the localised strain matrices for the element via:

$$\begin{aligned} \epsilon _{\alpha }(\xi ,\eta ) = B_{\alpha }(\xi ,\eta ) \{u_n\}, \end{aligned}$$

(15)

with the strain-displacement matrices \(B_{\alpha }\) are defined by the derivation of the shape functions by defining individual matrices, \(\{u_n\}\) is the collection of the nodal DoF based on the ordering of \(B_\alpha \). For bending \(B^{(e)}_{b}\), membrane \(B^{(e)}_{m}\), and shear \(B^{(s)}_{m}\), the matrices are given as:

$$\begin{aligned} B^{(e)}_{b}= & {} \left[ \begin{array}{ccccccccccccc} 0 &{} 0 &{} 0 &{} \frac{\partial N_{1}}{\partial x} &{} 0 &{} \dots &{} 0 &{} 0 &{} 0 &{} \frac{\partial N_{4}}{\partial x} &{} 0 \\ 0 &{} 0 &{} 0 &{} 0 &{} \frac{\partial N_{1}}{\partial y} &{} \dots &{} 0 &{} 0 &{} 0 &{} 0 &{} \frac{\partial N_{4}}{\partial y} \\ 0 &{} 0 &{} 0 &{} \frac{\partial N_{1}}{\partial x} &{} \frac{\partial N_{1}}{\partial y} &{} \dots &{} 0 &{} 0 &{} 0 &{} \frac{\partial N_{4}}{\partial x} &{} \frac{\partial N_{4}}{\partial y} \end{array} \right] \end{aligned}$$

(16a)

$$\begin{aligned} B^{(e)}_{m}= & {} \left[ \begin{array}{ccccccccccccc} \frac{\partial N_{1}}{\partial x} &{} 0 &{} 0 &{} 0 &{} 0 &{} \dots &{} \frac{\partial N_{4}}{\partial x} &{} 0 &{} 0 &{} 0 &{} 0 \\ 0 &{} \frac{\partial N_{1}}{\partial y} &{} 0 &{} 0 &{} 0 &{} \dots &{} 0 &{} \frac{\partial N_{4}}{\partial y} &{} 0 &{} 0 &{} 0 \\ \frac{\partial N_{1}}{\partial x} &{} \frac{\partial N_{1}}{\partial y} &{} 0 &{} 0 &{} 0 &{} \ldots &{} \frac{\partial N_{4}}{\partial x} &{} \frac{\partial N_{4}}{\partial y} &{} 0 &{} 0 &{} 0 \end{array} \right] \end{aligned}$$

(16b)

$$\begin{aligned} B^{(e)}_{s}= & {} \left[ \begin{array}{ccccccccccccc} 0 &{} 0 &{} \frac{\partial N_{1}}{\partial x} &{} -N_{1} &{} 0 &{} \dots &{} 0 &{} 0 &{} \frac{\partial N_{4}}{\partial x} &{} -N_{4} &{} 0 \\ 0 &{} 0 &{} \frac{\partial N_{1}}{\partial y} &{} 0 &{} -N_{1} &{} \dots &{} 0 &{} 0 &{} \frac{\partial N_{4}}{\partial y} &{} 0 &{} -N_{4} \end{array} \right] . \end{aligned}$$

(16c)

To account for elements within three-dimensional coordinate space, a transformation of nodal displacements and forces from local to global Cartesian coordinate system is performed separately. For each strain-displacement matrix, this rotation is performed by:

$$\begin{aligned} B_{\alpha }^{\prime } = L^{(e)}_\alpha B_{\alpha }, \end{aligned}$$

(17)

where \(L^{e}_\alpha \) is the transformation matrix, which for flat elements, is constant for all element nodes and is defined using the following expression:

$$\begin{aligned} L^{(e)} =\left[ \begin{array}{cc} \underset{3x3}{\lambda ^{e}} &{} 0 \\ 0 &{} \underset{2x3}{{\hat{\lambda }}^{e}} \end{array} \right] , \end{aligned}$$

(18)

where:

$$\begin{aligned} \lambda ^{(e)} = \left[ \begin{array}{ccc} \lambda _{xx'} &{} \lambda _{xx'} &{} \lambda _{x'z} \\ \lambda _{y'x} &{} \lambda _{y'y} &{} \lambda _{y'z} \\ \lambda _{z'x} &{} \lambda _{z'y} &{} \lambda _{z'z} \end{array} \right] , {\hat{\lambda }}^{e} = \left[ \begin{array}{ccc} -\lambda _{y'x} &{} -\lambda _{y'y} &{} -\lambda _{y'z} \\ \lambda _{x'x} &{} \lambda _{x'y} &{} \lambda _{x'z} \end{array} \right] \end{aligned}$$

(19)

\(\lambda _{x'x}\) is the dot product of the axes \(x'\) and x etc. [56]. In Eq. 18, the matrix is a despite the \(B_\alpha \) matrix only having 2 or 3 rows. To alleviate this issue, only the columns of interest are considered. For example, the shear component only looks at the in-plane rotational DoF, so the transformation matrix only contains the fourth and fifth column making \(L_s^{(e)}\) a 5 \(\times \) 2 matrix.

The element stiffness matrix is therefore obtained by numerical integration for each element by:

$$\begin{aligned} K^{e} = \int _{\Omega _{e}} B^{\prime T}_{b} : C_{b} : B^{\prime }_{b} d \Omega _{e} + \int _{\Omega _{e}} B^{\prime T}_{m} C_{m} : B^{\prime }_{m} d \Omega _{e} + \int _{\Omega _{e}} B^{\prime T}_{s} : C_{s} : B^{\prime }_{s} d \Omega _{e}. \end{aligned}$$

(20)

The vector of nodal forces, which are equivalent to distributed forces *P* are then calculated as:

$$\begin{aligned} f^{e} = \int _{\Omega _{e}} t N \cdot P d\Omega _{e} + \int _{\Gamma _{e}} t N \cdot {\hat{t}} d \Gamma _{e}, \end{aligned}$$

(21)

where \({\hat{t}}\) is the surface traction and \(\Gamma _{e}\) are the Dirichlet BCs. This selective integration for both the stiffness matrix and force vector, using a classical shell theory, is considered a simple procedure for avoiding shear locking of the element.

#### Element formulation Verification

To evaluate the performance of the custom element implementation, two benchmark studies have been investigated, the Cook’s trapezoidal skew beam and the hemispherical shell with an \(18^o\) hole. The purpose of the verification is to assess the accuracy of the shell element (Q4) by comparing it to a referenced benchmark solution and the widely used S4 element within ABAQUS.

The Cook-trapezoidal beam, proposed in [58], is used to assess the in-plane membrane performance when loaded in shear, under moderate distortion. The standard skew beam test, represented in Fig. 2a, is defined as a tapered beam, clamped on the left edge and subjected to a uni-axial traction load. The structure has a thickness of \(h = 1.0\), and plane stress, material properties: Young’s modulus \(E = {3}{\times } 10^{7}\) Pa and Poisson’s ratio \(\nu = 1/3\). Where the loading, given as \(P = 1.0\), is specified as a uniformly distributed shear load across the right end edge of the beam.

Figure 3a,b shows the results of the normalized convergence accuracy for both the Q4 and S4 element, for increasing \(N{\times }N\) element mesh densities (\(N = \)2, 4, 8, 16, 32 and 64), with uniform, structured mesh patterns. Reference solution values for both the vertical displacement at point *C* is \(U_{REF(C)} = 23.96\) (Fig. 3a) and the maximum and minimum principle stress at points *A* and *B* are \(\sigma _{REF(A)} = 0.237\) and *B* \(\sigma _{REF(B)} = -0.202\) (Fig. 3b), are taken from [59] and [60] respectively, using a refined numerical model. With the stresses at point *A* and *B* calculated as:

$$\begin{aligned} \sigma _{1,2} = \left( \frac{\sigma _{x}+\sigma _{y}}{2} \right) \pm \tau _{max},\quad \tau _{max} = \sqrt{ \left( \frac{\sigma _{x}-\sigma _{y}}{2} \right) +(\tau _{xy})^2 }, \end{aligned}$$

(22)

where \(\sigma \) and \(\tau \) are the principle stresses. The displacement and stress results show that although the Q4 element is not as accurate for coarse meshes, both elements are sensitive to distortion in membrane deformation problems. With Q4 requiring a finer mesh to be able to converge to the reference solution. Verification results by [61], using the same mesh densities, show that the measured vertical tip displacement for the Q4 element is equivalent to the MITC4 element results they present. The verification of both displacement and stress shows that the Q4 element is valid for natural values (displacement) and its derivative (stress/strain), which are both used in the GOEE approach in this work.

The hemispherical shell with \(18^o\) hole problem, proposed by [62], and represented in Fig. 2b, is investigated to evaluate the elements performance under in-extensional bending deformations and rigid body rotations, normal to the shell surface. The, double-curved, hemisphere, with a radius \(R = 10.0\), is defined as a thin shell, thickness \(h = 0.04\), with an \(18^{o}\) open hole at top and in plane stress material properties: Young’s modulus \(E = {6.825}{\times } 10^{7}\) Pa and Poisson’s ratio \(\nu = 0.3\). Where the loading is defined as two pairs of opposite radial concentrated loads \(P = 1.0\). Utilizing axial symmetry, one quarter of the structure, corresponding to the region *ABCD*, is modelled with symmetrical boundary conditions along edges *AC* and *BC*. As with the previous benchmark, the same element mesh densities (\(N{\times }N\)) are evaluated, with uniform, structured mesh patterns. A radial displacement coincident value at point *A*, \(U_{REF(A)} = 0.094\), is used as the reference solution. [63]. The normalized convergence displacement \((U_{A}{/}U_{REF(A)})\) is illustrated in Fig. 3c, comparing Q4 and S4 against the referenced solution. One interesting aspect to note is the increased accuracy, even with a course mesh, compared to the Cook’s skew beam. These two validation cases demonstrates that the Q4 element used in this work is comparable to other shell elements commonly used.

Currently the proposed formulation is suitable for the analysis of thin shells of arbitrary shapes and has been verified against well known membrane and bending benchmark problems. With the latter agreeing well with the referenced solution for lower mesh densities. For membrane dominated problems, although its overall accuracy, under in plane shear deformation, is reduced, it can converge to an accurate solution when finer meshes are used. Minimising mesh distortion. To increase overall accuracy, a shell element formulation, with a second order geometric interpolation scheme, would need to be adopted. Where the formulation for bending and membrane contributions interact and the cannot be treated independently using the current super position approach [64]. This is a subject of ongoing research. However, it should be noted that the example problems implemented in the current work avoids this complexity by implementing only thin, flat elements, with a uniform mesh.

### Specifics for using the GOEE

The GOEE approach described in “Global GOEE approach” Section uses a single dual problem with a single material constitutive matrix. In this work, these two details are modified to match the desired analysis. The first detail discussed is the single material constitutive matrix. This approach works perfectly when the element is constructed with a single material constitutive matrix. However, this work (as described in “Custom element formulation” Section) separates the construction of the stiffness matrix into three components of bending, membrane, and shear, thus creating three material constitutive matrices.

Due to the calculation of the stiffness matrix being comprised of bending, membrane, and shear components, the GOEE is also comprised of three components. The GOEE is calculated for each component then summed as:

$$\begin{aligned} GOEE = GOEE_b + GOEE_m + GOEE_s, \end{aligned}$$

(23)

where \(GOEE_\alpha \) is the GOEE calculated with the bending, membrane, and shear material constitutive matrix. One aspect that can be noticed in “Custom element formulation” Section is that the material constitutive matrices do not span all six DoF of the system. To account for this, Eq. 9 does not use all six DoF for each component, only the DoF used for each component is utilized for the GOEE calculation. For example, the shear component only uses the in-plane rotational DoF. This calculation is done on a local coordinate system then transformed back into the global coordinate system.

The second main modification is the use of multiple dual problems. In the initial approach, there is only one dual problem being performed. However, in this work, multiple dual problems are used since it takes the error at multiple points (boundary DoFs for the sub-model). To account for this, multiple GOEE are also computed. For each dual problem, there is a corresponding GOEE value. These values are stored and used in a method that is described in “Application to multi-scale GOEE propagation” Section.