6. Implementation and use in Code_Aster#
The quantity error estimator of interest is implemented in Code_Aster in mechanics for all elements, for C_ PLAN, D_ PLAN, AXIS and 3D models.
To estimate the error in terms of quantity of interest, we saw that it was necessary to solve an adjunct problem whose load in effort is the quantity of interest. The following table summarizes and groups the loads to be imposed in*Code_Aster*, using the AFFE_CHAR_MECA command, for each of the quantities of interest. The table is given for 2D but 3D is easy to deduce. For the component quantities of the constraints, the value to be indicated is 1.0 for the diagonal terms and 0.5 for the others.
\(Q(v)\) |
AFFE_CHAR_MECA keyword |
Component |
|
Average of a component of the displacement on a contour |
\(\frac{1}{\mid \gamma \mid }{\int }_{\gamma }{v}_{x}\mathrm{d\Gamma }\) |
FORCE_CONTOUR |
FX=1. |
\(\frac{1}{\mid \gamma \mid }{\int }_{\gamma }{v}_{y}d\Gamma\) |
FORCE_CONTOUR |
FY=1. |
|
Average of a displacement component on a subdomain |
\(\frac{1}{\mid \omega \mid }{\int }_{\omega }{v}_{x}d\Omega\) |
FORCE_INTERNE |
FX=1. |
\(\frac{1}{\mid \omega \mid }{\int }_{\omega }{v}_{y}d\Omega\) |
FORCE_INTERNE |
FY=1. |
|
Average of the normal displacement on a contour |
\(\frac{1}{\mid \gamma \mid }{\int }_{\gamma }{v}_{n}d\Gamma\) |
PRES_REP |
PRES =1. |
Average of a component of the constraints on a subdomain |
\(\frac{1}{\mid \omega \mid }{\int }_{\omega }{\sigma }_{\mathrm{xx}}d\Omega\) |
PRE_EPSI |
EPXX =1. |
\(\frac{1}{\mid \omega \mid }{\int }_{\omega }{\sigma }_{\mathrm{yy}}d\Omega\) |
PRE_EPSI |
EPYY =1. |
|
\(\frac{1}{\mid \omega \mid }{\int }_{\omega }{\sigma }_{\mathrm{xy}}d\Omega\) |
PRE_EPSI |
EPXY =0.5 |
When the quantities of interest are not linear or when their expression does not allow them to be easily expressed in terms of loading, special treatment is necessary. For non-linear quantities, the theory does not apply; that is why they must be linearized. The Von Mises constraint is a typical example. Linearization brings us to the following formula:
: label: EQ-None
{Q} ^ {mathrm {vm}} (v) =frac {1} {midomegamid} {int} _ {omega} (frac {3} {2 {sigma} _ {sigma} _ {mathrm {vm}} _ {mathrm {vm}}} {mathrm {vm}}}} ({u} ^ {h})):sigma} ^ {h})):sigma ({u} ^ {h})):sigma ({u} ^ {h})):sigma ({u} ^ {h})):sigma (v) DOmega
Thus, the Von Mises quantity of interest is approximated by another linear quantity. The load to be imposed in*Code_Aster* is a constraint field composed of:
: label: EQ-None
frac {mathrm {3K}} {2}frac {{sigma} ^ {h} ({u} ^ {h})} {{sigma} _ {mathrm {vm}}} {mathrm {vm}}} ({u} ^ {h})}
When the definition of quantity is not adapted to the expression of a load, it is also necessary to use a treatment that will be specific to each quantity of interest. For our applications, stress intensity factors (FIC) are interesting quantities. Using a method based on the extrapolation of the jumps of the movements on the lips of the crack, we can express the FIC in the following way, with \(C=1\) in plane stress and \(C=1-{\nu }^{2}\) in plane deformation:
: label: EQ-None
K=frac {mathrm {2C}} {{r}} {{r} _ {mathrm {max}} ^ {2}} {int} _ {0} ^ {{r} _ {mathrm {max}}} {mathrm {max}}}}}sqrt {r}}}sqrt {r}}left [U (r)right]mathrm {r} _ {mathrm {max}}}} {mathrm {max}}}}sqrt {r}}
This makes it possible to obtain the following expression:
: label: EQ-None
Q (v) = {K} _ {i} (v) = {int} (v) = {int} _ {int} _ {int} _ {i} (v) = {text {sup}}cdot vmathrm {dr} (v) = {int} _ {int} _ {gamma} _ {{gamma} ^ {text {sup}}} {f} ^ {text {sup}}} {text {sup}}} {text {sup}}}cdot {inf}}}cdot vmathrm {dr} + {int} _ {int} _ {int} _ {gamma} _ {{gamma}} ^ {text {sup}}} {f} ^ {text {sup}} m {dr}
with:
: label: EQ-None
{f} ^ {text {sup}} =frac {mathrm {2C}} {{r} _ {mathrm {max}} ^ {2}}} ^ {2}} g (r)sqrt {r}
with \(g(r)\) vector that orients the crack.
In Code_Aster, this vector is known as VECT_K1. We can thus see that it is necessary to impose an effort on each of the lips of the crack (:math:`` and \({f}^{\text{inf}}\)). The following table shows these two results.
\(Q(v)\) |
AFFE_CHAR_MECA_F keyword |
Component |
||
Von Mises stress mean |
\(\frac{1}{\mid \omega \mid }{\int }_{\omega }{\sigma }_{\mathrm{vm}}d\Omega\) |
|
Compound field |
|
Stress Intensity Factor |
\({K}_{I}\) \({K}_{\mathrm{II}}\) \({K}_{\mathrm{III}}\) |
|
F+ on upper lip. F- on lower lip. |
The calculation of the error in terms of quantity of interest involves the resolution of an elastic calculation (corresponding to the dual problem) whose load is, on the one hand, the same as that of the main (or primal) problem on Dirichlet conditions (therefore in imposed displacement), and on the other hand, the one representing the quantity of interest chosen. You must then provide this result in CALC_ERREUR using the RESU_DUAL keyword.
Finally, the various options available in CALC_ERREUR are:
“QIZ1_ELEM” (respectively “QIZ2_ELEM”): error estimator in quantity of interest based on the Zhu-Zienkiewicz method. You must first calculate the option “ERZ1_ELEM” or “ERZ2_ELEM”.
“QIRE_ELEM” (per element) or “QIRE_ELNO” (per element at the nodes): error estimator in quantity of interest based on residues in mechanics. The option “ERME_ELEM” must be calculated beforehand.
Examples of applications on industrial structures can be found in the thesis of J. DELMAS [bib26].
List of tests using error estimators in quantity of interest:
Interest quantity error estimator test |
sslv113c |
quantity of interest error estimator test |
sslv113d |
Volume mesh error indicator and functions |
sslv153a |
Detecting singularities in a cracked plate (TRIA3) |
ssnop130a |
Error estimators in quantities of interest for calculating fic |
zzzz257a |
Error estimators in quantities of interest for calculating fic |
zzzz257b |
Error estimators in quantities of interest for calculating fic |
zzzz257c |
Error estimators in quantities of interest for calculating fic |
zzzz257d |