# --- compute mesh
isDone = garonne_1.Compute()
isDone = garonne_1.SplitQuadObject( garonne_1, 1 )
+isDone = garonne_1.ReorientObject( garonne_1 )
# --- geometrical groups of edges
garonne_1_litMineur_Outer_1 = garonne_1.GroupOnGeom(garonne_1_litMineur_Outer,'garonne_1_litMineur_Outer',SMESH.EDGE)
# --- compute mesh
isDone = garonne_1.Compute()
isDone = garonne_1.SplitQuadObject( garonne_1, 1 )
+isDone = garonne_1.ReorientObject( garonne_1 )
# --- geometrical groups of edges
garonne_1_litMineur_Outer_1 = garonne_1.GroupOnGeom(garonne_1_litMineur_Outer,'garonne_1_litMineur_Outer',SMESH.EDGE)
# --- compute mesh
isDone = garonne_2.Compute()
isDone = garonne_2.SplitQuadObject( garonne_2, 1 )
+isDone = garonne_2.ReorientObject( garonne_2 )
# --- geometrical groups of edges
#garonne_2_litMineur_Outer_1 = garonne_2.GroupOnGeom(garonne_2_litMineur_Outer,'garonne_2_litMineur_Outer',SMESH.EDGE)
# --- compute mesh
isDone = garonne_2.Compute()
isDone = garonne_2.SplitQuadObject( garonne_2, 1 )
+isDone = garonne_2.ReorientObject( garonne_2 )
# --- geometrical groups of edges
#garonne_2_litMineur_Outer_1 = garonne_2.GroupOnGeom(garonne_2_litMineur_Outer,'garonne_2_litMineur_Outer',SMESH.EDGE)
il est possible de zoomer avec la molette de la souris pour verifier.
Nous validons par *Apply and Close*.
+Contrôle du maillage
+====================
+
+Il faut vérifier que le maillage est conforme aux besoins de TELEMAC.
+
+Orientation des mailles
+-----------------------
+
+Pour les maillages surfaciques XY, **SALOME oriente par défaut les triangles dans le sens contraire à ce qu'attend TELEMAC**.
+SALOME oriente les triangles avec la normale sortante vers le bas. On peut le vérifier avec la couleur des mailles
+(bleu plus foncé sur l'envers que sur l'endroit) ou en utilisant la commande *Orientation of Faces* du menu contextuel
+de la vue 3D du maillage. Cette commande dessine une flèche par triangle. Sur l'envers de la face, on ne voit qu'un point.
+Pour voir les flèches, il faut changer l'angle de vue.
+
+Pour réorienter les faces, nous utilisons le menu *Modification / Orientation* et cochons l'option *Apply to All*.
+Après validation, les faces changent de couleur (bleu plus clair).
+
+Triangles surcontraints
+-----------------------
+
+Il faut éviter deux types de conditions limites différentes sur deux arêtes d'un triangle, et, plus généralement,
+éviter que deux arêtes aient des conditions limites imposées (aucun degré de liberté sur le triangle).
+
+Parfois, les mailleurs créent de tels triangles dans les coins du maillage. C'est le cas de Netgen dans les angles aigus.
+Quand on peut, il faut éviter de créer des angles aigus aux limites du domaine.
+
+Les triangles surcontraints se détectent avec la commande de menu *Controls / Face Controls / Over-constrained faces*.
+Pour corriger cela, il faut utiliser la commande de menu *Modification / Diagonal Inversion* et sélectionner
+l'edge interne du triangle en cause.
+
Création des groupes, Enregistrement du maillage
================================================
- cohérence des systèmes de coordonnées des données importées : par exemple tout mettre en Lambert 93 avant import
+- angles aigus aux limites du domaines : risque de création de triangles surcontaints, ce qui implique de les détecter
+ et d'inverser des diagonales.
+
- utilisation du type spline ou du type polyline ?
* *spline* : une seule ligne continue, a dérivée continue, passant par tous les points.
Une fois le fleuve dessiné, nous poursuivons avec le dessin du contour de la bathymétrie du lit majeur, garonne_point_L93,
puis la définition du contour du domaine de calcul, qui doit couper les deux autres lignes en amont et en aval.
+
Il est préférable que le domaine de calcul coupe le fleuve perpendiculairement à son axe, de façon à
-définir correctement les conditions limites amont et aval.
+définir correctement les conditions limites amont et aval. Il faut aussi éviter de créer des angles aigus en limite
+du domaine, ce qui risquerait de favoriser l'apparition de triangles surcontraints lors du maillage (ce qui peut se
+corriger par une détection et une inversion de diagonale).
:ref:`ref_exempleInondation`