Modélisation A ============== Caractéristiques de la modélisation ----------------------------------- Modélisation en éléments coques (DKT). .. image:: images/100000000000049C00000423B5D5829E0095EB29.png :width: 3.1709in :height: 3.298in .. _RefImage_100000000000049C00000423B5D5829E0095EB29.png: .. image:: images/10000000000003EC0000044F660BC956C9F3E610.png :width: 2.8965in :height: 3.4465in .. _RefImage_10000000000003EC0000044F660BC956C9F3E610.png: **Figure 3.1-a: géométrie et maillage du demi cylindre (RC initial)** Caractéristiques du maillage ---------------------------- Le maillage est régénéré à chaque itération en raison de la modification du rayon de courbure de la géométrie. Cependant les caractéristiques topologiques du maillage sont inchangées: * 1013 mailles(900 TRIA3, 110 SEG2, 3POI3) * 507 nœuds. Les groupes de mailles correspondent à: * :math:`\mathrm{GM30}` surface du :math:`\mathrm{TUYAU}` * :math:`\mathrm{GM28}\iff` section B (effort) * :math:`\mathrm{GM31}\iff` point :math:`\mathrm{A1}` :math:`(-R,0,0)` * :math:`\mathrm{GM27}\iff` section :math:`A` (encastrement) * :math:`\mathrm{GM29}\iff \mathrm{SYMETRIE}` Commandes Aster --------------- Ce paragraphe décrit l’algorithme utilisé dans le fichier de commandes et présente les commandes *Code_Aster* utilisées. * Initialisation de certaines variables: * Rayon de courbure: :math:`\mathrm{Rc}=0.3` * Critère de convergence: :math:`\mathrm{crit}=2.0E+09` (contrainte de Von Mises cible) * On entre dans la boucle python dont le critère d’arrêt porte sur la contrainte max de Von Mises. Tant que le critère n’est pas respecté, on effectue les instructions suivantes: * Reconstruction du maillage: * on redéfinit :math:`\mathrm{Rc}` dans le fichier géométrique .geo de GMSH * on lance gmsh via python pour générer le fichier de maillage .msh * Lecture du maillage (PRE_GMSH) et génération du maillage (LIRE_MAILLAGE). On utilise DEFI_GROUP pour renommer les groupes de mailles selon la correspondance: .. code-block:: text # GM30 <=> TUYAU # GM28 <=> EFOND # GM31 <=> A1 # GM27 <=> ENCAST # GM29 <=> SYMETRIE * Définition des éléments finis utilisés (AFFE_MODELE). Les tuyaux droits et le coude sont modélisés par des éléments de coque (DKT). * Réorientations des normales aux éléments: on utilise MODI_MAILLAGE pour orienter tous les éléments de la même façon, avec une normale tournée vers l’intérieur. * Définition et affectation du matériau (DEFI_MATERIAU et AFFE_MATERIAU). Les caractéristiques mécaniques sont identiques sur toute la structure. Boucle python d’optimisation du rayon de courbure * Affectation des caractéristiques des éléments coques (AFFE_CARA_ELEM): épaisseur, vecteur V définissant le repère de dépouillement (mot-clé ANGL_REP) * Définition des conditions aux limites et du chargement (AFFE_CHAR_MECA). * La tuyauterie est encastrée en sa base, sur tous les nœuds situés dans le plan Y=0. La tuyauterie présente un plan de symétrie :math:`Z=0` . * On calcule un effort réparti :math:`\mathrm{FY}` dirigé selon l'axe :math:`Y` et appliquée à la section :math:`B` , (l'effort réparti est tel que la résultante :math:`2\pi .\mathrm{RMOY.}\mathrm{FY}=\mathrm{FTOT}` , :math:`\mathrm{FTOT}` étant la force totale que l'on désire appliquer). Pour appliquer l’effort sur la section B, on utilisera FORCE_ARETE. * Résolution du problème élastique linéaire (MECA_STATIQUE). * Calcul du champ de contraintes par éléments aux nœuds pour chaque cas de charge (option 'SIGM_ELNO'). Les contraintes sont calculées dans le repère local défini pour chaque élément à l’aide du vecteur :math:`V` (mot clé ANG_REP précédent). Utiliser NIVE_COUCHE pour définir le niveau de calcul dans l’épaisseur. * Calcul du champ de contraintes équivalentes par éléments aux nœuds calculé à partir du champ de contrainte (option 'SIEQ_ELNO'). * Calcul des champs précédents aux nœuds (options 'SIGM_NOEU', 'SIEQ_NOEU') * Impression des résultats (IMPR_RESU). * Détermination d’une table contenant les calculs de moyennes du champ de contraintes équivalentes aux nœuds.(‘POST_RELEVE_T’) * Extraction de la composante VMIS de la table précédente via python. * Test d’arrêt: * Si VMIS est supérieure à CRIT, alors on réitère avec :math:`\mathrm{Rc}=\mathrm{Rc}+0.2` * Sinon on sort de la boucle python.