Pour cela, nous utilisons le dialogue *Mesh edges to shapes* du module HYDRO (menu *HYDRO / Python plugins / Mesh edges to shapes*).
|dialogMeshEdgesToShapes|
-
+
Les coordonnées de l'origine du maillage doivent être correctement renseignées pour un positionnement correct des shapes générées.
Comme indiqué précédemment, le maillage est en coordonnées Lambert 93, avec une origine à (430000, 6350000).
Le répertoire de sortie contiendra les shapes et le maillage, enrichi d'un groupe correspondant aux mailles de bord (*FreeBorders*).
-Dans Qgis, nous pouvons importer les shapefiles *garonne_2_brd_FreeBorders.shp* et *garonne_2_brd_FreeBorders_pts.shp*
+Dans Qgis, nous pouvons importer les shapefiles *garonne_2_brd_FreeBorders.shp* et *garonne_2_brd_FreeBorders_pts.shp*
correspondants aux arêtes et noeuds des limites du maillage.
|qgisDomaineInitial|
Après export dans GEOM, la géométrie ressemble à ceci :
|geometrieExtensionSimple|
-
-Pour mailler cette géométrie, il faut charger préalablement le maillage du domaine d'origine, contenant un groupe de mailles définissant les bords du maillage.
+
+Pour mailler cette géométrie, il faut charger préalablement le maillage du domaine d'origine, contenant un groupe de mailles définissant les bords du maillage.
Ce groupe est généré lors de la génération des shapefiles de frontières, comme vu précédemment.
-
+
Nous procédons classiquement pour le maillage étendu et son contour extérieur :
|maillageExtensionSimpleGlobal|
-
+
|maillageExtensionSimpleGlobalHyp|
-
+
Nous utilisons un algorithme particulier pour le contour intérieur (le bord du maillage initial) : import des éléments d'un maillage existant.
Dans le dialogue *Hypothesis construction*, nous sélectionnons le groupe de mailles du bord extérieur du maillage existant.
Le maillage obtenu est conforme, il contient les groupes du maillage d'origine. Selon le sens de dessin des contours,
les nouvelles mailles peuvent être à l'envers, comme dans l'image ci-dessus. Il reste alors à inverser les nouvelles mailles,
détecter et corriger les triangles de bord surcontraints, et, bien sûr, introduire d'éventuels raffinements dans l'extension
-pour avoir un maillage plus réaliste.
+pour avoir un maillage plus réaliste.
Par exemple, pour prolonger le lit mineur sous forme d'une région dans le cas de calcul de l'extension,
il faut dessiner une shape qui devra se raccorder correctement au lit mineur du maillage d'origine.
|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"*.
+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 départ, avec des suffixes *"_adj"* et *"_split"*.
|dialogAdjustShapeToMesh|
|limiteExtensionAmont|
**Attention**, il vaut mieux que la section correspondant au maillage d'origine soit transformée en spline pour faciliter sa manipulation par la suite
-*(voir la remarque du paragraphe précédent sur l'intérêt et les inconvénients de cette transformation)*.
-
+*(voir la remarque du paragraphe précédent sur l'intérêt et les inconvénients de cette transformation)*.
+
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.
Le maillage va être généré comme le précédent, avec l'algorithme d'import des éléments d'un maillage existant.
|maillageExtensionAmontResult|
-
+
Regroupement de deux maillages existants
========================================
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 où les deux maillages
sont disjoints et le cas où ils se recouvrent partiellement.
-
+
Les deux maillages sont disjoints
---------------------------------
Les scripts *<appli_xxx>/bin/salome/test/HYDRO/g022_extensionSimpleComplete.py*
-et *<appli_xxx>/bin/salome/test/HYDRO/g027_domaineAmont.py*
+et *<appli_xxx>/bin/salome/test/HYDRO/g027_domaineAmont.py*
permettent de générer ces maillages, pour les besoins du tutoriel.
|deuxMaillages|
|raccordDeuxMaillages|
Nous utilisons une première fois le dialogue *Adjust shapefile to mesh* avec le contour du premier maillage,
-en décochant les options *"split mesh edges shapefile"* et *"Split shapefile to adjust"*.
+en décochant les options *"split mesh edges shapefile"* et *"Split shapefile to adjust"*.
Après import de la shapefile ajustée au premier maillage, nous réutilisons le dialogue *Adjust shapefile to mesh* avec le contour du deuxième maillage
-(et la shapefile ajustée), en décochant toujours les options *"split mesh edges shapefile"* et *"Split shapefile to adjust"*.
+(et la shapefile ajustée), en décochant toujours les options *"split mesh edges shapefile"* et *"Split shapefile to adjust"*.
Nous pouvons importer la shapefile ajustée au deuxième maillage. **Dans cet exemple, nous ne transformons aucune des polylignes importées en spline**,
une des splines posant problème à l'algorithme de maillage dans ce cas précis (il est toujours possible de refaire un test avec spline).
**marqués en tant que régions insubmersibles**.
|troisRegions|
-
+
Nous pouvons ensuite créer un cas de calcul (mode manuel) avec ces trois objets.
|casCalculDeuxMaillages|
Après export du cas dans GEOM, il faut identifier les groupes d'edges correspondant aux limites des deux maillages.
|geometrieRaccord|
-
+
Pour le maillage, nous procédons comme pour les cas précédents, avec l'algorithme d'import des éléments d'un maillage existant.
|maillageRaccord|
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.
-
+
|zoomMaillageRaccord|
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*
+et *<appli_xxx>/bin/salome/test/HYDRO/g028_domaineAmontChevauchant.py*
permettent de générer ces maillages, pour les besoins du tutoriel.
|deuxDomainesRecouvrants|
<appli_XXX>/salome shell
python
-
+
from salome.hydrotools.cutMesh import cutMesh
meshFile = cutMesh(meshToCut, cutShape, meshCut, offsetX, offsetY)
-Ici,
+Ici,
* *meshToCut* : le chemin complet du maillage à découper, translaté dans le même repère que le polygone de découpe, exemple :"/home/user/meshOrig.med"
* *cutShape* : le chemin complet de la shapefile du polygone de découpe,
|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.
+Le **maillage découpé est toujours en Lambert 93**.
+
+Nous pouvons alors générer le contour du domaine découpé avec le plugin *Mesh edges to shape*, 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.
+Chargez les shapes correspondants aux deux maillages (celui découpé et celui du modèle aval). **Faire bien attention de charger les deux polylines dans un même référentiel** (le contour du maillage découpé est, à ce stade, en Lambert93). **Si nécessaire faire le changement de repère local.**
+
Ici, nous aurons deux objets naturels non submersibles, une géométrie avec deux trous :
|geometrieDoubleEnglobante|
+**Faire attention de charger les deux maillages (aval et découpé) dans le même référentiel que le calculation case de *HYDRO*.**
+**Attention**, il faut charger le maillage découpé qui a été créé au moment de l'utilisation du plugin *Mesh edges to shape* et qui s'appelle **xxx_brd.med**. Celui-ci contient le groupe d'edge *FreeBorders* (contour fermé) dont on aura besoin pour faire le sous-maillage s'appuyant sur le contour du maillage découpé.
+
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