X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=doc%2Fsalome%2Fexamples%2Fh014_caseDigueManualInterpolZ.py;h=7026406beb6726e3acd6bdc5a1f50b46fdf0055c;hb=e3a588626a51ca8bde6decbf32d54409ae5b88ce;hp=c5782efd2273f34713b0ff1bb9efbd48d2ce2fd8;hpb=40855dc7f8394e348c601f24a2987b20375b3f83;p=modules%2Fhydro.git diff --git a/doc/salome/examples/h014_caseDigueManualInterpolZ.py b/doc/salome/examples/h014_caseDigueManualInterpolZ.py index c5782efd..7026406b 100644 --- a/doc/salome/examples/h014_caseDigueManualInterpolZ.py +++ b/doc/salome/examples/h014_caseDigueManualInterpolZ.py @@ -14,8 +14,8 @@ theStudy = salome.myStudy #---------------------- from HYDROPy import * -from PyQt4.QtCore import * -from PyQt4.QtGui import * +from PyQt5.QtCore import * +from PyQt5.QtGui import * hydro_doc = HYDROData_Document.Document( theStudy._get_StudyId() ) @@ -317,59 +317,77 @@ digue.Update(); # Calculation case -garonne_2 = hydro_doc.CreateObject( KIND_CALCULATION ) -garonne_2.SetName( "garonne_2" ) +garonne_1 = hydro_doc.CreateObject( KIND_CALCULATION ) +garonne_1.SetName( "garonne_1" ) -garonne_2.SetAssignmentMode( HYDROData_CalculationCase.MANUAL ) -garonne_2.AddGeometryObject( litMineur ) -garonne_2.AddGeometryObject( domaineEtendu ) -garonne_2.AddGeometryObject( litMajeur ) -garonne_2.AddGeometryObject( digue ); +garonne_1.SetAssignmentMode( HYDROData_CalculationCase.MANUAL ) +garonne_1.AddGeometryObject( litMineur ) +garonne_1.AddGeometryObject( domaineEtendu ) +garonne_1.AddGeometryObject( litMajeur ) +garonne_1.AddGeometryObject( digue ); case_geom_group = domaineEtendu.GetGroup( 0 ); -garonne_2.AddGeometryGroup( case_geom_group ); +garonne_1.AddGeometryGroup( case_geom_group ); case_geom_group = litMineur.GetGroup( 0 ); -garonne_2.AddGeometryGroup( case_geom_group ); +garonne_1.AddGeometryGroup( case_geom_group ); case_geom_group = litMajeur.GetGroup( 0 ); -garonne_2.AddGeometryGroup( case_geom_group ); +garonne_1.AddGeometryGroup( case_geom_group ); case_geom_group = digue.GetGroup( 2 ); -garonne_2.AddGeometryGroup( case_geom_group ); +garonne_1.AddGeometryGroup( case_geom_group ); case_geom_group = digue.GetGroup( 0 ); -garonne_2.AddGeometryGroup( case_geom_group ); +garonne_1.AddGeometryGroup( case_geom_group ); case_geom_group = digue.GetGroup( 3 ); -garonne_2.AddGeometryGroup( case_geom_group ); +garonne_1.AddGeometryGroup( case_geom_group ); case_geom_group = digue.GetGroup( 1 ); -garonne_2.AddGeometryGroup( case_geom_group ); -garonne_2.SetBoundaryPolyline( domaine ); +garonne_1.AddGeometryGroup( case_geom_group ); +garonne_1.SetBoundaryPolyline( domaine ); # Start the algorithm of the partition and assignment -garonne_2.Update(); -garonne_2_litMineur = hydro_doc.FindObjectByName( "garonne_2_Reg_1" ); -garonne_2_Zone_1 = hydro_doc.FindObjectByName( "garonne_2_Zone_1" ); -garonne_2_Zone_1.SetMergeType( HYDROData_Zone.Merge_ZMIN ) -garonne_2_litMineur.AddZone( garonne_2_Zone_1 ); -garonne_2_riveDroite = hydro_doc.FindObjectByName( "garonne_2_Reg_2" ); -garonne_2_Zone_2 = hydro_doc.FindObjectByName( "garonne_2_Zone_2" ); -garonne_2_riveDroite.AddZone( garonne_2_Zone_2 ); -garonne_2_Zone_3 = hydro_doc.FindObjectByName( "garonne_2_Zone_3" ); -garonne_2_riveDroite.AddZone( garonne_2_Zone_3 ); -garonne_2_riveGauche = hydro_doc.FindObjectByName( "garonne_2_Reg_3" ); -garonne_2_Zone_4 = hydro_doc.FindObjectByName( "garonne_2_Zone_4" ); -garonne_2_riveGauche.AddZone( garonne_2_Zone_4 ); -garonne_2_Zone_5 = hydro_doc.FindObjectByName( "garonne_2_Zone_5" ); -garonne_2_riveGauche.AddZone( garonne_2_Zone_5 ); -garonne_2_digue = hydro_doc.FindObjectByName( "garonne_2_Reg_4" ); -garonne_2_Zone_6 = hydro_doc.FindObjectByName( "garonne_2_Zone_6" ); -garonne_2_Zone_6.SetMergeType( HYDROData_Zone.Merge_ZMAX ) -garonne_2_digue.AddZone( garonne_2_Zone_6 ); - -garonne_2_litMineur.SetName("garonne_2_litMineur") -garonne_2_riveDroite.SetName("garonne_2_riveDroite") -garonne_2_riveGauche.SetName("garonne_2_riveGauche") -garonne_2_digue.SetName("garonne_2_digue") +garonne_1.Update(); + +garonne_1_litMineur = hydro_doc.FindObjectByName( "garonne_1_Reg_1" ) +garonne_1_Zone_1 = hydro_doc.FindObjectByName( "garonne_1_Zone_1" ) +garonne_1_Zone_1.SetMergeType( HYDROData_Zone.Merge_ZMIN ) +garonne_1_Zone_1.SetColor( QColor( 192, 137, 64 )) +garonne_1_litMineur.AddZone( garonne_1_Zone_1 ) + +garonne_1_riveDroite = hydro_doc.FindObjectByName( "garonne_1_Reg_2" ) +garonne_1_Zone_2 = hydro_doc.FindObjectByName( "garonne_1_Zone_2" ) +garonne_1_Zone_2.SetColor( QColor( 64, 192, 98 )) +garonne_1_riveDroite.AddZone( garonne_1_Zone_2 ) + +garonne_1_Zone_3 = hydro_doc.FindObjectByName( "garonne_1_Zone_3" ) +garonne_1_Zone_3.SetMergeType( HYDROData_Zone.Merge_Object ) +Cloud_02 = hydro_doc.FindObjectByName( "Cloud_02" ) +garonne_1_Zone_3.SetMergeObject( Cloud_02 ) +garonne_1_Zone_3.SetColor( QColor( 64, 66, 192 )) +garonne_1_riveDroite.AddZone( garonne_1_Zone_3 ) + +garonne_1_riveGauche = hydro_doc.FindObjectByName( "garonne_1_Reg_3" ) +garonne_1_Zone_4 = hydro_doc.FindObjectByName( "garonne_1_Zone_4" ) +garonne_1_Zone_4.SetMergeType( HYDROData_Zone.Merge_Object ) +Cloud_02 = hydro_doc.FindObjectByName( "Cloud_02" ) +garonne_1_Zone_4.SetMergeObject( Cloud_02 ) +garonne_1_Zone_4.SetColor( QColor( 64, 192, 164 )) +garonne_1_riveGauche.AddZone( garonne_1_Zone_4 ) + +garonne_1_Zone_5 = hydro_doc.FindObjectByName( "garonne_1_Zone_5" ) +garonne_1_Zone_5.SetColor( QColor( 192, 149, 64 )) +garonne_1_riveGauche.AddZone( garonne_1_Zone_5 ) + +garonne_1_digue = hydro_doc.FindObjectByName( "garonne_1_Reg_4" ) +garonne_1_Zone_6 = hydro_doc.FindObjectByName( "garonne_1_Zone_6" ) +garonne_1_Zone_6.SetMergeType( HYDROData_Zone.Merge_ZMAX ) +garonne_1_Zone_6.SetColor( QColor( 64, 192, 177 )) +garonne_1_digue.AddZone( garonne_1_Zone_6 ) + +garonne_1_litMineur.SetName("garonne_1_litMineur") +garonne_1_riveDroite.SetName("garonne_1_riveDroite") +garonne_1_riveGauche.SetName("garonne_1_riveGauche") +garonne_1_digue.SetName("garonne_1_digue") # Export of the calculation case -garonne_2_entry = garonne_2.Export( theStudy._get_StudyId() ) +garonne_1_entry = garonne_1.Export( theStudy._get_StudyId() ) #---------------------- # --- Geometry @@ -384,47 +402,80 @@ from salome.hydrotools.controls import controlGeomProps geompy = geomBuilder.New(theStudy) -print "Entry:", garonne_2_entry -HYDRO_garonne_2 = salome.IDToObject( str( garonne_2_entry ) ) -print "Geom shape:", HYDRO_garonne_2 -print "Geom shape name:", HYDRO_garonne_2.GetName() - -[riveGauche,digue,litMineur,riveDroite] = geompy.ExtractShapes(HYDRO_garonne_2, geompy.ShapeType["FACE"], True) -geompy.addToStudyInFather( HYDRO_garonne_2, riveGauche, 'riveGauche' ) -geompy.addToStudyInFather( HYDRO_garonne_2, digue, 'digue' ) -geompy.addToStudyInFather( HYDRO_garonne_2, litMineur, 'litMineur' ) -geompy.addToStudyInFather( HYDRO_garonne_2, riveDroite, 'riveDroite' ) - -SectionsGaronne = geompy.CreateGroup(HYDRO_garonne_2, geompy.ShapeType["EDGE"]) -geompy.UnionIDs(SectionsGaronne, [4, 11]) -geompy.addToStudyInFather( HYDRO_garonne_2, SectionsGaronne, 'SectionsGaronne' ) - -SectionsDigue = geompy.CreateGroup(HYDRO_garonne_2, geompy.ShapeType["EDGE"]) -geompy.UnionIDs(SectionsDigue, [46, 50]) -geompy.addToStudyInFather( HYDRO_garonne_2, SectionsDigue, 'SectionsDigue' ) - -# --- recreate subshapes already exported from HYDRO to get access from Python -#garonne_2_domaineEtendu_Outer = geompy.CreateGroup(HYDRO_garonne_2, geompy.ShapeType["EDGE"]) -#geompy.UnionIDs(garonne_2_domaineEtendu_Outer, [4, 11, 17, 24, 26, 28, 14, 19, 20, 22, 31, 39, 41, 33, 35, 37]) -#garonne_2_digue_Left_Bank = geompy.CreateGroup(HYDRO_garonne_2, geompy.ShapeType["EDGE"]) -#geompy.UnionIDs(garonne_2_digue_Left_Bank, [43]) -#garonne_2_digue_Outlet = geompy.CreateGroup(HYDRO_garonne_2, geompy.ShapeType["EDGE"]) -#geompy.UnionIDs(garonne_2_digue_Outlet, [46]) -#garonne_2_digue_Inlet = geompy.CreateGroup(HYDRO_garonne_2, geompy.ShapeType["EDGE"]) -#geompy.UnionIDs(garonne_2_digue_Inlet, [50]) -#garonne_2_litMineur_Outer = geompy.CreateGroup(HYDRO_garonne_2, geompy.ShapeType["EDGE"]) -#geompy.UnionIDs(garonne_2_litMineur_Outer, [7, 9]) -#garonne_2_digue_Right_Bank = geompy.CreateGroup(HYDRO_garonne_2, geompy.ShapeType["EDGE"]) -#geompy.UnionIDs(garonne_2_digue_Right_Bank, [48]) - -#controlGeomProps(geompy, riveGauche, 39489.5116033, 35889668.8348) -#controlGeomProps(geompy, digue, 10340.1424233, 102887.6201) -#controlGeomProps(geompy, litMineur, 30337.5484919, 3646827.74981) -#controlGeomProps(geompy, riveDroite, 32012.3432411, 26177085.4601) -controlGeomProps(geompy, riveGauche, 39493.270283, 35845790.613557) -controlGeomProps(geompy, digue, 10340.1424233, 102887.6201) -controlGeomProps(geompy, litMineur, 30337.548492, 3488480.304388) -controlGeomProps(geompy, riveDroite, 32012.343241, 25998769.23615) +print "Entry:", garonne_1_entry +HYDRO_garonne_1 = salome.IDToObject( str( garonne_1_entry ) ) +print "Geom shape:", HYDRO_garonne_1 +print "Geom shape name:", HYDRO_garonne_1.GetName() + + +[garonne_riveGauche,garonne_digue,garonne_litMineur,garonne_riveDroite] = geompy.ExtractShapes(HYDRO_garonne_1, geompy.ShapeType["FACE"], True) + +controlGeomProps(geompy, garonne_riveGauche, 39490.835288, 35845737.590926) +controlGeomProps(geompy, garonne_digue, 10341.466108, 103090.760662) +controlGeomProps(geompy, garonne_litMineur, 30337.548492, 3488480.304388) +controlGeomProps(geompy, garonne_riveDroite, 32012.343241, 25998769.23615) + +# --- manual identification of all useful edge groups (boundary conditions) + +allEdgesIds = geompy.SubShapeAllIDs(HYDRO_garonne_1, geompy.ShapeType["EDGE"]) +print "allEdgesIds", allEdgesIds + +(isDone, ClosedFreeBoundary, OpenFreeBoundary) = geompy.GetFreeBoundary(HYDRO_garonne_1) +geompy.addToStudyInFather(HYDRO_garonne_1, ClosedFreeBoundary[0], "ClosedFreeBoundary") + +freeBoundary = geompy.ExtractShapes(ClosedFreeBoundary[0], geompy.ShapeType["EDGE"], True) +freeBoundaryIds = [ geompy.GetSubShapeID(HYDRO_garonne_1, freeBoundary[i]) for i in range(len(freeBoundary)) ] +print "freeBoundaryIds", freeBoundaryIds + +[litMineur_droite] = geompy.GetSharedShapesMulti([garonne_riveDroite, garonne_litMineur], geompy.ShapeType["EDGE"], True) +[litMineur_gauche] = geompy.GetSharedShapesMulti([garonne_riveGauche, garonne_litMineur], geompy.ShapeType["EDGE"], True) +geompy.addToStudyInFather(HYDRO_garonne_1, litMineur_droite, "litMineur_droite") +geompy.addToStudyInFather(HYDRO_garonne_1, litMineur_gauche, "litMineur_gauche") +rives = [litMineur_droite, litMineur_gauche] +rivesIds = [ geompy.GetSubShapeID(HYDRO_garonne_1, rives[i]) for i in range(len(rives)) ] +print "rivesIds", rivesIds + +edges_litMineur = geompy.GetSharedShapesMulti([HYDRO_garonne_1, garonne_litMineur], geompy.ShapeType["EDGE"], True) +edges_riveGauche = geompy.GetSharedShapesMulti([HYDRO_garonne_1, garonne_riveGauche], geompy.ShapeType["EDGE"], True) +edges_riveDroite = geompy.GetSharedShapesMulti([HYDRO_garonne_1, garonne_riveDroite], geompy.ShapeType["EDGE"], True) +edges_litMineurIds = [ geompy.GetSubShapeID(HYDRO_garonne_1, edges_litMineur[i]) for i in range(len(edges_litMineur)) ] +edges_riveGaucheIds = [ geompy.GetSubShapeID(HYDRO_garonne_1, edges_riveGauche[i]) for i in range(len(edges_riveGauche)) ] +edges_riveDroiteIds = [ geompy.GetSubShapeID(HYDRO_garonne_1, edges_riveDroite[i]) for i in range(len(edges_riveDroite)) ] + +print "edges_litMineurIds", edges_litMineurIds +print "edges_riveGaucheIds", edges_riveGaucheIds +print "edges_riveDroiteIds", edges_riveDroiteIds + +sectionsIds = [Id for Id in edges_litMineurIds if Id not in rivesIds] +print "sectionsIds", sectionsIds +SectionsGaronne = geompy.CreateGroup(HYDRO_garonne_1, geompy.ShapeType["EDGE"]) +geompy.UnionIDs(SectionsGaronne, sectionsIds) +geompy.addToStudyInFather(HYDRO_garonne_1, SectionsGaronne, "SectionsGaronne") + +bordGaucheDomaineIds = [Id for Id in freeBoundaryIds if Id in edges_riveGaucheIds] +bordDroiteDomaineIds = [Id for Id in freeBoundaryIds if Id in edges_riveDroiteIds] +print "bordGaucheDomaineIds", bordGaucheDomaineIds +print "bordDroiteDomaineIds", bordDroiteDomaineIds +bordGaucheDomaine = geompy.CreateGroup(HYDRO_garonne_1, geompy.ShapeType["EDGE"]) +geompy.UnionIDs(bordGaucheDomaine, bordGaucheDomaineIds) +geompy.addToStudyInFather(HYDRO_garonne_1, bordGaucheDomaine, "bordGaucheDomaine") +bordDroiteDomaine = geompy.CreateGroup(HYDRO_garonne_1, geompy.ShapeType["EDGE"]) +geompy.UnionIDs(bordDroiteDomaine, bordDroiteDomaineIds) +geompy.addToStudyInFather(HYDRO_garonne_1, bordDroiteDomaine, "bordDroiteDomaine") + +amont = geompy.GetEdgeNearPoint(HYDRO_garonne_1, geompy.MakeVertex(46757.861314, 25833.234752, 0)) +aval = geompy.GetEdgeNearPoint(HYDRO_garonne_1, geompy.MakeVertex(39078.979127, 32588.627279, 0)) +geompy.addToStudyInFather(HYDRO_garonne_1, amont, "amont") +geompy.addToStudyInFather(HYDRO_garonne_1, aval, "aval") + +amontDigue = geompy.GetEdgeNearPoint(HYDRO_garonne_1, geompy.MakeVertex(44736.43, 29847.52, 0)) +avalDigue = geompy.GetEdgeNearPoint(HYDRO_garonne_1, geompy.MakeVertex(40961.39, 31800.95, 0)) +geompy.addToStudyInFather(HYDRO_garonne_1, amontDigue, "amontDigue") +geompy.addToStudyInFather(HYDRO_garonne_1, avalDigue, "avalDigue") + +SectionsDigue = geompy.CreateGroup(HYDRO_garonne_1, geompy.ShapeType["EDGE"]) +geompy.UnionIDs(SectionsDigue, [geompy.GetSubShapeID(HYDRO_garonne_1, amontDigue), geompy.GetSubShapeID(HYDRO_garonne_1, avalDigue)]) +geompy.addToStudyInFather( HYDRO_garonne_1, SectionsDigue, 'SectionsDigue' ) #---------------------- # --- Meshing @@ -433,13 +484,14 @@ controlGeomProps(geompy, riveDroite, 32012.343241, 25998769.23615) import SMESH, SALOMEDS from salome.smesh import smeshBuilder from salome.hydrotools.controls import controlMeshStats, controlSubMeshStats +import tempfile smesh = smeshBuilder.New(theStudy) # --- algorithms and hypothesis -garonne_2 = smesh.Mesh(HYDRO_garonne_2) +garonne_1 = smesh.Mesh(HYDRO_garonne_1) -NETGEN_2D = garonne_2.Triangle(algo=smeshBuilder.NETGEN_1D2D) +NETGEN_2D = garonne_1.Triangle(algo=smeshBuilder.NETGEN_1D2D) NETGEN_2D_Parameters = NETGEN_2D.Parameters() NETGEN_2D_Parameters.SetMaxSize( 200 ) NETGEN_2D_Parameters.SetSecondOrder( 0 ) @@ -450,92 +502,90 @@ NETGEN_2D_Parameters.SetUseSurfaceCurvature( 1 ) NETGEN_2D_Parameters.SetFuseEdges( 1 ) NETGEN_2D_Parameters.SetQuadAllowed( 0 ) -algo2D_litMineur = garonne_2.Quadrangle(algo=smeshBuilder.QUAD_MA_PROJ,geom=litMineur) -algo1D_litMineur = garonne_2.Segment(geom=litMineur) +algo2D_litMineur = garonne_1.Quadrangle(algo=smeshBuilder.QUAD_MA_PROJ,geom=garonne_litMineur) +algo1D_litMineur = garonne_1.Segment(geom=garonne_litMineur) hypo1D_litMineur = algo1D_litMineur.LocalLength(100,None,1e-07) subMesh_litMineur = algo1D_litMineur.GetSubMesh() smesh.SetName(subMesh_litMineur, "litMineur") -algo1D_SectionsGaronne = garonne_2.Segment(geom=SectionsGaronne) +algo1D_SectionsGaronne = garonne_1.Segment(geom=SectionsGaronne) hypo1D_SectionsGaronne = algo1D_SectionsGaronne.NumberOfSegments(8) hypo1D_SectionsGaronne.SetDistrType( 0 ) subMesh_SectionsGaronne = algo1D_SectionsGaronne.GetSubMesh() smesh.SetName(subMesh_SectionsGaronne, "SectionsGaronne") -algo2D_digue = garonne_2.Quadrangle(algo=smeshBuilder.QUAD_MA_PROJ,geom=digue) -algo1D_digue = garonne_2.Segment(geom=digue) +algo2D_digue = garonne_1.Quadrangle(algo=smeshBuilder.QUAD_MA_PROJ,geom=garonne_digue) +algo1D_digue = garonne_1.Segment(geom=garonne_digue) hypo1D_digue = algo1D_digue.LocalLength(50,None,1e-07) subMesh_digue = algo1D_digue.GetSubMesh() smesh.SetName(subMesh_digue, "digue") -algo1D_SectionsDigue = garonne_2.Segment(geom=SectionsDigue) +algo1D_SectionsDigue = garonne_1.Segment(geom=SectionsDigue) hypo1D_SectionsDigue = algo1D_SectionsDigue.NumberOfSegments(4) hypo1D_SectionsDigue.SetDistrType( 0 ) subMesh_SectionsDigue = algo1D_SectionsDigue.GetSubMesh() smesh.SetName(subMesh_SectionsDigue, "SectionsDigue") -isDone = garonne_2.SetMeshOrder( [ [ subMesh_SectionsGaronne, subMesh_litMineur ], [ subMesh_SectionsDigue, subMesh_digue ]]) +isDone = garonne_1.SetMeshOrder( [ [ subMesh_SectionsGaronne, subMesh_litMineur ], [ subMesh_SectionsDigue, subMesh_digue ]]) # --- 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) -#garonne_2_domaineEtendu_Outer_1 = garonne_2.GroupOnGeom(garonne_2_domaineEtendu_Outer,'garonne_2_domaineEtendu_Outer',SMESH.EDGE) -#aval_1 = garonne_2.GroupOnGeom(aval,'aval',SMESH.EDGE) -#amont_1 = garonne_2.GroupOnGeom(amont,'amont',SMESH.EDGE) -#bordGaucheDomaine_1 = garonne_2.GroupOnGeom(bordGaucheDomaine,'bordGaucheDomaine',SMESH.EDGE) -#bordDroiteDomaine_1 = garonne_2.GroupOnGeom(bordDroiteDomaine,'bordDroiteDomaine',SMESH.EDGE) -SectionsGaronne_2 = garonne_2.GroupOnGeom(SectionsGaronne,'SectionsGaronne',SMESH.EDGE) -SectionsDigue_2 = garonne_2.GroupOnGeom(SectionsDigue,'SectionsDigue',SMESH.EDGE) +isDone = garonne_1.Compute() +isDone = garonne_1.SplitQuadObject( garonne_1, 1 ) +isDone = garonne_1.ReorientObject( garonne_1 ) # --- geometrical groups of faces -riveGauche_1 = garonne_2.GroupOnGeom(riveGauche,'riveGauche',SMESH.FACE) -litMineur_2 = garonne_2.GroupOnGeom(litMineur,'litMineur',SMESH.FACE) -riveDroite_1 = garonne_2.GroupOnGeom(riveDroite,'riveDroite',SMESH.FACE) -digue_1 = garonne_2.GroupOnGeom(digue,'digue',SMESH.FACE) +riveGauche_1 = garonne_1.GroupOnGeom(garonne_riveGauche,'riveGauche',SMESH.FACE) +litMineur_1 = garonne_1.GroupOnGeom(garonne_litMineur,'litMineur',SMESH.FACE) +riveDroite_1 = garonne_1.GroupOnGeom(garonne_riveDroite,'riveDroite',SMESH.FACE) +digue_1 = garonne_1.GroupOnGeom(garonne_digue,'digue',SMESH.FACE) + +# --- geometrical groups of edges +ClosedFreeBoundary_1 = garonne_1.GroupOnGeom(ClosedFreeBoundary[0],'ClosedFreeBoundary',SMESH.EDGE) +litMineur_droite_1 = garonne_1.GroupOnGeom(litMineur_droite,'litMineur_droite',SMESH.EDGE) +litMineur_gauche_1 = garonne_1.GroupOnGeom(litMineur_gauche,'litMineur_gauche',SMESH.EDGE) +SectionsGaronne_1 = garonne_1.GroupOnGeom(SectionsGaronne,'SectionsGaronne',SMESH.EDGE) +bordGaucheDomaine_1 = garonne_1.GroupOnGeom(bordGaucheDomaine,'bordGaucheDomaine',SMESH.EDGE) +bordDroiteDomaine_1 = garonne_1.GroupOnGeom(bordDroiteDomaine,'bordDroiteDomaine',SMESH.EDGE) +amont_1 = garonne_1.GroupOnGeom(amont,'amont',SMESH.EDGE) +aval_1 = garonne_1.GroupOnGeom(aval,'aval',SMESH.EDGE) +SectionsDigue_1 = garonne_1.GroupOnGeom(SectionsDigue,'SectionsDigue',SMESH.EDGE) # --- geometrical groups of nodes -#garonne_2_litMineur_Outer_2 = garonne_2.GroupOnGeom(garonne_2_litMineur_Outer,'garonne_2_litMineur_Outer',SMESH.NODE) -#garonne_2_domaineEtendu_Outer_2 = garonne_2.GroupOnGeom(garonne_2_domaineEtendu_Outer,'garonne_2_domaineEtendu_Outer',SMESH.NODE) -riveGauche_2 = garonne_2.GroupOnGeom(riveGauche,'riveGauche',SMESH.NODE) -litMineur_3 = garonne_2.GroupOnGeom(litMineur,'litMineur',SMESH.NODE) -riveDroite_2 = garonne_2.GroupOnGeom(riveDroite,'riveDroite',SMESH.NODE) -digue_2 = garonne_2.GroupOnGeom(digue,'digue',SMESH.NODE) -#aval_2 = garonne_2.GroupOnGeom(aval,'aval',SMESH.NODE) -#amont_2 = garonne_2.GroupOnGeom(amont,'amont',SMESH.NODE) -#bordGaucheDomaine_2 = garonne_2.GroupOnGeom(bordGaucheDomaine,'bordGaucheDomaine',SMESH.NODE) -#bordDroiteDomaine_2 = garonne_2.GroupOnGeom(bordDroiteDomaine,'bordDroiteDomaine',SMESH.NODE) -SectionsGaronne_3 = garonne_2.GroupOnGeom(SectionsGaronne,'SectionsGaronne',SMESH.NODE) - - -med_file = r'/tmp/garonne_2.med' - -try: - os.remove(med_file) -except OSError: - pass - - -garonne_2.SetAutoColor( 1 ) -garonne_2.ExportMED( med_file, 0, SMESH.MED_V2_2, 1, None ,1) - -#controlMeshStats(garonne_2, 5247, 717, 10075) -#controlSubMeshStats(litMineur_2, 2384) -#controlSubMeshStats(riveDroite_1, 2348) -#controlSubMeshStats(riveGauche_1, 5343) -#controlSubMeshStats(digue_1, 0) -controlMeshStats(garonne_2, 6190, 691, 12201) -controlSubMeshStats(litMineur_2, 2384) +garonne_1_litMineur_2 = garonne_1.GroupOnGeom(garonne_litMineur,'garonne_1_litMineur',SMESH.NODE) +garonne_1_riveDroite_2 = garonne_1.GroupOnGeom(garonne_riveDroite,'garonne_1_riveDroite',SMESH.NODE) +garonne_1_riveGauche_2 = garonne_1.GroupOnGeom(garonne_riveGauche,'garonne_1_riveGauche',SMESH.NODE) +garonne_1_digue_2 = garonne_1.GroupOnGeom(garonne_digue,'garonne_1_digue',SMESH.NODE) +ClosedFreeBoundary_2 = garonne_1.GroupOnGeom(ClosedFreeBoundary[0],'ClosedFreeBoundary',SMESH.NODE) +litMineur_droite_2 = garonne_1.GroupOnGeom(litMineur_droite,'litMineur_droite',SMESH.NODE) +litMineur_gauche_2 = garonne_1.GroupOnGeom(litMineur_gauche,'litMineur_gauche',SMESH.NODE) +SectionsGaronne_2 = garonne_1.GroupOnGeom(SectionsGaronne,'SectionsGaronne',SMESH.NODE) +bordGaucheDomaine_2 = garonne_1.GroupOnGeom(bordGaucheDomaine,'bordGaucheDomaine',SMESH.NODE) +bordDroiteDomaine_2 = garonne_1.GroupOnGeom(bordDroiteDomaine,'bordDroiteDomaine',SMESH.NODE) +amont_2 = garonne_1.GroupOnGeom(amont,'amont',SMESH.NODE) +aval_2 = garonne_1.GroupOnGeom(aval,'aval',SMESH.NODE) +SectionsDigue_2 = garonne_1.GroupOnGeom(SectionsDigue,'SectionsDigue',SMESH.NODE) + +garonne_1.SetAutoColor( 1 ) +tmpdir = tempfile.mkdtemp() +print "tmpdir=",tmpdir +fichierMaillage = os.path.join(tmpdir, 'garonne_1.med') +garonne_1.ExportMED(fichierMaillage, 0, SMESH.MED_V2_2, 1, None ,1) + +mesures = garonne_1.GetMeshInfo() +d= {} +for key, value in mesures.iteritems(): + d[str(key)] = value +nbTriangles = d['Entity_Triangle'] +nbNodes = d['Entity_Node'] + +controlMeshStats(garonne_1, 6190, 691, 12201) +controlSubMeshStats(litMineur_1, 2384) controlSubMeshStats(riveDroite_1, 2400) controlSubMeshStats(riveGauche_1, 6585) controlSubMeshStats(digue_1, 832) if salome.sg.hasDesktop(): salome.sg.updateObjBrowser(1) - #---------------------- # --- Z interpolation with HYDRO #---------------------- @@ -544,24 +594,25 @@ from salome.hydrotools.interpolZ import interpolZ, createZfield2 from salome.hydrotools.controls import controlStatZ # --- case name in HYDRO -nomCas = 'garonne_2' - -# --- med file 2D(x,y) of the case produced by SMESH -fichierMaillage = med_file +nomCas = 'garonne_1' # --- dictionary [med group name] = region name -dicoGroupeRegion= dict(litMineur = 'garonne_2_litMineur', - riveDroite = 'garonne_2_riveDroite', - riveGauche = 'garonne_2_riveGauche', - digue = 'garonne_2_digue', +dicoGroupeRegion= dict(litMineur = 'garonne_1_litMineur', + riveDroite = 'garonne_1_riveDroite', + riveGauche = 'garonne_1_riveGauche', + digue = 'garonne_1_digue', ) # --- value to use for Z when the node is not in a region (used to detect problems) zUndef = 90 # --- Z interpolation on the bathymety/altimetry on the mesh nodes statz = interpolZ(nomCas, fichierMaillage, dicoGroupeRegion, zUndef) -refstatz = {'riveDroite': (10.88, 32.47999954), 'riveGauche': (7.72, 71.38999939), 'litMineur': (2.06, 25.41), 'digue': (14.10,27.09)} +#print statz +refstatz = {'riveDroite': (10.88, 32.61, 24.09, 5.13, 17.57, 31.33, 0.2), + 'riveGauche': (7.72, 72.40, 21.59, 8.37, 16.71, 35.71, 0.2), + 'litMineur': (2.06, 25.41, 13.93, 4.33, 8.47, 21.78), + 'digue': (14.10, 27.09, 22.01, 2.56, 18.15, 25.02)} controlStatZ(statz, refstatz) # --- add a field on nodes of type double with z values, named "BOTTOM" -createZfield2(fichierMaillage) +#createZfield2(fichierMaillage)