300 likes | 305 Vues
22 juin 2009. Open TURNS Journée Utilisateurs #2. Journée Utilisateurs Open TURNS #2 Ordre du jour. La Communauté Open TURNS s’agrandit Projets ayant adopté Open TURNS Labelisation Debian Formations à Open TURNS Site de partage Nouveautés depuis la Journée Utilisateurs # 1 (avril 2008)
E N D
22 juin 2009 Open TURNS Journée Utilisateurs #2
Journée Utilisateurs Open TURNS #2 Ordre du jour • La Communauté Open TURNS s’agrandit • Projets ayant adopté Open TURNS • Labelisation Debian • Formations à Open TURNS • Site de partage • Nouveautés depuis la Journée Utilisateurs # 1 (avril 2008) • Ajouts scientifiques • Ajouts technologiques • Ajouts pour développeurs • Ajouts de documentation • Et très bientôt, • 0.13.2 (sept 09) : • portage Windows • IHM graphique : EFICAS • Ajouts scientifiques • À venir … • Exposés • EDF : « Étude probabiliste d’un essai de fatigue sur la maquette FATHER » (R&D – MMC) • EADS, Phimeca • La parole est à vous ... • Session Développeurs • Session Métier
Communauté Open TURNSProjets nationaux et européens multi-partenaires • Projet ANR OPUS ( 04/2011): CEA, ECP, Supélec, Softia, EADS, Dassault Aviation, INRIA, Université Paris VI • Objectif : élargissement de la communauté Open TURNS (développeurs et utilisateurs) • Projet ANR de développement d’une plateforme technologique de gestion des incertitudes • Open TURNS est une brique constitutive de cette plateforme • Identification et développement de méthodes amont (bases réduites, méthodes d’analyse de sensibilité, calculs de quantile) • Projet systm@tic EHPOC (--> 08/2010): CEA, BERTIN, EADS, IFP, CEA, ECP, Dassault Aviation, CNES • Objectif: test et validation de la méthodologie incertitudes. Développement de la communauté utilisateurs • Dassault Aviation a choisi Open TURNS pour effectuer ses tests (cas de dimensionnement avec du couplage fluide – structure). • Analyse et comparaison de fonctionnalités avec d’autres outils (COUGAR, URANIE, DAKOTA (?)) • Benchmark proposé (cas poutre Open TURNS) • Projet ANR CISSSI: UBP, ONERA, Phimeca, CEA • Objectif: Développement de capacités HPC et métier (méta modèles (SVM) et champs stochastiques) • Lien avec la communauté Séïsme • MIRADOR (Fini): IOSIS, COB, EGIS, BOUYGUES, Armines, IFMA, Phimeca • Implémentation du chaos polynomial dans Open TURNS EDF R&D a développé le module chaos polynomial • Applications des méthodes incertitudes (fiabilité) à des problèmes du Génie Civil. • Projet ANR SISTAE (fin 09/2009) – FP7 PICASSO (début 07/2009 2012): PHIMECA, EADS, CEA, … • Communauté mécanique en contrôle non destructif (lien avec la plateforme CIVA) – Développement de régressions par quantiles et d’approches Bayésiennes • Validation et finalisation du portage Windows • Projet FP7 CRESCENDO (2009-2012) (62 partenaires: Airbus/Rolls Royce/Eurocopter + éditeurs de logiciels) • Elargissement au niveau européen de la communauté utilisateurs • Organisation de la simulation dans un cycle de conception. Lien avec les éditeurs de logiciel travaillant dans le secteur aéronautique. • Qualité de la simulation basée en partie sur les méthodologies incertitudes (méthodologie et outils seront proposés au consortium) • Projet system@tic CSDL (Complex System Design Lab) (2009-2012): Dassault, Renault, EADS, C-S, Bull, Alcatel, ESI, Eurodecision, Enginesoft, ONERA, INRIA (SCILAB), C3S, ARMINES, (...)...and HPC Project. • Intégration de la thématique Incertitudes et de l’outil Open TURNS dans une problématique de dimensionnement multi-disciplinaire
Communauté Open TURNSGroupes de travail thématiques • GDR MASCOT NUM (www.gdr-mascotnum.fr): GDR CNRS formé depuis 2008 animant la communauté de recherche française sur la thématique • Journées 2010 prévues • Prochains évènements à l’automne (Workshop + journée bourse aux stages (26 novembre) • Rédaction d’une newsletter • GT ImdR « Incertitudes »: Vue applicative de la problématique (lien avec les industriels). Un site de références bibliographiques est en cours de constitution • GT ImdR « 3S : Sécurité et Sûreté des Structures » • Groupe SfdS « Fiabilité et incertitudes »: groupe nouvellement créé centré sur les thématiques de fiabilité
Communauté Open TURNS • Exemples de Projets internes EDF: • Etudes du réseau de distribution : client ERDF et RTE, code Mosard • Etudes d'accidents graves : brèche sur le circuit primaire : client SEPTEN, code Code_Cathare • Chaîne de calcul des coeurs nucléaires : plans de chargement / suivi et exploitation des tranches / méthodologies de calculs des études de gestion de combustible : client SEPTEN • Problématique du transport des combustibles : code Syrthes • Tenue mécanique de la cuve du réacteur nucléaire, code Code_Aster : client SEPTEN • Projets internes EADS: • Support aux études Airbus (maintenance, calcul de masse, acoustique, avant-projets, aérodynamique, mécanique des structures, essais en vol, contrôle non destructif) • Support aux études Astrium (compatibilité électromagnétique, navigation/pilotage, mécanique des structures, propulsion…) • Etudes PHIMECA: • IOSIS, EDF Themis, EDF MRI • PhimecaSoft 3.0 fera appel à Open TURNS
Labellisation Debian • Open TURNS a été accepté dans debian/testing • Migration effectuée en collaboration avec C. Prudhomme (Université Joseph Fourier – Grenoble) • Intérêt: Elargissement de la communauté de développeurs et utilisateurs potentiels
Formations à Open TURNS • Formation initiale (~100 élèves): • Université Claude Bernard (Lyon) • Ecole Centrale Paris • Université Paris XIII • Formation continue (~200 personnes): • Formation à la méthodologie : ImdR, EDF-ITECH et Phimeca • Formation outil : EDF – ITECH et Phimeca • Formation IW institute en cours de montage sur des méthodes avancées
Share.OpenTURNS.org • Objectifs • Lieu de partage d'informations • Création d'une communauté d'utilisateurs • Rendre plus accessible la création des scripts • Lieu plus accessible que la mailing-list • Espace plus libre que le site officiel openturns.org • Comment contribuer ? • Lire, tester, commenter... • Poster : • Obtenir un login pour poster : demander sur la mailing-list user • Se loguer : suivre le lien write a post
Ajouts scientifiques (1/2) • Depuis avril 2008, version 0.12.3 -> version 0.13.1: • Modélisation probabiliste: • nouvelles distributions (Laplace, ChiSquare, Rayleigh, NonCentralStudent, Student ND, Epanechnikov) • nouvelles copules (SklarCopula, ClaytonCopula, FrankCopula, GumbelCopula) • nouveaux mécanismes d’assemblage (RandomMixture, ComposedCopula, TruncatedDistribution) • Modélisation non probabiliste: • Intervalles • suites à discrépance faible • Analyse statistique: • calcul d’indices de Sobol • calculs de moments centrés et export CSV pour les échantillons • Modèles: • Fonctions python • Polynômes • Combinaison linéaire de fonctions • Wrappers génériques -> voir le zoom technique • Méta-modèles: • Chaos Polynomial -> voir le zoom technique • Moindres carrés génériques • Plans d’expériences: • Plans LHS, Sobol, Monté Carlo, Pondérés,
Ajouts scientifiques (2/2) • Depuis avril 2008, version 0.12.3 -> version 0.13.1, suite: • Méthodes déterministes: • Min/Max sur un interval ND (méthode TNC: Truncated Newton Constrained) • Algorithmes de simulation: • historique de simulation et de convergence, • Quasi Monté Carlo • Post Analytical Sampling (Importance Sampling, Controlled Importance Sampling) • Méthodes analytiques: • Algorithme SQP • Transformation de Nataf généralisée • Transformation de Rosenblatt • Graphiques: • Tracé d’iso-contours • QQ-plot & dorite de Henry améliorés • Tests statistiques: • Statistique exacte pour le test de Kolmogorov
Share.OpenTURNS.org • Les règles : • Espace de liberté : non (moins) administré que openturns.org • Privilégier l'anglais • A minima : • Donner la version d'OpenTURNS utilisée • Choisr une catégorie et/ou un tag adapté • Trucs d'écriture : • Coloration syntaxique du code : /// [python] from openturns import * /// • Un jour /// [openturns] ...
Nouveautés depuis la Journée Utilisateurs #1 • Ajouts technologiques : • Mécanisme de cache pour les NumericalMathFunction • Création de fonction python directement dans la TUI class calculDeviationPython( OpenTURNSPythonFunction ) : # the following method defines the input size (4) and the output size (1) def __init__( self ) : OpenTURNSPythonFunction.__init__( self, 4, 1 ) # the following method gives the implementation of calculDeviationPython def f ( self, x ) : E = x[0] F = x[1] L = x[2] I = x[3] return [ - ( F * L*L*L ) / ( 3. * E * I ) ] # Use the function defined in the script python with the openturns # library # Create a NumericalMathFunction from calculDeviationPython modeleOpenTURNS = NumericalMathFunction( calculDeviationPython() )
Nouveautés depuis la Journée Utilisateurs #1 • Ajouts technologiques (suite) : • Pretty printpour les objets principaux En python : >>> p = NumericalPoint( [1.2, 3.4, 5.6] ) >>> print p [1.2,3.4,5.6] >>> print repr( p ) class=NumericalPoint name=Unnamed dimension=3 implementation=class=NumericalPointImplementation name=Unnamed dimension=3 values=[1.2,3.4,5.6] En C++ : NumericalPoint p( 3 ); std::cout << p << std::endl; [0.0,0.0,0.0] OStream fullprint( std::cout ); fullprint << p << std::endl; class=NumericalPoint name=Unnamed dimension=3 implementation=class=NumericalPointImplementation name=Unnamed dimension=3 values=[0.0,0.0,0.0]
Nouveautés depuis la Journée Utilisateurs #1 • Ajouts technologiques (suite) : • Mécanime de wrapper simplifié #include "WrapperCommon.h" #include "WrapperMacros.h" #define WRAPPERNAME exemple FUNC_EXEC( WRAPPERNAME, FUNC_EXEC_BODY_CALLING_COMMAND_IN_TEMP_DIR( "exemple" ) ) • Wrapper multithreadé • Ajout d’une macro • FUNC_EXEC_SAMPLE_MULTITHREADED( WRAPPERNAME ) • Utilise automatiquement la fonction func_exec_… • Détermine automatiquement le nombre de CPU/cœurs présents • Système de log simplifié >>> Log.Show( Log.USER + Log.INFO + Log.WARN + Log.ERROR )
Nouveautés depuis la Journée Utilisateurs #1 • Ajouts pour développeurs : • Ajout d’un mécanisme de module : • Accès simplifié au développement interne d’Open TURNS • Cycle de développement plus rapide (compilation, tests, etc.) • A réserver aux nouvelles fonctionnalités • Démonstration • Modularisation du code python : • Gain en temps de compilation • Gain en place mémoire • Gain en développement de module • Modification de certaines dépendances : • XML ( Xercès libXML2) • BOOST supprimé • Ajout d’un système de suivi de consommation mémoire • Amélioration de la production de documentation Doxygen
Nouveautés depuis la Journée Utilisateurs #1 • Ajouts Documentation : • Contribution Guide : • + étapes de développement et de déploiement d’un module • + description des modalités d’interaction avec le serveur subversion d’Open TURNS • Wrapper Guide (très prochainement) • Mécanismes de couplage • Traduction en cours • Example Guide : • Exemple de la poutre encastrée : démarche Incertitudes complète (tous critères) avec analyse des résultats
Et très bientôt : Open TURNS / Windows • Objectifs : • Toucher plus d’utilisateurs • Couplage avec des logiciels windows • Iso-fonctionnalité • Réalisation : • Cross compilation • Deux environnements de test • Setup windows • Conclusions
Et très bientôt : Open TURNS / Windows • Intéresser plus d’utilisateurs : • Demande lors de la dernière Journée Utilisateurs • Utile dans PICASSO (couplage CIVA) • Besoin pour des projets internes des partenaires • Facilité d’accès à la plateforme : • Linux n’est plus une nécessité pour les utilisateurs
Et très bientôt : Open TURNS / Windows • Couplage Open TURNS / Logiciels Windows • Actuellement • 1 machine Windows, 1 machine Linux • Connexions réseaux • Mise en place complexe, lenteurs • Nouvelle solution • Wrapper Windows • Compilation avec mingw32
Et très bientôt : Open TURNS / Windows • Isofonctionnalité • Principe • Toutes les fonctionnalités sont présentes sous Windows • Résultats identiques Linux/Windows • Moyens • Environnement de test • Intégration du test de la plateforme Windows dans le processus de release
Et très bientôt : Open TURNS / Windows • Objectifs : • Toucher plus d’utilisateurs • Couplage avec des logiciels windows • Iso-fonctionnalité • Réalisation : • Cross compilation • Deux environnements de test • Setup windows • Conclusions
Et très bientôt : Open TURNS / Windows • Cross compilation • Pourquoi ? • Garder l’environnement de compilation sous Linux • Faciliter le support • Outils • Mingw32: www.mingw.org • Les dll des dépendances d’Open TURNS : • Lapack, pthreads, dlfcn, libxml2, regex • Inconvénients • Pas de compatibilité avec Visual C++ • Environnement de compilation lourd
Et très bientôt : Open TURNS / Windows • Deux environnements de tests • Linux • Objectif: permettre aux développeurs de vérifier la compatibilité de leurs développements • Outil: Wine • Windows • Objectif : Vérification pré-release • Outil: msys
Et très bientôt : Open TURNS / Windows • Setup Windows • Objectif • Simplifier l’installation • Assurer la compatibilité des dépendances • Outils • Innosetup: http://www.jrsoftware.org/isinfo.php
Et très bientôt : Open TURNS / Windows • Objectifs : • Toucher plus d’utilisateurs • Couplage avec des logiciels windows • Iso-fonctionnalité • Réalisation : • Cross compilation • Deux environnements de test • Setup windows • Conclusions
Et très bientôt : Open TURNS / Windows • Où en est-on ? • Iso-fonctionnalité • Portage réalisé • Mêmes résultats Linux/Windows • Setup à venir très prochainement • Questions restantes • Environnement de tests lourds • Incompatibilité MS Visual • Performances dégradées
0.13.2 : IHM graphique EFICAS • IHM graphique EFICAS : • Développé par EDF R&D, Logiciel open source, licence LGPL • Catalogue présentant une grande majorité des fonctionnalités de la démarche incertitudes • 3 critères : Min/Max, Tendance centrale, Dépassement de seuil • Modélisation probabiliste : variables aléatoires indépendantes (version de juin 2009) • Propagation : simulation ou FORM/SORM (+Tirage Importance) • Hiérarchisation : coefficients de corrélation (SRC & Co), Facteurs d’importance et de sensibilité • Génère le script python de l’étude (fichier.py) • Catalogue pour la fabrication des wrappers Génère le script du couplage (fichier.xml) • EFICAS = aide à l’apprentissage de la TUI + à l’écriture des fichiers de couplage
0.13.2 : IHM graphique EFICAS - Démonstration Exemple d’une poutre encastrée en un bord Déviation verticale : d = - FL3 / (3EI) • Variables probabilisées : • Module d’Young E Beta ( r=0.9, t=3.2, a=2.8e7, b=4.8e7 ) • Force F LogNormale (E[F] = 3e4, [F] = 9e3, borne inf. = 1.5e4 ) • Longueur L Uniforme (250, 260 ) • Inertie de flexion Beta ( r=2.5, t=4.0, a=3.1e2, b=4.5e2 ) (unités adaptées pour avoir une déviation en cm) • Critère probabiliste : Dépassement du seuil 30 cm : d < -90 cm • Méthode : Monte Carlo (104 calculs)
A venir… • Chantiers « techniques » envisagés • HPC • Bayésien • Séries chronologiques • Estimation de quantiles • v1.0 • Macro-fonctions « utilisateurs »