2 :keywords: maillage, champ, manipulation, XMED
3 :author: Guillaume Boulant
5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6 Démonstrateur XMED, vue d'ensemble
7 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9 Le module XMED est un espace d'expérimentation pour le développement
10 des opérations de manipulation de champs. Il complète des
11 développements intégrés directement dans le module MED et gérés dans
12 la branche CVS BR_medop.
14 Une maquette est au point pour illustrer les propositions en matière
15 d'ergonomie d'utilisation et en matière d'architecture technique. La
16 maquette permet de réaliser des cas d'utilisation de la forme:
18 * Chargement d'un fichier med dans le module MED (ou publication par
20 * Sélection graphique des champs de l'étude à mettre à disposition
21 dans la console utilisateur ("calculette" en mode texte qui
22 concraitement correspond à l'interface python de SALOME).
23 * Dans la calculette, exécution d'opérations algébriques (+,-,*,/)
24 entre champs avec possibilité d'utiliser des scalaires dans des
25 opérations de type transformation linéaire (y=ax+b ou y et x sont
26 des champs et a et b des scalaires). Egalement quelques fonctions
27 mathématiques standard applicables sur des champs (pow, sqrt).
28 * Possibilité de visualiser les champs produits avec VISU
29 * Possibilité d'exporter des champs produits dans un fichier med
31 La figure ci-dessous montre le résultat d'une séquence d'utilisation
32 dans laquelle les champs "testfield1" et "testfield2" ont été
33 sélectionnés dans l'arbre d'étude pour être utilisés dans la console
34 textuelle sous les noms de variables f1 et f2. L'image montre le
35 contrôle visuel du résultat de l'opération f1+f2-(f1-f2)^2 tapée en
38 .. image:: images/medop-gui-result.png
41 La séquence ci-après montre le cas d'utilisation complet en
44 1. Sélection d'un champs sur un pas de temps dans l'arbre d'étude
45 2. Saisie d'un nom de variable (alias) pour manipuler ce champ. Par
46 défaut, le nom du champ est proposé (``testfield1`` ici). Dans
47 l'exemple, l'utilisateur remplace par l'alias ``f1``.
48 3. Contrôle visuel du champ ``testfield1`` manipulé par sa variable
49 ``f1`` au moyen de la commande ``f1.visu()``
50 4. Chargement du champ ``testfield2`` sous le nom ``f2``, exécution de
51 l'opération ``f1+f2-(f1-f2)^2`` et contrôle visuel du résultat,
52 récupéré ici dans une variable de nom ``result``.
54 .. |IMG_SELECT| image:: images/medop-gui-selectfield_scale.png
55 .. |IMG_ALIAS| image:: images/medop-gui-aliasfield_scale.png
56 .. |IMG_VISU| image:: images/medop-gui-visufield_scale.png
57 .. |IMG_RESULT| image:: images/medop-gui-result_scale.png
59 +---------------+---------------+
60 | |IMG_SELECT| | |IMG_ALIAS| |
61 +---------------+---------------+
62 | |IMG_VISU| | |IMG_RESULT| |
63 +---------------+---------------+
65 La solution technique est construite sur les principes suivants:
67 * Les données MEDMEM sont physiquement chargées par le composant MED,
68 c'est-à-dire dans le processus ``Container`` de SALOME, et sont
69 référencées dans l'étude SALOME.
70 * Les opérations sont physiquement des opérations entre objets MEDMEM
71 purs qui ont lieu dans le composant MED.
72 * Les opérations sont pilotées par des objets proxy python instanciés
73 dans la console TUI puis manipulés par l'utilisateur. Ces objets
74 proxy savent accéder aux objets MEDMEM au travers de leur interface
77 Ainsi, l'architecture technique est construite pour pouvoir travailler
78 sur des données MEDMEM pur en partant de pointeurs CORBA manoeuvrés
79 depuis des objets python dans l'interface textuelle de
80 SALOME. L'effort principal a donc porté sur la mise au point de
81 l'interface technique qui permet de lier des variables représentant
82 les champs au niveau du GUI (techniquement, la calculette est
83 l'interpréteur python embarqué dans le GUI, étendu de quelques
84 fonctions pour la manipulation de champs), alors que les données
85 MEDMEM sont physiquement disponibles uniquement au niveau des
86 composants CORBA (et les opérations implémentées dans MEDMEM
89 Pour le moment, la maquette est limitée à des operations entre champs
90 qui partagent le même support med (contrainte de MEDMEM) et le
91 résultat est calculé sur toutes les composantes et tout le domaine de
92 définition du champs (cette deuxième contrainte est juste parce que
93 les extentions n'ont pas encore été examinées). Enfin, le support de
94 gestion des données est supposé être l'étude SALOME et la structure
95 MED qui y est publiée.