Salome HOME
c571c6e6f8ad0e23c33cc1638db901d06597f89d
[modules/med.git] / src / MEDOP / doc / sphinx / xmed-prototype-overview.rst
1 .. meta::
2    :keywords: maillage, champ, manipulation, XMED
3    :author: Guillaume Boulant
4
5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6 Démonstrateur XMED, vue d'ensemble
7 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8
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.
13
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:
17
18 * Chargement d'un fichier med dans le module MED (ou publication par
19   un code de calcul).
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
30
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
36 ligne de commande:
37
38 .. image:: images/medop-gui-result.png
39    :align: center
40
41 La séquence ci-après montre le cas d'utilisation complet en
42 images:
43
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``.
53
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
58
59 +---------------+---------------+ 
60 | |IMG_SELECT|  | |IMG_ALIAS|   |
61 +---------------+---------------+ 
62 | |IMG_VISU|    | |IMG_RESULT|  |
63 +---------------+---------------+ 
64
65 La solution technique est construite sur les principes suivants:
66
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
75   CORBA.
76
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
87 uniquement).
88
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.