Professional Documents
Culture Documents
Tutorial 2 :
Modélisation statique linéaire exploitant la symétrie
cyclique de la pièce
Utilisation des GROUP_MA plutôt que GROUP_NO pour
l’application des conditions aux limites
Version 1
28 janvier 2007
2 Avant propos 2
3 Introduction 2
5 Maillage 3
9 Définition du matériau 4
11 Type de calcul 7
2 Avant propos
Dans l’esprit des exercices présents sur CAELINUX, le propos est ici de guider les débutants dans
l’utilisation de Code Aster
R
aussi bien dans la mise en donnée que dans la démarche. Nombre d’ex-
plications apparaîtrons triviales rendant le style « lourd », nous espérons cependant qu’elles seront
claires.
3 Introduction
Nombre de pièces industrielles présentent des symétries qui convient d’utiliser en statique1 de façon
à alléger le modèle numérique, d’où des gains de taille, de temps et de ressources informatiques.
1
Par opposition à la dynamique pour laquelle toute la pièce est modélisée ’sauf cas particuliers).
F IG . 1 – Maquette 3D
5 Maillage
Code Aster
R
ne dispose d’aucun mailleur ; aussi cette étape requière des outils comme SALOME,
GMSH, CGX (licence GPL), GIBI
R
(libre) ou tout autre outil propriétaire. La figure suivante montre un
maillage constitué d’éléments volumiques de degré 2, en majorités des hexaèdres (figures 2).
1. Lecture du maillage,
2. Définition du modèle, c’est-à-dire du type d’éléments qui composent le maillage (éléments de
volume, de coque, axisymétrique, de poutre, etc. ...),
3. Affectation du modèle au maillage,
Le lecteur se reportera à l’annexe 1 pour trouver les unités à utiliser en fonction du dimensionnel du
maillage. Dans le cas présent, la CAO étant en millimètre, les unités principales sont le MPa (N/mm2 ),
le mm et la T/mm3 ; les résultats seront donc dans les mêmes unités.
PRE_IDEAS();
MAIL=LIRE_MAILLAGE();
MODELE=AFFE_MODELE(MAILLAGE=MAIL,
AFFE=_F(TOUT=’OUI’,
PHENOMENE=’MECANIQUE’,
MODELISATION=’3D_SI’,),);
9 Définition du matériau
Nous avons choisi comme matériau un acier inoxydable X2 CrNi 18-10 (AISI 304L) avec un module
d’Young de 193 GPa, un coefficient de Poisson de 0.3 et une masse volumique de 8.03E-9 T/mm3 .
Ces propriétés sont affectées à l’ensemble du maillage.
SS304L=DEFI_MATERIAU(ELAS=_F(E=193000,
NU=0.3,
RHO=8.03e-009,),);
MATERIAU=AFFE_MATERIAU(MAILLAGE=MAIL,
AFFE=_F(TOUT=’OUI’,
MATER=SS304L,),);
Les CL s’appliquent sur des noeuds ; nous avons cependant choisi d’utiliser ici des groupes de mailles
(que nous transformons en groupe de noeuds avec CREA_GROUP_NO dans DEFI_GROUP). En de-
hors de toute modification/raffinement du maillage (avec Homard
R
par exemple) , le résultat est le
R
même. En revanche si les faces seront bien raffinées par Homard se traduisant par une augmenta-
tion du nombre de noeuds sur lesquels les CL s’appliquent, il n’en ira pas de même si les conditions
aux limitent s’opèrent dès le début sur les GROUP_NO . . . les CL seront alors incomplètes4 .
Contrairement aux éléments de coque ou de poutre (6 DDL), les éléments volumiques sont définis
par 3 DDL (les 3 translations - comme pour les membranes et les barres) qu’il convient de bloquer
sous peine d’avoir des pivots nuls (signe que le système est hypostatique et donc insoluble).
Le système reste isostatique en bloquant les noeuds des groupes (cf. fig. 3) :
. PLAN_YOZ selon DX (repère global),
. ENCASTRG selon DY (repère global),
. PLAN_12 selon DX (repère local),
. ENCAS_LO selon DY (repère local),
NOTA :
1. les groupes de mailles ENCASTRE et PLAN_12 possèdent des noeuds communs alors qu’ils
sont définis l’un dans le repère local, l’autre dans le repère global ; bloquer des translations aux
2 sans précaution conduit à une surabondance des CL5 ,
2. Bloquer DX dans le repère local équivaut à bloquer DX & DZ dans le repère global . . . sachant
que DYlocal équivaut à DYglobal , les 3 translations sont biens bloquées.
Suite aux remarques précédentes, des opérations booléennes sont opérées de façon à retirer les
noeuds communs aux 2 groupes de ENCASTRE selon le schéma :
. ENCAS_LO = PLAN_12 intersection ENCASTRE,
. ENCASTRG = ENCASTRE moins ENCAS_LO,
. il est nécessaire de créer de nouveaux groupes . . . ici ENCAS_LO pour ENCAS_LO(cal) et
ENCASTRG pour ENCASTRG(lobal) respectivement définis dans le repère local et global.
Ce qui donne :
MAIL=DEFI_GROUP(reuse =MAIL,
MAILLAGE=MAIL,
CREA_GROUP_NO=(_F(GROUP_MA=’ENCASTRE’,),
_F(GROUP_MA=’PLAN_12’,),
_F(GROUP_MA=’PLAN_YOZ’,),),);
MAIL=DEFI_GROUP(reuse =MAIL,
MAILLAGE=MAIL,
CREA_GROUP_NO=(_F(INTERSEC=(’ENCASTRE’,’PLAN_12’,),
NOM=’ENCAS_LO’,),
_F(DIFFE=(’ENCASTRE’,’ENCAS_LO’,),
NOM=’ENCASTRG’,),),);
Le blocage des CL devient alors :
3
cf. U4.42.01.pdf - mot clef ORIENTATION pour la définition et le signe de l’angle.
4
il en ira de même si l’ordre des éléments est modifié.
5
ce que Code Aster
R
annoncera avec une erreur.
CL=AFFE_CHAR_MECA(MODELE=MODELE,
DDL_IMPO=(_F(GROUP_NO=’ENCASTRG’,
DY=0,),
_F(GROUP_NO=’PLAN_YOZ’,
DX=0,),),
LIAISON_OBLIQUE=(_F(GROUP_NO=’PLAN_12’,
ANGL_NAUT=(0,-60.0,0,),
DX=0,),
_F(GROUP_NO=’ENCAS_LO’,
ANGL_NAUT=(0,-60,0,),
DY=0,),),);
Pour le chargement, nous cherchons à modéliser un pseudo-serrage6 sous la forme d’une pression
(correspondant à une vis ChC de M6 serrée à 10 NM). Pour le fun, nous supposons une gravité de
100G.
Rappelons que toute pression s’exerce en sens inverse de la normale (sortante) des faces (cette
dernière est définie par la topologie des éléments) ; il est préférable de demander à Code Aster
R
de réorienter les normales des groupes de mailles utilisés (au pire il ne réoriente aucune maille ; au
mieux il évite une erreur) :
MAIL=MODI_MAILLAGE(reuse =MAIL,
MAILLAGE=MAIL,
ORIE_PEAU_3D=_F(GROUP_MA=’PRESSION’,),
MODELE=MODELE,);
CHARGMNT=AFFE_CHAR_MECA(MODELE=MODELE,
PESANTEUR=(0,-1,0,981000,),
PRES_REP=_F(GROUP_MA=’PRESSION’,
PRES=172.81,),);
11 Type de calcul
Nous faisons ici un classique calcul statique linéaire et nous pointons sur le modèle (MODELE), les
caractéristiques du matériau (CHAM_MATER) et les chargements/CL (EXIT).
RESOL=MECA_STATIQUE(MODELE=MODELE,
CHAM_MATER=MATERIAU,
EXCIT=(_F(CHARGE=CHARGMNT,),
_F(CHARGE=CL,),),);
Etape 1 :
6
Nous ne cherchons pas à réaliser un serrage dans les règles de l’art et nous supposons ici que la surface à bloquer sous
la pièce est la même que celle sous la tête de vis . . . c’est-à-dire un diamètre φ=10 mm.
F mess /symetrie_cyclique.mess R 6
F erre /symetrie_cyclique.erre R 9
R base /base_symetrie_cyclique R 0
F unv /symetrie_cyclique.unv D 19
F comm /symetrie_cyclique.comm D 1
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_post.cast R 51
POURSUITE();
RESOL=CALC_ELEM(reuse =RESOL,
RESULTAT=RESOL,
OPTION=(’SIGM_ELNO_DEPL’,’EQUI_ELNO_SIGM’,),);
IMPR_RESU(FORMAT=’CASTEM’,
UNITE=51,
RESU=_F(MAILLAGE=MAIL,
RESULTAT=RESOL,
NOM_CHAM=(’SIGM_ELNO_DEPL’,’EQUI_ELNO_SIGM’,’DEPL’,),),);
FIN();
*************************************************************
* donner ici le nom du fichier de post traitement (*.cast)
fich=’symetrie_cyclique.cast’;
*************************************************************
* donner ici le nom du maillage utilise dans le fichier de
* commandes ASTER et le nom du resultat
maya1 = MAIL ;
res1 = RESOL ;
*************************************************************
list res1.1;
e1 = res1 . 1 . equi_elno_sigm ;
titre ’Deformee ’ ;
trac cach oe1 (defo1 et defo0) ;
trac cach oe2 (defo1 et defo0) ;
trac cach oe3 (defo1 et defo0) ;
q1 = exco depl1 ux ;
q2 = exco depl1 uy ;
q3 = exco depl1 uz ;
Cet exemple est intéressant à plus d’un titre. La présence de contraintes de Von Mises négatives
devrait en effet faire réagir le calculateur sachant que :
Enfin, les 2 dernières (fig. 12 et fig. 13) montrent les vecteurs déplacements.
PRE_IDEAS();
MAIL=LIRE_MAILLAGE();
MODELE=AFFE_MODELE(MAILLAGE=MAIL,
AFFE=_F(TOUT=’OUI’,
PHENOMENE=’MECANIQUE’,
MODELISATION=’3D_SI’,),);
MAIL=MODI_MAILLAGE(reuse =MAIL,
MAILLAGE=MAIL,
ORIE_PEAU_3D=_F(GROUP_MA=’PRESSION’,),
MODELE=MODELE,);
MAIL=DEFI_GROUP(reuse =MAIL,
MAILLAGE=MAIL,
CREA_GROUP_NO=(_F(GROUP_MA=’ENCASTRE’,),
_F(GROUP_MA=’PLAN_12’,),
_F(GROUP_MA=’PLAN_YOZ’,),),);
MAIL=DEFI_GROUP(reuse =MAIL,
MAILLAGE=MAIL,
CREA_GROUP_NO=(_F(INTERSEC=(’ENCASTRE’,’PLAN_12’,),
NOM=’ENCAS_LO’,),
_F(DIFFE=(’ENCASTRE’,’ENCAS_LO’,),
NOM=’ENCASTRG’,),),);
SS304L=DEFI_MATERIAU(ELAS=_F(E=193000,
NU=0.3,
RHO=8.03e-009,),);
MATERIAU=AFFE_MATERIAU(MAILLAGE=MAIL,
AFFE=_F(TOUT=’OUI’,
MATER=SS304L,),);
CL=AFFE_CHAR_MECA(MODELE=MODELE,
DDL_IMPO=(_F(GROUP_NO=’ENCASTRG’,
DY=0,),
_F(GROUP_NO=’PLAN_YOZ’,
DX=0,),),
LIAISON_OBLIQUE=(_F(GROUP_NO=’PLAN_12’,
ANGL_NAUT=(0,-60.0,0,),
DX=0,),
_F(GROUP_NO=’ENCAS_LO’,
ANGL_NAUT=(0,-60,0,),
DY=0,),),);
CHARGMNT=AFFE_CHAR_MECA(MODELE=MODELE,
PESANTEUR=(0,-1,0,981000,),
PRES_REP=_F(GROUP_MA=’PRESSION’,
PRES=172.81,),);
RESOL=MECA_STATIQUE(MODELE=MODELE,
CHAM_MATER=MATERIAU,
EXCIT=(_F(CHARGE=CHARGMNT,),
_F(CHARGE=CL,),),);
FIN();
RESOL=CALC_ELEM(reuse =RESOL,
RESULTAT=RESOL,
OPTION=(’SIGM_ELNO_DEPL’,’EQUI_ELNO_SIGM’,),);
IMPR_RESU(FORMAT=’CASTEM’,
UNITE=51,
RESU=_F(MAILLAGE=MAIL,
RESULTAT=RESOL,
NOM_CHAM=(’SIGM_ELNO_DEPL’,’EQUI_ELNO_SIGM’,’DEPL’,),),);
FIN();
R
et de Cast3M qui ont fourni aides et informations précieuses : qu’ils en soient chaleureusement re-
mercier. 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 . . .
7
Avant de travailler sur des outils propriétaires, j’ai fait mes premières armes sur Code Aster
R
que j’utilise encore ponc-
tuellement. Ces tutoriaux sont pour moi l’occasion de coucher sur le papier une démarche (pas nécessairement exhaustive)
qui est la mienne à la fois pour la partager et l’améliorer/corriger au grès des retours, et l’occasion de garder la main sur un
code que considère comme rigoureux (par opposition aux boîtes noires qui fleurissent depuis un certain nombre d’années).
Rappels :
. 1 W ≡ 1 N-m/sec,
. 1 mJ ≡ 1 N-mm,
. 1 mW ≡ 1 N-mm/sec,
. 1 N/m2 ≡ 1 Pa,
. 1 N/mm2 ≡ 1 MPa,