Salome HOME
Merge from V6_main 11/02/2013
[modules/smesh.git] / doc / salome / examples / transforming_meshes_ex11.py
1 # Duplicate nodes
2
3 import salome
4 import smesh
5 import SMESH_test1
6
7 mesh = SMESH_test1.mesh
8
9 # Compute mesh
10 mesh.Compute()
11
12 # Without the duplication of border elements
13
14 # Nodes to duplicate
15 nodes1 = mesh.CreateEmptyGroup( smesh.NODE, 'nodes1' )
16 nodes1.Add( [ 289, 278, 302, 285 ] )
17
18 # Group of faces to replace nodes with new ones 
19 faces1 = mesh.CreateEmptyGroup( smesh.FACE, 'faces1' )
20 faces1.Add( [ 519, 556, 557 ] )
21
22 # Duplicate nodes
23 print "\nMesh before the first nodes duplication:"
24 print "Nodes      : ", mesh.NbNodes()
25 print "Edges      : ", mesh.NbEdges()
26 print "Triangles  : ", mesh.NbTriangles()
27
28 groupOfCreatedNodes = mesh.DoubleNodeGroup(nodes1, faces1, theMakeGroup=True)
29 print "New nodes:", groupOfCreatedNodes.GetIDs()
30
31 print "\nMesh after the first nodes duplication:"
32 print "Nodes      : ", mesh.NbNodes()
33 print "Edges      : ", mesh.NbEdges()
34 print "Triangles  : ", mesh.NbTriangles()
35
36 # With the duplication of border elements
37
38 # Edges to duplicate
39 edges = mesh.CreateEmptyGroup( smesh.EDGE, 'edges' )
40 edges.Add( [ 29, 30, 31 ] )
41
42 # Nodes not to duplicate
43 nodes2 = mesh.CreateEmptyGroup( smesh.NODE, 'nodes2' )
44 nodes2.Add( [ 32, 5 ] )
45
46 # Group of faces to replace nodes with new ones 
47 faces2 = mesh.CreateEmptyGroup( smesh.FACE, 'faces2' )
48 faces2.Add( [ 576, 578, 580 ] )
49
50 # Duplicate nodes
51 print "\nMesh before the second nodes duplication:"
52 print "Nodes      : ", mesh.NbNodes()
53 print "Edges      : ", mesh.NbEdges()
54 print "Triangles  : ", mesh.NbTriangles()
55
56 groupOfNewEdges = mesh.DoubleNodeElemGroup( edges, nodes2, faces2, theMakeGroup=True )
57 print "New edges:", groupOfNewEdges.GetIDs()
58
59 print "\nMesh after the second nodes duplication:"
60 print "Nodes      : ", mesh.NbNodes()
61 print "Edges      : ", mesh.NbEdges()
62 print "Triangles  : ", mesh.NbTriangles()
63
64 # Update object browser
65 if salome.sg.hasDesktop():
66     salome.sg.updateObjBrowser(0)