Salome HOME
Merge branch 'master' into gni/adaptation
[modules/smesh.git] / doc / salome / examples / filters_ex39.py
index ebbb0b936591ae9f5ed76af956d91d70a3ea47d5..6a2ddd5077618c33daeec7572df1b237191d01ae 100644 (file)
@@ -1,11 +1,11 @@
-# Elements of a domain
+# "Elements of a domain" filter and "Renumber" hypothesis
 
 import salome, SMESH
 salome.salome_init()
 from salome.geom import geomBuilder
-geompy = geomBuilder.New(salome.myStudy)
+geompy = geomBuilder.New()
 from salome.smesh import smeshBuilder
-smesh =  smeshBuilder.New(salome.myStudy)
+smesh =  smeshBuilder.New()
 
 # create two boxes to have two domains in the mesh
 
@@ -22,24 +22,32 @@ mesh = smesh.Mesh( boxes )
 mesh.Segment(box1).NumberOfSegments( 5 )  # to have different nb of elements on the boxes
 mesh.Segment(box2).NumberOfSegments( 10 )
 mesh.Quadrangle()
-mesh.Hexahedron()
+ijkAlgo = mesh.Hexahedron()
+
+# Use Renumber hypothesis to get hexahedra and nodes numbered like in a structured mesh.
+# k axis of box1 will be ( 100,100,0 ) - ( 100,100,100 )
+# k axis of box2 will be ( 0,0,0 ) - (0,0,100), by default
+v000 = geompy.MakeVertex( 100,100,0, theName='v000' ) # can use box sub-vertex or standalone one
+v001 = geompy.GetVertexNearPoint( box1, geompy.MakeVertex(100,100,100), theName='v001')
+ijkAlgo.Renumber([ smeshBuilder.BlockCS( box1, v000, v001 ) ])
+
 mesh.Compute()
 
 # Create filters with FT_ConnectedElements criterion by pointing a domain in different ways:
 
 # using point coordinates in box_1
 nodeFilter = smesh.GetFilter( SMESH.NODE, SMESH.FT_ConnectedElements, "=", "1.,2,10", mesh=mesh )
-print "Nb. nodes in box_1:", len( nodeFilter.GetIDs())
+print("Nb. nodes in box_1:", len( nodeFilter.GetIDs()))
 
 # using point coordinates in box_2
 edgeFilter = smesh.GetFilter( SMESH.EDGE, SMESH.FT_ConnectedElements, "=", [202,1,1 ], mesh=mesh )
-print "Nb. segments in box_2:", len( edgeFilter.GetIDs())
+print("Nb. segments in box_2:", len( edgeFilter.GetIDs()))
 
 # using a geom vertex of box_1
 faceFilter = smesh.GetFilter( SMESH.FACE, SMESH.FT_ConnectedElements, "=", vertex, mesh=mesh )
-print "Nb. faces in box_1:", len( edgeFilter.GetIDs())
+print("Nb. faces in box_1:", len( edgeFilter.GetIDs()))
 
 # using node ID in box_2
 voluFilter = smesh.GetFilter( SMESH.VOLUME, SMESH.FT_ConnectedElements, "=", 10, mesh=mesh )
-print "Nb. volumes in box_2:", len( voluFilter.GetIDs())
+print("Nb. volumes in box_2:", len( voluFilter.GetIDs()))