next_inactive up previous


T1phvmn

Tutorial 5 :
Modélisation plasticité volumique
Version 1


Date: 21 février 2007


Table des matières

Table des évolutions

Version Date Modifications Auteur(s)
01 30/01/2007 Création PC
       
       
       

Mots clefs : plasticité, STAT_NON_LINE, déformation plastique cumulée, indicateur plastique.

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 $ ^{\tiny {\textregistered }}$ aussi bien dans la mise en donnée que dans la démarche. Nombre d'explications apparaîtrons triviales rendant le style « lourd », nous espérons cependant qu'elles seront claires.

Ce document se voulant interactif, le signalement de toute erreur est le bienvenu $ \ldots$ il en va de même pour les améliorations.

Le lecteur est invité à lire le tutorial 1 (CAELINUX_post-traitement.pdf) traitant spécifiquement du post-traitement (graphique) des résultats ; il y trouvera quelques façons de visualiser les résultats (déplacements, champs de contraintes, courbes, etc. ...). De cette façon, les différents tutoriaux se concentreront sur le thème de la note.

Introduction

Dans le présent tutorial, nous nous proposons d'étudier la plastification volumique d'une pièce (par opposition aux éléments de coque qui peuvent présenter une instabilité ; dès lors, le traitement demande une approche spécifique). Nous exploiterons classiquement la symétrie cyclique de la pièce1.

La modélisation correspond à une jante en aluminium soumise à un déplacement imposé au niveau du moyeu.

Les calculs ont été réalisés sous Code Aster $ ^{\tiny {\textregistered }}$ V8.3.

NOTA : Le calcul a demandé 350 Kmots sous 32 bits ; cette quantité correspond à la mémoire maximale que peut gérer le compilateur (version NECS $ ^{\tiny {\copyright}}$). En cas de limitation mémoire, il est possible de demander à Code Aster $ ^{\tiny {\textregistered }}$ d'utiliser le moins de ressource possible en sélectionnant le mot clef COMPACTE $ \ldots$ mais il est important de garder à l'esprit que c'est au prix de très nombreux accès disque (swap) et le temps de calculs s'en trouve grandement augmenté.

Préparation du modèle numérique/définition du maillage

Les figures 1 et 2 présentent la maquette 3D de la pièce d'étude. Cette dernière présente une symétrie à 120$ ^\circ$.

Figure 1: Maquette 3D jante
Figure 2: $ \frac {1}{3}$ Jante
Image CAO_rim2

Image CAO_rim1

Maillage

Le maillage se compose d'éléments de volume, en majorité des héxaèdres du second ordre (cf. figures 3 et 5).

Figure 3: Maillage jante - vue 1
Figure 4: Maillage jante - vue 2
Figure 5: Maillage jante - vue 3
Image maillage_rim1

Image maillage_rim2

Image maillage_rim3

Objectif de la modélisation

Il s'agit ici plus d'un cas d'école que d'une modélisation industrielle, c'est-à-dire réalisée dans les règles de "l'art" ; il aurait fallu en effet introduire du contact pour simuler les rotations locales des groupes APPUI1 (face d'appui de la jante) et DEPL1 (zone d'application du déplacement sur le moyeu) $ \dots$ dans le cas présent, les déformations/contraintes s'en trouvent forcement surestimées) $ \ldots$ nous cherchons ici à déterminer :
  1. le champ de contraintes élastoplastiques dans la pièce lorsque nous imposons un déplacement au centre de la jante (au niveau du moyeu),
  2. le déplacement à partir duquel la pièce plastifie.

Déroulement des calculs

Comme à chaque fois, nous pensons qu'il est plus pertinent de lancer les simulations en 2 temps :
$ \triangleright$
Le calcul mécanique à proprement parlé (STAT_NON_LINE),
$ \triangleright$
Le post-traitement des grandeurs mécaniques (contraintes équivalentes, déplacements, déformations plastiques cumulées, etc. ...),

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 $ \ldots$ ou tout simplement une erreur de post-traitement).

Etape 1 : calcul mécanique

F mess /rim_MEC_P2.mess R 6
F erre /rim_MEC_P2.erre R 9
R base /base_MECA_P2 R 0
F comm /rim_MEC_P2.comm D 1
F unv /rim3_tiers.unv D 19

Etape 2 : Post-traitement des résultats mécaniques - sous Gibi $ ^{\tiny {\textregistered }}$ ici

F mess /rim_MEC_P2_post.mess R 6
F erre /rim_MEC_P2_post.erre R 9
R base /base_MECA_P2 D 0
F comm /rim_MEC_P2_post.comm D 1
F cast /rim_P2_post.cast R 50

Chronologie de mise en données

La mise en données est somme toute assez logique ; EFICAS $ ^{\tiny {\textregistered }}$ est d'une aide appréciable pour cela :
  1. Lecture du maillage,
  2. Définition du modèle et des éléments de volume,
  3. Affectation du modèle au maillage,
  4. Définition des propriétés du matériau,
  5. Affectation du matériau au maillage,
  6. Définition des conditions aux limites (CL) et des chargements,
  7. Résolution,
  8. Post-traitement des résultats,

Remarque préalable sur les unités

Code Aster $ ^{\tiny {\textregistered }}$ (comme la plupart des solveurs du commerce) ne traite pas des unités des grandeurs physiques (unités métriques, anglo-saxones, etc. ....) ; c'est à l'utilisateur de s'assurer qu'elles sont cohérentes.

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/mm$ ^{2}$) et le mm ; les résultats seront donc dans les mêmes unités.

Définition et affectation du modèle

Nous lisons ici un maillage au format IDEAS $ ^{\tiny {\textregistered }}$(.unv).

PRE_IDEAS();

MAIL_P2=LIRE_MAILLAGE();
#Définition & affectation modèle

MODELE=AFFE_MODELE(MAILLAGE=MAIL_P2,
                   AFFE=_F(GROUP_MA='RIM',
                           PHENOMENE='MECANIQUE',
                           MODELISATION='3D',),);

Définition du matériau

Nous avons choisi comme matériau un aluminium de la famille 6000 avec un module d'Young de 70000 MPa, un coefficient de Poisson de 0.3 et une limite élastique de $ Rp_{0.2}$=105 MPa. La partie plastique correspond à la courbe point-par-point expérimentale (traction monotone - cf.Fig. 6).

NOTA : La partie plastique est implémentée dans Code Aster $ ^{\tiny {\textregistered }}$ sous la forme $ \sigma = f \left( \epsilon_{totale} \right)$. L'abscisse de la première contrainte est non nulle ; elle correspond à la déformation élastique ( $ \epsilon = \epsilon^{e} = \frac{Rp_{0.2}}{E}$).

Ces propriétés sont affectées à l'ensemble du maillage.

ELAST_PL=DEFI_FONCTION(NOM_PARA='EPSI',
                       NOM_RESU='SIGM',
                       VALE=
                       (0.0015,105.0,0.002,113.0,0.003,117.0,0.004,120.0,0.005,122.0,0.01,135.0,0.02,
                              155.0,0.03,172.0,0.04,186.0,0.05,198.0,0.06,208.0,0.07,218.0,0.08,227.0,0.09,234.0,0.1,241.0,
                              0.11,248.0,0.12,254.0,0.13,259.0,0.14,264.0,0.15,268.0,0.16,273.0,0.17,276.0,0.18,280.0,0.19,
                              283.0,0.2,286.0,),
                       INTERPOL='LIN',
                       PROL_DROITE='LINEAIRE',
                       PROL_GAUCHE='CONSTANT',);

A6000=DEFI_MATERIAU(ELAS=_F(E=70000,
                            NU=0.3,),
                    TRACTION=_F(SIGM=ELAST_PL,),);

Figure 6: Courbe élasto-plastique de l'aluminium - Traction monotone jusqu'à 20%
\begin{figure}<tex2html_file> ...

Définition des conditions aux limites

Les éléments de volume sont définis par 3 translations (3 DDL) qu'il convient de bloquer sous peine d'avoir des pivots nuls (signe que le problème n'est pas soluble).

La symétrie cyclique est exploitée (le lecteur est invité à se reporter au tutorial n$ ^\circ$2 - CAELINUX_symetrie_cyclique.pdf - pour des explications détaillées). Les CL sont les suivantes (cf. également fig. 7) :

  1. Le plan de symétrie PLAN_XOY pour lequel les translations selon Z sont bloquées (DZ=0) dans le repère global,
  2. Le plan de symétrie PLAN_120 pour lequel les translations selon Z sont bloquées (DZ=0) dans le repère local (cela revient à bloquer DX et DZ dans le repère global),
  3. Les déplacements verticaux de la face inférieure (GROUP_MA APPUI1) sont bloqués (DY=0).

NOTA : A noter que les groupes créés et affectés aux repères local & global ne doivent pas avoir des noeuds communs sous peine de conditions redondantes $ \ldots$ des opérations booléennes sont opérées.

#Definition des groupes de noeuds à partir des groupes de mailles

MAIL_P2=DEFI_GROUP(reuse =MAIL_P2,
                   MAILLAGE=MAIL_P2,
                   CREA_GROUP_NO=(_F(GROUP_MA='PLAN_XOY',),
                                  _F(GROUP_MA='PLAN_120',),
                                  _F(GROUP_MA='APPUI1',),
                                  _F(GROUP_MA='APPUI2',),
                                  _F(GROUP_MA='DEPL1',),
                                  _F(GROUP_MA='DEPL2',),),);
#Opérations booléennes pour retirer les noeuds communs à PLAN_XoY & PLAN_120

MAIL_P2=DEFI_GROUP(reuse =MAIL_P2,
                   MAILLAGE=MAIL_P2,
                   CREA_GROUP_NO=(_F(INTERSEC=('PLAN_120','PLAN_XOY',),
                                     NOM='N_COM_PL',),
                                  _F(DIFFE=('PLAN_XOY','N_COM_PL',),
                                     NOM='PLAN_G',),
                                  _F(INTERSEC=('PLAN_120','APPUI1',),
                                     NOM='APPUI_LO',),
                                  _F(DIFFE=('APPUI1','APPUI_LO',),
                                     NOM='APPUI_G',),
                                  _F(INTERSEC=('DEPL1','PLAN_120',),
                                     NOM='DEPL_LO',),
                                  _F(DIFFE=('DEPL1','DEPL_LO',),
                                     NOM='DEPL_G',),),);

Figure 7: Groupes de mailles sur lesquelles s'appliquent les CL fig.
Image CL_maillage

CL=AFFE_CHAR_MECA(MODELE=MODELE,
                  DDL_IMPO=(_F(GROUP_NO='PLAN_G',
                               DZ=0.0,),
                            _F(GROUP_NO='APPUI_G',
                               DY=0.0,),),
                  LIAISON_OBLIQUE=(_F(GROUP_NO='PLAN_120',
                                      ANGL_NAUT=(0,-120,0,),
                                      DZ=0.0,),
                                   _F(GROUP_NO='APPUI_LO',
                                      ANGL_NAUT=(0,-120,0,),
                                      DY=0,),),);

Chargement

Un chargement sous la forme d'un déplacement imposé sur le GROUP_NO DEPL1 est appliqué. A noter que contrairement au cas linéaire (MECA_STATIQUE) pour lequel seul l'état final est calculé, tout calcul non-linéaire passe par l'établissement d'états intermédiaires nécessaires à la convergence du résultat final.

L'établissement de chaque pas de temps (un pas = un incrément de temps) relève d'une stratégie qui vise à permettre la convergence du calcul (sans convergence point de résultat) tout en ayant des temps de calculs raisonnables :

Nous imposons un déplacement de 10 mm ; ce dernier s'applique en 10 fois sur le premier millimètre (variation linéaire, c'est-à-dire tous les 0.1 mm) et tous les 0.25 mm ensuite2.

DEPL_IMP=DEFI_FONCTION(NOM_PARA='INST',
                       VALE=(0.0,0.0,
                             1.0,10,
                             ),
                       INTERPOL='LIN',
                       PROL_DROITE='LINEAIRE',
                       PROL_GAUCHE='CONSTANT',);

CHARGMNT=AFFE_CHAR_MECA_F(MODELE=MODELE,
                          DDL_IMPO=_F(GROUP_NO='DEPL_G',
                                      DY=DEPL_IMP,),
                          LIAISON_OBLIQUE=_F(GROUP_NO='DEPL_LO',
                                             ANGL_NAUT=(0,-120,0,),
                                             DY=DEPL_IMP,),);
                                             
PAS=DEFI_LIST_REEL(DEBUT=0,
                   INTERVALLE=(_F(JUSQU_A=1,
                                  PAS=0.1,),
                               _F(JUSQU_A=10,
                                  PAS=0.25,),),);

Calcul non linéaire

Nous réalisons un simple calcul statique non-linéaire avec l'opérateur STAT_NON_LINE.

Nombre de paramètres sont accessibles et nous nous proposons de donner quelques pistes pour les explications (dans la limite de notre propre compréhension) $ \ldots$ nul doute qu'à elle seule cette partie devrait être à l'origine de nombreux commentaires3.

Mise en données

RESOL_NL=STAT_NON_LINE(MODELE=MODELE,
                       CHAM_MATER=MATERIO,
                       EXCIT=(_F(CHARGE=CL,),
                              _F(CHARGE=CHARGMNT,),),
                       COMP_INCR=_F(RELATION='VMIS_ISOT_TRAC',
                                    DEFORMATION='GREEN',),
                       INCREMENT=_F(LIST_INST=PAS,
                                    SUBD_PAS=4,
                                    SUBD_PAS_MINI=1e-006,),
                       NEWTON=_F(REAC_ITER=0,),
                       CONVERGENCE=_F(RESI_GLOB_RELA=1e-006,
                                      ITER_GLOB_MAXI=10,),
                       ARCHIVAGE=_F(LIST_INST=PAS,
                                    ARCH_ETAT_INIT='OUI',),);

COMP_INCR

COMP_INCR signifie littéralement COMPortement INCRémental. En effet, Code Aster $ ^{\tiny {\textregistered }}$ (comme l'ensemble des solveurs non-linéaires) calcule à chaque pas l'incrément de déformation total :

$\displaystyle d\epsilon_{totale} = d\epsilon^{e} + d\epsilon^{pl}$


L'incrément de déformation plastique suit une règle de normalité et autres conditions de consistence :

$\displaystyle d\epsilon^{pl} = d\lambda \frac{\partial \phi}{\partial \sigma}$

Le potentiel plastique $ \phi$ et le type d'écrouissage (isotrope, cinématique, mixte, etc. ...) sont définis au travers du mot clef RELATION ; ce sont par exemple les potentiels de VON MISES, ROUSSELIER, LEMAITRE, CHABOCHE, NORTON-HOFF, MAZARS, DRUCKER-PRAGER, etc. $ \ldots$

RELATION

Nous avons choisi ici le potentiel plastique de Von Mises4 (potentiel très répandu dans les matériaux métalliques, en particulier les ferreux) et un écrouissage isotrope non linéaire (mot clef VMIS_ISOT_TRAC).

A noter que d'autres types d'écrouissage sont disponibles, à savoir un écrouissage isotrope linéaire (VMIS_ISOT_LINE) ou un écrouissage cinématique linéaire (VMIS_CINE_LINE).

DEFORMATION

Différents mots clefs sont disponibles dans COMP_INCR (cf. document U4.51.11.pdf) :
  1. PETIT : nous sommes classiquement dans l'hypothèse des petites perturbations (HPP) pour laquelle le tenseur des déformations est linéarisé ( $ \epsilon_{ij}=\frac{1}{2} \left[ grad \: U_{ij}  +  ^{t}grad \: U_{ij} \right]$) ...concrètement cela équivaut à avoir un module des déformations inférieur à 5%.
  2. PETIT_REAC : nous restons dans le cas des petites déformations sur un maillage réactualisé à chaque pas de temps $ \ldots$ "Cela permet une approximation des grandes déformations à condition que les rotations locales soient faibles, et à condition d'utiliser un pas de temps très petit".
  3. GREEN : Le tenseur des déformations est ici le tenseur de GREEN-LAGRANGE qui fait intervenir le second gradient (ou plus exactement le produit des gradients)
    $ \epsilon_{ij}=\frac{1}{2} \left[ grad \: U_{ij}  +  ^{t}grad \: U_{ij} + grad \: U_{ki} \times ^{t}grad \: U_{kj} \right]$ ) pour traiter des problématiques de petites déformations et "grandes rotations" $ \ldots$ ATTENTION : ce mot clef n'est valable que pour les éléments 3D, AXIS, D_PLAN et C_PLAN.
  4. GREEN_GR : idem cas précédent pour les COQUE_3D (et les POU_D_T_DG).
  5. SIMO_MIEHE : Ce tenseur permet de réaliser des calculs en grandes déformations plastiques (en grands déplacement et rotation - cf. doc R5.03.21.pdf) ; ATTENTION : tous les éléments et les potentiels plastiques ne sont pas supportés ; sont acceptés seulement les éléments 3D, 3D_INCO, AXIS, AXIS_INCO, D_PLAN, PLAN_INCO et les comportements ELAS, VMIS_ISOT_LINE, VMIS_ISOT_TRAC et ROUSSELIER.

Pour notre calcul élastoplastique nous choisissons naturellement le tenseur de SIMO_MIEHE.

INCREMENT

Le mot clef INCREMENT permet de définir le pas (cf. PAS=DEFI_LIST_REEL). Lorsque la convergence est atteinte, Code Aster $ ^{\tiny {\textregistered }}$ passe au pas suivant ; dans le cas contraire et si rien n'est spécifié, le calcul s'arrête par manque de convergence.

Pour palier à ce dernier problème, il est possible de spécifier la subdivision du pas courant (mot clef SUBD_PAS) et un seuil mini en-dessous duquel il n'est pas raisonnable de descendre (et en-dessous duquel le calcul s'arrête (SUBD_PAS_MINI)).

Pour tout calcul non-linéaire dont on ne connaît pas la convergence, c'est une démarche qu'il est nécessaire d'adopter.

NEWTON

A ce niveau, 2 mots clefs sont introduits pour réaliser le calcul :

  1. PREDICTION : utilisation de la matrice tangente en vitesse (cf.document U4.51.03.pdf),
  2. REAC_ITER : dans le cas présent, la valeur 0 indique que la matrice tangente n'est réactualisée qu'au début de chaque pas ; si REAC_ITER=1 par exemple, la matrice est réévaluée à chaque incrément (cela permet notamment d'améliorer la convergence du calcul $ \ldots$ mais le temps calcul s'en trouvera pénalisé).

CONVERGENCE

Nous définissons ici la valeur du résidus (RESI_GLOB_RELA) et le nombre d'itérations au-delà duquel la subdivision est provoquée en l'absence de convergence (ITER_GLOB_MAXI) :
  1. RESI_GLOB_RELA : A $ 10^{-3}$, le résidu est considéré comme "lâche" ; pour une plus grande précision, nous choisissons $ 10^{-6}$ même si le temps calcul s'en trouve allongé,
  2. ITER_GLOB_MAXI : nous choisissons un nombre de 10 itérations pour arriver à la convergence

ARCHIVAGE

Si rien n'est spécifié, tous les incréments qui ont convergé seront sauvegardés, ce qui peut conduire à d'énormes fichiers résultats (particulièrement si Code Aster $ ^{\tiny {\textregistered }}$ a souvent subdivisé).

Il est possible de définir des archivages spécifiques avec DEFI_LIST_REEL ; dans la cas présent, nous archivons selon de découpage prévu avec PAS.

Post-traitement

Le lecteur se reportera au tutorial n$ ^\circ$1 (CAELINUX_post-traitement.pdf) pour plus de détails sur la mise en données du post-traitement.

Déplacements

Les figures 8 à 10 montrent le maillage déformé sous l'effet du chargement mécanique (au dernier ordre).

Figure 8: Maillage déformé VS maillage initiale - vue 1
Figure 9: Maillage déformé VS maillage initiale - vue 2
Figure 10: Maillage déformé VS maillage initiale - vue 3
Image depl_vue1

Image depl_vue2

Image depl_vue4

Les figures suivantes (fig. 11 à 13) montrent le module des déplacements au dernier ordre.

Figure 11: Isovaleur des déplacements - vue 1
Figure 12: Isovaleur des déplacements - vue 2
Figure 13: Isovaleur des déplacements - vue 3
Image iso_depl_vue1

Image iso_depl_vue2

Image iso_depl_vue3

Les 3 dernières figures (fig. 14 à 16) montrent les vecteurs déplacements au dernier ordre.

Figure 14: Vecteurs déplacements - vue 1
Figure 15: Vecteurs déplacements - vue 2
Figure 16: Vecteurs déplacements - vue 3
Image vect_depl_vue1

Image vect_depl_vue2

Image vect_depl_vue4

Contraintes équivalentes de Von Mises

Les figures 17 à 19 présentent les contraintes équivalentes de Von Mises (EQUI_ELNO_SIGM, CMP=VMIS) au dernier ordre.
Figure 17: Contraintes de Von Mises sur déformée - vue 1
Figure 18: Contraintes de Von Mises sur déformée - vue 2
Figure 19: Contraintes de Von Mises sur déformée - vue 3
Image vmis_deformee_vue1

Image vmis_deformee_vue3

Image vmis_deformee_vue3

Déformations équivalentes

Les figures 20 à 22 présentent les déformations équivalentes (EQUI_ELNO_EPSI, CMP=IN_2) au dernier ordre.
Figure 20: Déformations équivalentes sur déformée - vue 1
Figure 21: Déformations équivalentes sur déformée - vue 2
Figure 22: Déformations équivalentes sur déformée - vue 3
Image epsi_eq_vue1

Image epsi_eq_vue3

Image epsi_eq_vue4

Déformations plastiques cumulées

Les figures 17 à 19 présentent les déformations plastiques cumulées (VARI_ELNO_ELGA, CMP=V1) au dernier ordre.
Figure 23: Déformations plastiques cumulées - vue 1
Figure 24: Déformations plastiques cumulées - vue 2
Figure 25: Déformations plastiques cumulées - vue 3
Image v1_vue1

Image v1_vue2

Image v1_vue3

Indicateur plastique

Les figures 17 à 19 présentent l'indicateur plastique (VARI_ELNO_ELGA, CMP=V2) au dernier ordre.
Figure 26: Indicateur plastique - vue 1
Figure 27: Indicateur plastique - vue 2
Figure 28: Indicateur plastique - vue 3
Image v2_vue1

Image v2_vue2

Image v2_vue3

NOTA : l'indicateur prend la valeur 1 quand l'élément a plastifie, 0 sinon ; bien que les codes couleur indiquent des valeurs proches de 0 ou 1, les 3 figures (fig. 26 à 28) mettent en évidence les effets de l'extrapolation.

Evolution de l'effort nodal au regard du déplacement imposé

La figure 29 montre le noeud pour lequel l'effort en fonction du déplacement imposé est post-traité. A noter que pour avoir la valeur réelle, il faut multiplier par 3 puisque c'est le tiers de la pièce qui est modélisée.

La courbe présentée à la figure 30 montre cette évolution. L'inflexion de la courbe entre 1 et 1.25 mm pointe le "moment" à partir duquel la pièce plastifie.

Figure 29: Présentation du noeud servant à tracer l'effort nodal
Image rim_fy_uy

Figure 30: Evolution de l'effort nodal $ F_y  vs  U_y$ (déplacement imposé)
\begin{figure}<tex2html_file> ...

Eléments linéaires ou quadratiques

Eléments linéaires ou quadratiques ?

Si les premiers donnent rapidement des résultats et peuvent servir à optimiser les incréments (éviter les subdivisions inutiles), ils demeurent moins précis que les éléments quadratiques, particulièrement dans les zones à fort gradient.

La figure 31 montre que la contrainte maximale (éléments P1) est de l'ordre de 10% inférieure à celle calculée avec des éléments quadratiques (cf. figure 17).

Figure 31: Contrainte max. de Von Mises calculée avec des éléments linéaires
Image vmis_lineaire

Fichiers Code Aster $ ^{\tiny {\textregistered }}$ complets

Fichier calcul

DEBUT(MEMOIRE=_F(TYPE_ALLOCATION=4,
                 TAILLE=41000,
                 PARTITION=0.83,),);
#Lecture maillage

PRE_IDEAS();

MAIL_P2=LIRE_MAILLAGE();
#Définition & affectation modèle

MODELE=AFFE_MODELE(MAILLAGE=MAIL_P2,
                   AFFE=_F(GROUP_MA='RIM',
                           PHENOMENE='MECANIQUE',
                           MODELISATION='3D',),);
#Définition du materiau

ELAST_PL=DEFI_FONCTION(NOM_PARA='EPSI',
                       NOM_RESU='SIGM',
                       VALE=
                       (0.0015,105.0,0.002,113.0,0.003,117.0,0.004,120.0,0.005,122.0,0.01,135.0,0.02,
                              155.0,0.03,172.0,0.04,186.0,0.05,198.0,0.06,208.0,0.07,218.0,0.08,227.0,0.09,234.0,0.1,241.0,
                              0.11,248.0,0.12,254.0,0.13,259.0,0.14,264.0,0.15,268.0,0.16,273.0,0.17,276.0,0.18,280.0,0.19,
                              283.0,0.2,286.0,0.25,299.0,0.3,308.0,0.35,314.0,0.4,319.0,0.45,322.0,0.5,325.0,0.9,333.0,),
                       INTERPOL='LIN',
                       PROL_DROITE='LINEAIRE',
                       PROL_GAUCHE='CONSTANT',);

A6000=DEFI_MATERIAU(ELAS=_F(E=70000,
                            NU=0.3,),
                    TRACTION=_F(SIGM=ELAST_PL,),);

MATERIO=AFFE_MATERIAU(MAILLAGE=MAIL_P2,
                      AFFE=_F(GROUP_MA='RIM',
                              MATER=A6000,),);
#Definition des groupes de noeuds à partir des groupes de mailles

MAIL_P2=DEFI_GROUP(reuse =MAIL_P2,
                   MAILLAGE=MAIL_P2,
                   CREA_GROUP_NO=(_F(GROUP_MA='PLAN_XOY',),
                                  _F(GROUP_MA='PLAN_120',),
                                  _F(GROUP_MA='APPUI1',),
                                  _F(GROUP_MA='APPUI2',),
                                  _F(GROUP_MA='DEPL1',),
                                  _F(GROUP_MA='DEPL2',),),);
#Opérations booléennes pour retirer les noeuds communs à PLAN_XoY & PLAN_120

MAIL_P2=DEFI_GROUP(reuse =MAIL_P2,
                   MAILLAGE=MAIL_P2,
                   CREA_GROUP_NO=(_F(INTERSEC=('PLAN_120','PLAN_XOY',),
                                     NOM='N_COM_PL',),
                                  _F(DIFFE=('PLAN_XOY','N_COM_PL',),
                                     NOM='PLAN_G',),
                                  _F(INTERSEC=('PLAN_120','APPUI1',),
                                     NOM='APPUI_LO',),
                                  _F(DIFFE=('APPUI1','APPUI_LO',),
                                     NOM='APPUI_G',),
                                  _F(INTERSEC=('DEPL1','PLAN_120',),
                                     NOM='DEPL_LO',),
                                  _F(DIFFE=('DEPL1','DEPL_LO',),
                                     NOM='DEPL_G',),),);
#Définition des CL

CL=AFFE_CHAR_MECA(MODELE=MODELE,
                  DDL_IMPO=(_F(GROUP_NO='PLAN_G',
                               DZ=0.0,),
                            _F(GROUP_NO='APPUI_G',
                               DY=0.0,),),
                  LIAISON_OBLIQUE=(_F(GROUP_NO='PLAN_120',
                                      ANGL_NAUT=(0,-120,0,),
                                      DZ=0.0,),
                                   _F(GROUP_NO='APPUI_LO',
                                      ANGL_NAUT=(0,-120,0,),
                                      DY=0,),),);
#Définition du chargement : déplacement imposé

DEPL_IMP=DEFI_FONCTION(NOM_PARA='INST',
                       VALE=(0,0,
                             10,10,
                             ),
                       INTERPOL='LIN',
                       PROL_DROITE='LINEAIRE',
                       PROL_GAUCHE='CONSTANT',);

CHARGMNT=AFFE_CHAR_MECA_F(MODELE=MODELE,
                          DDL_IMPO=_F(GROUP_NO='DEPL_G',
                                      DY=DEPL_IMP,),
                          LIAISON_OBLIQUE=_F(GROUP_NO='DEPL_LO',
                                             ANGL_NAUT=(0,-120,0,),
                                             DY=DEPL_IMP,),);
#Définition du calcul NL

PAS=DEFI_LIST_REEL(DEBUT=0,
                   INTERVALLE=(_F(JUSQU_A=1,
                                  PAS=0.1,),
                               _F(JUSQU_A=10,
                                  PAS=0.25,),),);

RESOL_NL=STAT_NON_LINE(MODELE=MODELE,
                       CHAM_MATER=MATERIO,
                       EXCIT=(_F(CHARGE=CL,),
                              _F(CHARGE=CHARGMNT,),),
                       COMP_INCR=_F(RELATION='VMIS_ISOT_TRAC',
                                    DEFORMATION='SIMO_MIEHE',),
                       INCREMENT=_F(LIST_INST=PAS,
                                    SUBD_PAS=4,
                                    SUBD_PAS_MINI=1e-006,),
                       NEWTON=_F(PREDICTION='TANGENTE',
                                 REAC_ITER=0,),
                       CONVERGENCE=_F(RESI_GLOB_RELA=1e-006,
                                      ITER_GLOB_MAXI=10,),
                       ARCHIVAGE=_F(LIST_INST=PAS,
                                    ARCH_ETAT_INIT='OUI',
                                    CHAM_EXCLU=('VARI_NON_LOCAL','LANL_ELGA',),),
                       INFO=2,);

FIN();

Fichier post-traitement

POURSUITE();

RESOL_NL=CALC_ELEM(reuse =RESOL_NL,
                   RESULTAT=RESOL_NL,
                   OPTION=('SIEF_ELNO_ELGA','EQUI_ELNO_SIGM','VARI_ELNO_ELGA','EPSI_ELNO_DEPL','EQUI_ELNO_EPSI',),);

IMPR_RESU(FORMAT='CASTEM',
          UNITE=50,
          RESU=_F(MAILLAGE=MAIL_P2,
                  RESULTAT=RESOL_NL,
                  NOM_CHAM=('DEPL','EQUI_ELNO_SIGM','VARI_ELNO_ELGA','EQUI_ELNO_EPSI',),
                  INST=10,
                  TOUT_CMP='OUI',),);
#Calcul de la réaction aux noeuds

RESOL_NL=CALC_NO(reuse =RESOL_NL,
                 RESULTAT=RESOL_NL,
                 TOUT_ORDRE='OUI',
                 OPTION='FORC_NODA',
                 GROUP_NO_RESU=('DEPL_G','DEPL_LO',),);
#Evolution de la contrainte max de Von mises au cours du calcul

MAIL_P2=DEFI_GROUP(reuse =MAIL_P2,
                   MAILLAGE=MAIL_P2,
                   CREA_GROUP_NO=_F(GROUP_MA='RIM',),);

POST_R=POST_RELEVE_T(ACTION=(_F(OPERATION='EXTRACTION',
                                INTITULE='Uy',
                                RESULTAT=RESOL_NL,
                                NOM_CHAM='DEPL',
                                TOUT_ORDRE='OUI',
                                NOEUD='N9882',
                                NOM_CMP='DY',),
                             _F(OPERATION='EXTRACTION',
                                INTITULE='Resultante',
                                RESULTAT=RESOL_NL,
                                NOM_CHAM='FORC_NODA',
                                TOUT_ORDRE='OUI',
                                NOEUD='N9882',
                                RESULTANTE='DY',),),);

IMPR_TABLE(TABLE=POST_R,);

Dy=RECU_FONCTION(TABLE=POST_R,
                 PARA_X='INST',
                 PARA_Y='DY',
                 FILTRE=_F(NOM_PARA='INTITULE',
                           VALE_K='Uy',),);

FY=RECU_FONCTION(TABLE=POST_R,
                 PARA_X='INST',
                 PARA_Y='DY',
                 FILTRE=_F(NOM_PARA='INTITULE',
                           VALE_K='Resultante',),);

IMPR_FONCTION(FORMAT='XMGRACE',
              UNITE=51,
              COURBE=_F(FONC_X=Dy,
                        FONC_Y=FY,),
              TITRE='Reaction VS deplacement',
              LEGENDE_X='Deplacement [mm]',
              LEGENDE_Y='Reaction [N]',);

FIN();

Fichier Gibi $ ^{\tiny {\textregistered }}$

*************************************************************
* donner ici le nom du fichier de post traitement (*.cast)
fich='rim_MEC_P2_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_P2 ;
res1 = RESOL_NL ;

e1 = maya1 elem cu20 ;
e2 = maya1 elem pr15 ;

new1 = e1 ET e2 ;

*************************************************************
list res1.1;

oe1 = 0. 0. -1000. ;
oe2 = 0. -1000. 0. ;
oe3 = 0. 1000. 1000. ;
oe4 = 1000. 0. 0. ;

depl1 = res1 . 1 . depl ;

sig_eq1 = res1 . 1 . equi_elno_sigm ;

plast1 = res1 . 1 .vari_elno_elga ;

epsi1 = res1 . 1 .equi_elno_epsi ;

q1 = exco depl1 ux  ;
q2 = exco depl1 uy  ;
q3 = exco depl1 uz  ;

module = ((q1**2) + (q2**2) + (q3**2))**(0.5) ;



modcast = mode maya1 mecanique elastique ;

* visualisation des  deformees 
defo1 = defo new1 depl1  rouge ;
defo0 = defo new1 depl1  0. vert ;

titre 'Deformee ' ;
trac cach oe1 (defo1 et defo0) ;
trac cach oe2 (defo1 et defo0) ;
trac cach oe3 (defo1 et defo0) ;
trac cach oe4 (defo1 et defo0) ;

titre 'Isovaleurs des deplacements' ;
trac oe1 module new1 ;
trac oe2 module new1 ;
trac oe3 module new1 ;
trac oe4 module new1 ;

titre 'Contraintes équivalente de Von Mises' ;
vmi1 = exco vmis sig_eq1 ;
trac oe1 vmi1  modcast  ;
trac oe2 vmi1  modcast  ;
trac oe3 vmi1  modcast  ;
trac oe4 vmi1  modcast  ;

titre 'Contraintes équivalente de Von Mises sur déformée' ;
trac oe1 vmi1  modcast defo1 ;
trac oe2 vmi1  modcast defo1 ;
trac oe3 vmi1  modcast defo1 ;
trac oe4 vmi1  modcast defo1 ;

titre 'Visualisation des deplacements' ;
VISU_VEC = VECT depl1 32 ;
trac cach oe1 VISU_VEC new1 ;
trac cach oe2 VISU_VEC new1 ;
trac cach oe3 VISU_VEC new1 ;
trac cach oe4 VISU_VEC new1 ;

titre 'Déformations équivalente' ;
eps1 = exco IN_2 epsi1 ;
trac oe1 eps1  modcast  ;
trac oe2 eps1  modcast  ;
trac oe3 eps1  modcast  ;
trac oe4 eps1  modcast  ;

titre 'Visualisation des deformations plastiques cumulees' ;
pl_v1 = exco v1 plast1 ;
trac cach oe1 pl_v1  modcast  ;
trac cach oe2 pl_v1  modcast  ;
trac cach oe3 pl_v1  modcast  ;
trac cach oe4 pl_v1  modcast  ;

titre 'Visualisation Indicateur de plasticite' ;
pl_v2 = exco v2 plast1 ;
trac cach oe1 pl_v2  modcast  ;
trac cach oe2 pl_v2  modcast  ;
trac cach oe3 pl_v2  modcast  ;
trac cach oe4 pl_v2  modcast  ;

Conclusion, remerciements, auteur(s)

Droit d'auteur(s) : L'utilisation de ce document sous quelque forme que ce soit est absolument libre au sens que la licence GPL donne à ce terme. Nous souhaitons simplement, si de larges extraits de cette publication sont utilisés dans d'autres documents, qu'il soit fait mention du nom des auteurs du document initial.

Remerciements : Les auteurs souhaitent remercier les personnes de la communauté de Code Aster $ ^{\tiny {\textregistered }}$ 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 $ \ldots$

L'auteur : Paul CARRICO5.

Les commentaires sont à adresser à :


paul.carrico_at_free.fr

Correspondance dans les unités

Unités METRIQUE METRIQUE ANGLO-SAXONNE ANGLO-SAXONNE
  MKS mmNS FPS IPS
Longueur m mm ft in
Temps sec sec sec sec
Masse Kg tonne slug lbf-sec$ ^{2}$
Force N N lbf lbf
Température $ ^{\circ}$C $ ^{\circ}$C $ ^{\circ}$F $ ^{\circ}$F
Aire m$ ^{2}$ mm$ ^{2}$ ft$ ^{2}$ in$ ^{2}$
Volume m$ ^{3}$ mm$ ^{3}$ ft$ ^{3}$ (cu-ft) in$ ^{3}$ (cu-in)
Vitesse m/sec mm/sec ft/sec in/sec
Accélération m/sec$ ^{2}$ mm/sec$ ^{2}$ ft/sec$ ^{2}$ in/sec$ ^{2}$
Angle, rotation rad rad rad rad
Vitesse angulaire rad/sec$ ^{2}$ rad/sec$ ^{2}$ rad/sec$ ^{2}$ rad/sec$ ^{2}$
Masse volumique Kg/m$ ^{3}$ Tonne/mm$ ^{3}$ slug/ft$ ^{3}$ lbf-sec$ ^{2}$/in$ ^{4}$
Moment, couple N-m N-mm ft-lbf in-lbf
Force linéïque N/m N/mm lbf/ft lbf/in
Force répartie sur une surface N/m$ ^{2}$ N/mm$ ^{2}$ lbf/ft$ ^{2}$ lbf/in$ ^{2}$
(Contrainte, pression,Module d'Young) (Pa) (MPa)   (Psi)
Coefficient de Dilatation thermique /$ ^{\circ}$C /$ ^{\circ}$C /$ ^{\circ}$F /$ ^{\circ}$F
  (/K) (/K) (/K) (/K)
Moment Quadratique d'une poutre $ IG_{z}$ m$ ^{4}$ mm$ ^{4}$ ft$ ^{4}$ in$ ^{4}$
Moment d'inertie transverse d'une poutre Kg-m$ ^{2}$ tonne-mm$ ^{2}$ slug-ft$ ^{2}$ lbf-in-sec$ ^{2}$
Energie, Travail, Chaleur J mJ ft-lbf in-lbf
Puissance, taux de transfert thermique W mW ft-lbf/sec in-lbf/sec
Gradient de température $ ^{\circ}$C/m $ ^{\circ}$C/mm $ ^{\circ}$F/ft $ ^{\circ}$F/in
Flux thermique W/m$ ^{2}$ mW/mm$ ^{2}$ lbf/ft-sec lbf/in-sec
Conductivité thermique W/m-$ ^{\circ}$C mW/mm-$ ^{\circ}$C lbf/sec-$ ^{\circ}$F lbf/sec-$ ^{\circ}$F
Chaleur spécifique C$ _{p}$ J/Kg-$ ^{\circ}$C mJ/tonne-$ ^{\circ}$C ft-lbf/slug-$ ^{\circ}$F in$ ^{2}$/sec$ ^{2}$-$ ^{\circ}$F

Rappels :

$ \triangleright$
1 W $ \equiv$ 1 N-m/sec,
$ \triangleright$
1 mJ $ \equiv$ 1 N-mm,
$ \triangleright$
1 mW $ \equiv$ 1 N-mm/sec,
$ \triangleright$
1 N/m$ ^{2}$ $ \equiv$ 1 Pa,
$ \triangleright$
1 N/mm$ ^{2}$ $ \equiv$ 1 MPa,

À propos de ce document...

Tutorial 5 :
Modélisation plasticité volumique
Version 1

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_plasticite.tex

The translation was initiated by on 2007-02-21


Notes

... pièce1
Sur ce point, le lecteur est invité à se reporter au tutorial 2 pour une présentation plus détaillé de la mise en données.
... ensuite2
Incréments déterminés à partir d'un premier calcul utilisant des éléments linéaires
... commentaires3
Enfin je l'espère !
... Mises4
A noter que dans le cas de l'aluminium et en particulier pour des problématiques de mise en forme par déformation plastique (emboutissage typiquement), on lui préfère un potentiel de type BARLAT $ \ldots$
... CARRICO5
Avant de travailler sur des outils propriétaires, j'ai fait mes premières armes sur Code Aster $ ^{\textregistered}$ que j'utilise encore ponctuellement. 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).

next_inactive up previous
2007-02-21