Code_Aster ®
Version
7.4
Titre :
Exemple simple d'utilisation
Date :
26/05/05
Auteur(s) :
M. ABBAS, J.M. PROIX, N. TARDIEU Clé
:
U1.05.00-C Page
: 1/10
Organisme(s) : EDF-R&D/AMA
Manuel d'Utilisation
Fascicule U1.0- : Introduction à Code_Aster
Document : U1.05.00
Exemple simple d'utilisation
Résumé :
Ce document décrit un exemple très simple d'utilisation du Code_Aster.
On illustre les commandes « incontournables » sur le calcul d'un réservoir (cylindre mince sous pression
hydrostatique) modélisé en axisymétrique.
Le fichier de commandes est analysé, ainsi que le fichier de résultats.
Manuel d'Utilisation
Fascicule U1.0- : Introduction à Code_Aster
HT-66/05/004/A
Code_Aster ®
Version
7.4
Titre :
Exemple simple d'utilisation
Date :
26/05/05
Auteur(s) :
M. ABBAS, J.M. PROIX, N. TARDIEU Clé
:
U1.05.00-C Page
: 2/10
1
Modéliser un problème mécanique avec le Code_Aster
Le problème à modéliser est un réservoir cylindrique mince (épaisseur 0.02m, rayon moyen R=1m,
hauteur L=4m) soumis à une pression interne variable avec la hauteur, correspondant à une pression
hydrostatique.
Étant données les symétries de la géométrie et du
R=1m
chargement, on choisit une modélisation
bidimensionnelle axisymétrique.
Il suffira donc de représenter une tranche verticale de
ce cylindre (dans le plan X Y)
Les deux étapes à prévoir sont :
L=4m
·
la création du maillage
·
la rédaction du fichier de commandes
2
Fabrication du maillage : que prévoir ?
y
Quelque soit le logiciel de maillage utilisé (GIBI, IDEAS,
GMSH), il faut prévoir, dès la création du maillage, de
nommer les entités qui serviront dans le calcul à affecter
D
C
des caractéristiques élémentaires, des conditions aux
limites, des chargements, des matériaux...
En effet, bien qu'il soit possible d'utiliser directement les
numéros de noeuds et de mailles dans le fichier de
commandes, il est préférable d'utiliser des entités
nommées. Ceci permet d'avoir un fichier de commandes
ldf
indépendant du degré de raffinement du maillage, et
d'une éventuelle renumérotation des noeuds ou des
éléments.
En pratique, ces entités sont des groupes :
charg
·
groupes de noeuds (contenant éventuellement un
seul noeud, comme les points A, B, C, D dans
l'exemple),
lfa
·
groupes de mailles correspondant à des
sous-domaines du maillage, ou bien des mailles
utilisées pour appliquer les chargements : ici par
exemple, les groupes de mailles lfa, ldf
contiennent des mailles linéiques (mailles de
A
B
peau) qui serviront à appliquer la pression.
appui
x
Manuel d'Utilisation
Fascicule U1.0- : Introduction à Code_Aster
HT-66/05/004/A
Code_Aster ®
Version
7.4
Titre :
Exemple simple d'utilisation
Date :
26/05/05
Auteur(s) :
M. ABBAS, J.M. PROIX, N. TARDIEU Clé
:
U1.05.00-C Page
: 3/10
3
Comment rédiger son fichier de commandes ?
3.1
Partir de rien ?
Quand on veut modéliser un nouveau problème thermo - mécanique, on ne part pas en général de la
feuille blanche : il est utile de s'inspirer d'un fichier de commandes d'une modélisation proche de celle
à traiter. Comment obtenir ces fichiers ? Les sources sont diverses :
·
la base des tests du Code_Aster, avec sa documentation, est souvent une aide importante,
car elle couvre une grande partie des fonctionnalités du code (on peut trouver ces tests dans
le répertoire astest),
·
les formations permettent de connaître de façon approfondie l'ensemble des commandes se
rapportant à des types de modélisations
: statique linéaire, thermique, dynamique,
thermo-plasticité, post_traitement ...
La rédaction de ce fichier de commande sera grandement facilitée en utilisant l'éditeur de fichier de
commandes EFICAS.
3.2
Les commandes à la loupe
Nous allons maintenant détailler les commandes nécessaires à la réalisation du calcul envisagé.
Fichier de Commandes
Explications
# TITRE Cylindre mince sous pression
Les commentaires sont précédés du signe #,
hydrostatique
DEBUT ( ) ;
Commande obligatoire pour commencer...
PRE_GMSH() ;
Le maillage est au format GMSH
mail = LIRE_MAILLAGE ( ) ;
Lecture du maillage dans le fichier de maillage,
et création du concept mail contenant le
maillage au format Aster
# Redefinition des groupes de noeuds et
groupes de mailles
mail=DEFI_GROUP(reuse =mail,
Définition des groupes de mailles à partir de
MAILLAGE=mail,
ceux créés dans GMSH
CREA_GROUP_MA=(_F(NOM='APPUI',
GROUP_MA='GM11',),
_F(NOM='LDF',
GROUP_MA='GM13',),
_F(NOM='LFA',
GROUP_MA='GM14',),
_F(NOM='ND_A',
GROUP_MA='GM1',),
_F(NOM='ND_B',
GROUP_MA='GM2',),
_F(NOM='ND_C',
GROUP_MA='GM3',),
_F(NOM='ND_D',
GROUP_MA='GM4',),
),);
# Définition du modèle
Un modèle est un concept contenant les types
d'éléments finis utiles au calcul
Manuel d'Utilisation
Fascicule U1.0- : Introduction à Code_Aster
HT-66/05/004/A
Code_Aster ®
Version
7.4
Titre :
Exemple simple d'utilisation
Date :
26/05/05
Auteur(s) :
M. ABBAS, J.M. PROIX, N. TARDIEU Clé
:
U1.05.00-C Page
: 4/10
modl=AFFE_MODELE(MAILLAGE=mail,
Associe à toutes les mailles du maillage des
éléments finis mécaniques axisymétriques
AFFE=_F(TOUT='OUI',
PHENOMENE='MECANIQUE', Une même commande peut se poursuivre sur
MODELISATION='AXIS',),); plusieurs lignes
# Définition du matériau
acier=DEFI_MATERIAU(ELAS=_F(E=210000000000.0, Les caractéristiques de chaque matériau
constituant le maillage sont fournies
NU=0.3,),);
module d'Young et coefficient de Poisson
chmat=AFFE_MATERIAU(MAILLAGE=mail,
Affectation du matériau sur le maillage
AFFE=_F(TOUT='OUI',
Ici le matériau est le même pour tout le maillage
MATER=acier,),); Sinon on pourrait affecter des matériaux
différents sur des groupes de mailles
# Definition des conditions aux limites
Les conditions aux limites peuvent porter sur
des
noeuds, des groupes de noeuds, des mailles ou
des groupes de mailles.
clim=AFFE_CHAR_MECA(MODELE=modl,
Ici les noeuds du groupe de mailles APPUI
FACE_IMPO=_F(GROUP_MA='APPUI',
(mailles de bord) sont affectées de la
condition :
DY=0,),);
DY = 0 ce qui signifie :
« déplacement suivant y » nul
# Définition du chargement: pression fonction Les fonctions sont définies point par point
de y
(variation affine entre deux points par défaut)
f_y=DEFI_FONCTION(NOM_PARA='Y',
Ici, la pression varie entre :
VALE=(0.0,20000.0,
20000 Pa pour y=0
4.0,0.0,),);
et 0 pour y = L
charg=AFFE_CHAR_MECA_F(MODELE=modl,
Affectation de la pression (fonction de y) sur le
PRES_REP=
bord composé des groupes de mailles LFA LDF
_F(GROUP_MA=('LFA','LDF',),
PRES=f_y,),);
# Résolution
Commande globale de résolution des problèmes
statiques en thermo élasticité linéaire
res1=MECA_STATIQUE(MODELE=modl,
CHAM_MATER=chmat,
Le champ de matériau
EXCIT=(_F(CHARGE=charg,), On définit les chargements
_F(CHARGE=clim,),),);
res1 est le nom du concept résultat contenant
le champ de déplacements
# Calcul des contraintes
reuse=res1 signifie que l'on «
enrichit » le
concept
res1=CALC_ELEM(reuse =res1,
res1 : le champ de contraintes sera stocké
en plus du champ de déplacements
RESULTAT=res1,
OPTION='SIGM_ELNO_DEPL',);
Le nom 'SIGM_ELNO_DEPL' signifie
« contraintes calculées aux noeuds de chaque
Manuel d'Utilisation
Fascicule U1.0- : Introduction à Code_Aster
HT-66/05/004/A
Code_Aster ®
Version
7.4
Titre :
Exemple simple d'utilisation
Date :
26/05/05
Auteur(s) :
M. ABBAS, J.M. PROIX, N. TARDIEU Clé
:
U1.05.00-C Page
: 5/10
élément à partir des déplacements »
# Impression des résultats aux points A B C D
IMPR_RESU(MODELE=modl,
Impression des résultats au format texte
RESU=_F(RESULTAT=res1,
déplacements aux noeuds
GROUP_MA='ND_A',),);
correspondant aux points A B C D
IMPR_RESU(MODELE=modl,
RESU=_F(RESULTAT=res1,
GROUP_MA='ND_B',),);
IMPR_RESU(MODELE=modl,
RESU=_F(RESULTAT=res1,
GROUP_MA='ND_C',),);
IMPR_RESU(MODELE=modl,
RESU=_F(RESULTAT=res1,
GROUP_MA='ND_D',),);
# Impression des résultats
IMPR_RESU(MODELE=modl,
Impression des résultats au format texte
RESU=_F(RESULTAT=res1,),);
déplacements/contraintes sur tout le maillage
# Impression des résultats pour visualisation
avec GMSH
DEFI_FICHIER ( ACTION='ASSOCIER',
Définition de l'unité logique pour le fichier GMSH
UNITE=37,)
IMPR_RESU( MODELE=modl,
Impression des résultats au format GMSH
FORMAT='GMSH',
UNITE=37,
RESU=_F(RESULTAT = res1,),)
DEFI_FICHIER ( ACTION='LIBERER',
Fermeture de l'unité logique
UNITE=37,)
FIN();
...
Commande obligatoire pour clore une exécution
Manuel d'Utilisation
Fascicule U1.0- : Introduction à Code_Aster
HT-66/05/004/A
Code_Aster ®
Version
7.4
Titre :
Exemple simple d'utilisation
Date :
26/05/05
Auteur(s) :
M. ABBAS, J.M. PROIX, N. TARDIEU Clé
:
U1.05.00-C Page
: 6/10
4
Que contient le fichier de résultats ?
=> Une entête rappelant la date, la version, la plate-forme utilisée :
-- CODE_ASTER -- VERSION DE DEVELOPPEMENT 7.04.00 --
COPYRIGHT EDF-R&D 2003
EXECUTION DU : ME-11-JUIN-2003 10:11:32
PLATE-FORME : CLA1ASTR.CLA.EDF
NB MAX PROC : 1
SYSTEME : OSF1
CPU : ALPHA
--------------------------------------------------------------------------------
ASTER 7.01.07 CONCEPT res1 CALCULE LE 11/06/2003 A 10:11:34 DE TYPE EVOL_ELAS
=> Impression du champ de déplacements aux noeuds des groupes (points) A,B,C,D :
GROUP_MA : ND_A
CHAMP AUX NOEUDS DE NOM SYMBOLIQUE DEPL
NUMERO D'ORDRE: 1 INST: 0.00000E+00
NOEUD DX DY
N1 4.68143E-06 3.74958E-24
GROUP_MA : ND_B
CHAMP AUX NOEUDS DE NOM SYMBOLIQUE DEPL
NUMERO D'ORDRE: 1 INST: 0.00000E+00
NOEUD DX DY
N2 4.65280E-06 5.20865E-24
GROUP_MA : ND_C
CHAMP AUX NOEUDS DE NOM SYMBOLIQUE DEPL
NUMERO D'ORDRE: 1 INST: 0.00000E+00
NOEUD DX DY
N3 1.20218E-06 -2.63963E-06
GROUP_MA : ND_D
CHAMP AUX NOEUDS DE NOM SYMBOLIQUE DEPL
NUMERO D'ORDRE: 1 INST: 0.00000E+00
NOEUD DX DY
N4 3.31016E-09 -2.81696E-06
=> Impression du champ de contraintes
CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE SIGM_ELNO_DEPL
NUMERO D'ORDRE: 1 INST: 0.00000E+00
M37 SIXX SIYY SIZZ SIXY
N3 -5.13918E+03 -1.03624E+04 2.42856E+05 6.82275E+01 => Point C
N54 -4.40750E+03 -9.63147E+03 2.44564E+05 -4.70082E+01
N55 4.14124E+03 1.04408E+04 3.02923E+05 -6.66820E+01
N24 3.26306E+03 9.56344E+03 3.00873E+05 4.85536E+01
M51 SIXX SIYY SIZZ SIXY
N11 -3.38160E+03 4.89698E+03 9.41453E+05 2.91041E+04 => Point B
N68 -2.46101E+03 3.32521E+03 9.46093E+05 2.90567E+04
N10 -9.31239E+02 9.59144E+03 9.65451E+05 -3.32524E+04
N2 -1.90427E+03 1.11108E+04 9.60688E+05 -3.32050E+04
M111 SIXX SIYY SIZZ SIXY
Manuel d'Utilisation
Fascicule U1.0- : Introduction à Code_Aster
HT-66/05/004/A
Code_Aster ®
Version
7.4
Titre :
Exemple simple d'utilisation
Date :
26/05/05
Auteur(s) :
M. ABBAS, J.M. PROIX, N. TARDIEU Clé
:
U1.05.00-C Page
: 7/10
N110 -2.00922E+04 -1.00398E+04 9.51623E+05 2.92456E+04
N50 -1.90559E+04 -1.15088E+04 9.56546E+05 2.92049E+04
N1 -1.61470E+04 -4.53210E+03 9.76893E+05 -3.34251E+04 => Point A
N7 -1.72353E+04 -3.11525E+03 9.71848E+05 -3.33844E+04
M112 SIXX SIYY SIZZ SIXY
N3 3.43073E+03 9.63409E+03 2.51426E+05 5.11140E+01 => Point C
(appartient à plusieurs mailles)
N25 -4.96037E+03 -1.02898E+04 1.93404E+05 5.97663E+01
N111 -4.37491E+03 -9.70470E+03 1.94770E+05 -5.55617E+01
N54 4.16274E+03 1.03658E+04 2.53134E+05 -6.42140E+01
=> Un tableau résumant les commandes utilisées et le temps CPU de chacune :
***********************************************************
* COMMANDE * USER * SYSTEME * TOTAL *
***********************************************************
* DEBUT : 0.02 : 0.03 : 0.05 *
* PRE_GMSH : 0.02 : 0.02 : 0.03 *
* LIRE_MAILLAGE : 0.02 : 0.00 : 0.02 *
* DEFI_GROUP : 0.02 : 0.00 : 0.02 *
* AFFE_MODELE : 0.02 : 0.00 : 0.02 *
* DEFI_MATERIAU : 0.07 : 0.00 : 0.07 *
* AFFE_MATERIAU : 0.00 : 0.00 : 0.00 *
* AFFE_CHAR_MECA : 0.03 : 0.00 : 0.03 *
* DEFI_FONCTION : 0.00 : 0.00 : 0.00 *
* AFFE_CHAR_MECA_F : 0.02 : 0.02 : 0.03 *
* MECA_STATIQUE : 0.08 : 0.03 : 0.12 *
* CALC_ELEM : 0.03 : 0.00 : 0.03 *
* IMPR_RESU : 0.08 : 0.02 : 0.10 *
* IMPR_RESU : 0.03 : 0.02 : 0.05 *
* IMPR_RESU : 0.05 : 0.00 : 0.05 *
* IMPR_RESU : 0.05 : 0.00 : 0.05 *
* IMPR_RESU : 0.05 : 0.00 : 0.05 *
* IMPR_RESU : 0.17 : 0.20 : 0.37 *
* FIN : 0.00 : 0.03 : 0.03 *
***********************************************************
* TOTAL_JOB : 0.83 : 0.42 : 1.25 *
***********************************************************
Manuel d'Utilisation
Fascicule U1.0- : Introduction à Code_Aster
HT-66/05/004/A
Code_Aster ®
Version
7.4
Titre :
Exemple simple d'utilisation
Date :
26/05/05
Auteur(s) :
M. ABBAS, J.M. PROIX, N. TARDIEU Clé
:
U1.05.00-C Page
: 8/10
5
Et les autres fichiers produits par le calcul ?
5.1
Le fichier MESSAGE
Ce fichier contient l'écho des commandes et donne des informations complémentaires sur l'exécution
de chaque commande :
par exemple MECA_STATIQUE :
# -----------------------------------------------------------------------
# COMMANDE NO : 0011 CONCEPT DE TYPE : evol_elas
# ------------- -----------------
res1=MECA_STATIQUE(CHAM_MATER=chmat,
MODELE=modl,
ANGLE=0,
NIVE_COUCHE='MOY',
NUME_COUCHE=1,
SOLVEUR=_F(NPREC=8,
METHODE='MULT_FRONT',
STOP_SINGULIER='OUI',
RENUM='METIS'),
INFO=1,
PLAN='MAIL',
INST=0.0,
EXCIT=(_F(CHARGE=charg,
TYPE_CHARGE='FIXE'),
_F(CHARGE=clim,
TYPE_CHARGE='FIXE')),
);
--- NOMBRE TOTAL DE NOEUDS : 138 DONT :
12 NOEUDS "LAGRANGE"
--- NOMBRE TOTAL D'EQUATIONS : 264
--- NOMBRE DE COEFFICIENTS NON NULS DANS LA MATRICE : 2120
--- NOMBRE DE BLOCS UTILISES POUR LE STOCKAGE : 1
5.2
Le fichier GMSH
Le fichier GMSH (rempli par IMPR_RESU, format `GMSH') contient les données nécessaires à la
visualisation.
De même pour les autres fichiers d'interface avec des logiciels de post-traitement graphique (IDEAS,
ENSIGHT)
ou le logiciel de tracé de courbes XMGRACE.
5.3
Génération du maillage avec GMSH
On propose ici le fichier geo permettant la génération du maillage avec GMSH (logiciel libre et gratuit).
//////////////////////////////////////////////////////////////
// Maillage du réservoir GMSH V1.60
//////////////////////////////////////////////////////////////
// Variables
// Rayon interne du réservoir
Rint = 1;
// Epaisseur de la paroi
ep = 0.02;
// Rayon externe du reservoir
Rext = Rint+ep;
// Hauteur du reservoir
h = 4;
Manuel d'Utilisation
Fascicule U1.0- : Introduction à Code_Aster
HT-66/05/004/A
Code_Aster ®
Version
7.4
Titre :
Exemple simple d'utilisation
Date :
26/05/05
Auteur(s) :
M. ABBAS, J.M. PROIX, N. TARDIEU Clé
:
U1.05.00-C Page
: 9/10
// Nombre d'elements sur l'horizontale
nbelh= 5;
// Nombre d'elements sur la verticale
nbelv= 20;
// Points
Point(1) = {Rint,0,0,1};
Point(2) = {Rext,0,0,1};
Point(3) = {Rext,0.75*h,0,1};
Point(4) = {Rext,h,0,1};
Point(5) = {Rint,h,0,1};
Point(6) = {Rint,0.75*h,0,1};
// Lignes
Line(1) = {1,2};
Line(2) = {2,3};
Line(3) = {3,4};
Line(4) = {4,5};
Line(5) = {5,6};
Line(6) = {6,1};
Line(7) = {6,3};
// Surface réglée pour maillage réglé
Line Loop(1) = {-2,-1,-6,7};
Ruled Surface(1) = {1};
Line Loop(2) = {3, 4, 5, 7};
Ruled Surface(2) = {2};
// Description des groupes de mailles/noeuds (points)
Physical Point(1) = {1};
Physical Point(2) = {2};
Physical Point(3) = {3};
Physical Point(4) = {4};
Physical Point(5) = {5};
Physical Point(6) = {6};
// Description des groupes de mailles/noeuds (lignes)
Physical Line(11) = {1};
Physical Line(12) = {4};
Physical Line(13) = {5};
Physical Line(14) = {6};
// Description des groupes de mailles/noeuds (surface)
Physical Surface(21) = {1,2};
// Finesse du maillage (réglé)
Transfinite Line{1} = nbelh+1;
Transfinite Line{4} = nbelh+1;
Transfinite Line{7} = nbelh+1;
Transfinite Line{5,3}= 0.25*nbelv+1;
Transfinite Line{2,6}= 0.75*nbelv+1;
Transfinite Surface{1} = {3,6,1,2};
Transfinite Surface{2} = {3, 4, 5, 6};
// Passage triangles->quadrangles
Recombine Surface {1,2};
GMSH va générer les groupes de mailles 1 à 6 (points), 11 à 14 (lignes) et le groupe 21 (surface). Ces
groupes de mailles sont récupérés dans Code_Aster avec le nom GM## où ## est le numéro du
groupe GMSH.
Dans notre exemple, nous redéfinissons ces noms par DEFI_GROUP pour en avoir un nom plus
commode (APPUI, LFA, LDE).
Manuel d'Utilisation
Fascicule U1.0- : Introduction à Code_Aster
HT-66/05/004/A
Code_Aster ®
Version
7.4
Titre :
Exemple simple d'utilisation
Date :
26/05/05
Auteur(s) :
M. ABBAS, J.M. PROIX, N. TARDIEU Clé
:
U1.05.00-C Page
: 10/10
Page laissée intentionnellement blanche.
Manuel d'Utilisation
Fascicule U1.0- : Introduction à Code_Aster
HT-66/05/004/A
Document Outline