u1.05.00 Un exemple simple d’utilisation#
Résumé:
Ce document décrit un exemple très simple d’utilisation de Code_Ast er. Les fichiers de mise en données sont ceux du cas test FORMA00, disponible dans la base de cas tests de Code_Aster:
Script Salomé pour la génération de la CAO et du maillage |
forma00.datg |
Fichier de commandes de Code_Aster |
forma00.comm |
Sur la base de ce calcul simple d’un réservoir mince sous pression hydrostatique modélisé en axi-symétrique, on commente les commandes «essentielles».
Fabrication du maillage : que prévoir ?#
Que contient le fichier de résultats ?#
Une entête rappelant la date, la version du code, la plate-forme informatique d’exécution utilisée:
– CODE_ASTER – VERSION : DEVELOPPEMENT STABILISEE (testing) –
Version 11.1.0 du 07/12/2011
Copyright EDF R&D 1991 - 2012
Exécution du : Thu Apr 12 18:41:37 2012
Nom de la machine : cli75at
Architecture : 64bit
Type de processeur : x86_64
Système d’exploitation : Linux 2.6.32-27-generic
Langue des messages : fr (UTF-8)
Parallélisme MPI : inactif
Version de la librairie HDF5 : 1.8.4
Version de la librairie MED : 3.0.4
Librairie MUMPS : installée
Version de la librairie SCOTCH : 5.1.10
Limite de la mémoire statique : 1.000 Mo
Limite de la mémoire dynamique : 299.000 Mo
Taille limite des fichiers d’échange : 48.000 Go
ASTER 11.01.00 CONCEPT res1 CALCULE LE 12/04/2012 A 18:41:37 DE TYPE EVOL_ELAS
Impression du champ de déplacements aux nœuds du groupe \(A\) (ne contient en fait qu’un nœud: le point \(A\) ) :
GROUP_MA : NOEUDA
CHAMP AUX NOEUDS DE NOM SYMBOLIQUE DEPL
NUMERO D’ORDRE: 1 INST: 0.00000E+00
NOEUD DX DY
N1 9.95605E-06 1.24077E-23
Impression du champ de contraintes par éléments aux nœuds :
CHAMP PAR ELEMENT AUX NOEUDS DE NOM SYMBOLIQUE SIGM_ELNO
NUMERO D’ORDRE: 1 INST: 0.00000E+00
M211 SIXX SIYY SIZZ SIXY
N1 -1.26603E+05 -8.29982E+04 1.97655E+06 1.02990E+03
M212 SIXX SIYY SIZZ SIXY
N1 -1.50710E+05 -1.11440E+04 1.94959E+06 -2.92821E+04
Un tableau résumant les commandes utilisées et le temps CPU de chacune:
COMMAND : USER : SYSTEM : USER+SYS : ELAPSED *
AFFE_MODELE : 0.08 : 0.02 : 0.10 : 0.10 *
TOTAL_JOB : 1.59 : 0.14 : 1.73 : 1.67 *
Et les autres fichiers produits par le calcul ?#
Le fichier de messages#
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 : 0009 Concept de type : evol_elas
#————————————————————————-
res1=MECA_STATIQUE(EXCIT=(_F(TYPE_CHARGE=”FIXE”,
CHARGE=charg),
_F(TYPE_CHARGE=”FIXE”,
CHARGE=clim)),
INFO=1,
OPTION=”SIEF_ELGA”,
SOLVEUR=_F(RENUM=”METIS”,
STOP_SINGULIER=”OUI”,
METHODE=”MULT_FRONT”,
NPREC=8),
INST=0.0,
MODELE=modl,
CHAM_MATER=chmat,);
Le système linéaire à résoudre contient 51 nœuds dont:
43 nœuds portant des degrés de liberté physiques
8 nœuds portant des degrés de liberté de Lagrange
Pour un total de 94 équations.
CHAMP STOCKE : DEPL INSTANT : 0.00000E+00 NUMERO D’ORDRE : 1
# Fin commande No : 0009 user+syst: 0.13s (syst: 0.02s, elaps: 0.10s)
#————————————————————————-
Le fichier de résultats au format MED#
Le fichier de résultats au format MED est produit par défaut par Astk dans l’unité logique 80.
Ce fichier MED peut être importé par les modules de visualisation de Salomé (POSTPRO, PARAVIS) afin d’afficher les champs qui le composent (déplacement, contraintes):
Comment rédiger son fichier de commandes ?#
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 de 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 de l’installation du code),
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 … En particulier, les travaux pratiques des formations sont des tests: FORMA*** . Les documentations de validation associées (V) contiennent les intutitulés et les corrigés de ces travaux pratiques.
La rédaction de ce fichier de commande sera grandement facilitée en utilisant l’éditeur de fichier de commandes EFICAS.
Quelques commandes essentielles#
Nous allons maintenant détailler les commandes nécessaires à la réalisation du calcul envisagé.
Fichier de Commandes
Explications
# Cylindre mince sous pression hydrostatique
Les commentaires sont précédés du signe #,
DEBUT ( ) ;
Commande obligatoire pour commencer.
mail = LIRE_MAILLAGE ( FORMAT=”MED” ) ;
Lecture du maillage au format MED dans le fichier associé par défaut au maillage: l’unité logique 20. Création du concept mailcontenant le maillage au format Aster
# Définition du modèle
modl=AFFE_MODELE(MAILLAGE=mail, AFFE=_F(TOUT=”OUI”, PHENOMENE=”MECANIQUE”, MODELISATION=”AXIS”,),);
Un modèle est un concept, ici de nom modl, contenant les types d’éléments finis utiles au calcul. On associe à toutes les mailles du maillage des éléments finis mécaniques axi-symétriques. À noter: une même commande peut se poursuivre sur plusieurs lignes
# Définition du matériau
acier=DEFI_MATERIAU(ELAS=_F(E=210000000000.0, NU=0.3,),);
Définition d’un matériau particulier, qu’on a choisi de nommer ici acier, etde ses caractéristiques : Le module d’Young et le coefficient de Poisson pour le cas d’un matériau élastique.
# Affectation du matériau sur le maillage
chmat=AFFE_MATERIAU(MAILLAGE=mail, AFFE=_F(TOUT=”OUI”, MATER=acier,),);
Affectation du matériau acier sur le maillage mail. Ici le matériau est le même pour tout le maillage On pourrait bien sûr affecter des matériaux différents sur des groupes de mailles particuliers.
# Définition des conditions aux limites
clim=AFFE_CHAR_MECA(MODELE=modl, FACE_IMPO=_F(GROUP_MA=”LAB”, DY=0,),);
Les conditions aux limites peuvent porter sur des nœuds, des groupes de nœuds, des mailles ou des groupes de mailles. Ici les nœuds du groupe de mailles LAB (mailles de bord) sont affectées de la condition suivante: \(\mathrm{DY}=0\) ce qui signifie:«déplacement suivant \(y\) » nul pour tous les nœuds du groupe LAB
# Définition et affectation du chargement : pression fonction de \(y\)
f_y=DEFI_FONCTION(NOM_PARA=”Y”, VALE=(0.0,200000.0, 4.0,0.0,),);
Les fonctions sont définies point par point (variation affine entre deux points par défaut) Ici, la pression varie entre: \(200000\mathit{Pa}\) pour \(y=0\) et \(0\) pour \(y=L\)
charg=AFFE_CHAR_MECA_F(MODELE=modl, PRES_REP= _F(GROUP_MA=(“LFA”,”LDF”,), PRES=f_y,),);
Affectation de la pression (fonction de \(y\) ) sur le bord composé des groupes de mailles LFAet LDF
# Résolution
res1=MECA_STATIQUE(MODELE=modl, CHAM_MATER=chmat, EXCIT=(_F(CHARGE=charg,), _F(CHARGE=clim,),),);
Commande globale de résolution des problèmes statiques en thermo-élasticité linéaire Association avec le modèle, le champ de matériau(x) et le(s) chargement(s) précédemment définis. res1est le nom du concept résultat produit par la commande. Il contient en particulier le champ de déplacement calculé.
# Calcul des contraintes
res1=CALC_CHAMP(reuse =res1, RESULTAT=res1, CONTRAINTE=”SIGM_ELNO”,);
reuse=res1signifie que l’on «enrichit» le concept. res1: le champ de contraintes sera stocké en plus du champ de déplacements déjà présent dans le concept. Le nom’SIGM_ELNO” signifie «contraintes calculées aux nœuds de chaque élément à partir des déplacements»
# Impression des résultats
IMPR_RESU(FORMAT=”MED”, RESU=_F(RESULTAT=res1,),);
Impression des résultats au format MED : déplacements/contraintes sur tout le maillage
IMPR_RESU(RESU=_F(RESULTAT=res1, GROUP_NO=”A”,),);
Impression des résultats au format texte pour le seul groupe de nœuds «A».
FIN();
Commande obligatoire pour clore une exécution