Archi

  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Archi as PDF for free.

More details

  • Words: 1,600
  • Pages: 28
Architecture de la plateforme LMGC90? . Fr´ed´eric Dubois [email protected] Laboratoire de M´ ecanique et G´ enie Civil Universit´ e de Montpellier 2 - CNRS

2007

? Logiciel

de M´ecanique G´erant le Contact en Fortran90.

F. Dubois (CNRS)

Architecture de LMGC90

2007

1 / 24

Plan

1

Motivations

2

Principes de programmation

3

Archictecture g´en´erale

4

Aujourd’hui

5

Perspectives

6

LMGC90v2

F. Dubois (CNRS)

Architecture de LMGC90

2007

2 / 24

LMGC90::Motivations

D´evelopper une plateforme de mod´elisation des milieux “divis´es”. Avec des contraintes fortes : P´erenniser un savoir faire existant important mais dispers´e, Disposer d’une plateforme d’accueil pour les d´eveloppements futurs qui r´eponde aux exigences de la mod´elisation: ´ Evolutive (en d´eveloppement perp´etuel de chose non pr´evues) Adaptative (r´eorganisation perp´etuelle) P´erenne (ce qui est fait est fait)

Diffuser la connaissance. Disposer d’un support de collaborations scientifiques. Valoriser.

F. Dubois (CNRS)

Architecture de LMGC90

2007

3 / 24

LMGC90::Principes de programmation

Mˆeme d´evelopp´e en FORTRAN90 LMGC90 repose sur des notions de programmation orient´ee objet : classe : attributs + m´ethodes On construit un module qui d´efinit un type utilisateur (globale) et impl´emente des proc´edures qui s’appliquent sur ce type encapsulation : gestion de la visibilit´e des attributs et m´ethodes Statut public/private.

F. Dubois (CNRS)

Architecture de LMGC90

2007

4 / 24

LMGC90::Principes de programmation module test implicit none private type T_test integer :: ID real(kind=8) :: value end type contains subroutine test_init(obj_test) implicit none type(T_test) :: obj_test .... end subroutine ... end module test F. Dubois (CNRS)

Architecture de LMGC90

2007

6 / 24

LMGC90::Principes de programmation type “public” Ü danger public type T_test integer :: ID real(kind=8) :: value end type

type(T_test) :: toto toto%ID=1 ...

type semi “public” Ü bien public type T_test type(T_test) :: toto private toto%ID = 1 ! NON integer :: ID real(kind=8) :: value end type type “private” Ü paranoiaque : les modules sont aussi les containers ! private type T_test integer :: ID real(kind=8) :: value end type F. Dubois (CNRS)

Architecture de LMGC90

type(T_test) :: toto ! NON

2007

8 / 24

LMGC90::Principes de programmation h´eritage use pere ... type T_fils type(T_pere) :: monpere ... end type aggr´egation, composition use pere ... type T_fils type(T_pere),pointer :: monpere ... end type F. Dubois (CNRS)

Architecture de LMGC90

2007

10 / 24

LMGC90::Principes de programmation

utilisation use pere integer :: ID_pere call xxx(ID_pere)

F. Dubois (CNRS)

Architecture de LMGC90

2007

12 / 24

LMGC90::Principes de programmation

polymorphisme statique (`a la compilation) Ü interface g´en´erique (i.e. le choix de la proc´edure est fait en fonction de ses arguments) polymorphisme dynamique (`a l’execution) Ü ´emulation avec des types+appels param´etr´es type T_matrix integer :: ID_type ! 1 full, 2 sparse type (T_full_matrix), pointer :: A_full type (T_sparse_matrix), pointer :: A_sparse end type ... bref on fait tout `a la main !

F. Dubois (CNRS)

Architecture de LMGC90

2007

14 / 24

LMGC90::Principes de programmation

On aimerait avoir : un vrai polymorphisme dynamique objets statiques pour mettre en place les plugs-points (introspection) exception template STL les librairies existantes (Boost) design pattern doxygen

F. Dubois (CNRS)

Architecture de LMGC90

2007

15 / 24

LMGC90::Principes de programmation Pour se consoler on a : modules Ü interface explicites (mieux que fortran77) variables globales dans un module Ü faut pas en abuser sinon ¸ca devient illisible allocation dynamique fonctions g´en´eriques gestion des IO OpenMP f2py robodoc

F. Dubois (CNRS)

Architecture de LMGC90

2007

16 / 24

LMGC90::Architecture g´en´erale Une architecture d´edi´ee `a la r´esolution des syst`emes multi-corps en interaction: tr`es naturellement (a posteriori) on est arriv´e `a une structure proche du probl`eme `a traiter.

F. Dubois (CNRS)

Architecture de LMGC90

2007

17 / 24

LMGC90::Architecture g´en´erale

Mod`eles Physiques: description du comportement volumique des corps.

Un corps peut porter plusieurs mod`eles physiques (m´ecanique, thermique, thermom´ecanique, etc.) avec des discr´etisation diff´erentes.

F. Dubois (CNRS)

Architecture de LMGC90

2007

17 / 24

LMGC90::Architecture g´en´erale

Possibilit´e de couplage entre mod`eles physiques. Mˆeme si l’allocation est dynamique (lecture), le nombre de corps reste inchang´e. On peut “´emuler” l’apparition/disparition de corps grˆace `a un flag (visible). Ainsi on peut mod´eliser la fracture de grains, transformer un corps rigide en d´eformable, etc. On peut coupler un code de calcul “volumique” externe. Exemple PELICANS (IRSN), Code Aster (EDF).

F. Dubois (CNRS)

Architecture de LMGC90

2007

17 / 24

LMGC90::Architecture g´en´erale Contacteurs: description des zones pouvant interagir entre elles.

Les contacteurs g`erent le passage entre les inconnues de la discr´etisation du comportement volumique et les inconnues impliqu´ees dans le comportement surfacique. F. Dubois (CNRS)

Architecture de LMGC90

2007

17 / 24

LMGC90::Architecture g´en´erale

On peut mettre plusieurs contacteurs par corps. On peut ainsi d´ecrire des enveloppes non convexes par des primitives convexes. Le nombre de contacteurs reste inchang´e au cours d’une simulation. Les contacteurs attach´es `a un corps qui n’est plus visible disparaissent.

F. Dubois (CNRS)

Architecture de LMGC90

2007

17 / 24

LMGC90::Architecture g´en´erale Interactions: description des ´el´ements de “contact”.

Les ´el´ements de contact servent `a d´eterminer l’information n´ecessaire au probl`eme d’interaction: interstice, vitesse relative, impulsion, etc. Le nombre d’´el´ements de contact change `a chaque pas, ce qui pose le probl`eme du transfert de l’information. F. Dubois (CNRS)

Architecture de LMGC90

2007

17 / 24

LMGC90::Architecture g´en´erale

Solveurs: m´ethodes num´eriques de r´esolution. LMGC90 dispose de diff´erents solveurs de contact. NLGS: Gauss Seidel non lin´eaire. 2D/3D, parall`elis´e (OpenMP), supporte toutes les lois d’interaction, GPCP: Gradient Conjugu´e. 2D/3D, parall´elis´e (OpenMP), supporte un nombre r´eduit de lois. Bi-potentiel. Tr`es proche de NLGS. Interfa¸cage avec SolverPack du projet Siconos (en cours).

F. Dubois (CNRS)

Architecture de LMGC90

2007

17 / 24

LMGC90::Architecture g´en´erale Mode de fonctionnement classique mots clefs CHIC + LMGC90.

CHIC assure l’ex´ecution du programme principal d´efinit par l’utilisateur dans un fichier de commandes. LMGC90 n’est qu’une librairie. F. Dubois (CNRS)

Architecture de LMGC90

2007

17 / 24

LMGC90::Architecture g´en´erale Il existe des dispositifs permettant d’ajouter des fonctionnalit´es sans toucher `a celles existantes. Fond de Panier Composants sur étagère

LMGC90 Utilisateur

Application Utilisateur

Principe d “INCLUDE” de proc´edures (more src) dans chaque module (src), qu’on peut activer par un mot clef CHIC : marche bien pour des fonctionnalit´es de “pilotage” du code marche mal pour inclure des fonctionnalit´es profondes qu’on ne peut d´eclencher par un mot clef Ü duplication du code !! F. Dubois (CNRS)

Architecture de LMGC90

2007

17 / 24

LMGC90::Aujourd’hui 100 000 lignes de Fortran90, un peu de C et de C++ une licence OpenSource: CECILL (avec d´epot APP par le CNRS), une version stable par an. La prochaine fin 2050. 1 architecte/mod´erateur du code source (IR CNRS) : Fr´ed´eric Dubois, 1 expert (DR CNRS ´em´erite (des claques)) : Michel Jean, 1 d´eveloppeur (CR CNRS) : Mathieu Renouf quelques utilisateurs avanc´es (programmeurs) qui enrichissent le code existant ou ajoutent des fonctionnalit´es pour leurs propres besoins : LMGC, LMA, EMA, INRA (?) des utilisateurs : LMGC, LMA, LABM, LTDS, CEMAGREF, EMA, LCPC, GRASP-ULG,INSA des industriels : SNCF, ALCAN-PECHINEY, IRSN, EDF, CEA, SAINT-GOBAIN (?), CERT (BE-Anger), etc. F. Dubois (CNRS)

Architecture de LMGC90

2007

18 / 24

LMGC90::Aujourd’hui un mod` ele de d´ eveloppement ouvert et coop´ eratif: serveur subversion utilisateur (docs, binaires, ...): https://subver.lmgc.univ-montp2.fr/LMGC90 serveur subversion d´eveloppeurs: https://subver.lmgc.univ-montp2.fr/LMGC90 dev serveur subversion exemples: https://subver.lmgc.univ-montp2.fr/LMGC90 examples listes de diffusion: [email protected], LMGC90 [email protected] page web: http://www.lmgc.univ-montp2.fr/∼dubois/LMGC90 des formations gratuites

F. Dubois (CNRS)

Architecture de LMGC90

2007

18 / 24

LMGC90::Perspectives Passage ` a la version 2 Gestion de mod`eles physiques coupl´es fortement: volumique (en cours de d´eveloppement) et surfacique. Abandonner CHIC pour python. Refonte d’une partie de l’architecture, pour diminuer le code redondant, avoir une structure de donn´ees plus dynamique et ˆetre en mesure de traiter de nouveaux probl`emes. Parall´elisme par passage de message. interface graphique. N´ecessit´e de renforcer l’´equipe de d´eveloppement : IE CNRS ? Consortium ? ANR ?

F. Dubois (CNRS)

Architecture de LMGC90

2007

19 / 24

LMGC90v2:Superviseur

Pilotage du code : Sortir la gestion chic du code Ü Core et Chic Apparition du superviseur python Les more src de pilotage du code utilisent des set/get sur les variables Ü on vire les includes la gestion des more src profonds remplac´ee par la notion de external (UMAT) on peut acc´eder aux donn´ees dans le superviseur python on peut faire la mise en donn´ees depuis le script python, on merge prelmgc

F. Dubois (CNRS)

Architecture de LMGC90

2007

20 / 24

LMGC90v2:Architecture La classe interaction apparaˆıt: elle stocke ce qui vient de la d´etection et elle a vue sur les solveurs (i.e. ca change de sens). On peut avoir autre chose que des interactions m´eca. Un seul stockage (this & verlet). la classe strat´egie apparaˆıt pour g´erer strat´egie, int´egrateurs, etc. La d´etection (grossi`ere+fine) ´eclat´ee dans les multiples modules ´el´ements de contact passe dans un d´etection handler (grossier) plus des modules particularis´es (fine) La notion de classe body (entit´e) apparaˆıt elle g`ere l’´evolution de la g´eom´etrie et elle chapeaute tous les mod`eles physiques. RBDY2/RBDY3 disparaissent pour devenir des P1xxx `a la MAILx. Un body peut avoir des noeuds actifs et entraˆın´es. Les contacteurs s’appuient sur des noeuds actifs (DISKx,SPHER,...) ou entraˆın´es (POLYR,...) F. Dubois (CNRS)

Architecture de LMGC90

2007

21 / 24

LMGC90v2:Architecture

Les syst`emes dynamiques utilisent une classe SOE. Vectorisation du traitement (vecteurs composites), Les interactions dialogues directement avec le SOE. couplage siconos on peut acc´eder aux donn´ees dans le superviseur python interface graphique et superviseur

F. Dubois (CNRS)

Architecture de LMGC90

2007

22 / 24

LMGC90v2:Architecture

F. Dubois (CNRS)

Architecture de LMGC90

2007

23 / 24

LMGC90v2:applications et m´ethodes

couplage multi-physiques (d´eformables et granulaires) prise en compte du fluide passage micro/macro (couplage FEM/DEM) d´ecomposition de domaine m´ethodes sur r´eseau m´ethodes meshless ´el´ements spectraux formulations hybrides FEM/DEM/etc ´evolutives parall´elisme par passage de message

F. Dubois (CNRS)

Architecture de LMGC90

2007

24 / 24

Related Documents

Archi
October 2019 6
Archi-reseaux
November 2019 11
Archi-ordi
May 2020 3
Archi Of Iis
November 2019 5
Archi-guide 2009
May 2020 1