Salome HOME
CMake:
[modules/smesh.git] / src / Tools / Verima / Doc / usage_outil.rst
1 Utilisation de l'outil
2 ======================
3 Création de la base
4 --------------------
5
6 La base de données ne doit, à priori, n'être créée qu'une unique fois. Cependant, relancer le script de création ne changera pas les informations contenues dans la base et n'a pas d'incidence sur la base ni sur son contenu. Le script va seulement éventuellement ajouter dans la base, les références de la machine sur laquelle il est exécuté.
7
8   * createDatabase.py
9
10         - Crée la structure de la base et le fichier myMeshDB.db
11         - Si le fichier myMeshDB.db (c'est à dire si la base) existe déjà, le script ne modifie pas la structure des tables et n'affecte pas les enregistrements qu'elles contiennent déjà.
12         - Le script crée un enregistrement correspondant à la machine et à sa version d'OS (résultats de la commande uname). Si l'enregistrement existe déjà, la requête affiche l'erreur False et la database n'est pas touchée.  
13         - Le script a un unique paramètre optionnel : le nom de la database. 
14
15      .. code-block:: python
16
17           python createDatabase -d maBaseAMoi.db
18
19 Le jeu de test créé par défaut 
20 -------------------------------
21
22     * Pour les machines 
23         - la machine sur laquelle la base est créée est ajoutée.
24
25     * Pour les mailleurs
26         - 1, Blsurf+Ghs3D
27         - 2, Tetra
28
29
30     * Pour les scripts
31         -1,  script1 utilise le mailleur 2 dimension 2
32         -2,  excavation utilise le mailleur 1 dimension 3
33
34     * Pour les versions
35         - Salome 7.3 comme version de référence
36         - lorsqu'on utilise une version de Salome, cette version sera créée dans la database. Il n'est pas nécessaire de créer une autre version que la version de référence.
37
38     * Pour les groupes de référence
39         - Seul le script excavation a des groupes de référence : il s'agit de FRONT_07 et FOND_07, PAROI_07 et ROCHE_07, FOND_16, PAROI_16 et ROCHE_16.
40
41     * Pour changer le jeu de test par défaut, il faut éditer dans la directory Base, les fichiers tableMailleurs, tableMaillages, tableGroupesRef et tableVersions  et modifier les méthodes "remplit". Par exemple, pour ajouter le mailleur "MonMailleur" :
42
43
44          .. code-block:: python
45
46           self.insereLigneAutoId(('MonMailleur'))
47
48
49
50
51 Ajouter un enregistrement à une table 
52 -------------------------------------
53
54 Lors d'une nouvelle version de Salome, de l'arrivée d'un nouveau cas test ou d'un nouveau mailleur, il sera nécessaire d'enrichir la base de données.  Aucun contrôle sur la cohérence des valeurs n'est effectué. 
55
56   * l'autoincrement
57
58    Les identifiants ("id") des tables Maillages, Mailleurs et Versions sont crées de façon automatique lors de l'insertion d'un enregistrement dans la table. Il n'est ni possible ni nécessaire de les préciser lors de la création d'un enregistrement.
59    Ainsi, pour ajouter un mailleur, il suffit de spécifier son nom.
60
61  
62   * ajoutEnreg.py
63
64         - Le script a deux paramètres : le nom de la databse (optionnel) et le nom de la table qu'il faut enrichir.
65           les valeurs des colonnes doivent être fournies dans l'ordre.
66
67          .. code-block:: python
68
69             python ajoutEnreg -d maBaseAMoi.db -t TableMailleurs  "monMailleur"
70
71
72         - Les contrôles effectués sont minimaux : nombre de valeurs de l'enregistrement et identifiant. En revanche, la cohérence entre tables n'est pas vérifiée. Ainsi, par exemple, pour entrer un nouveau cas test, il faut ajouter un enregistrement à la table des maillages. Si l'identifiant du mailleur n'existe pas, aucune erreur ne sera détectée.
73
74          .. code-block:: python
75
76           python ajoutEnreg -d maBaseAMoi.db -t TableMailleurs  "monMailleur"
77           python ajoutEnreg -d maBaseAMoi.db -t TableMaillages  "monMaillage" "mesScripts/lanceMonMaillage" "/tmp/monFichierMed" 4 3 5 5 5 5 "essai pour mon Mailleur"
78
79        
80
81
82 Changement de la version de référence
83 -------------------------------------
84  
85 A priori, cette fonction ne devrait pas être utilisée. mais ... Elle permet de changer la version de référence.
86
87   * changeRef.py
88
89          .. code-block:: python
90
91             python changeVersion.py Salome7.3 ou
92             python changeVersion.py 3
93
94 Consultation des tables
95 -----------------------
96
97   * le script Gui/visualiseDatabase.py (qui peut également être lancé de l'outil générique lance.py) permet de visualiser les tables contenues dans la base. (Attention au path de la database)
98
99          .. code-block:: python
100
101             python visualiseDatabase.py -d ../myMesh.db
102
103 .. image:: images/visualisation.png
104
105
106 Lancer un job de maillage particulier ou  l'ensemble des tests
107 ----------------------------------------------------------------
108
109    * le script passejob.py permet de passer l'ensemble des tests ou un cas particulier. il admet les options suivantes :
110
111        - '-a' pour passer l ensemble des Tests (non activée par defaut)
112        - '-s' pour preciser le path du runAppli (par exemple ~/Appli). permet au job de trouver le runAppli
113        - '-d' pour preciser le fichier dataBase
114        - '-v' pour spécifier la version de Salome
115        - si l'option -a n'est pas activée, il faut préciser l'identifiant du job à passer 
116
117
118          .. code-block:: python
119
120             python passeJobs.py -d ../myMesh.db 1
121
122 Modifier les scripts pour les intégrer dans le mécanisme de test 
123 -------------------------------------------------------------------
124
125     * ajout des lignes suivantes à la fin du script :
126
127          .. code-block:: python
128
129             from Stats.getStats import getStatsMaillage, getStatsGroupes, genHistogram
130             # 
131             fichierStatMailles=fichierMedResult.replace('.med','.res')
132             fichierStatRatio=fichierMedResult.replace('.med','.ratio')
133             fichierStatTailles=fichierMedResult.replace('.med','.taille')
134             # 
135             getStatsMaillage(monMaillage,fichierStatMailles)
136             getStatsGroupes(monMaillage,fichierMedResult)
137             genHistogram(monMaillage, SMESH.FT_AspectRatio3D, 20, False, fichierStatRatio,theStudy)
138             genHistogram(monMaillage, SMESH.FT_MaxElementLength3D, 20, False, fichierStatTailles,theStudy)
139
140     * si le maillage est du 2D, on remplace SMESH.FT_MaxElementLength3D par SMESH.FT_MaxElementLength2D et on ne calcule pas l'aspect Ratio
141
142 Lancement du script de comparaison
143 -----------------------------------
144   * compareVersions.py
145        - '-s' pour preciser le path du runAppli (par exemple ~/Appli). permet au job de trouver le runAppli
146        - '-v' pour spécifier la version de Salome a comparer
147        - '-r' pour spécifier une version de comparaison différente de la version de référence
148        - '-d' pour preciser le fichier dataBase
149        - '-f' pour spécifier le nom du fichier html produit (/tmp/toto.html par défaut -) )
150
151    produit le rapport Html à ajouter à la newsletter
152
153
154 export/import de la base
155 -------------------------
156   * exportDatabaseToCSV.py 
157
158     - admet l option  -p (pour partiel) qui ne sauvegarde pas les tables a priori communes a tous : 
159             * la table des mailleurs
160             * la table des maillages
161             * la table des versions
162             * la table des machines
163             * la table des groupes references
164
165     - les fichiers sont ranges dans la directory ExportDB+date. la premiere ligne de chaque fichier contient le nom des colonnes, puis les valeurs par ligne
166
167    - pour faire une vraie sauvegarde de la base (structure et donnees) il faut lancer sqlite3 et executer .dump
168
169
170   * importDatabaseFromCSV.py
171
172     - parametre d 'entree obligatoire : la directory qui contient les fichiers a importer 
173     - admet l option  -p (pour partiel) qui n importe pas les tables a priori communes a tous  
174     - admet l option  -f (pour force) qui pour les enregistrements qui existent déjà dans la base remplace 
175       par les valeurs donnees dans le fichier
176