.. |zoomMaillageRaccord| image:: /_static/zoomMaillageRaccord.png
:align: middle
+.. |deuxDomainesRecouvrants| image:: /_static/deuxDomainesRecouvrants.png
+ :align: middle
+
+.. |polygoneDecoupe| image:: /_static/polygoneDecoupe.png
+ :align: middle
+
+.. |maillageDecoupe| image:: /_static/maillageDecoupe.png
+ :align: middle
+
+.. |domaineDoubleEnglobant| image:: /_static/domaineDoubleEnglobant.png
+ :align: middle
+
+.. |geometrieDoubleEnglobante| image:: /_static/geometrieDoubleEnglobante.png
+ :align: middle
+
+.. |maillageDoubleEnglobant| image:: /_static/maillageDoubleEnglobant.png
+ :align: middle
+
Lors de la reprise d'anciennes études, il est fréquent de vouloir agrandir le domaine de l'étude,
tout en gardant si possible le maillage existant.
-Nous supposons ici que nous disposons que d'un maillage au format MED, avec éventuellement des groupes à conserver.
+Nous supposons ici que nous ne disposons que d'un maillage au format MED, avec éventuellement des groupes à conserver.
Ce maillage doit être remis dans le système de coordonnées de la nouvelle étude, ici Lambert 93.
Le script *<appli_xxx>/bin/salome/test/HYDRO/g022_extensionSimpleComplete.py* permet de générer ce maillage, pour les besoins du tutoriel.
|contourExtensionSimple|
Il est souvent pratique d'importer la shapefile du contour du domaine d'origine en tant que spline (éditer la polyligne pour la transformer en spline).
-Nous ne tiendrons pas compte des éventuels iles (régions insubmersibles) du domaine initial.
+Nous ne tiendrons pas compte des éventuelles îles (régions insubmersibles) du domaine initial.
Nous créons un cas de calcul avec deux objets naturels, le domaine étendu, et le domaine initial, **marqué en tant que région insubmersible**.
-Lors de la création du cas, il faut inclure les groupes de bord générés automatiquement, pour ne pas avoir à les recréer lors de l'étape de géometrie.
+Lors de la création du cas, il faut inclure les groupes de bord générés automatiquement, pour ne pas avoir à les recréer lors de l'étape de géométrie.
|casCalculExtensionSimple|
|maillageExtensionSimpleImportHyp|
-Après calul, le maillage obtenu ressemble à ceci :
+Après calcul, le maillage obtenu ressemble à ceci :
|maillageExtensionSimpleResult|
Le contour de l'extension est dessiné approximativement, sachant qu'il va ensuite être automatiquement ajusté pour couper le contour du maillage d'origine
en passant par les noeuds de celui-ci.
-L'ajustement automatique suppose que la ligne dessinée coupe la ligne de bors du maillage d'origine en deux points.
+L'ajustement automatique suppose que la ligne dessinée coupe la ligne de bord du maillage d'origine en deux points.
L'algorithme détecte les deux noeuds de bord du maillage existant les plus proches de la ligne dessinée et déplace les deux noeuds en regard sur la ligne dessinée
-pour les faire coincider avec ceux du maillage existant. Dans Qgis, l'affichage des noeuds du maillage d'origine aide au dessin.
+pour les faire coïncider avec ceux du maillage existant. Dans Qgis, l'affichage des noeuds du maillage d'origine aide au dessin.
En dessinant la ligne d'extension, il faut poser des noeuds au voisinage des noeuds de bord.
|qgisDessinExtensionAmont|
Dans le dialogue *Adjust shapefile to mesh* du module HYDRO (menu *HYDRO / Python plugins / Adjust shapefile*)
il faut cocher les options *"split mesh edges shapefile"* et *"Split shapefile to adjust"*.
-Les shapes modifiées sont rangées dans les répertoires respectifs des shapes de depart, avec des suffixes *"_adj"* et *"_split"*.
+Les shapes modifiées sont rangées dans les répertoires respectifs des shapes de départ, avec des suffixes *"_adj"* et *"_split"*.
|dialogAdjustShapeToMesh|
|limiteExtensionAmont|
-**Attention**, il faut que la section correspondant au maillage d'origine soit transformée en spline pour faciliter sa manipulation par la suite.
+**Attention**, il vaut mieux que la section correspondant au maillage d'origine soit transformée en spline pour faciliter sa manipulation par la suite.
-Nous pouvons alors créer un cas de calcul tres simple avec un seul objet naturel construit sur le contour amont que l'on vient de produire.
+Nous pouvons alors créer un cas de calcul très simple avec un seul objet naturel construit sur le contour amont que l'on vient de produire.
Après export dans GEOM, on recrée un groupe correspondant à la limite du maillage d'origine, en vert ci-dessous.
|geometrieExtensionAmont|
========================================
Etudions un cas plus complexe : le raccord de deux maillages existants.
-Les exemples ici concernent deux zones consécutives d'un même fleuve. nous allons examiner successivement le cas ous les deux maillages
-sont disjoints et le cas ou ils se recouvrent partiellement.
+Les exemples ici concernent deux zones consécutives d'un même fleuve. nous allons examiner successivement le cas où les deux maillages
+sont disjoints et le cas où ils se recouvrent partiellement.
Les deux maillages sont disjoints
---------------------------------
|deuxMaillages|
-Il faut générer les shapefiles correspondants aux frontières des deux domaines, comme précédemment.
+Il faut générer les shapefiles correspondant aux frontières des deux domaines, comme précédemment.
Le contour du raccord des domaines est dessiné dans Qgis ou HYDRO. Un exemple de shape est fourni :
*<appli_xxx>/bin/salome/test/HYDRO/raccord_4_1.shp*.
-Comme nous allons utiliser l'outil d'ajustement automatique de la shape pour la faire coincider avec les noeuds des maillages,
-il faut dessiner le contour du raccord en suivant les recommendations données plus haut pour l'extention partielle.
+Comme nous allons utiliser l'outil d'ajustement automatique de la shape pour la faire coïncider avec les noeuds des maillages,
+il faut dessiner le contour du raccord en suivant les recommandations données plus haut pour l'extension partielle.
|raccordDeuxMaillages|
Nous pouvons importer la shapefile ajustée au deuxième maillage.
-Nous créons alors trois objets naturels avec la shapefile ajustée du raccord des domaines, et avec les deux domaines d'origine,
+Nous créons alors trois objets naturels avec la shapefile ajustée du raccord des domaines, et avec les deux domaines d'origine,
**marqués en tant que régions insubmersibles**.
Notons que, dans cet exemple, aucune polyligne importée n'a été transformée en spline.
|maillageRaccord|
-Là aussi, pour obtenir un maillage un maillage plus intéressant au niveau du lit mineur, il faudrait rajouter des lignes
+Là aussi, pour obtenir un maillage plus intéressant au niveau du lit mineur, il faudrait rajouter des lignes
de contraintes ou des objets naturels supplémentaires, en utilisant l'algorithme d'ajustement de shape pour faire
des connexions propres.
Les deux maillages se recouvrent partiellement
----------------------------------------------
+Les scripts *<appli_xxx>/bin/salome/test/HYDRO/g022_extensionSimpleComplete.py*
+et *<appli_xxx>/bin/salome/test/HYDRO/g028_domaineAmontChevauchant.py*
+permettent de générer ces maillages, pour les besoins du tutoriel.
+
+ |deuxDomainesRecouvrants|
+
+Nous allons nous ramener au cas précédent en enlevant des mailles dans le domaine amont.
+Pour cela, nous avons besoin d'un contour de découpe. Ce contour peut être dessiné dans Qgis, en visualisant les contours des deux maillages.
+Lors de l'opération de découpe, seules sont supprimées les mailles intégralement comprises dans le polygone de découpe.
+Il faut laisser un espace suffisant entre les deux maillages pour permettre un remaillage correct (sans mailles distordues).
+
+ |polygoneDecoupe|
+
+La découpe nécessite d'avoir le maillage et le polygone dans le même référentiel. Le polygone étant en Lambert 93 sans décalage d'origine,
+nous translatons le maillage pour l'amener dans ce même repère, avec le dialogue *Change coordinates*.
+
+L'opération de découpe n'est accessible qu'en script Python, depuis la console embarquée de SALOME, ou depuis un shell SALOME : ::
+
+ <appli_XXX>/salome shell
+ python
+
+ from salome.hydrotools.cutMesh import cutMesh
+ meshFile = cutMesh(meshToCut, cutShape, meshCut, offsetX, offsetY)
+
+Ici,
+
+ * *meshToCut* : le chemin complet du maillage à découper, translaté dans le même repère que le polygone de découpe,
+ * *cutShape* : le chemin complet de la shapefile du polygone de découpe,
+ * *meshCut* : le chemin complet du maillage découpé, retranslaté.
+ * *offsetX, offsetY* : les coordonnées du repère local du maillage découpé.
+
+ |maillageDecoupe|
+
+Nous pouvons alors générer le contour du domaine découpé, et le contour du nouveau maillage regroupant les deux maillages d'origine.
+Ici, nous dessinons un contour englobant complètement les deux maillages. Un exemple de shape est fourni :
+*<appli_xxx>/bin/salome/test/HYDRO/raccord_4_2.shp*.
+
+ |domaineDoubleEnglobant|
+
+La suite est alors assez similaire au cas du domaine englobant un seul maillage initial.
+Ici, nous aurons deux objets naturels non submersibles, une géométrie avec deux trous :
+
+ |geometrieDoubleEnglobante|
+
+Pour le maillage, nous utiliserons l'algorithme d'import des éléments d'un maillage existant, pour chaque maillage original.
+
+ |maillageDoubleEnglobant|
+
+Comme pour les exemples précédents, il faudrait raffiner un peu l'exemple pour avoir un maillage exploitable.
.. only:: html