]> SALOME platform Git repositories - modules/hydro.git/blob - doc/salome/examples/h016_pilesPontManualMesh.py
Salome HOME
Corrections of examples path after install with scbi
[modules/hydro.git] / doc / salome / examples / h016_pilesPontManualMesh.py
1 # -*- coding: utf-8 -*-
2
3 import os
4 HYDRO_SAMPLES = os.path.join( os.environ["HYDRO_ROOT_DIR"], "bin/salome/test")
5 HYDRO_TEST_RESOURCES = os.path.join(os.environ["HYDRO_DIR"], "bin", "salome", "test", "tmp_test")
6 if not os.path.isdir(HYDRO_TEST_RESOURCES):
7     os.mkdir(HYDRO_TEST_RESOURCES)
8
9 import tempfile
10 tmpdir = tempfile.mkdtemp()
11 print("tmpdir=",tmpdir)
12
13 import sys
14 import salome
15
16 salome.salome_init()
17
18 #----------------------
19 # --- HYDRO
20 #----------------------
21
22 from HYDROPy import *
23 from PyQt5.QtCore import *
24 from PyQt5.QtGui import *
25
26 from salome.hydrotools.hydroGeoMeshUtils import loadImage, GeolocaliseImageCoords, GeolocaliseImageReference
27 from salome.hydrotools.hydroGeoMeshUtils import importPolylines, importBathymetry, createImmersibleZone, mergePolylines, getChildrenInStudy
28 from salome.hydrotools.hydroGeoMeshUtils import splitShapesAll, mergePolylines
29
30 hydro_doc = HYDROData_Document.Document()
31
32 offsetX = 430000.
33 offsetY = 6350000.
34 hydro_doc.SetLocalCS( offsetX, offsetY )
35
36 garonne_ign_01 = loadImage(hydro_doc, os.path.join(HYDRO_SAMPLES, "garonne_ign_01.png"), "garonne_ign_01", 0)
37 GeolocaliseImageCoords(garonne_ign_01,
38                        QPoint(40, 817), QPoint(1325, 85),
39                        QPointF(471562, 6.36775e+06), QPointF(489400, 6.37702e+06))
40
41 garonne_ign_02 = loadImage(hydro_doc, os.path.join(HYDRO_SAMPLES, "garonne_ign_02.png"), "garonne_ign_02", 1)
42 GeolocaliseImageReference(garonne_ign_02, garonne_ign_01,
43                           QPoint(1389, 447), QPoint(784, 481),
44                           QPoint(631, 95), QPoint(26, 129))
45
46 garonnes = importPolylines(hydro_doc, os.path.join(HYDRO_SAMPLES, "garonne.shp"), True, 5)
47 limites_domaine = importPolylines(hydro_doc, os.path.join(HYDRO_SAMPLES, "domaine.shp"), False, 6)
48 lits_majeur = importPolylines(hydro_doc, os.path.join(HYDRO_SAMPLES, "lit_majeur.shp"), True, 7)
49 pilesPont = importPolylines(hydro_doc, os.path.join(HYDRO_SAMPLES, "pilesPont.shp"), False, 8)
50 zonesPont = importPolylines(hydro_doc, os.path.join(HYDRO_SAMPLES, "zonePont.shp"), False, 9)
51
52 Cloud_02 = importBathymetry(hydro_doc, os.path.join(HYDRO_SAMPLES, "Cloud_02.xyz"))
53 garonne_point_L93 = importBathymetry(hydro_doc, os.path.join(HYDRO_SAMPLES, "garonne_point_L93.xyz"))
54
55 domaineEtendu = createImmersibleZone(hydro_doc, "domaineEtendu", limites_domaine[0], Cloud_02, True, 2)
56 litMajeur = createImmersibleZone(hydro_doc, "litMajeur", lits_majeur[0], garonne_point_L93, True, 3)
57
58 seq = garonnes + zonesPont
59 garzones = splitShapesAll(hydro_doc, seq)
60
61 garZonesPont = [garzones[0], garzones[2], garzones[4], garzones[6]]
62 litMineurPont = mergePolylines(hydro_doc, "litMineurPont", garZonesPont)
63
64 garonnesAval = [garzones[3], garzones[4]]
65 litMineurAval = mergePolylines(hydro_doc, "litMineurAval", garonnesAval)
66
67 garonnesAmont = [garzones[1], garzones[6]]
68 litMineurAmont = mergePolylines(hydro_doc, "litMineurAmont", garonnesAmont)
69
70 litMineur_aval = createImmersibleZone(hydro_doc, "litMineur_aval", litMineurAval, garonne_point_L93, True, 3)
71 litMineur_amont = createImmersibleZone(hydro_doc, "litMineur_amont", litMineurAmont, garonne_point_L93, True, 3)
72 litMineur_pont = createImmersibleZone(hydro_doc, "litMineur_pont", litMineurPont, garonne_point_L93, True, 3)
73
74 pile_pont0 = createImmersibleZone(hydro_doc, "pile_pont0", pilesPont[0], None, False, 3)
75 pile_pont1 = createImmersibleZone(hydro_doc, "pile_pont1", pilesPont[1], None, False, 3)
76 pile_pont2 = createImmersibleZone(hydro_doc, "pile_pont2", pilesPont[2], None, False, 3)
77 pile_pont3 = createImmersibleZone(hydro_doc, "pile_pont3", pilesPont[3], None, False, 3)
78
79
80 # Calculation case
81 garonne_1 = hydro_doc.CreateObject( KIND_CALCULATION )
82 garonne_1.SetName( "garonne_1" )
83
84 garonne_1.SetAssignmentMode( HYDROData_CalculationCase.MANUAL )
85 garonne_1.AddGeometryObject( domaineEtendu )
86 garonne_1.AddGeometryObject( litMajeur )
87 garonne_1.AddGeometryObject( litMineur_amont )
88 garonne_1.AddGeometryObject( litMineur_aval )
89 garonne_1.AddGeometryObject( litMineur_pont )
90 garonne_1.AddGeometryObject( pile_pont0 )
91 garonne_1.AddGeometryObject( pile_pont1 )
92 garonne_1.AddGeometryObject( pile_pont2 )
93 garonne_1.AddGeometryObject( pile_pont3 )
94
95 case_geom_group = domaineEtendu.GetGroup( 0 )
96 garonne_1.AddGeometryGroup( case_geom_group )
97 case_geom_group = litMajeur.GetGroup( 0 )
98 garonne_1.AddGeometryGroup( case_geom_group )
99 case_geom_group = litMineur_amont.GetGroup( 0 )
100 garonne_1.AddGeometryGroup( case_geom_group )
101 case_geom_group = litMineur_aval.GetGroup( 0 )
102 garonne_1.AddGeometryGroup( case_geom_group )
103 case_geom_group = litMineur_pont.GetGroup( 0 )
104 garonne_1.AddGeometryGroup( case_geom_group )
105 case_geom_group = pile_pont0.GetGroup( 0 )
106 garonne_1.AddGeometryGroup( case_geom_group )
107 case_geom_group = pile_pont1.GetGroup( 0 )
108 garonne_1.AddGeometryGroup( case_geom_group )
109 case_geom_group = pile_pont2.GetGroup( 0 )
110 garonne_1.AddGeometryGroup( case_geom_group )
111 case_geom_group = pile_pont3.GetGroup( 0 )
112 garonne_1.AddGeometryGroup( case_geom_group )
113 garonne_1.SetBoundaryPolyline( limites_domaine[0] )
114
115 # Start the algorithm of the partition and assignment
116 garonne_1.Update()
117 garonne_1_riveDroite = hydro_doc.FindObjectByName( "garonne_1_Reg_1" )
118 garonne_1_Zone_1 = hydro_doc.FindObjectByName( "garonne_1_Zone_1" )
119 garonne_1_Zone_1.SetColor( QColor( 64, 156, 192 ))
120 garonne_1_riveDroite.AddZone( garonne_1_Zone_1 )
121 garonne_1_Zone_2 = hydro_doc.FindObjectByName( "garonne_1_Zone_2" )
122 garonne_1_Zone_2.SetMergeType( HYDROData_Zone.Merge_Object )
123 Cloud_02 = hydro_doc.FindObjectByName( "Cloud_02" )
124 garonne_1_Zone_2.SetMergeObject( Cloud_02 )
125 garonne_1_Zone_2.SetColor( QColor( 192, 183, 64 ))
126 garonne_1_riveDroite.AddZone( garonne_1_Zone_2 )
127 garonne_1_aval = hydro_doc.FindObjectByName( "garonne_1_Reg_2" )
128 garonne_1_Zone_3 = hydro_doc.FindObjectByName( "garonne_1_Zone_3" )
129 garonne_1_Zone_3.SetMergeType( HYDROData_Zone.Merge_Object )
130 garonne_point_L93 = hydro_doc.FindObjectByName( "garonne_point_L93" )
131 garonne_1_Zone_3.SetMergeObject( garonne_point_L93 )
132 garonne_1_Zone_3.SetColor( QColor( 64, 183, 192 ))
133 garonne_1_aval.AddZone( garonne_1_Zone_3 )
134 garonne_1_riveGauche = hydro_doc.FindObjectByName( "garonne_1_Reg_3" )
135 garonne_1_Zone_4 = hydro_doc.FindObjectByName( "garonne_1_Zone_4" )
136 garonne_1_Zone_4.SetMergeType( HYDROData_Zone.Merge_Object )
137 Cloud_02 = hydro_doc.FindObjectByName( "Cloud_02" )
138 garonne_1_Zone_4.SetMergeObject( Cloud_02 )
139 garonne_1_Zone_4.SetColor( QColor( 64, 192, 162 ))
140 garonne_1_riveGauche.AddZone( garonne_1_Zone_4 )
141 garonne_1_Zone_6 = hydro_doc.FindObjectByName( "garonne_1_Zone_6" )
142 garonne_1_Zone_6.SetColor( QColor( 64, 192, 90 ))
143 garonne_1_riveGauche.AddZone( garonne_1_Zone_6 )
144 garonne_1_pont = hydro_doc.FindObjectByName( "garonne_1_Reg_4" )
145 garonne_1_Zone_5 = hydro_doc.FindObjectByName( "garonne_1_Zone_5" )
146 garonne_1_Zone_5.SetMergeType( HYDROData_Zone.Merge_Object )
147 garonne_point_L93 = hydro_doc.FindObjectByName( "garonne_point_L93" )
148 garonne_1_Zone_5.SetMergeObject( garonne_point_L93 )
149 garonne_1_Zone_5.SetColor( QColor( 64, 190, 192 ))
150 garonne_1_pont.AddZone( garonne_1_Zone_5 )
151 garonne_1_amont = hydro_doc.FindObjectByName( "garonne_1_Reg_5" )
152 garonne_1_Zone_7 = hydro_doc.FindObjectByName( "garonne_1_Zone_7" )
153 garonne_1_Zone_7.SetMergeType( HYDROData_Zone.Merge_Object )
154 garonne_point_L93 = hydro_doc.FindObjectByName( "garonne_point_L93" )
155 garonne_1_Zone_7.SetMergeObject( garonne_point_L93 )
156 garonne_1_Zone_7.SetColor( QColor( 109, 192, 64 ))
157 garonne_1_amont.AddZone( garonne_1_Zone_7 )
158 garonne_1_pile1 = hydro_doc.FindObjectByName( "garonne_1_Reg_6" )
159 garonne_1_Zone_8 = hydro_doc.FindObjectByName( "garonne_1_Zone_8" )
160 garonne_1_Zone_8.SetMergeType( HYDROData_Zone.Merge_ZMAX )
161 garonne_1_Zone_8.SetColor( QColor( 192, 179, 64 ))
162 garonne_1_pile1.AddZone( garonne_1_Zone_8 )
163 garonne_1_pile2 = hydro_doc.FindObjectByName( "garonne_1_Reg_7" )
164 garonne_1_Zone_9 = hydro_doc.FindObjectByName( "garonne_1_Zone_9" )
165 garonne_1_Zone_9.SetMergeType( HYDROData_Zone.Merge_ZMAX )
166 garonne_1_Zone_9.SetColor( QColor( 192, 75, 64 ))
167 garonne_1_pile2.AddZone( garonne_1_Zone_9 )
168 garonne_1_pile3 = hydro_doc.FindObjectByName( "garonne_1_Reg_8" )
169 garonne_1_Zone_10 = hydro_doc.FindObjectByName( "garonne_1_Zone_10" )
170 garonne_1_Zone_10.SetMergeType( HYDROData_Zone.Merge_ZMAX )
171 garonne_1_Zone_10.SetColor( QColor( 162, 192, 64 ))
172 garonne_1_pile3.AddZone( garonne_1_Zone_10 )
173 garonne_1_pile4 = hydro_doc.FindObjectByName( "garonne_1_Reg_9" )
174 garonne_1_Zone_11 = hydro_doc.FindObjectByName( "garonne_1_Zone_11" )
175 garonne_1_Zone_11.SetMergeType( HYDROData_Zone.Merge_ZMAX )
176 garonne_1_Zone_11.SetColor( QColor( 64, 192, 81 ))
177 garonne_1_pile4.AddZone( garonne_1_Zone_11 )
178 garonne_1_riveDroite.SetName( "garonne_1_riveDroite" )
179 garonne_1_aval.SetName( "garonne_1_aval" )
180 garonne_1_riveGauche.SetName( "garonne_1_riveGauche" )
181 garonne_1_pont.SetName( "garonne_1_pont" )
182 garonne_1_amont.SetName( "garonne_1_amont" )
183 garonne_1_pile1.SetName( "garonne_1_pile1" )
184 garonne_1_pile2.SetName( "garonne_1_pile2" )
185 garonne_1_pile3.SetName( "garonne_1_pile3" )
186 garonne_1_pile4.SetName( "garonne_1_pile4" )
187
188 # Export of the calculation case
189 garonne_1_entry = garonne_1.Export()
190
191 # Get geometry shape and print debug information
192 import GEOM
193 print("Entry:", garonne_1_entry)
194 HYDRO_garonne_1 = salome.IDToObject( str( garonne_1_entry ) )
195 print("Geom shape:", HYDRO_garonne_1)
196 print("Geom shape name:", HYDRO_garonne_1.GetName())
197
198
199 ###
200 ### GEOM component
201 ###
202
203 import GEOM
204 from salome.geom import geomBuilder
205 import math
206 import SALOMEDS
207 from salome.hydrotools.controls import controlGeomProps
208
209 geompy = geomBuilder.New()
210
211 children = getChildrenInStudy(HYDRO_garonne_1)
212 garonne_riveGauche = children["garonne_1_riveGauche"]
213 garonne_riveDroite = children["garonne_1_riveDroite"]
214 garonne_aval = children["garonne_1_aval"]
215 garonne_pont = children["garonne_1_pont"]
216 garonne_amont = children["garonne_1_amont"]
217
218 # --- basic properties control: edges length, surfaces
219 controlGeomProps(geompy, garonne_riveGauche,  29149.1353799,  35949580.6716)
220 controlGeomProps(geompy, garonne_aval,   7965.23431497,  935955.786347)
221 controlGeomProps(geompy, garonne_pont,   962.0745533,  19649.150520)
222 controlGeomProps(geompy, garonne_amont,   22635.6212065,  2531409.65041)
223 controlGeomProps(geompy, garonne_riveDroite,  32012.2241814, 25998085.6892)
224
225 # --- manual identification of all useful edge groups (boundary conditions)
226
227 allEdgesIds = geompy.SubShapeAllIDs(HYDRO_garonne_1, geompy.ShapeType["EDGE"])
228 print("allEdgesIds", allEdgesIds)
229
230 (isDone, ClosedFreeBoundary, OpenFreeBoundary) = geompy.GetFreeBoundary(HYDRO_garonne_1)
231 geompy.addToStudyInFather(HYDRO_garonne_1, ClosedFreeBoundary[0], "OuterFreeBoundary")
232 geompy.addToStudyInFather(HYDRO_garonne_1, ClosedFreeBoundary[1], "pilesPont1")
233 geompy.addToStudyInFather(HYDRO_garonne_1, ClosedFreeBoundary[2], "pilesPont2")
234 geompy.addToStudyInFather(HYDRO_garonne_1, ClosedFreeBoundary[3], "pilesPont3")
235 geompy.addToStudyInFather(HYDRO_garonne_1, ClosedFreeBoundary[4], "pilesPont4")
236
237 freeBoundary = geompy.ExtractShapes(ClosedFreeBoundary[0], geompy.ShapeType["EDGE"], True)
238 freeBoundaryIds = [ geompy.GetSubShapeID(HYDRO_garonne_1, freeBoundary[i]) for i in range(len(freeBoundary)) ]
239 print("freeBoundaryIds", freeBoundaryIds)
240
241 edgesPile1 = geompy.ExtractShapes(ClosedFreeBoundary[1], geompy.ShapeType["EDGE"], True)
242 edgesPile2 = geompy.ExtractShapes(ClosedFreeBoundary[2], geompy.ShapeType["EDGE"], True)
243 edgesPile3 = geompy.ExtractShapes(ClosedFreeBoundary[3], geompy.ShapeType["EDGE"], True)
244 edgesPile4 = geompy.ExtractShapes(ClosedFreeBoundary[4], geompy.ShapeType["EDGE"], True)
245 pilesPont1Ids = [ geompy.GetSubShapeID(HYDRO_garonne_1, edgesPile1[i]) for i in range(len(edgesPile1)) ]
246 pilesPont2Ids = [ geompy.GetSubShapeID(HYDRO_garonne_1, edgesPile2[i]) for i in range(len(edgesPile2)) ]
247 pilesPont3Ids = [ geompy.GetSubShapeID(HYDRO_garonne_1, edgesPile3[i]) for i in range(len(edgesPile3)) ]
248 pilesPont4Ids = [ geompy.GetSubShapeID(HYDRO_garonne_1, edgesPile4[i]) for i in range(len(edgesPile4)) ]
249 pilesPontIds = pilesPont1Ids + pilesPont2Ids + pilesPont3Ids + pilesPont4Ids
250 print("pilesPontIds", pilesPontIds)
251
252 [garonne_aval_droite] = geompy.GetSharedShapesMulti([garonne_riveDroite, garonne_aval], geompy.ShapeType["EDGE"], True)
253 [garonne_aval_gauche] = geompy.GetSharedShapesMulti([garonne_riveGauche, garonne_aval], geompy.ShapeType["EDGE"], True)
254 geompy.addToStudyInFather(HYDRO_garonne_1, garonne_aval_droite, "garonne_aval_droite")
255 geompy.addToStudyInFather(HYDRO_garonne_1, garonne_aval_gauche, "garonne_aval_gauche")
256 [garonne_amont_droite] = geompy.GetSharedShapesMulti([garonne_riveDroite, garonne_amont], geompy.ShapeType["EDGE"], True)
257 [garonne_amont_gauche] = geompy.GetSharedShapesMulti([garonne_riveGauche, garonne_amont], geompy.ShapeType["EDGE"], True)
258 geompy.addToStudyInFather(HYDRO_garonne_1, garonne_amont_droite, "garonne_amont_droite")
259 geompy.addToStudyInFather(HYDRO_garonne_1, garonne_amont_gauche, "garonne_amont_gauche")
260 [garonne_pont_droite] = geompy.GetSharedShapesMulti([garonne_riveDroite, garonne_pont], geompy.ShapeType["EDGE"], True)
261 [garonne_pont_gauche] = geompy.GetSharedShapesMulti([garonne_riveGauche, garonne_pont], geompy.ShapeType["EDGE"], True)
262 geompy.addToStudyInFather(HYDRO_garonne_1, garonne_pont_droite, "garonne_pont_droite")
263 geompy.addToStudyInFather(HYDRO_garonne_1, garonne_pont_gauche, "garonne_pont_gauche")
264 rives = [garonne_aval_droite, garonne_aval_gauche, garonne_amont_droite, garonne_amont_gauche, garonne_pont_droite, garonne_pont_gauche]
265 rivesIds = [ geompy.GetSubShapeID(HYDRO_garonne_1, rives[i]) for i in range(len(rives)) ]
266 print("rivesIds", rivesIds)
267
268 edges_garonne_aval = geompy.GetSharedShapesMulti([HYDRO_garonne_1, garonne_aval], geompy.ShapeType["EDGE"], True)
269 edges_garonne_amont = geompy.GetSharedShapesMulti([HYDRO_garonne_1, garonne_amont], geompy.ShapeType["EDGE"], True)
270 edges_garonne_pont = geompy.GetSharedShapesMulti([HYDRO_garonne_1, garonne_pont], geompy.ShapeType["EDGE"], True)
271 edges_riveGauche = geompy.GetSharedShapesMulti([HYDRO_garonne_1, garonne_riveGauche], geompy.ShapeType["EDGE"], True)
272 edges_riveDroite = geompy.GetSharedShapesMulti([HYDRO_garonne_1, garonne_riveDroite], geompy.ShapeType["EDGE"], True)
273 edges_garonne_avalIds = [ geompy.GetSubShapeID(HYDRO_garonne_1, edges_garonne_aval[i]) for i in range(len(edges_garonne_aval)) ]
274 edges_garonne_amontIds = [ geompy.GetSubShapeID(HYDRO_garonne_1, edges_garonne_amont[i]) for i in range(len(edges_garonne_amont)) ]
275 edges_garonne_pontIds = [ geompy.GetSubShapeID(HYDRO_garonne_1, edges_garonne_pont[i]) for i in range(len(edges_garonne_pont)) ]
276 edges_riveGaucheIds = [ geompy.GetSubShapeID(HYDRO_garonne_1, edges_riveGauche[i]) for i in range(len(edges_riveGauche)) ]
277 edges_riveDroiteIds = [ geompy.GetSubShapeID(HYDRO_garonne_1, edges_riveDroite[i]) for i in range(len(edges_riveDroite)) ]
278
279 print("edges_garonne_amontIds", edges_garonne_amontIds)
280 print("edges_garonne_avalIds", edges_garonne_avalIds)
281 print("edges_garonne_pontIds", edges_garonne_pontIds)
282 print("edges_riveGaucheIds", edges_riveGaucheIds)
283 print("edges_riveDroiteIds", edges_riveDroiteIds)
284
285 edges_litMineurIds = edges_garonne_amontIds
286 for edge in edges_garonne_avalIds:
287   edges_litMineurIds.append(edge)
288 for edge in edges_garonne_pontIds:
289   if edge not in edges_litMineurIds and edge not in pilesPontIds:
290     edges_litMineurIds.append(edge)
291
292 sectionsIds = [Id for Id in edges_litMineurIds if Id not in rivesIds]
293 print("sectionsIds", sectionsIds)
294 SectionsGaronne = geompy.CreateGroup(HYDRO_garonne_1, geompy.ShapeType["EDGE"])
295 geompy.UnionIDs(SectionsGaronne, sectionsIds)
296 geompy.addToStudyInFather(HYDRO_garonne_1, SectionsGaronne, "SectionsGaronne")
297
298 bordGaucheDomaineIds = [Id for Id in freeBoundaryIds if Id in edges_riveGaucheIds]
299 bordDroiteDomaineIds = [Id for Id in freeBoundaryIds if Id in edges_riveDroiteIds]
300 print("bordGaucheDomaineIds", bordGaucheDomaineIds)
301 print("bordDroiteDomaineIds", bordDroiteDomaineIds)
302 bordGaucheDomaine = geompy.CreateGroup(HYDRO_garonne_1, geompy.ShapeType["EDGE"])
303 geompy.UnionIDs(bordGaucheDomaine, bordGaucheDomaineIds)
304 geompy.addToStudyInFather(HYDRO_garonne_1, bordGaucheDomaine, "bordGaucheDomaine")
305 bordDroiteDomaine = geompy.CreateGroup(HYDRO_garonne_1, geompy.ShapeType["EDGE"])
306 geompy.UnionIDs(bordDroiteDomaine, bordDroiteDomaineIds)
307 geompy.addToStudyInFather(HYDRO_garonne_1, bordDroiteDomaine, "bordDroiteDomaine")
308
309 amont = geompy.GetEdgeNearPoint(HYDRO_garonne_1, geompy.MakeVertex(46757.861314, 25833.234752, 0))
310 aval = geompy.GetEdgeNearPoint(HYDRO_garonne_1, geompy.MakeVertex(39078.979127, 32588.627279, 0))
311 geompy.addToStudyInFather(HYDRO_garonne_1, amont, "amont")
312 geompy.addToStudyInFather(HYDRO_garonne_1, aval, "aval")
313 ###
314 ### SMESH component
315 ###
316
317 import  SMESH, SALOMEDS
318 from salome.smesh import smeshBuilder
319 from salome.hydrotools.controls import controlMeshStats, controlSubMeshStats
320 import tempfile
321
322 smesh = smeshBuilder.New()
323 garonne_1 = smesh.Mesh(HYDRO_garonne_1)
324 NETGEN_1D_2D = garonne_1.Triangle(algo=smeshBuilder.NETGEN_1D2D)
325 NETGEN_2D_Parameters_1 = NETGEN_1D_2D.Parameters()
326 NETGEN_2D_Parameters_1.SetMaxSize( 200 )
327 NETGEN_2D_Parameters_1.SetSecondOrder( 0 )
328 NETGEN_2D_Parameters_1.SetOptimize( 1 )
329 NETGEN_2D_Parameters_1.SetFineness( 4 )
330 NETGEN_2D_Parameters_1.SetMinSize( 50 )
331 NETGEN_2D_Parameters_1.SetUseSurfaceCurvature( 1 )
332 NETGEN_2D_Parameters_1.SetFuseEdges( 1 )
333 NETGEN_2D_Parameters_1.SetQuadAllowed( 0 )
334 Regular_1D = garonne_1.Segment(geom=garonne_aval)
335 garonne_aval_1 = Regular_1D.GetSubMesh()
336 Number_of_Segments_1 = Regular_1D.NumberOfSegments(100)
337 QuadFromMedialAxis_1D2D = garonne_1.Quadrangle(algo=smeshBuilder.QUAD_MA_PROJ,geom=garonne_aval)
338 Regular_1D_1 = garonne_1.Segment(geom=garonne_amont)
339 garonne_amont_1 = Regular_1D_1.GetSubMesh()
340 Number_of_Segments_2 = Regular_1D_1.NumberOfSegments(150)
341 QuadFromMedialAxis_1D2D_1 = garonne_1.Quadrangle(algo=smeshBuilder.QUAD_MA_PROJ,geom=garonne_amont)
342 Regular_1D_2 = garonne_1.Segment(geom=SectionsGaronne)
343 sections = Regular_1D_2.GetSubMesh()
344 Number_of_Segments_3 = Regular_1D_2.NumberOfSegments(10)
345 isDone = garonne_1.SetMeshOrder( [ [ sections, garonne_aval_1, garonne_amont_1 ] ])
346 NETGEN_1D_2D_1 = garonne_1.Triangle(algo=smeshBuilder.NETGEN_1D2D,geom=garonne_pont)
347 garonne_pont_1 = NETGEN_1D_2D_1.GetSubMesh()
348 NETGEN_2D_Parameters_2 = NETGEN_1D_2D_1.Parameters()
349 NETGEN_2D_Parameters_2.SetMaxSize( 50 )
350 NETGEN_2D_Parameters_2.SetSecondOrder( 0 )
351 NETGEN_2D_Parameters_2.SetOptimize( 1 )
352 NETGEN_2D_Parameters_2.SetFineness( 3 )
353 NETGEN_2D_Parameters_2.SetMinSize( 10 )
354 NETGEN_2D_Parameters_2.SetUseSurfaceCurvature( 1 )
355 NETGEN_2D_Parameters_2.SetFuseEdges( 1 )
356 NETGEN_2D_Parameters_2.SetQuadAllowed( 0 )
357 isDone = garonne_1.SetMeshOrder( [ [ sections, garonne_aval_1, garonne_amont_1, garonne_pont_1 ] ])
358 isDone = garonne_1.Compute()
359 isDone = garonne_1.SplitQuadObject( garonne_1, 1 )
360
361 # --- geometrical groups of faces
362
363 garonne_riveDroite_2 = garonne_1.GroupOnGeom(garonne_riveDroite,'garonne_riveDroite',SMESH.FACE)
364 garonne_aval_2 = garonne_1.GroupOnGeom(garonne_aval,'garonne_aval',SMESH.FACE)
365 garonne_riveGauche_2 = garonne_1.GroupOnGeom(garonne_riveGauche,'garonne_riveGauche',SMESH.FACE)
366 garonne_pont_2 = garonne_1.GroupOnGeom(garonne_pont,'garonne_pont',SMESH.FACE)
367 garonne_amont_2 = garonne_1.GroupOnGeom(garonne_amont,'garonne_amont',SMESH.FACE)
368
369 # --- geometrical groups of edges
370
371 ClosedFreeBoundary_1 = garonne_1.GroupOnGeom(ClosedFreeBoundary[0],'ClosedFreeBoundary',SMESH.EDGE)
372 garonne_amont_droite_2 = garonne_1.GroupOnGeom(garonne_amont_droite,'garonne_amont_droite',SMESH.EDGE)
373 garonne_amont_gauche_2 = garonne_1.GroupOnGeom(garonne_amont_gauche,'garonne_amont_gauche',SMESH.EDGE)
374 garonne_aval_droite_2 = garonne_1.GroupOnGeom(garonne_aval_droite,'garonne_aval_droite',SMESH.EDGE)
375 garonne_aval_gauche_2 = garonne_1.GroupOnGeom(garonne_aval_gauche,'garonne_aval_gauche',SMESH.EDGE)
376 garonne_pont_droite_2 = garonne_1.GroupOnGeom(garonne_pont_droite,'garonne_pont_droite',SMESH.EDGE)
377 garonne_pont_gauche_2 = garonne_1.GroupOnGeom(garonne_pont_gauche,'garonne_pont_gauche',SMESH.EDGE)
378 SectionsGaronne_1 = garonne_1.GroupOnGeom(SectionsGaronne,'SectionsGaronne',SMESH.EDGE)
379 bordGaucheDomaine_1 = garonne_1.GroupOnGeom(bordGaucheDomaine,'bordGaucheDomaine',SMESH.EDGE)
380 bordDroiteDomaine_1 = garonne_1.GroupOnGeom(bordDroiteDomaine,'bordDroiteDomaine',SMESH.EDGE)
381 amont_1 = garonne_1.GroupOnGeom(amont,'amont',SMESH.EDGE)
382 aval_1 = garonne_1.GroupOnGeom(aval,'aval',SMESH.EDGE)
383 pilePont1_1 = garonne_1.GroupOnGeom(ClosedFreeBoundary[1],'pilePont1',SMESH.EDGE)
384 pilePont2_1 = garonne_1.GroupOnGeom(ClosedFreeBoundary[2],'pilePont2',SMESH.EDGE)
385 pilePont3_1 = garonne_1.GroupOnGeom(ClosedFreeBoundary[3],'pilePont3',SMESH.EDGE)
386 pilePont4_1 = garonne_1.GroupOnGeom(ClosedFreeBoundary[4],'pilePont4',SMESH.EDGE)
387
388 # --- geometrical groups of nodes
389
390 garonne_amont_3 = garonne_1.GroupOnGeom(garonne_amont,'garonne_amont',SMESH.NODE)
391 garonne_aval_3 = garonne_1.GroupOnGeom(garonne_aval,'garonne_aval',SMESH.NODE)
392 garonne_pont_3 = garonne_1.GroupOnGeom(garonne_pont,'garonne_pont',SMESH.NODE)
393 garonne_riveDroite_3 = garonne_1.GroupOnGeom(garonne_riveDroite,'garonne_riveDroite',SMESH.NODE)
394 garonne_riveGauche_3 = garonne_1.GroupOnGeom(garonne_riveGauche,'garonne_riveGauche',SMESH.NODE)
395 ClosedFreeBoundary_2 = garonne_1.GroupOnGeom(ClosedFreeBoundary[0],'ClosedFreeBoundary',SMESH.NODE)
396 garonne_amont_droite_2 = garonne_1.GroupOnGeom(garonne_amont_droite,'garonne_amont_droite',SMESH.NODE)
397 garonne_amont_gauche_2 = garonne_1.GroupOnGeom(garonne_amont_gauche,'garonne_amont_gauche',SMESH.NODE)
398 garonne_aval_droite_2 = garonne_1.GroupOnGeom(garonne_aval_droite,'garonne_aval_droite',SMESH.NODE)
399 garonne_aval_gauche_2 = garonne_1.GroupOnGeom(garonne_aval_gauche,'garonne_aval_gauche',SMESH.NODE)
400 garonne_pont_droite_2 = garonne_1.GroupOnGeom(garonne_pont_droite,'garonne_pont_droite',SMESH.NODE)
401 garonne_pont_gauche_2 = garonne_1.GroupOnGeom(garonne_pont_gauche,'garonne_pont_gauche',SMESH.NODE)
402 SectionsGaronne_2 = garonne_1.GroupOnGeom(SectionsGaronne,'SectionsGaronne',SMESH.NODE)
403 bordGaucheDomaine_2 = garonne_1.GroupOnGeom(bordGaucheDomaine,'bordGaucheDomaine',SMESH.NODE)
404 bordDroiteDomaine_2 = garonne_1.GroupOnGeom(bordDroiteDomaine,'bordDroiteDomaine',SMESH.NODE)
405 amont_2 = garonne_1.GroupOnGeom(amont,'amont',SMESH.NODE)
406 aval_2 = garonne_1.GroupOnGeom(aval,'aval',SMESH.NODE)
407 pilePont1_2 = garonne_1.GroupOnGeom(ClosedFreeBoundary[1],'pilePont1',SMESH.NODE)
408 pilePont2_2 = garonne_1.GroupOnGeom(ClosedFreeBoundary[2],'pilePont2',SMESH.NODE)
409 pilePont3_2 = garonne_1.GroupOnGeom(ClosedFreeBoundary[3],'pilePont3',SMESH.NODE)
410 pilePont4_2 = garonne_1.GroupOnGeom(ClosedFreeBoundary[4],'pilePont4',SMESH.NODE)
411
412 ## Set names of Mesh objects
413 smesh.SetName(NETGEN_1D_2D.GetAlgorithm(), 'NETGEN 1D-2D')
414 smesh.SetName(QuadFromMedialAxis_1D2D.GetAlgorithm(), 'QuadFromMedialAxis_1D2D')
415 smesh.SetName(Regular_1D.GetAlgorithm(), 'Regular_1D')
416 smesh.SetName(Number_of_Segments_1, 'Number of Segments_1')
417 smesh.SetName(Number_of_Segments_2, 'Number of Segments_2')
418 smesh.SetName(NETGEN_2D_Parameters_1, 'NETGEN 2D Parameters_1')
419 smesh.SetName(Number_of_Segments_3, 'Number of Segments_3')
420 smesh.SetName(NETGEN_2D_Parameters_2, 'NETGEN 2D Parameters_2')
421
422 smesh.SetName(garonne_aval_1, 'submesh_garonne_aval')
423 smesh.SetName(garonne_pont_1, 'submesh_garonne_pont')
424 smesh.SetName(garonne_amont_1, 'submesh_garonne_amont')
425 smesh.SetName(garonne_1.GetMesh(), 'submesh_garonne_1')
426 smesh.SetName(sections, 'submesh_sections')
427
428
429 garonne_1.SetAutoColor( 1 )
430 tmpdir = tempfile.mkdtemp()
431 print("tmpdir=",tmpdir)
432 fichierMaillage = os.path.join(tmpdir, 'garonne_1.med')
433 garonne_1.ExportMED(fichierMaillage, 0, SMESH.MED_V2_2, 1, None ,1)
434
435 controlMeshStats(garonne_1, 6985, 745, 13761, tolerance=0.1)
436 controlSubMeshStats(garonne_pont_2, 202)
437 controlSubMeshStats(garonne_amont_2, 3000)
438 controlSubMeshStats(garonne_aval_2, 2000)
439 controlSubMeshStats(garonne_riveDroite_2, 3941, tolerance=0.1)
440 controlSubMeshStats(garonne_riveGauche_2, 4635, tolerance=0.1)
441
442 if salome.sg.hasDesktop():
443   salome.sg.updateObjBrowser()