3Les différents critères de raffinement/déraffinement. Code_Aster HOMARD
Code_Aster
Titre :
Utilisation des indicateurs d’erreur et stratégies[...]
Responsable :
Josselin DELMAS
Version default
Date :
28/02/2013
Page :
8/34
Clé :
U2.08.01
Révision :
10596
bord. Cette option permet de « gommer » au fur et à mesure du découpage les singularités géométriques (voir exemple du rotor au paragraphe 6).
• Quand on adapte un maillage en degré 2 par la commande MACR_ADAP_MAIL, on produit en sortie le nouveau maillage en degré 2. De manière optionnelle (mot clé
MAILLAGE_NP1_ANNEXE), on produira également le même maillage en degré 1. Cette option est intéressante lors d’un calcul thermomécanique où on préconise un maillage linéaire en thermique et quadratique en mécanique.
•
Les mots-clé NIVE_MAX et NIVE_MIN permettent de contrôler le niveau maximal de raffinement, respectivement de déraffinement, d’une maille au cours du processus d’adaptation.
• Le mot-clé DIAM_MIN permet de contrôler la taille minimale d’une maille au cours du processus d’adaptation.
3 Les différents critères de raffinement/déraffinement
On a vu au paragraphe 2.3, qu’on peut repérer les zones à raffiner :
• soit avec un indicateur d’erreur ;
• soit avec un champ (ou sa dérivée) que l’on considère comme une mesure de l’erreur
(température, contrainte, déformation,…). Ce champ peut être exprimé sur les nœuds ou sur les mailles (aux points de Gauss, aux nœuds par élément ou constant par élément). Si le critère est exprimé aux points de Gauss ou aux nœuds par élément, alors HOMARD choisit le maximum de la valeur dans la maille considérée;
• soit par des boîtes.
Pour les indicateurs d’erreur, plusieurs choix s’offrent à l’utilisateur. C’est l’objet des paragraphes suivants.
3.1
Les indicateurs d’erreur
3.1.1 Qu’est-ce un indicateur d’erreur ?
Il est important ici de redonner la définition de ce qu’on entend par indicateur d’erreur (ou estimateur d’erreur) afin que l’utilisateur soit bien conscient de ce que l’on peut faire ou ne pas faire dire à cet indicateur.
Une fonction e est un indicateur d’erreur a posteriori s’il vérifie l’inéquation :
∥
u−u
h
∥≤
e h , u
h
, d où u est le champ de déplacement de la solution exacte,
élément fini,
u h
le champ de déplacement de la solution
∥⋅∥
une norme sur les champs de déplacements, h la taille des éléments et d des données du problème. De plus si
e h , d , u
h
peut être localisé sous la forme :
e h , u
h
, d =
∑
E e
E
u h
, d
2
1
2
alors les quantités
e
E
u h
, d
sont appelées des indicateurs locaux d’erreur.
Pour les deux types d’indicateurs d’erreur (donc deux fonctions e différentes) présents dans
Code_Aster, la norme
∥⋅∥
est une norme en énergie.
3.1.2 Ce qu’il faut retenir
Ces indicateurs d’erreur conduisent à l’estimation d’une erreur globale. Le choix d’une précision globale fondée sur la norme en énergie est souvent délicat à interpréter car il n’y a pas de lien direct quantitatif avec une erreur sur des quantités mécaniques locales (contraintes en un point ou sur une ligne, maximum des contraintes, etc.) et l’erreur en déplacement. Autrement dit, X% de l’indicateur d’erreur dans une maille ne signifie pas qu’il y a X% d’erreur sur la contrainte ou la déformation.
Manuel d'utilisation Fascicule u2.08 : Fonctions avancées et contrôle des calculs
Copyright 2015 EDF R&D - Document diffusé sous licence GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Code_Aster
Titre :
Utilisation des indicateurs d’erreur et stratégies[...]
Responsable :
Josselin DELMAS
Version default
Date :
28/02/2013
Page :
9/34
Clé :
U2.08.01
Révision :
10596
Utilisé seul, c’est-à-dire sans objectif de réaliser de l’adaptation de maillage, l’indicateur ne permet pas de quantifier la qualité du maillage initial, sauf éventuellement à repérer les zones à problème, comme les singularités géométriques ou les forts gradients.
3.1.3 Périmètre d’utilisation
Les indicateurs d’erreur utilisés dans Code_Aster sont des indicateurs a posteriori et sont donc calculés en post-traitement de Code_Aster par la commande CALC_ERREUR. Ce sont des champs constants par élément (donc une valeur par élément fini). Leur domaine d’utilisation est délimité par les contraintes suivantes (on se reportera aux documents de référence donnés au paragraphe pour plus de détails) :
• les erreurs prises en compte sont les erreurs de discrétisation spatiale (donc la taille des éléments employés) ; en particulier, les erreurs de discrétisation temporelle (ou pseudo-temporelle dans le cas de matériaux non-linéaires) sont en dehors de ce périmètre ;
• les phénomènes physiques sont limités à la mécanique (linéaire ou non-linéaire) et à la thermique
(idem.) ;
• en mécanique comme en thermique, le comportement peut être linéaire ou non linéaire (sauf pour l’estimateur d’erreur de Zhu-Zienkiewicz en mécanique qui ne traite que le comportement linéaire), sachant que les résultats théoriques des indicateurs d’erreur sont obtenus dans le domaine linéaire (leur utilisation dans le domaine non-linéaire n’est donc pas basé sur des résultats théoriques mais sur une constatation empirique de leur intérêt) ;
• les éléments utilisés peuvent être quelconques pour l’utilisation des indicateurs d’erreurs (sauf pour l’estimateur d’erreur de Zhu-Zienkiewicz en mécanique, qui ne traite que les éléments 2D ; l’estimateur
ZZ2
n’accepte que des maillages composés soit de triangles soit de quadrangles) ;
Ces éléments peuvent être linéaires ou quadratiques.
3.1.4 Estimateur d’erreur en mécanique
Il existe deux types d’estimateur pour la mécanique :
• L’estimateur d’erreur de Zhu-Zienkiewicz [bib5] qui se calcule directement dans l’opérateur
CALC_ERREUR avec les options ‘ERZ1_ELEM’ pour l’estimateur l’estimateur
ZZ2
. Ce champ comporte trois composantes par élément
E
:
•
‘ERREST’ : l’erreur totale absolue
e
E
;
ZZ1
et ‘ERZ2_ELEM’ pour
• ‘NUEST’ : l’erreur totale relative
e
E
REL
=
100×
2
E e
E
∥
h
∥
2
E
;
e
•
‘SIGCAL’ : la norme d’énergie de la solution calculée
∥
h
∥
E
.
• L’estimateur d’erreur en résidu [bib6] qui se calcule également dans l’opérateur CALC_ERREUR avec les options ‘ERME_ELEM’ pour le calcul dans l’élément et ‘ERME_ELNO’ pour le calcul aux nœuds par éléments. Ce champ comporte huit composantes par élément
E
:
• ‘ERREST‘: l’erreur totale absolue
e
E
;
• ‘TERMRE’ : l’erreur absolue du résidu de l’équilibre ;
• ‘TERMSA’ : l’erreur absolue des sauts de contraintes entre deux mailles ;
• ‘TERMNO’ : l’erreur absolue des sauts entre la contrainte normale et la force de
Neumann ;
• ‘NUEST’ : l’erreur totale relative ;
•
‘TERMR2’ : l’erreur relative du résidu de l’équilibre ;
• ‘TERMS2’ : l’erreur relative des sauts de contraintes entre deux mailles ;
• ‘TERMN2’ : l’erreur relative des sauts entre la contrainte normale et la force de Neumann ;
• ‘SIGCAL’ : la norme d’énergie de la solution calculée ;
Pour ces deux types d’estimateurs d’erreur, l’utilisateur a également accès à des impressions dans le fichier de résultat comportant les mêmes informations au niveau global.
Quelques conseils pour une bonne utilisation de l'option ERME_ELEM :
Manuel d'utilisation Fascicule u2.08 : Fonctions avancées et contrôle des calculs
Copyright 2015 EDF R&D - Document diffusé sous licence GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Code_Aster
Titre :
Utilisation des indicateurs d’erreur et stratégies[...]
Responsable :
Josselin DELMAS
Version default
Date :
28/02/2013
Page :
10/34
Clé :
U2.08.01
Révision :
10596
•
Pour bien effectuer le calcul de l’indicateur en résidu (dans les limites théoriques de la formule mise au point dans le cadre elliptique avec frontière régulière …), il faut le calculer sur tout le modèle (CALC_ERREUR ( TOUT = 'OUI' (valeur par défaut))). À noter que le modèle n’est pas forcément défini sur toute la géométrie.
•
On ne tient compte que des chargement de type : PESANTEUR, ROTATION, FORCE_INTERNE,
PRES_REP, FORCE_FACE, FORCE_ARETE. Seules les trois dernières peuvent être variables.
Pour les autres types de chargements, l'exécution s'arrête en erreur fatale.
• Il est conseillé d'utiliser des éléments finis d'ordre 2 dans le cas de forces volumiques, sinon ce terme est très mal calculé puisque DIV(SIGMA) est quasi nul !
• Pour prendre en compte l'erreur relative à une CL nulle de type Neumann il faut l'imposer en tant que fonction via un AFFE_CHAR_MECA_F. Via une constante, elle ne sera pas prise en compte.
• En 2D, il prend en compte les erreurs sur (et entre) les éléments isoparamétriques SEG2/3,
TRIA3/6/7, QUAD4/8/9. En 3D, idem avec FACE3/4/6/8/9, TETRA4/10, PENTA6/13/15 et HEXA8/20/27. Seuls l'erreur sur les éléments de structure (coque, plaque, poutre...) et les
PYRAM ne sont pas prise en compte.
• D'autre part, il faut veiller à ne pas intercaler de segments entre deux quadrangles ou deux triangles (resp. quadrangle ou triangle entre deux hexaèdres), sinon on ne peut pas calculer le terme de saut relatif à ce voisinage.
3.1.5 Estimateur d’erreur en thermique
Il existe un seul indicateur d’erreur en thermique [bib7] qui est de type résidu. Il est calculé dans l’opérateur CALC_ERREUR, par les options ‘ERTH_ELEM’ pour le calcul par éléments et ‘ERTH_ELNO’ pour le calcul par éléments aux nœuds. Pour l’option ‘ERTH_ELEM’ , il faut obligatoirement calculer le flux par élément aux nœuds ‘FLUX_ELNO’.
L’estimateur fournit les composantes suivantes :
•
ERTABS : erreur absolue totale
•
ERTREL : erreur relative totale
•
TERMNO : terme de normalisation pour l’erreur totale relative
•
TERMVO : erreur absolue du résidu de l’équilibre (terme volumique)
•
TERMV2 : erreur relative du résidu de l’équilibre (terme volumique)
•
TERMV1 : terme de normalisation pour l’erreur volumique
•
TERMSA : erreur absolue des sauts du flux de chaleur entre deux mailles
•
TERMS2 : erreur relative des sauts du flux de chaleur entre deux mailles
•
TERMS1 : terme de normalisation pour l’erreur relative en saut
•
TERMFL : erreur absolue sur les conditions aux limites type flux imposé
•
TERMF2 : erreur relative sur les conditions aux limites type flux imposé
•
TERMF1 : terme de normalisation sur l’erreur relative sur le flux
•
TERMEC : erreur absolue sur les conditions aux limites type échange
•
TERME2 : erreur relative sur les conditions aux limites type échange
•
TERME1 : terme de normalisation sur l’erreur relative sur les échanges
Quelques conseils pour une bonne utilisation :
• règles de surcharge particulières concernant les chargements (génération d’alarme <A> en cas de non-respect) ;
• calcul sur tout le maillage associé au modèle (génération d’erreur <F> en cas de non-respect) entre deux pas de temps contiguës ou non (génération d’alarme <A> en cas de nonrespect) ;
• tous les éléments 2D-plan/axi et 3D sont traités (sauf PYRAM : génération d’alarme <A>) ;
• toutes les conditions limites sauf ECHANGE_PAROI, FLUX_NL et RAYO sont prises en compte
(génération d’alarme <A> en cas d’utilisation d’ECHANGE_PAROI, FLUX_NL ou RAYO ) ;
• le maillage tolère les « ébauches » mais nécessite d’être un peu « nettoyé » (pas de
SEG/FACE intercalés dans des surfaces/volumes, problème de symétrisation, de points doubles : génération d’alarme <A> ou d’erreur <F>).
Manuel d'utilisation Fascicule u2.08 : Fonctions avancées et contrôle des calculs
Copyright 2015 EDF R&D - Document diffusé sous licence GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Code_Aster
Titre :
Utilisation des indicateurs d’erreur et stratégies[...]
Responsable :
Josselin DELMAS
3.2
Les estimateurs d’erreur en quantité d’intérêt
3.2.1 Avertissement
Version default
Date :
28/02/2013
Page :
11/34
Clé :
U2.08.01
Révision :
10596
Contrairement aux indicateurs d’erreur classiques ci-dessus, indicateurs d’erreur dit en quantité d’intérêt permettent d’accéder à une erreur locale sur des quantités physiques (contrainte, déplacement), et donc dans l’unité de cette quantité.
Leur utilisation est plus délicate et demande sans doute une lecture rapide de la documentation [bib9] et une lecture plus attentive des recommandations données pour l’usage de CALC_ERREUR.
De plus, leur développement étant très récent, il y a peu de retours d’expérience sur leur utilisation. Ce qui suit est donc intégralement issu de la documentation de référence et d’un compte-rendu [bib10].
3.2.2 Que calculent ces indicateurs ?
Ces indicateurs d’erreur permettent d’estimer dans une sous-région du maillage une quantité physique, par exemple :
Une moyenne de déplacement (la composante mathématiquement exprimée par l’équation
Q x
par exemple) dans cette sous-région,
u
=
1
∣∣
∫
u x
d
.
Une moyenne de contraintes (par exemple la composante
xx
)
Q
u
=
1
∣∣
∫
xx
d
.
Une fois choisie la quantité d’intérêt, l’indicateur estime la quantité
Q
=
Q
u
−
Q
u h
.
C’est ici que résulte la difficulté pour l’utilisateur car cette quantité d’intérêt doit être exprimée en terme de chargement connu dans AFFE_CHER_MECA.
Par exemple, pour la quantité d’intérêt en moyenne du déplacement, elle est équivalente à un chargement volumique :
Q
u
=
1
∣∣
∫
u x
d =
1
∣∣
∫
f u d
avec
f=
1,0 ,0
En choisissant correctement le vecteur
f
, on accède à chaque composante du déplacement et
éventuellement à des combinaisons linéaires des composantes. Ce chargement est accessible par le mot-clé ‘FORCE_INTERNE’ dans ‘AFFE_CHAR_MECA’.
De la même manière, pour la quantité d’intérêt moyenne de la contrainte, elle est équivalente à un chargement de déformation initiale :
Q
u
=
1
∣∣
∫
xx
d =
1
∣∣
∫
A :
u
d =
1
∣∣
∫
A : K :
u
d
On contrôle le choix de la composante du tenseur des contraintes par le choix des composantes du tenseur
A
. Ce chargement est accessible dans par le mot-clé ‘PRE_EPSI’ dans
‘AFFE_CHAR_MECA’.
Ces deux quantités sont assez simples à mettre en œuvre car elles sont représentées par un chargement existant dans Code_Aster. Pour des quantités plus compliquées (fonctions du tenseur des contraintes par exemple) et éventuellement non linéaires, il est très difficile de les exprimer en fonction de chargements connus. C’est la difficulté principale à lever pour programmer de nouvelles quantités d’intérêt.
Manuel d'utilisation Fascicule u2.08 : Fonctions avancées et contrôle des calculs
Copyright 2015 EDF R&D - Document diffusé sous licence GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Code_Aster
Titre :
Utilisation des indicateurs d’erreur et stratégies[...]
Responsable :
Josselin DELMAS
3.2.3 Périmètre d’utilisation
Version default
Date :
28/02/2013
Page :
12/34
Clé :
U2.08.01
Révision :
10596
Ces quantités d’intérêt sont calculées à partir des indicateurs d’erreur classiques présentés au § 3.1 et uniquement pour la mécanique. Leur domaine d’utilisation est donc identique à celui de l’indicateur mécanique choisi pour les calculer.
On rappelle, de nouveau, que la quantité d’intérêt choisie dépend du degré de développement des chargements dans AFFE_CHAR_MECA.
3.2.4 Les différentes options dans CALC_ERREUR
Les différentes options possibles dans CALC_ERREUR sont :
• 'QIZ1_ELEM' (respectivement 'QIZ2_ELEM') : estimateur d’erreur en quantité d’intérêt basé sur la méthode de Zhu-Zienkiewicz. Il faut calculer préalablement l’option ’ERZ1_ELEM’ ou ’ERZ2_ELEM’.
• 'QIRE_ELEM' (par élément) ou 'QIRE_ELNO' (par élément aux nœuds) : estimateur d'erreur en quantité d’intérêt basé sur les résidus en mécanique. Il faut calculer préalablement l’option
’ERME_ELEM’.
Conseil d’utilisation :
Le domaine d’utilisation des options ’QIZ1_ELEM’ et ’QIZ2_ELEM’ est le même que pour les options
’ERZ1_ELEM’ et ’ERZ2_ELEM’ et celui de l’option ’QIRE_ELEM’ est le même que celui de l’option
’ERME_ELEM’ en mécanique.
A ce jour, seulement deux quantités d’intérêt sont disponibles : moyenne d’une composante du déplacement et moyenne d’une composante du tenseur des contraintes.
Le calcul de la quantité d’intérêt passe par la résolution d’un calcul élastique (commande
MECA_STATIQUE) dont le chargement est d’une part, le même que celui du problème principal sur les conditions de Dirichlet (donc en déplacement imposé), et d’autre part, celui représentant la quantité d’intérêt choisie (‘FORCE_INTERNE’ ou ‘PRE_EPSI’). Nous donnons ci-dessous un exemple de fichier de commande.
# RESOLUTION DU PROBLEME
CHARG=AFFE_CHAR_MECA(
MODELE=MO,
FACE_IMPO=(_F(GROUP_MA='GRMA1',DY=0.0,),
_F(GROUP_MA='GRMA2', DY=0.91333,),),
FORCE_CONTOUR=(_F(GROUP_MA='GRMA3', FX=1.0,),
_F(GROUP_MA='GRMA4', FX=-2.0,),),);
RESU=MECA_STATIQUE(
MODELE=MO,
CHAM_MATER=CM,
EXCIT=_F(CHARGE=CHARG,),);
RESU=CALC_ERREUR(reuse =RESU,
RESULTAT=RESU,
TOUT_ORDRE='OUI',
OPTION=('SIGM_ELNO','ERME_ELEM',),);
# CALCUL DE LA QUANTITE D INTERET EN MOYENNE DE CONTRAINTE SUR LE
GROUPE DE MAILLES GRMAQI
CHARQ=AFFE_CHAR_MECA(
MODELE=MO,
FACE_IMPO=(_F(GROUP_MA='GRMA1',DY=0.0,),
_F(GROUP_MA='GRMA2',DY=0.91333,),),
FORCE_INTERNE=_F(GROUP_MA='GRMAQI',FX=1.0,),);
Manuel d'utilisation Fascicule u2.08 : Fonctions avancées et contrôle des calculs
Copyright 2015 EDF R&D - Document diffusé sous licence GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Code_Aster
Titre :
Utilisation des indicateurs d’erreur et stratégies[...]
Responsable :
Josselin DELMAS
RESUQ=MECA_STATIQUE(MODELE=MO,
CHAM_MATER=CM,
EXCIT=_F(CHARGE=CHARQ,),);
Version default
Date :
28/02/2013
Page :
13/34
Clé :
U2.08.01
Révision :
10596
RESUQ=CALC_ERREUR(reuse =RESUQ,
RESULTAT=RESUQ,
TOUT_ORDRE='OUI',
OPTION=('SIGM_ELNO','ERME_ELEM',),);
# CALCUL DE L'ESTIMATEUR D'ERREUR EN QUANTITE D'INTERET
RESU=CALC_ERREUR(reuse =RESU,
RESULTAT=RESU,
OPTION=('QIRE_ELEM'),
RESU_DUAL=RESUQ,);
3.3
Détection des singularités
Un autre champ possible (uniquement en mécanique) qui peut servir de critère pour raffiner le maillage est l’utilisation de l’option ‘SING_ELEM’ (champ constant par élément) ou ‘SING_ELNO' (champs par
éléments aux nœuds) dans CALC_ERREUR. Ce champ est calculé à partir des indicateurs d’erreur et il vise à améliorer le traitement des singularités dans les stratégies d’adaptation de maillage. Le lecteur trouvera dans [bib8] un descriptif théorique des méthodes employées.
En pratique les indicateurs d’erreur sont élevés dans les zones singulières si bien que rapidement seules les zones singulières sont raffinées. Cela masque donc les autres zones sensibles (zones à fort gradient) que l’on souhaiterait raffiner. Ce champ constant par élément comporte deux composantes :
• ‘DEGRE’ qui indique le niveau de singularité d’une maille. En pratique, cette composante vaut le degré d’interpolation des éléments finis choisis si l’élément fini n’est connecté à aucune singularité et vaut l’ordre de la singularité si l’élément fini est connecté à un nœud considéré par la méthode comme singulier (par exemple pour un élément voisin de la pointe d’une fissure, cette valeur vaut
0.5). Cette valeur ne peut être supérieure au degré d’interpolation donc 1 ou 2.
•
’RAPPORT’ qui correspond à la carte de modification de taille des éléments finis en cas de remaillage pour une erreur globale donnée. Cette composante est égale au rapport entre la taille actuelle et la nouvelle taille de l’élément fini.
• ’TAILLE’ qui correspond à la carte de taille des éléments finis en cas de remaillage pour une erreur globale donnée.
Conseil d’utilisation :
Le calcul de cette option nécessite, au préalable, le calcul d’un indicateur d’erreur (c’est la composante absolue qui est utilisée et c’est codé en dur dans Code_Aster) et de l’énergie de déformation totale.
Dans le cas où l’une de ces options n’est pas calculée, un message d’alarme est émis et l’option
’SING_ELEM’ n’est pas calculée.
Pour l’énergie de déformation totale, on utilise 'ETOT_ELEM' avec STAT_NON_LINE ou
'EPOT_ELEM' avec MECA_STATIQUE.
L’utilisateur doit également renseigner le mot-clé 'PREC_ERR' (un message fatal est émis en cas d’absence) qui permet de calculer la précision souhaitée sur l’erreur globale pour déterminer la carte de modification de taille. La valeur de 'PREC_ERR' est comprise strictement entre 0 et 1 et un message fatal est émis si cette condition n’est pas vérifiée.
Le périmètre d’utilisation est le même (mais plus réduit) que celui de l’indicateur d’erreur choisi à savoir :
• Pour l’indicateur en résidu : éléments finis des milieux continus en 2D (triangles et quadrangles) ou 3D (uniquement les tétraèdres) pour un comportement élastoplastique,
• Pour l’indicateur de Zhu-Zienkiewicz : éléments finis des milieux continus en 2D (triangles et quadrangles) pour un comportement élastique.
Manuel d'utilisation Fascicule u2.08 : Fonctions avancées et contrôle des calculs
Copyright 2015 EDF R&D - Document diffusé sous licence GNU FDL (http://www.gnu.org/copyleft/fdl.html)

Публичная ссылка обновлена
Публичная ссылка на ваш чат обновлена.