710 likes | 1.08k Views
Institut National Polytechnique de Toulouse Laboratoire Génie de Production - ENIT. Habilitation à Diriger des Recherches. Plateforme de Prototypage Virtuel pour la Simulation Numérique en Grandes Transformations Thermomécaniques Rapides. Olivier Pantalé. Groupe G 2 TR – Equipe CMAO
E N D
Institut National Polytechnique de Toulouse Laboratoire Génie de Production - ENIT Habilitation à Diriger des Recherches Plateforme de Prototypage Virtuel pour la Simulation Numérique en Grandes Transformations Thermomécaniques Rapides Olivier Pantalé Groupe G2TR – Equipe CMAO 13 Juillet 2005
Sommaire de la présentation • Introduction et positionnement • Curriculum Vitae • Activités d’enseignement et de recherche • Modélisation numérique de la coupe des métaux • Mise en œuvre de modèles numériques de simulation de la coupe • Synthèse des difficultés de modélisation de la coupe • Lois de comportement en Grandes Transformations • Formulation mécanique en Grandes Transformations • Approche expérimentale • Développement du code de calcul DynELA • Implémentation numérique et validation du code de calcul • Parallélisation du solveur • Plateforme Orientée-Objets de développement • Intégration de nouveaux algorithmes • Développement d’application spécifiques Conclusions et travaux futurs Plateforme de Prototypage Virtuel pour la Simulation Numérique en Grandes Transformations Thermomécaniques Rapides Olivier Pantalé – 13 Juillet 2005 2
Curriculum Vitae • Olivier Pantalé • Né le 9 mai 1969 à Cahors (Lot) • Marié, 1 enfant • Grades et titres • 1996 Doctorat de l’Université de Bordeaux I • 1992 DEA de mécanique (Bordeaux I) • 1992 Diplôme d’ingénieur de Production (ENIT) • Position actuelle • 1998 Maître de Conférences 60ème section à l’ENIT
Modélisation numérique de la coupe des métaux Thèse MCF section 60 J. L. Bacaria C. Sattouf I. Nistor L. Menanteau Vacataire Développement numérique de DynELA Laboratoire d’identification Laboratoire PEARL 1991 1995 2000 2005 ATER Contractuel Historique des activités de recherche au LGP
Encadrement de travaux de recherche • Encadrement de thèses de doctorat • J. L. Bacaria (13 novembre 2001) 30% Un modèle comportemental et transitoire pour la coupe des métaux • C. Sattouf (30 juin 2003) 40% Caractérisation en dynamique rapide du comportement de matériaux utilisés en aéronautique • L. Menanteau (25 octobre 2004) 50% Développement d’un module de prototypage virtuel multi-physique, multi-domaine et multitemps: Application aux convertisseurs de puissance • I. Nistor (début novembre 2005) 30% Identification expérimentale et simulation numérique de l’endommagement en dynamique rapide: Application aux structures aéronautiques • Encadrement de DEA • 10 stages de DEA encadrés depuis 1996
Activités administratives • Activités liées à la recherche • Membre de l’association DYMAT • Membre détaché au sein du laboratoire PEARL – ALSTOM • Responsable du laboratoire d’identification dynamique • Responsable des moyens de calcul numériques de l’équipe CMAO • Activités collectives et administratives • Membre titulaire du conseil d’Administration de l’ENIT • Responsable de la coordination des enseignements de mécanique • Membre de la commission informatique • Membre de la commission bibliothèque
Activités d’enseignement • Cours • M2R Grandes Transformations Therm. Rapides 12 h • 5ème A Eléments finis de structures 21 h • 5ème A Module optionnel CMAO 9 h • 5ème A Systèmes Unix 6 h • 4ème A Machines mécaniques et Turbomachines 24 h • 4ème A Thermodynamique 24 h • 4ème A Mécanique des milieux continus 48 h • Travaux dirigés • 4ème A Machines mécaniques et Turbomachines 8 h • Travaux pratiques • M2R Grandes Transformations Therm. Rapides 4 h • 5ème A Eléments finis de structures 4 h • 4ème A Eléments finis linéaires 4 h volumes horaires exprimés en heures équivalent TD
Objectif des travaux de recherche • Proposer un ensemble d’outils numériques et expérimentaux intégrés au sein d’une plateforme de prototypage virtuel • Développer sur le plan expérimental : Une plateforme d’identification du comportement de matériaux soumis à de fortes sollicitations thermomécaniques. • Développer sur le plan numérique : Une plateforme de simulation numérique en Grandes Transformations basée sur le code de calcul Orienté-Objets DynELA. Positionnement dans le cadre de la modélisation numérique des structures soumises à de Grandes Transformations.
Sommaire de la présentation • Introduction et positionnement • Curriculum Vitae • Activités d’enseignement et de recherche • Modélisation numérique de la coupe des métaux • Mise en œuvre de modèles numériques de simulation de la coupe • Synthèse des difficultés de modélisation de la coupe
P. Joyot O. Pantalé J. L. Bacaria Coupe orthogonale continue 1991 1995 2000 2005 Coupe orthogonale et oblique 3D continue Coupe orthogonale et fraisage 3D discontinus Modélisation numérique de la coupe des métaux Formulation ALE
Surface libre Noeuds Lagrangiens Vitesse de coupe Surface libre V c Outil Vitesse de coupe Surface libre V c Pièce Noeuds ALE Noeuds Eulériens Noeuds Eulériens Noeuds Eulériens Modélisation de la coupe • Modèles de coupe stationnaires ALE • Formalisme ALE à « tendance » Eulérienne • Ecoulement de la matière en régime stationnaire • Actualisation des surfaces libres du modèle
Coupe orthogonale 2D • Influence du frottement • Influence de l’usure en cratère de l’outil Champ de températures Champ de contraintes P. Joyot, R. Rakotomalala, O. Pantalé, M. Touratier and N. Hakem A Numerical Simulation of Steady State Metal Cutting Journal for Mechanical Engineers, 212: 331-341, 1998
Coupe orthogonale et oblique 3D • Modélisation tridimensionnelle • Première approche numérique 3D • Apports de la 3ème dimension (gonflement latéral du copeau) • Corrélation température / usure de la face de coupe • Apports de la coupe oblique / coupe orthogonale O. Pantalé, R. Rakotomalala and M. Touratier An ALE Three-Dimensional Model of Orthogonal and Oblique Metal Cutting Processes International Journal of Forming Processes, 1 (3): 371-388, 1998
Coupe transitoire 2D • Modèles de coupe stationnaires ALE • Formalisme ALE à « tendance » Lagrangienne • Critère d’endommagement de Johnson-Cook • Détermination expérimentale de la loi d’endommagement J.L. Bacaria, O. Dalverny, O. Pantalé and R. Rakotomalala Transient Numerical models of metal cutting using the Johnson-Cook's Rupture Criterion International Journal of Forming Processes, 5: 53-70, 2002 Thèse de J.L. Bacaria
Coupe transitoire 3D • Modèles de coupe transitoires ALE • Formalisme ALE à « tendance » Lagrangienne • Modélisation numérique d’une opération de fraisage wr=120 tr/min Vc=50 m/s f=3 mm q=30° n=8 O. Pantalé, J. L. Bacaria, O. Dalverny, R. Rakotomalala and S. Caperaa 2D and 3D numerical models of metal cutting with damage effects Computer Methods in Applied Mechanics and Engineering, 193 (39-41) : 4383-4399, 2004
Synthèse des difficultés liées à la SN de la coupe • Identifier au plus près des sollicitations réelles • Simplicité de mise en œuvre des essais • « Universalité » des lois de comportement • Développement d’une plateforme d’identification • Approche comportementale échelle mésoscopique • Grandes Transformations Thermomécaniques rapides Identification des paramètres des lois de comportement O. Pantalé, I. Nistor, O. Dalverny, E. Gorce and S. Caperaa Caractérisation du comportement dynamique des matériaux à partir d’essais d’impact 1er Séminaire Optimus - ENSAM de Bordeaux, mai 2004
Synthèse des difficultés liées à la SN de la coupe • Utilisation de logiciels spécialisés • Boites noires non adaptées à des travaux de recherche • Difficultés liées au caractère commercial de ces codes • Développement d’un code de calcul spécifique • Choix d’un formalisme GT • Modèles comportementaux évolués • Algorithmes de contact évolués • Calcul parallèle et DDM • Couplage multi-physique Codes de calcul commerciaux classiques non adaptés Choix effectif au sein du laboratoire O. Pantalé and S. Caperaa Développement d'un code de calcul explicite en grandes transformations: Application à la coupe des métaux 2ème Séminaire Optimus - ENSAM de Cluny, octobre 2004
Sommaire de la présentation • Modélisation numérique de la coupe des métaux • Mise en œuvre de modèles numériques de simulation de la coupe • Synthèse des difficultés de modélisation de la coupe • Lois de comportement en Grandes Transformations • Formulation mécanique en Grandes Transformations • Approche expérimentale développée au laboratoire
Formulation hypo-élastique GT • Formulation co-rotationnelle objective • Plasticité J2 à écrouissage isotrope/cinématique combiné • Intégration basée sur l’utilisation du retour radial • Prédiction élastique • Correction plastique
Barres d’Hopkinson Essais d’impact Techniques utilisant des explosifs 5.102 s-1 5.103 s-1 5.106 s-1 5.1012 s-1 Lois d’écoulement plastique Niveau de vitesse de déformation accessible en fonction du type d’essai Lois d’écoulement: Zerilli-Armstrong Johnson-Cook Ramberg-Osgood Thèse de C. Sattouf
e s n+1 Correction plastique Prédiction élastique s n+1 s n Integration numérique • Retour radial • Décomposition additive des vitesses de déformation • Schéma implicite d’ordre 1 • Prise en compte de l’objectivité • Rotation Finale Instantanée O. Pantalé and S. Caperaa Development of an object-oriented finite element program: application to metal forming and impact simulations Journal of Computational and Applied Mathematics, 168: 341-351, 2004
Chambre de tir (sous vide) Tube Barrière opto-electronique Mesure de vitesse Culasse et réservoir Dispositif expérimental Diamètre du tube = 20 mm Longueur du tube = 1400 mm Vmax = 350 m/s Pression maxi = 180 bar Masse du projectile = 30 gr
Essai d’extrusion rapide Essai de Taylor Essai de cisaillement dynamique Essai de traction dynamique Essai de rupture dynamique Gamme des essais expérimentaux
Extraction des réponses expérimentales • Procédé macro-photographique numérique de mesure • Extraction automatique des contours d’une pièce • Résolution: 8 µm pour un rapport macro 1:1 (capteur 16x24 mm)
Modèle Eléments Finis Résultats essais Résultats numériques Paramètres identifiés Identification paramétrique I. Nistor, O. Pantalé, S. Caperaa and C. Sattouf Identification of a dynamic viscoplastic flow law using a combined Levenberg-Marquardt and Monte-carlo algorithm VII Complas conference, Barcelona, 2003
Essai de Taylor Vi = 328 m/s Essai de traction Vi = 96 m/s Exemple d’identification Identification à partir de deux essais dynamiques Matériau : 42CrMo4 Loi de Johnson-Cook
Sommaire de la présentation • Lois de comportement en Grandes Transformations • Formulation mécanique en Grandes Transformations • Approche expérimentale • Développement du code de calcul DynELA • Implémentation numérique et validation du code de calcul • Parallélisation du solveur
Développement numérique de DynELA 1991 1995 2000 2005 Code de calcul DynELA • Solveur Eléments-Finis : • 80.000 lignes de code C++ • Interpréteur de commande : • 10.000 lignes de code C++, Lex et Yacc • Post-processeur graphique : • 20.000 lignes de code C++ • Utilitaires : • 45.000 lignes de code C++
Pourquoi développer un nouveau code de calcul • Code Ouvert et Maîtrisé de recherche • Approche recherche / boite noire • Code spécialisé dans le domaine de la SN en GT • Support pour le développement d’algorithmes spécialisés • Formulation mécanique en GT, intégration, XFEM, DDM, … • Approche informatique, parallélisation, calcul distribué, … • Evolutions du logiciel et développement à la demande • Plateforme de développement Orientée-Objets • Déclinaison d’applications spécialisées • Consolidation des connaissances en GT • Utilisation didactique dans la formation M2R • Support pour le cours de Grandes Transformations
référence f (X,t) W X W X x x courante Description Lagrangienne Formulation mécanique Formulation Lagrangienne réactualisée en Grandes Transformations Intégration explicite a-généralisé de Chung-Hulbert
Transfert des données au sein de la plateforme Extracteur script Parser Lex & Yacc Solveur FEM Fichiers résultats Fichier source Postprocesseur graphique Sorties ps, pdf, mpeg I/O Ideas Abaqus
Langage de commande Orienté-Objets • Interpréteur de commandes • Ecrit en Lex et Yacc • Langage OO proche du C++ • Concepts mathématiques • Tests (if, then et else) • Boucles (for et while) • I/O cout, fopen, fclose et << • Génération automatique • Définition par fichiers en-tête • Fichiers C++, Lex et Yacc • M. à j. automatique documentation O. Pantalé Manuel utilisateur du code de calcul DynELA v 1.0 LGP ENI Tarbes, 2003
Interface graphique du post-Processeur Menu principal Boutons Interface 3D OpenGL
Interface entre le domaine et les fichiers de données Données nodales telles que les coordonnées Définition du domaine de calcul Interface de contact et gestion du frottement Définition des matériaux et lois d’écoulement Quantités nodales (2 instances, t et t+Dt) Classe de base virtuelle servant pour tous les éléments Points d’intégration Classes élément dérivées dépendant de la topologie et de la nature de l’élément Organisation interne des classes
r 6.413 6.350 z 26.67 Validation numérique (1/2) Traction d’un barreau cylindrique
Vitesse initiale = 227 m/s l0=32.4 mm Cylindre cuivre 5x50 elements r0=6.4 mm Contact sans frottement Comparaison des résultats numériques Mur rigide Loi d’écoulement: code rf lf DynELA 7.12 21.42 3.21 Abaqus 7.08 21.48 3.23 Metafor 7.13 21.43 3.04 Liu 7.15 21.42 - Validation numérique (2/2) O. Pantalé An object-oriented programming of an explicit dynamics code: Application to impact simulation Advances in Engineering Software, 33 (5):297-306, 2002
Architecture à Mémoire Distribuée • Chaque processeur possède sa propre mémoire. • Pas d’interférences des données entre processeurs. • Définition explicite des échanges de données entre processeurs. • Avantages: • Mémoire proportionnelle au nombre de processeurs. • Accès rapide à la zone mémoire par les processeurs. • Inconvénients: • Responsabilité des communications au programmeur. • Difficultés de parallélisation d’un programme existant.
Compaq Proliant 8000 8 Intel Xeon 550 / 2Mb cache 5 Gb RAM Redhat Linux 8.0 Compiler Intel C++ 7.1 OpenMP Architecture à Mémoire Partagée • Processeurs partageant la même ressource mémoire. • Changements en mémoire visibles globalement. • Avantages: • Adressage mémoire global. • Proximité de la mémoire et des processeurs. • Inconvénients: • Mémoire non proportionnelle au nombre de processeurs. • Synchronisations sous la responsabilité du programmeur. • Nombre limité de processeurs dû à l’architecture.
Série Fork Calcul parallèle Join Série Perte pure Pertes / calcul série Parallélisation OpenMP
Calcul des forces internes pour chaque élément Assemblage des vecteurs de forces internes locaux Calcul des forces internes (1/5) Parallélisation simple Parallélisation délicate O. Pantalé and S. Caperaa Strategies for a parallel 3D FEM code: Application to impact and crash problems in structural mechanics Coupled Problems - Santorini Island, 25-28 may 2005
3 Calcul série 1+2 = ? 1 +2 Processeur 3 2 Mémoire =3
5 4 Calcul parallèle (1/2) 1+2+3 = ? 2 1 +3 +3 3 5 4 Processeur 2 Processeur 1 Mémoire =4 Nécessité de synchronisations
6 4 Calcul parallèle (2/2) 1+2+3 = ? 2 1 +4 +3 3 6 4 Processeur 2 Processeur 1 Mémoire =6
Variables locales Fint variable globale Calcul des forces internes (2/5) Parallélisation directe sans modification de la structure du code Vector Fint; #pragma omp parallel for for (int elm = 0; elm < elements.size (); elm++) { Vector FintElm; elements(elm).computeInternalForces (FintElm); #pragma omp critical Fint.gatherFrom (FintElm, elements(elm)); } Vector Fint; for (int elm = 0; elm < elements.size (); elm++) { Vector FintElm; elements(elm).computeInternalForces (FintElm); Fint.gatherFrom (FintElm, elements(elm)); } Utilisation d’une directive critical
Calcul des forces internes (3/5) Utilisation d’un vecteur privé pour Fint dans chaque thread // parallel computation #pragma omp parallel { Element* element; int thread = omp_get_thread_num(); while (element = elements.next()) { Vector FintElm; element->computeInternalForces (FintElm); FintLocal[thread].gatherFrom (FintElm, element); } } // parallel gather operation #pragma omp parallel for for (int row = 0; row < Fint.rows(); row++) { for (thread = 0; thread < threads; thread++) Fint(row) += FintLocal[thread](row); } Vector Fint; for (int elm = 0; elm < elements.size (); elm++) { Vector FintElm; elements(elm).computeInternalForces (FintElm); Fint.gatherFrom (FintElm, elements(elm)); } Pas de directives « critical »
Calcul des forces internes (4/5) Gestion de la répartition des éléments / processeur // parallel computation #pragma omp parallel { Element* element; Job* job = jobs.getJob(); int thread = jobs.getThreadNum(); while (element = job->next()) { Vector FintElm; element->computeInternalForces (FintElm); FintLocal[thread].gatherFrom (FintElm, element); } } // parallel gather operation #pragma omp parallel for for (int row = 0; row < Fint.rows(); row++) { for (thread = 0; thread < threads; thread++) Fint(row) += FintLocal[thread](row); } // parallel computation #pragma omp parallel { Element* element; int thread = omp_get_thread_num(); while (element = elements.next()) { Vector FintElm; element->computeInternalForces (FintElm); FintLocal[thread].gatherFrom (FintElm, element); } } // parallel gather operation #pragma omp parallel for for (int row = 0; row < Fint.rows(); row++) { for (thread = 0; thread < threads; thread++) Fint(row) += FintLocal[thread](row); }
Jobs +job: Job +wasteOfTime: Real Equilibrage dynamique +equilibrate(): void +init(elements:List <Element>): void +getMaxThreads(): int +getJob(): Job +getThreadNum(): int Job +elements: List <Element> +waitingTime: Real +next(): element +waitOthers(): void Element Equilibrage de la charge des processseurs • Variation du temps CPU dû à la correction plastique • Prédiction impossible à effectuer • Coût de l’équilibrage minimal • Intégration explicite • Distribution spatiale élément/processeur quelconque • Pas de problème interfacial • Traitement temps réel • Minimisation des temps d’attente des processeurs O. Pantalé Parallelization of an object-oriented fem dynamics code: Influence of the strategies on the speedup Advances in Engineering Software, 36 (6):361-373, 2005
Speedup > Ncpu « Superlinear Speedup » Calcul des forces internes (5/5) jobs.init(elements); // list of jobs to do (instance of class Jobs) int threads = jobs.getMaxThreads(); // number of threads Vector Fint = 0.0; // internal force Vector Vector FintLocal[threads]; // local internal force vectors #pragma omp parallel { Element* element; Job* job = jobs.getJob(); // get the job for the thread int thread = jobs.getThreadNum(); // get the thread Id while (element = job->next()) { Vector FintElm; // element force vector element->computeInternalForces (FintElm); FintLocal[thread].gatherFrom (FintElm, element); } job->waitOthers(); // compute waiting time for the thread } // end of parallel region // parallel gather operation #pragma omp parallel for for (int row = 0; row < Fint.rows(); row++) { // assemble local vectors into global internal vector for (thread = 0; thread < threads; thread++) Fint(row) += FintLocal[thread](row); } // end of parallel for loop // equilibrate the sub-domains jobs.equilibrate(); 8.35 - Suppression totale de la directive #pragma omp critical - Equilibrage dynamique - Opération d’assemblage optimisée
Loi d’écoulement: Performances globales de la version parallèle 1420 Élements quadrilatères 4 noeuds Masse projectile = 44.1 gr Vitesse impact = 80 m/s