Interpolation en Z
#########################################
+.. |HYDROSolver| image:: /_static/HYDROSolver.png
+ :align: middle
+ :width: 16pt
+ :height: 16pt
+
+.. |genereInterpolz| image:: /_static/genereInterpolz.png
+ :align: middle
+
.. |Bottom| image:: /_static/Bottom.png
:align: middle
Calcul de l'interpolation en Z aux noeuds du maillage
=====================================================
-La constitution du champ d'altitude se fait au moyen d'un script Python, qu'il faut éditer, puis exécuter.
+La constitution du champ d'altitude se fait au moyen d'un script Python, qu'il faut préparer, puis exécuter.
-Voici le script :
+Le script utilise une association des régions du cas de calcul HYDRO aux groupes de noeuds correspondants dans le maillage.
+Une commande du module HYDROSOLVER facilite la définition de cette association.
-.. literalinclude:: interpolZ.py
- :lines: 1-
+Il faut maintenant activer le module HYDROSOLVER, via la liste défilante des modules, ou son icône dans le bandeau : |HYDROSolver|.
+Nous utilisons la commande *Generate interpolz.py* du menu *Hydro*.
+
+Il faut sélectionner le cas de calcul dans la rubrique *HYDRO / CALCULATION CASE* de l'arbre d'étude.
+Son nom apparaît dans la première ligne *Calculation cas* du dialogue.
+
+Le chemin complet du script à créer doit être renseigné dans la rubrique *Output path* (le nom du script doit se terminer par .py).
+
+Il faut désigner le fichier du maillage de départ construit à l'étape précédente dans rubrique *MED file*.
+
+La valeur *Undefined Z* est utilisée quand le module HYDRO ne sait pas calculer l'altitude en un point.
+C'est utilisé a postériori pour détecter d'éventuels problèmes de définition des zones de calcul dans le cas de calcul.
+
+L'interpolation sur les nuages de points peut se faire de deux manières, selon que les nuages sont plus
+denses que le maillage, ou l'inverse.
+Pour des nuages de points très denses, il suffit de prendre l'altitude du point le plus proche du nuage.
+Quand le maillage est plus dense que le nuage, il vaut mieux prendre l'altitude linéarisée, obtenue par
+une triangulation préalable du nuage de points. Cette dernière méthode est plus précise
+mais un peu plus coûteuse.
+
+Il faut sélectionner les bons noms de régions en correspondance avec les noms des groupes de noeuds des faces,
+en laissant la sélection à *None* pour les autres groupes.
+
+ |genereInterpolz|
Le script produit plusieurs fichiers dont le nom se déduit du nom du fichier maillage d'origine
avec des suffixes différents, rangés dans le répertoire du fichier d'origine :
* garonne_1.med : fichier d'origine (coordonnée z = 0)
* garonne_1.xyz : fichier xyz (ASCII) des altitudes aux noeuds
-* garonne_1Z.med : étape intermédiaire du script
+* garonne_1Z.med : étape intermédiaire du script
* garonne_1F.med : coordonnée Z à sa valeur calculée, et champ "BOTTOM" avec la valeur Z aux noeuds
-Il faut recopier le script et l'adapter en fonction des noms utilisés dans le cas de calcul
-et pour le maillage.
-
Pour exécuter le script, il faut que le module HYDRO soit bien actif dans l'étude.
-Si l'on reprend une étude précédemment sauvegardée, il faut avoir activé le module HYDRO avant
-de lancer le script (il suffit de sélectionner HYDRO au moins une fois,
+**Si l'on reprend une étude précédemment sauvegardée, il faut avoir activé le module HYDRO avant
+de lancer le script** (il suffit de sélectionner HYDRO au moins une fois,
pour que les données stockées dans le fichier d'étude soient lues).
Nous exécutons le script avec la commande du menu *File / Load Script...*.
-Le script bloque l'interface graphique le temps de son exécution. Il affiche une trace d'exécution dans la console
+Le script bloque l'interface graphique le temps de son exécution qui dépend de la taille du maillage
+et des nuages de point de bathymétrie. Il affiche une trace d'exécution dans la console
Python qui est affichée par défaut dans les modules GEOM et SMESH.
+Il est aussi possible d'adapter manuellement le script ci-dessous :
+
+Il faut recopier le script et l'adapter en fonction des noms de régions utilisés dans le cas de calcul
+et des noms de groupes de noeuds dans le maillage.
+
+.. literalinclude:: interpolZ.py
+ :lines: 1-
+
Visualisation de l'interpolation en Z aux noeuds du maillage
============================================================
Le module MED offre une visualisation simple des champs d'un maillage MED.
Il faut activer le module MED, puis utiliser le menu *File/Add Data Source* ou l'icône équivalente, et retrouver le fichier *garonne_1F.med*.
En dépliant l'objet *garonne_1F.med* dans l'arbre d'étude, nous trouvons le maillage *HYDRO_Garonne_1* et le champ *BOTTOM*.
-Le menu contextuel du champ propose la commande *visualize*.
+
+Il faut sélectionner le champ et utiliser l'icone *scalar map*.
Le champ s'affiche dans la vue 3D. Le menu contextuel de la vue 3D propose la commande *Representation / Surface with Edges*
Visualisation dans le module SMESH
----------------------------------
-A la fin de l'exécution du script d'interpolation, le maillage *HYDRO_Garonne_1* est apparu une seconde fois dans l'arbre d'étude,
+A la fin de l'exécution du script d'interpolation, le maillage *HYDRO_Garonne_1* est apparu une seconde fois dans l'arbre d'étude,
sous la première instance, avec une icône différente. S'il n'y est pas, le menu contextuel de l'arbre d'étude propose la commande *Refresh*.
Nous affichons ce maillage dans le module SMESH, avec la commande *show*.
Pour mieux voir le relief, il faut modifier l'échelle en Z avec l'icône |occ_view_scaling| de la vue 3D. Ici, il suffit de prendre un facteur 3 pour Z.
-*Rappel* : pour manipuler l'objet dans la vue 3D, il faut utiliser la touche <CTRL> et les boutons de la souris, ou la molette pour le zoom.
+*Rappel* : pour manipuler l'objet dans la vue 3D, il faut utiliser la touche <CTRL> et les boutons de la souris, ou la molette pour le zoom.
Voici la vue des groupes correspondant aux régions :
|Capture_meshZ|
-
+
.. only:: html
-
+
:ref:`ref_exempleInondation`