SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
Manipulation de champs avec SALOME
Anthony GEAY (CEA/DEN), Guillaume Boulant (EDF/R&D)



Journée des Utilisateurs de SALOME
(Mardi 15 novembre 2011)
La manipulation de champs

  Une définition
         « Accéder aux valeurs des champs de manière sélective (composante, temps, zone
         géométrique) pour l'utilisation dans des opérations mathématiques (essentiellement)»
         Champ : grandeur physique dont la valeur dépend de l'espace et du temps = F(r,t)

  Quelques situations d'usage
         Pré-traitement : création d'un champ sur une zone géométrique pour modéliser un
         chargement ou des conditions aux limites
         Inter-traitement : projection de champs entre maillages par interpolation aux interfaces
         Post-traitement : calcul des grandeurs d'intérêt à partir des données brutes
         Recalage : changement d'échelle, d'unité, rotation, translation
         Analyse de la qualité : extraction de mailles et de champs en fonction d'un critère
         Visualisation : sous-échantillonnage spatial et/ou temporel




2 - Journée des Utilisateurs SALOME - 15 novembre 2011
Dans le cadre technique de SALOME

  Un modèle de donnée
         Modèle MED (Modèle d'Échange de Donnée) qui décrit les maillages et les champs
         Connu au travers de son implémentation de persistance med «fichier»


  Une bibliothèque logicielle (C++, python)
         Aperçu de l'interface de programmation (API) de MED «mémoire»
         Architecture des composants (MEDCoupling, MEDLoader, REMAPPER)


  Une interface graphique (module SALOME)
         Pour la mise en œuvre des cas d'usage principaux



                                                            Présentation d'aujourd'hui




3 - Journée des Utilisateurs SALOME - 15 novembre 2011
Une bibliothèque logicielle (C++, python)
  Un premier exemple d'utilisation de l'API
         Addition de champs définis sur un même maillage




                                                                      +



                                                                      =
  Autres applications de cet exemple
         Changement d'échelle, toute combinaison linéaire de champs

4 - Journée des Utilisateurs SALOME - 15 novembre 2011
Une bibliothèque logicielle (C++, python)
  Exemple 2 : Projection d'un champ entre deux maillages
         Entrée : champ sur un maillage source + maillage cible
         Sortie : le champ est crée sur le maillage cible par interpolation P0P0 (entre cellules)

                                                                 source




                                                                                         cible




  Types d'interpolation disponibles :
         P0P0, P1P0, P0P1, P1P1
         1D, 2Dcurve, 2D, 3Dsurf, 3D
         Pour P0P0 : + (2Dcurve,2D) et (3Dsurf, 3D)
5 - Journée des Utilisateurs SALOME - 15 novembre 2011
Une bibliothèque logicielle (C++, python)
  Exemple 3 : fusion de champs définis sur des domaines distincts
         Entrée : 3 domaines sur chacun desquels est défini un champ
         Sortie : 1 domaine unique avec un champ unique




6 - Journée des Utilisateurs SALOME - 15 novembre 2011
Une bibliothèque logicielle (C++, python)
  Architecture des composants
         MEDCoupling : structures de données et interfaces d'échange (CORBA)
         MEDLoader : services de lecture et écriture aux formats MED fichier et SAUV (Castem)
         REMAPPER : outils d'interpolation
                                           MedClient Python layer
                                                                                                      MEDOP
                                                                                                    CORBA layer
                                             MedClient C++ layer                                    Python layer
                                              (faciliter l'utilisation
                                              en mode distribué)
                                                                                                              MEDOP
                                                                                                             C++ layer
                MEDMEM Python layer MEDMEM CORBA layer                   ParaMEDMEM REMAPPER MEDLoader


                                MEDMEM C++ layer                                   MEDCoupling C++ layer


                                                                  INTERP_KERNEL




                                                                                                   MED
                             libc++,libc, system                            MPI
                                                                                                  fichier *.med


                  •Orienté couplage et interpolation, compacité des données, compatibilité avec la visualisation (VTK)
                  •Aucune dépendance logicielle, sinon les standards libc, libc++ et system


         300 tests C++, 210 tests python, 30 tests CORBA ( valgrind 0, no warnings)
7 - Journée des Utilisateurs SALOME - 15 novembre 2011
Une interface graphique (module SALOME)
  Statut actuel
         En cours de développement, prévu à l'intégration dans SALOME 7 (fin 2012)
         Un prototype mis au point sur la base des 8 cas d'usage ci-dessous


  Les cas d'utilisation:
         Exemple 1: Explorer des sources de données
         Exemple 2: Rassembler des champs issus de différentes sources
         Exemple 3: Appliquer une opération mathématique sur des champs
         Exemple 4: Comparer des champs issues de différentes sources
         Exemple 5: Créer un champ sur un domaine spatial
         Exemple 7: Créer un champ à partir d’une image to[mp]ographique
         Exemple 8: Continuer l’analyse dans PARAVIS




8 - Journée des Utilisateurs SALOME - 15 novembre 2011
Une interface graphique (module SALOME)
  Exemple 1: Explorer des sources de données




9 - Journée des Utilisateurs SALOME - 15 novembre 2011
Une interface graphique (module SALOME)
  Exemple 2: Rassembler des champs issus de différentes sources

                                                          3




                                                                  4
                                         1


                                         2                    output.med




10 - Journée des Utilisateurs SALOME - 15 novembre 2011
Une interface graphique (module SALOME)
  Exemple 3: Appliquer une opération mathématique sur des champs




11 - Journée des Utilisateurs SALOME - 15 novembre 2011
Une interface graphique (module SALOME)
  Exemple 4: Comparer des champs issues de différentes sources




                                                2


                                                1



                                                3


                                                          4


12 - Journée des Utilisateurs SALOME - 15 novembre 2011
Une interface graphique (module SALOME)
  Exemple 7: Créer un champ à partir d'une image to[pm]ographique
         Image to[pm]ographique = champ scalaire (niveaux de gris) sur grille cartésienne




13 - Journée des Utilisateurs SALOME - 15 novembre 2011
Conclusions et perspectives
  Conclusions
         Une bibliothèque logicielle (C++,python) utilisable ...
            … en « scripting » pour les cas d'usage listés en début de présentation
            … en dépendance logicielle d'un code de calcul (MEDCoupling vient sans pré-requis)
            Déjà disponible en version industrielle dans SALOME 6
         Une interface graphique (module SALOME)
            Combinaison GUI – TUI inspirée des logiciels comme Octave ou Matlab
            Assister au maximum la sélection des données à manipuler (GUI) pour offrir une syntaxe de commande
            (TUI) la plus proche de l'écriture formelle



  Perspectives
         Distribution « packagée » dans SALOME 7 (fin 2012) sous forme du module MED :
            Bibliothèque MEDMEM à base de MEDCoupling (MEDMEM historique disparaît)
            Interface Graphique version industrialisée
         En prévision 2012 pour l'interface graphique
            Développement des moyens de sélection des données (groupe de mailles, composantes, sous-
            échantillonnage temporel)
            Extension de la liste des fonctions mathématique disponibles dans le langage de commande TUI
            Intégration graphique des outils pour la projection de champs




14 - Journée des Utilisateurs SALOME - 15 novembre 2011
Fin de la présentation



                                                          « Regarde comme les étoiles brillent.
                                                          Pourtant certaines sont mortes il y a longtemps déjà.
                                                          Mais elles éclairent encore le ciel, chaque nuit. »
                                                          Conte pour enfants




15 - Journée des Utilisateurs SALOME - 15 novembre 2011

Más contenido relacionado

La actualidad más candente

TP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / TunisieTP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / TunisieMariem ZAOUALI
 
Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++Fabio Hernandez
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Aziz Darouichi
 
Cours Visual Basic.NET
Cours Visual Basic.NETCours Visual Basic.NET
Cours Visual Basic.NETAziz Darouichi
 
Tp1 design patternappliques
Tp1 design patternappliquesTp1 design patternappliques
Tp1 design patternappliquesMariem ZAOUALI
 
Slides ceplex
Slides ceplexSlides ceplex
Slides ceplexTECOS
 
Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à pythonMariem ZAOUALI
 
Usage based security Framework for Collaborative Computing Systems
Usage based security Framework for Collaborative Computing SystemsUsage based security Framework for Collaborative Computing Systems
Usage based security Framework for Collaborative Computing SystemsRomain Bochet
 
Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5Laurent BUNIET
 
Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Aziz Darouichi
 

La actualidad más candente (11)

TP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / TunisieTP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / Tunisie
 
Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++
 
Cours Visual Basic.NET
Cours Visual Basic.NETCours Visual Basic.NET
Cours Visual Basic.NET
 
Tp1 design patternappliques
Tp1 design patternappliquesTp1 design patternappliques
Tp1 design patternappliques
 
Slides ceplex
Slides ceplexSlides ceplex
Slides ceplex
 
Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à python
 
Usage based security Framework for Collaborative Computing Systems
Usage based security Framework for Collaborative Computing SystemsUsage based security Framework for Collaborative Computing Systems
Usage based security Framework for Collaborative Computing Systems
 
Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5
 
Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
 

Similar a JUS 2011 - Manipulation de champs avec SALOME

Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zinebZineb ELGARRAI
 
Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Microsoft
 
20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessing20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessingPierre-Marie Brunet
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db firstZineb ELGARRAI
 
Cours VB 2012 seance 1
Cours VB 2012 seance 1Cours VB 2012 seance 1
Cours VB 2012 seance 1ISIG
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la rechercheJohan Moreau
 
Inria - Catalogue logiciels
Inria - Catalogue logicielsInria - Catalogue logiciels
Inria - Catalogue logicielsInria
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Microsoft
 
U M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetU M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetAmine Chkr
 
.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tousMicrosoft
 
Les vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfLes vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfBabacarDIOP48
 
Big Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBig Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBruno Bonnin
 
Transhumance pres anr_25-septembre synthese v10
Transhumance pres anr_25-septembre synthese v10Transhumance pres anr_25-septembre synthese v10
Transhumance pres anr_25-septembre synthese v10François Huguet
 
Geek Time Janvier 2017 : Java 8
Geek Time Janvier 2017 : Java 8Geek Time Janvier 2017 : Java 8
Geek Time Janvier 2017 : Java 8OLBATI
 
Environnements & Développements
Environnements & DéveloppementsEnvironnements & Développements
Environnements & DéveloppementsPaulin CHOUDJA
 

Similar a JUS 2011 - Manipulation de champs avec SALOME (20)

Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zineb
 
10 ans de l'Adullact
10 ans de l'Adullact10 ans de l'Adullact
10 ans de l'Adullact
 
Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.
 
20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessing20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessing
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db first
 
Cours VB 2012 seance 1
Cours VB 2012 seance 1Cours VB 2012 seance 1
Cours VB 2012 seance 1
 
Odoo / OCA
Odoo / OCAOdoo / OCA
Odoo / OCA
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la recherche
 
Inria - Catalogue logiciels
Inria - Catalogue logicielsInria - Catalogue logiciels
Inria - Catalogue logiciels
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5
 
U M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetU M L Analyse Et Conception Objet
U M L Analyse Et Conception Objet
 
Uml
UmlUml
Uml
 
.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous
 
JavaRMI.pdf
JavaRMI.pdfJavaRMI.pdf
JavaRMI.pdf
 
Transhumance pres
Transhumance presTranshumance pres
Transhumance pres
 
Les vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfLes vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdf
 
Big Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache ZeppelinBig Data Viz (and much more!) with Apache Zeppelin
Big Data Viz (and much more!) with Apache Zeppelin
 
Transhumance pres anr_25-septembre synthese v10
Transhumance pres anr_25-septembre synthese v10Transhumance pres anr_25-septembre synthese v10
Transhumance pres anr_25-septembre synthese v10
 
Geek Time Janvier 2017 : Java 8
Geek Time Janvier 2017 : Java 8Geek Time Janvier 2017 : Java 8
Geek Time Janvier 2017 : Java 8
 
Environnements & Développements
Environnements & DéveloppementsEnvironnements & Développements
Environnements & Développements
 

Más de OpenCascade

JUS 2011 - Homard
JUS 2011 - HomardJUS 2011 - Homard
JUS 2011 - HomardOpenCascade
 
JUS 2011 - Les 10 ans de Salome MECA
JUS 2011 - Les 10 ans de Salome MECAJUS 2011 - Les 10 ans de Salome MECA
JUS 2011 - Les 10 ans de Salome MECAOpenCascade
 
Jus 2011 - Salome - Panthere
Jus 2011 - Salome - PanthereJus 2011 - Salome - Panthere
Jus 2011 - Salome - PanthereOpenCascade
 
JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coup...
JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coup...JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coup...
JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coup...OpenCascade
 
JUS 2011 - SALOME Roadmap 2012-2013
JUS 2011 - SALOME Roadmap 2012-2013JUS 2011 - SALOME Roadmap 2012-2013
JUS 2011 - SALOME Roadmap 2012-2013OpenCascade
 
JUS 2011 - parex
JUS 2011 -  parex JUS 2011 -  parex
JUS 2011 - parex OpenCascade
 
Examples of use of the Salome Platform For Teaching and Research Activities A...
Examples of use of the Salome Platform For Teaching and Research Activities A...Examples of use of the Salome Platform For Teaching and Research Activities A...
Examples of use of the Salome Platform For Teaching and Research Activities A...OpenCascade
 
JUS 2001 - Maillage d'un béton avec Microgen
JUS 2001 - Maillage d'un béton avec MicrogenJUS 2001 - Maillage d'un béton avec Microgen
JUS 2001 - Maillage d'un béton avec MicrogenOpenCascade
 
JUS 2011 - Présentation 4a - Microgen
JUS 2011 -  Présentation 4a - MicrogenJUS 2011 -  Présentation 4a - Microgen
JUS 2011 - Présentation 4a - MicrogenOpenCascade
 
03 jus 2011 11 15 bilan2 011
03 jus 2011 11 15 bilan2 01103 jus 2011 11 15 bilan2 011
03 jus 2011 11 15 bilan2 011OpenCascade
 
10 jus 20101123_plat_salome
10 jus 20101123_plat_salome10 jus 20101123_plat_salome
10 jus 20101123_plat_salomeOpenCascade
 
08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentation08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentationOpenCascade
 
05 jus 20101123_numodis
05 jus 20101123_numodis05 jus 20101123_numodis
05 jus 20101123_numodisOpenCascade
 
04 jus 20101123_para_vis
04 jus 20101123_para_vis04 jus 20101123_para_vis
04 jus 20101123_para_visOpenCascade
 
03 jus 20101123_plateforme_alliance
03 jus 20101123_plateforme_alliance03 jus 20101123_plateforme_alliance
03 jus 20101123_plateforme_allianceOpenCascade
 
11 jus 20101123_saturneastersalome
11 jus 20101123_saturneastersalome11 jus 20101123_saturneastersalome
11 jus 20101123_saturneastersalomeOpenCascade
 
09 jus 20101123_optimisation_salomeaster
09 jus 20101123_optimisation_salomeaster09 jus 20101123_optimisation_salomeaster
09 jus 20101123_optimisation_salomeasterOpenCascade
 
01 jus 20101123_intro
01 jus 20101123_intro01 jus 20101123_intro
01 jus 20101123_introOpenCascade
 
02 jus 20101123_maillage_pourlacfd
02 jus 20101123_maillage_pourlacfd02 jus 20101123_maillage_pourlacfd
02 jus 20101123_maillage_pourlacfdOpenCascade
 

Más de OpenCascade (19)

JUS 2011 - Homard
JUS 2011 - HomardJUS 2011 - Homard
JUS 2011 - Homard
 
JUS 2011 - Les 10 ans de Salome MECA
JUS 2011 - Les 10 ans de Salome MECAJUS 2011 - Les 10 ans de Salome MECA
JUS 2011 - Les 10 ans de Salome MECA
 
Jus 2011 - Salome - Panthere
Jus 2011 - Salome - PanthereJus 2011 - Salome - Panthere
Jus 2011 - Salome - Panthere
 
JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coup...
JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coup...JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coup...
JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coup...
 
JUS 2011 - SALOME Roadmap 2012-2013
JUS 2011 - SALOME Roadmap 2012-2013JUS 2011 - SALOME Roadmap 2012-2013
JUS 2011 - SALOME Roadmap 2012-2013
 
JUS 2011 - parex
JUS 2011 -  parex JUS 2011 -  parex
JUS 2011 - parex
 
Examples of use of the Salome Platform For Teaching and Research Activities A...
Examples of use of the Salome Platform For Teaching and Research Activities A...Examples of use of the Salome Platform For Teaching and Research Activities A...
Examples of use of the Salome Platform For Teaching and Research Activities A...
 
JUS 2001 - Maillage d'un béton avec Microgen
JUS 2001 - Maillage d'un béton avec MicrogenJUS 2001 - Maillage d'un béton avec Microgen
JUS 2001 - Maillage d'un béton avec Microgen
 
JUS 2011 - Présentation 4a - Microgen
JUS 2011 -  Présentation 4a - MicrogenJUS 2011 -  Présentation 4a - Microgen
JUS 2011 - Présentation 4a - Microgen
 
03 jus 2011 11 15 bilan2 011
03 jus 2011 11 15 bilan2 01103 jus 2011 11 15 bilan2 011
03 jus 2011 11 15 bilan2 011
 
10 jus 20101123_plat_salome
10 jus 20101123_plat_salome10 jus 20101123_plat_salome
10 jus 20101123_plat_salome
 
08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentation08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentation
 
05 jus 20101123_numodis
05 jus 20101123_numodis05 jus 20101123_numodis
05 jus 20101123_numodis
 
04 jus 20101123_para_vis
04 jus 20101123_para_vis04 jus 20101123_para_vis
04 jus 20101123_para_vis
 
03 jus 20101123_plateforme_alliance
03 jus 20101123_plateforme_alliance03 jus 20101123_plateforme_alliance
03 jus 20101123_plateforme_alliance
 
11 jus 20101123_saturneastersalome
11 jus 20101123_saturneastersalome11 jus 20101123_saturneastersalome
11 jus 20101123_saturneastersalome
 
09 jus 20101123_optimisation_salomeaster
09 jus 20101123_optimisation_salomeaster09 jus 20101123_optimisation_salomeaster
09 jus 20101123_optimisation_salomeaster
 
01 jus 20101123_intro
01 jus 20101123_intro01 jus 20101123_intro
01 jus 20101123_intro
 
02 jus 20101123_maillage_pourlacfd
02 jus 20101123_maillage_pourlacfd02 jus 20101123_maillage_pourlacfd
02 jus 20101123_maillage_pourlacfd
 

JUS 2011 - Manipulation de champs avec SALOME

  • 1. Manipulation de champs avec SALOME Anthony GEAY (CEA/DEN), Guillaume Boulant (EDF/R&D) Journée des Utilisateurs de SALOME (Mardi 15 novembre 2011)
  • 2. La manipulation de champs Une définition « Accéder aux valeurs des champs de manière sélective (composante, temps, zone géométrique) pour l'utilisation dans des opérations mathématiques (essentiellement)» Champ : grandeur physique dont la valeur dépend de l'espace et du temps = F(r,t) Quelques situations d'usage Pré-traitement : création d'un champ sur une zone géométrique pour modéliser un chargement ou des conditions aux limites Inter-traitement : projection de champs entre maillages par interpolation aux interfaces Post-traitement : calcul des grandeurs d'intérêt à partir des données brutes Recalage : changement d'échelle, d'unité, rotation, translation Analyse de la qualité : extraction de mailles et de champs en fonction d'un critère Visualisation : sous-échantillonnage spatial et/ou temporel 2 - Journée des Utilisateurs SALOME - 15 novembre 2011
  • 3. Dans le cadre technique de SALOME Un modèle de donnée Modèle MED (Modèle d'Échange de Donnée) qui décrit les maillages et les champs Connu au travers de son implémentation de persistance med «fichier» Une bibliothèque logicielle (C++, python) Aperçu de l'interface de programmation (API) de MED «mémoire» Architecture des composants (MEDCoupling, MEDLoader, REMAPPER) Une interface graphique (module SALOME) Pour la mise en œuvre des cas d'usage principaux Présentation d'aujourd'hui 3 - Journée des Utilisateurs SALOME - 15 novembre 2011
  • 4. Une bibliothèque logicielle (C++, python) Un premier exemple d'utilisation de l'API Addition de champs définis sur un même maillage + = Autres applications de cet exemple Changement d'échelle, toute combinaison linéaire de champs 4 - Journée des Utilisateurs SALOME - 15 novembre 2011
  • 5. Une bibliothèque logicielle (C++, python) Exemple 2 : Projection d'un champ entre deux maillages Entrée : champ sur un maillage source + maillage cible Sortie : le champ est crée sur le maillage cible par interpolation P0P0 (entre cellules) source cible Types d'interpolation disponibles : P0P0, P1P0, P0P1, P1P1 1D, 2Dcurve, 2D, 3Dsurf, 3D Pour P0P0 : + (2Dcurve,2D) et (3Dsurf, 3D) 5 - Journée des Utilisateurs SALOME - 15 novembre 2011
  • 6. Une bibliothèque logicielle (C++, python) Exemple 3 : fusion de champs définis sur des domaines distincts Entrée : 3 domaines sur chacun desquels est défini un champ Sortie : 1 domaine unique avec un champ unique 6 - Journée des Utilisateurs SALOME - 15 novembre 2011
  • 7. Une bibliothèque logicielle (C++, python) Architecture des composants MEDCoupling : structures de données et interfaces d'échange (CORBA) MEDLoader : services de lecture et écriture aux formats MED fichier et SAUV (Castem) REMAPPER : outils d'interpolation MedClient Python layer MEDOP CORBA layer MedClient C++ layer Python layer (faciliter l'utilisation en mode distribué) MEDOP C++ layer MEDMEM Python layer MEDMEM CORBA layer ParaMEDMEM REMAPPER MEDLoader MEDMEM C++ layer MEDCoupling C++ layer INTERP_KERNEL MED libc++,libc, system MPI fichier *.med •Orienté couplage et interpolation, compacité des données, compatibilité avec la visualisation (VTK) •Aucune dépendance logicielle, sinon les standards libc, libc++ et system 300 tests C++, 210 tests python, 30 tests CORBA ( valgrind 0, no warnings) 7 - Journée des Utilisateurs SALOME - 15 novembre 2011
  • 8. Une interface graphique (module SALOME) Statut actuel En cours de développement, prévu à l'intégration dans SALOME 7 (fin 2012) Un prototype mis au point sur la base des 8 cas d'usage ci-dessous Les cas d'utilisation: Exemple 1: Explorer des sources de données Exemple 2: Rassembler des champs issus de différentes sources Exemple 3: Appliquer une opération mathématique sur des champs Exemple 4: Comparer des champs issues de différentes sources Exemple 5: Créer un champ sur un domaine spatial Exemple 7: Créer un champ à partir d’une image to[mp]ographique Exemple 8: Continuer l’analyse dans PARAVIS 8 - Journée des Utilisateurs SALOME - 15 novembre 2011
  • 9. Une interface graphique (module SALOME) Exemple 1: Explorer des sources de données 9 - Journée des Utilisateurs SALOME - 15 novembre 2011
  • 10. Une interface graphique (module SALOME) Exemple 2: Rassembler des champs issus de différentes sources 3 4 1 2 output.med 10 - Journée des Utilisateurs SALOME - 15 novembre 2011
  • 11. Une interface graphique (module SALOME) Exemple 3: Appliquer une opération mathématique sur des champs 11 - Journée des Utilisateurs SALOME - 15 novembre 2011
  • 12. Une interface graphique (module SALOME) Exemple 4: Comparer des champs issues de différentes sources 2 1 3 4 12 - Journée des Utilisateurs SALOME - 15 novembre 2011
  • 13. Une interface graphique (module SALOME) Exemple 7: Créer un champ à partir d'une image to[pm]ographique Image to[pm]ographique = champ scalaire (niveaux de gris) sur grille cartésienne 13 - Journée des Utilisateurs SALOME - 15 novembre 2011
  • 14. Conclusions et perspectives Conclusions Une bibliothèque logicielle (C++,python) utilisable ... … en « scripting » pour les cas d'usage listés en début de présentation … en dépendance logicielle d'un code de calcul (MEDCoupling vient sans pré-requis) Déjà disponible en version industrielle dans SALOME 6 Une interface graphique (module SALOME) Combinaison GUI – TUI inspirée des logiciels comme Octave ou Matlab Assister au maximum la sélection des données à manipuler (GUI) pour offrir une syntaxe de commande (TUI) la plus proche de l'écriture formelle Perspectives Distribution « packagée » dans SALOME 7 (fin 2012) sous forme du module MED : Bibliothèque MEDMEM à base de MEDCoupling (MEDMEM historique disparaît) Interface Graphique version industrialisée En prévision 2012 pour l'interface graphique Développement des moyens de sélection des données (groupe de mailles, composantes, sous- échantillonnage temporel) Extension de la liste des fonctions mathématique disponibles dans le langage de commande TUI Intégration graphique des outils pour la projection de champs 14 - Journée des Utilisateurs SALOME - 15 novembre 2011
  • 15. Fin de la présentation « Regarde comme les étoiles brillent. Pourtant certaines sont mortes il y a longtemps déjà. Mais elles éclairent encore le ciel, chaque nuit. » Conte pour enfants 15 - Journée des Utilisateurs SALOME - 15 novembre 2011