Date: 21 février 2007
Version | Date | Modifications | Auteur(s) |
---|---|---|---|
01 | 28/01/2007 | Création | PC |
Mots clefs : Post-traitement graphique, GMSH, GIBI
, SALOME
, GRACE
.
Enfin, les exemples traités ici reprennent les résultats des tutoriaux présents sur le site de CAELINUX, ces derniers faisant eux-même référence à cette note pour la partie post-traitement.
Fort heureusement Code Aster
est livré avec certains d'entre eux que nous nous proposons d'utiliser ici :
Cette liste n'est pas exhaustive ; il est possible d'utiliser d'autres outils comme PARAVIEW
puisque Code Aster
exporte les résultats au format ENSIGHT
, ou CGX.
Nous nous intéresserons également à SALOME
(pré & post-traitement au format MED), disponible sous licence GPL auquel EDF
participe activement.
Il est surtout d'une prise en main facile où tout se fait à la souris (translations, rotations, grossissements, réductions, etc. ....).
Il présente néanmoins l'inconvénient de ne pas prendre en compte les éléments du second ordre (SEG3, QUAD8, TETRA10 et HEXA20) ; les développeurs de Code Aster ont contourné le problème en créant un nouveau maillage tel que les noeuds deviennent tous des noeuds sommet. Le principal inconvénient se situe au niveau de la taille des fichiers de post-traitement qui peuvent "`exploser"' pour de gros maillages quadratiques (particulièrement en transitoire ou en non-linéaires si plusieurs pas de temps sont archivés).
NOTA : GMSH est assez intuitif et on ne saurait trop conseiller le lecteur de consacrer un peu de son temps au test des différentes fonctionnalités ; nous traiterons donc uniquement de la façon d'exporter les résultats depuis Code Aster.
Il est en effet dommage de relancer tout un calcul (particulièrement si celui-ci est long) pour une problématique de post-traitement (recherche d'un instant particulier, calcul d'une grandeur supplémentaire ou tout simplement pour une erreur de mise en données).
Sous ASTK
, le fichier est par exemple de la forme :
F comm /symetrie_cyclique_post.comm D 1 R base /base_symetrie_cyclique D 0 F mess /symetrie_cyclique_post.mess R 6 F erre /symetrie_cyclique_post.erre R 9 F resu /symetrie_cyclique_post.resu R 8 F pos /symetrie_cyclique_vmis.pos R 51 F pos /symetrie_cyclique_depl.pos R 52
RAPPEL :
Par la suite, nous distingueront les calculs linéaires (mécanique & thermiques) des calculs non-linéaires & transitoires.
POURSUITE(); RESOL_TH=CALC_ELEM(reuse =RESOL_TH, RESULTAT=RESOL_TH, OPTION='FLUX_ELNO_TEMP',); RESOL_TH=CALC_NO(reuse =RESOL_TH, RESULTAT=RESOL_TH, OPTION='FLUX_NOEU_TEMP',); IMPR_RESU(FORMAT='GMSH', UNITE=51, RESU=_F(RESULTAT=RESOL_TH, NOM_CHAM='TEMP',),); FIN();
CALC_ELEM et CALC_NO permettent de calculer les températures aux noeuds par extrapolation. L'information est contenue dans FLUX_NOEU_TEMP (flux thermique).
Les figures 1 et 2 présentent le résultat graphique.
![]()
|
![]()
|
En statique linéaire, les grandeurs physiques recherchées sont généralement les isovaleurs de déplacements et les contraintes équivalentes (Von Mises) des grandeurs scalaires dans les 2 cas. Le fichier de données de Code Aster est de la forme :
POURSUITE(); RESOL_ME=CALC_ELEM(reuse =RESOL_ME, RESULTAT=RESOL_ME, OPTION=('SIGM_ELNO_DEPL','EQUI_ELNO_SIGM',),); RESOL_ME=CALC_NO(reuse =RESOL_ME, RESULTAT=RESOL_ME, OPTION=('SIGM_NOEU_DEPL','EQUI_NOEU_SIGM',),); IMPR_RESU(FORMAT='GMSH', UNITE=51, RESU=_F(RESULTAT=RESOL_ME, NOM_CHAM='EQUI_NOEU_SIGM', NOM_CMP='VMIS',),); IMPR_RESU(FORMAT='GMSH', UNITE=52, RESU=_F(RESULTAT=RESOL_ME, NOM_CHAM='DEPL',),); FIN();
A l'instar du cas précédent, les valeurs de Von Mises extrapolées sont contenues dans EQUI_NOEU_DEPL et VMIS. Les résultats sont générés dans 2 fichiers distincts (un pour les contraintes équivalentes & un pour les déplacements).
Les figures 5 et 6 présentent les isovaleurs de déplacements ; les 2 suivantes (fig 7 & 8) sont intéressantes parce qu'elles visualisent les vecteurs déplacements.
![]()
|
Les cartographies des contraintes sont visibles aux figures 9 et 10.
![]()
|
Contrairement à GMSH, GIBI
traite aussi bien les éléments linéaires que les éléments quadratiques ; il permets également de manipuler les grandeurs pour en créer de nouvelles (jusqu'à des calculs complexes). S'il reste un outil puissant, son utilisation est cependant moins intuitive que GMSH.
Le post-traitement se fait en mode console ou au travers d'un fichier ASCII.
AVERTISSEMENT : Nous nous sommes penchés sur l'utilisation de GIBI
que récemment, aussi nous ne nous plaçons absolument pas ici comme des spécialistes de cet outil ; toute remarque de la part de la communauté visant à améliorer son utilisation est la bienvenue.
gibi nom_fichier_gibi.extension
Pour passer d'un affichage à un autre, il suffit de cliquer sur l'icône ``Fin trace''. GIBI
ne donnera la main que lorsque toute les visualisations auront été faites
cela ne signifie pas pour autant que nous seront sortis du module ; pour cela il suffit de taper (en n'oubliant pas le point virgule) :
fin;
La mise en données sous GIBI
fera l'objet d'une section spécifique à l'issue des chapitres suivants.
F comm /symetrie_cyclique_MEC_post.comm D 1 R base /base_MECA D 0 F mess /symetrie_cyclique_MEC_post.mess R 6 F resu /symetrie_cyclique_MEC_post.resu R 8 F erre /symetrie_cyclique_MEC_post.erre R 9 F cast /symetrie_cyclique_MEC_post.cast R 50
POURSUITE(); RESOL_TH=CALC_ELEM(reuse =RESOL_TH, RESULTAT=RESOL_TH, OPTION='FLUX_ELNO_TEMP',); IMPR_RESU(FORMAT='CASTEM', UNITE=50, RESU=_F(MAILLAGE=MAIL_TH, RESULTAT=RESOL_TH, NOM_CHAM=('TEMP','FLUX_ELNO_TEMP',),),); FIN();
A noter que le maillage DOIT ABSOLUMENT être imprimé dans le fichier résultat (cf. MAILLAGE=MAIL_TH,).
Les figures 11 et 12 présentent le résultat graphique.
![]()
|
Les déplacements (DEPL) et les contraintes équivalentes (VMIS ou TRES) sont imprimés dans le fichier de Code Aster
.
POURSUITE(); RESOL_ME=CALC_ELEM(reuse =RESOL_ME, RESULTAT=RESOL_ME, OPTION=('SIGM_ELNO_DEPL','EQUI_ELNO_SIGM',),); IMPR_RESU(FORMAT='CASTEM', UNITE=50, RESU=_F(MAILLAGE=MAIL_MEC, RESULTAT=RESOL_ME, NOM_CHAM=('DEPL','EQUI_ELNO_SIGM',),),); FIN();
A noter que le maillage DOIT ABSOLUMENT être imprimé dans le fichier résultat (cf. MAILLAGE=MAIL_MEC,).
Les figures 13 et 14 présentent les isovaleurs de déplacements ; les 2 suivantes (fig 16 & 17) sont intéressantes parce qu'elles visualisent les vecteurs déplacements.
![]()
|
Une fonctionnalité intéressante : il est possible de superposer le maillage déformé sur le maillage initial (cf. figure 15).
Les cartographies des contraintes sont visibles aux figures 18 et 19.
![]()
|
De même, il est possible de visualiser les champs de contraintes sur le maillage déformée (cf. figure 20.
************************************************************* * donner ici le nom du fichier de post traitement (*.cast) fich='symetrie_cyclique_TH.cast'; option rest form fich ; rest form ; ************************************************************* * donner ici le nom du maillage utilise dans le fichier de * commandes ASTER et le nom du resultat maya1 = MAIL_TH ; res1 = RESOL_TH ; ************************************************************* list res1.1; oe1 = 0. -500. 1000. ; oe2 = 0. 1000. 0. ; oe3 = 0. 1000. 1000. ; th1 = res1 . 1 . TEMP ; temp1 = exco temp th1 ; postm_th = maya1 elem tet4 ; titre 'Champ de temperature aux noeuds' ; trac oe2 temp1 postm_th ; trac oe1 temp1 postm_th ;
fich, maya1 et res1 sont des variables choisies par l'utilisateur ; chacun est libre de donner le nom qui lui convient. En revanche certains mots clefs sont propres à GIBI
:
Leur signification sera abordée ci-après. Toutes les lignes se terminent obligatoirement par un point-virgule "`;"'. Reprenons pas-à-pas le fichier ASCII :
fich='symetrie_cyclique_TH.cast';La variable fich qui a été choisie indique à GIBI
option rest form fich ; rest form ;Ces instructions indiquent à GIBI
maya1 = MAIL_TH ; res1 = RESOL_TH ;MAIL_TH est le nom donné au maillage dans le fichier .comm de Code Aster
list res1.1;Cette instruction est équivalente à list RESOL_TH.1 ; le mot clef list est d'une aide précieuse puisqu'il fournit tous les types de résultats présents dans le fichier résultat
Le .1 signifie qu'il s'agit :
oe1 = 0. -500. 1000. ; oe2 = 0. 1000. 0. ; oe3 = 0. 1000. 1000. ;Les points
postm_th = maya1 elem tet4 ;Cette instruction est particulière. En effet comme nombres de modules de post-traitement, il n'est pas possible d'afficher des résultats à la fois sur des éléments de volume (tétraèdres et hexaèdres) et des éléments surfaciques (triangles et quadrangles) ; l'instruction maya1 elem tet4 permet de ne retenir que les tétraèdres linéaires (4 noeuds = tet4) du maillage maya1
th1 = res1 . 1 . TEMP ; temp1 = exco temp th1 ;th1 pointe sur le champ TEMP du résultat RESOL_TH ; l'instruction exco extrait les températures (temp) de th1. A noter que TEMP figure dans les résultats exportés depuis Code Aster
titre 'Champ de temperature aux noeuds' ; trac oe2 temp1 postm_th ; trac oe1 temp1 postm_th ;Ces dernières instructions sont graphiques : titre'' (sans commentaire) ; trac oe2 temp1 postm_th signifie littéralement "`tracer depuis le point de visée oe2 les valeurs de temp1 sur le maillage postm_th.
************************************************************* * donner ici le nom du fichier de post traitement (*.cast) fich='symetrie_cyclique_MEC_post.cast'; option rest form fich ; rest form ; ************************************************************* * donner ici le nom du maillage utilise dans le fichier de * commandes ASTER et le nom du resultat maya1 = MAIL_MEC ; res1 = RESOL_ME ; ************************************************************* list res1.1; oe1 = 0. -500. 1000. ; oe2 = 0. 1000. 0. ; oe3 = 0. 1000. 1000. ; depl1 = res1 . 1 . DEPL ; sig_eq1 = res1 . 1 . EQUI_ELNO_SIGM ; q1 = exco depl1 ux ; q2 = exco depl1 uy ; q3 = exco depl1 uz ; module = ((q1**2) + (q2**2) + (q3**2))**(0.5) ; post1 = maya1 elem cu20 ; * visualisation des deformees defo1 = defo maya1 depl1 rouge ; defo0 = defo maya1 depl1 0. vert ; titre 'Deformee ' ; trac oe2 (defo1 et defo0) ; titre 'Champ des deplacements' ; trac oe2 module post1 ; titre 'Visualisation des vecteurs deplacements' ; VISU_VEC = VECT depl1 100 ; trac cach oe2 VISU_VEC post1 ; titre 'Contraintes équivalente de Von Mises' ; modcast = mode maya1 mecanique elastique ; vmi1 = exco vmis sig_eq1 ; trac oe1 vmi1 modcast ; trac oe2 vmi1 modcast ; trac oe3 vmi1 modcast ; titre 'Contraintes équivalente de Von Mises sur déformée' ; trac oe1 vmi1 modcast defo1 ;
Le début du fichier reprend la même trame que pour le calcul thermique :
fich='symetrie_cyclique_MEC_post.cast';La variable fich qui a été choisie indique à GIBI
option rest form fich ; rest form ;Ces instructions indiquent à GIBI
maya1 = MAIL_MEC ; res1 = RESOL_ME ;MAIL_MEC est le nom donné au maillage dans le fichier .comm de Code Aster
list res1.1;Cette instruction est équivalente à list RESOL_TH.1 ; le mot clef list est d'une aide précieuse puisqu'elle fournit tous les types de résultats présents dans le fichier résultat
Le .1 signifie qu'il s'agit :
oe1 = 0. -500. 1000. ; oe2 = 0. 1000. 0. ; oe3 = 0. 1000. 1000. ;Les points
depl1 = res1 . 1 . DEPL ; sig_eq1 = res1 . 1 . EQUI_ELNO_SIGM ;
la variable depl1 pointe sur le champ des déplacement (DEPL) et sig_eq1 sur celui des contraintes équivalentes.
La démarche suivante consiste à extraire les résultats de type Contrainte de Von Mises (VMIS) et les différentes composantes du vecteur déplacement (,
et
)
pour ce faire nous utilisons le mot clef exco :
q1 = exco depl1 ux ; q2 = exco depl1 uy ; q3 = exco depl1 uz ; vmi1 = exco vmis sig_eq1 ;
Pour avoir les isovaleurs de déplacement (champ scalaire), il est nécessaire de calculer le module à partir des composantes du vecteur déplacement (
).
module = ((q1**2) + (q2**2) + (q3**2))**(0.5) ;ATTENTION: L'ordre et le nombre de parenthèses n'ont pas été fixés au hasard
post1 = maya1 elem cu20 ;Cette instruction est particulière. En effet comme nombres de modules de post-traitement, il n'est pas possible d'afficher des résultats à la fois sur des éléments de volume (tétraèdres et hexaèdres) et des éléments surfaciques (triangles et quadrangles) ; l'instruction maya1 elem cu20 permet de ne retenir que les hexaèdres quadratiques (cube 20 noeuds = cu20) du maillage maya1
Le mot clef defo pour (defo)rmation permet de créer un nouveau maillage déformé defo1 en rouge (defo1 = defo maya1 depl1 rouge ;), ou un maillage non deformé en vert (defo0 = defo maya1 depl1 0. vert ;) A noter le zero (0) qui indique une amplification nulle (ce qui revient au maillage initial). l'instruction trac oe2 (defo1 et defo0) ; demande à tracer le maillage déformé ET le maillage initial grâce à ( . et . ).
* visualisation des deformees defo1 = defo maya1 depl1 rouge ; defo0 = defo maya1 depl1 0. vert ; titre 'Deformee ' ; trac oe2 (defo1 et defo0) ; titre 'Champ des deplacements' ; trac oe2 module post1 ;
Il peut être intéressant de visualiser les vecteurs déplacements avec le mot clef VECT (le 100 indique le coefficient d'amplification. Il peut s'avérer utile d'utiliser cach qui n'autorise la visualisation que des éléments de peau (et cach(e)r donc les sous-éléments).
titre 'Visualisation des vecteurs deplacements' ; VISU_VEC = VECT depl1 100 ; trac cach oe2 VISU_VEC post1 ;
Quant aux contraintes de Von Mises, il est nécessaire de créer un modèle numérique basé sur le type de calcul. S'agissant d'un calcul statique linéaire s'appuyant sur le maillage maya1, nous créons modcast (modcast = mode maya1 mecanique elastique ;) ; reste à extraite la contrainte équivalente (vmi1 = exco vmis sig_eq1 ;) et à tracer les isovaleurs (trac oe1 vmi1 modcast ;).
titre 'Contraintes équivalente de Von Mises' ; modcast = mode maya1 mecanique elastique ; vmi1 = exco vmis sig_eq1 ; trac oe1 vmi1 modcast ;
Remerciements : L'auteur(s) souhaite(nt) remercier les personnes de la communauté de Code Aster
et de Cast3M
qui ont fourni aides et informations précieuses : qu'ils en soient chaleureusement remercier. L'ensemble des notes présentes sur le site ne sont que la continuation de cet esprit "libre" qui vise entre-autres choses partager son savoir et son travail
L'auteur : Paul CARRICO2.
Les commentaires sont à adresser à :
paul.carrico_at_free.fr
This document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.70)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -split 0 CAELINUX_post-traitement.tex
The translation was initiated by on 2007-02-21