Construction of the recalculated stress field ================================================ 1987 version ------------ Since solution :math:`{u}_{h}` resulting from equation [:ref:`éq 2.1-1 <éq 2.1-1>`] is :math:`{C}_{0}` out of :math:`\Omega` (due to the choice of functions of the form :math:`{C}_{0}`), it follows that :math:`{\sigma }_{h}` calculated by [:ref:`éq 2.1-2 <éq 2.1-2>`] is discontinuous at the interfaces of the elements. To obtain acceptable results on nodal stresses, a node average or a projection method is generally used. It is the latter method that is adopted here. We assume that :math:`{\sigma }^{\text{*}}` is interpolated by the same form functions as :math:`{u}_{h}`, i.e.: .. _RefEquation 3.1-1: :math:`{\sigma }^{\text{*}}=N{\stackrel{ˉ}{\sigma }}^{\text{*}}` eq 3.1-1 and we perform a global least-squares smoothing of :math:`{\sigma }_{h}`, which amounts to minimizing the functional :math:`J(\tau )=\underset{\Omega }{\int }{}^{t}\text{}(\tau -{\sigma }_{h})(\tau -{\sigma }_{h})d\Omega` in the space generated by :math:`N`. By derivation, :math:`{s}^{}` should check :math:`\underset{\Omega }{\int }{}^{t}\text{}N({\sigma }^{\text{*}}-{\sigma }_{h})d\Omega =0` using the equation [:ref:`éq 3.1-1 <éq 3.1-1>`], we get the linear system: :math:`M\left\{{\stackrel{ˉ}{\sigma }}^{\text{*}}\right\}=\left\{b\right\}` with :math:`M=\underset{\Omega }{\int }{}^{t}\text{}\mathrm{NN}d\Omega` and :math:`\left\{b\right\}=\underset{\Omega }{\int }{}^{t}\text{}N{\sigma }_{h}d\Omega` This global system must be solved on each of the components of the stress tensor. Matrix :math:`M` is calculated and inverted only once. Version 1992 ------------ The constraint of field :math:`{\sigma }^{\text{*}}` differs from the 1987 version in the following way: We assume :math:`{\sigma }^{\text{*}}` polynomial of the same degree as the displacements on all the elements having an internal vertex node :math:`S` in common. We note :math:`{S}_{K}\mathrm{=}\underset{S\mathrm{\in }K}{\mathrm{\cup }}K` this set called patch. For each component of :math:`{\sigma }^{\text{*}}`, we write: .. _RefEquation 3.2-1: :math:`{\sigma }^{\text{*}}{\mid }_{{S}_{K}}={\text{Pa}}_{s}` eq 3.2-1 +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+ |where |:math:`P` contains the appropriate polynomial terms | +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+ | |:math:`{a}_{s}` the unknown coefficients of the corresponding monomials | +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+ |Example: |:math:`\mathrm{P1}P=\left[\mathrm{1,}x,y\right]` :math:`{a}_{s}{}^{t}=\left[{a}_{1},{a}_{2},{a}_{3}\right]`| + .. image:: images/Object_74.svg + + | :width: 24 | | + :height: 14 + + | | | + + + | | | +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+ :math:`\mathrm{Q1}P=\left[\mathrm{1,}x,y,\mathrm{xy}\right]` :math:`{a}_{s}={}^{t}\text{}\left[{a}_{1},{a}_{2},{a}_{3},{a}_{4}\right]` The determination of the coefficients of polynomial :math:`{a}_{s}` is done by minimizing the functional: :math:`\begin{array}{cc}F(a)& \text{=}\sum _{i=1}^{N}{({\sigma }_{h}({x}_{i},{y}_{i})-{\sigma }^{\text{*}}{\mid }_{{S}_{K}}({x}_{i},{y}_{i}))}^{2}\\ & =\sum _{i=1}^{N}{({\sigma }_{h}({x}_{i},{y}_{i})-P({x}_{i},{y}_{i}){a}_{s})}^{2}\end{array}` (discrete local smoothing of :math:`{\sigma }_{h}` by least squares) .. csv-table:: "where", ":math:`({x}_{i},{y}_{i})` are the coordinates of the points GAUSS on :math:`{S}_{K}`." "", ":math:`N` is the total number of GAUSS points on all items in the patch" Solution :math:`{a}_{s}` verifies: :math:`\sum _{i=1}^{N}{}^{t}\text{}P({x}_{i},{y}_{i})P({x}_{i},{y}_{i}){a}_{s}=\sum _{i=1}^{N}{}^{t}\text{}P({x}_{i},{y}_{i}){\sigma }_{h}({x}_{i},{y}_{i})` Hence :math:`{a}_{s}={A}^{\text{-}1}b` with :math:`A=\sum _{i=1}^{N}{}^{t}\text{}P({x}_{i},{y}_{i})P({x}_{i},{y}_{i})` :math:`A` can be very poorly conditioned (especially on high-grade elements) and therefore impossible to reverse in this form. To remedy this problem, the authors [:ref:`bib4 `] proposed normalizing the coordinates on each patch, which is the same as changing variables: :math:`\begin{array}{c}\stackrel{ˉ}{x}\mathrm{=}\mathrm{-}1+2\frac{x\mathrm{-}{x}_{\text{min}}}{{x}_{\text{max}}\mathrm{-}{x}_{\text{min}}}\\ \stackrel{ˉ}{y}\mathrm{=}\mathrm{-}1+2\frac{y\mathrm{-}{y}_{\text{min}}}{{y}_{\text{max}}\mathrm{-}{y}_{\text{min}}}\end{array}` where :math:`{x}_{\text{min}},{x}_{\text{max}},{y}_{\text{min}},{y}_{\text{max}}` represent the minimum and maximum values of :math:`x` and :math:`y` on the patch. This method significantly improves the packaging of :math:`A` and completely eliminates the previous problem. Once :math:`{\mathrm{a}}_{\mathrm{s}}` is determined, the nodal values are derived from equation [:ref:`éq 3.2-1 <éq 3.2-1>`] only on the nodes internal to the patch, except in the case of patches with edge nodes. **Internal patches:** .. image:: images/100018F8000069D500003F75204B9781D82C043E.svg :width: 24 :height: 14 .. _RefImage_100018F8000069D500003F75204B9781D82C043E.svg: +-----------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+ | |points in GAUSS where the :math:`{\sigma }_{h}` constraints are calculated according to the equation []| + .. image:: images/100000AE000000EE000000EE1CF4CBF523C49E33.svg + + | :width: 24 | | + :height: 14 + + | | | + + + | | | +-----------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+ | | | +-----------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+ | |:math:`{\sigma }^{\text{*}}` :math:`{\sigma }^{\text{*}}` compute nodes | + .. image:: images/100000A4000000D4000000D4640DCCB272317F12.svg + + | :width: 24 | | + :height: 14 + + | | | + + + | | | +-----------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+ | | | +-----------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+ | |internal vertex defining the patch | + .. image:: images/1000010E0000017200000172D03BA2D27C22F56C.svg + + | :width: 24 | | + :height: 14 + + | | | + + + | | | +-----------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+ **Edge patches:** .. image:: images/1000062C00000C9C00000CEB9CB48DC6D99E3A20.svg :width: 24 :height: 14 .. _RefImage_1000062C00000C9C00000CEB9CB48DC6D99E3A20.svg: The nodal values at the middle nodes belonging to 2 patches are averaged, the same for the internal nodes in the case of QUAD9. **Note:** *In the case of finite elements of different types, the choice of* :math:`P` in equation [:ref:`éq 3.2-1 <éq 3.2-1>`] is difficult (validity problems of :math:`{a}_{s}` *if the space is too rich, loss of super‑convergence if it is not rich enough). A more thorough study seems indispensable.* *This is why the estimator* :math:`\mathit{ZZ2}` *is currently limited to meshes with only one type of element. This restriction does not exist for* :math:`\mathit{ZZ1}` *.* The authors showed numerically [:ref:`bib3 `] that with this choice of :math:`{\sigma }^{\text{*}}`, their estimator was asymptotically accurate for elastic materials whose characteristics are independent of the domain and for all types of elements and that the convergence rates with :math:`h` of :math:`\parallel {e}^{\text{*}}\parallel` were improved compared to the previous version (especially for degree 2 elements): see test case SSLV110 Manual of Validation), resulting in a better estimation of the error. An illustration of these convergence rates can be found in reference [:ref:`bib 5 `].