Salome HOME
Merge from V6_main 01/04/2013
[modules/smesh.git] / doc / salome / examples / creating_meshes_ex03.py
1 # Change priority of submeshes in Mesh
2
3 import salome
4 import geompy
5 import smesh
6 import SMESH
7
8 Box_1 = geompy.MakeBoxDXDYDZ(200, 200, 200)
9 [Face_1,Face_2,Face_3,Face_4,Face_5,Face_6] = geompy.SubShapeAllSorted(Box_1, geompy.ShapeType["FACE"])
10
11 # create Mesh object on Box shape
12 Mesh_1 = smesh.Mesh(Box_1)
13
14 # assign mesh algorithms
15 Regular_1D = Mesh_1.Segment()
16 Nb_Segments_1 = Regular_1D.NumberOfSegments(20)
17 Nb_Segments_1.SetDistrType( 0 )
18 MEFISTO_2D = Mesh_1.Triangle()
19 Max_Element_Area_1 = MEFISTO_2D.MaxElementArea(1200)
20 Tetrahedron = Mesh_1.Tetrahedron()
21 Max_Element_Volume_1 = Tetrahedron.MaxElementVolume(40000)
22
23 # create submesh and assign algorithms on Face_1
24 Regular_1D_1 = Mesh_1.Segment(geom=Face_1)
25 Nb_Segments_2 = Regular_1D_1.NumberOfSegments(4)
26 Nb_Segments_2.SetDistrType( 0 )
27 MEFISTO_2D_1 = Mesh_1.Triangle(algo=smesh.MEFISTO,geom=Face_1)
28 Length_From_Edges_2D = MEFISTO_2D_1.LengthFromEdges()
29 SubMesh_1 = MEFISTO_2D_1.GetSubMesh()
30
31 # create submesh and assign algorithms on Face_2
32 Regular_1D_2 = Mesh_1.Segment(geom=Face_2)
33 Nb_Segments_3 = Regular_1D_2.NumberOfSegments(8)
34 Nb_Segments_3.SetDistrType( 0 )
35 MEFISTO_2D_2 = Mesh_1.Triangle(algo=smesh.MEFISTO,geom=Face_2)
36 Length_From_Edges_2D_1 = MEFISTO_2D_2.LengthFromEdges()
37 SubMesh_2 = MEFISTO_2D_2.GetSubMesh()
38
39 # create submesh and assign algorithms on Face_3
40 Regular_1D_3 = Mesh_1.Segment(geom=Face_3)
41 Nb_Segments_4 = Regular_1D_3.NumberOfSegments(12)
42 Nb_Segments_4.SetDistrType( 0 )
43 MEFISTO_2D_3 = Mesh_1.Triangle(algo=smesh.MEFISTO,geom=Face_3)
44 Length_From_Edges_2D_2 = MEFISTO_2D_3.LengthFromEdges()
45 SubMesh_3 = MEFISTO_2D_3.GetSubMesh()
46
47 # check exisiting submesh priority order
48 [ [ SubMesh_1, SubMesh_3, SubMesh_2 ] ] = Mesh_1.GetMeshOrder()
49 # set new submesh order
50 isDone = Mesh_1.SetMeshOrder( [ [ SubMesh_1, SubMesh_2, SubMesh_3 ] ])
51 # compute mesh
52 isDone = Mesh_1.Compute()
53
54 # clear mesh result and compute with other submesh order
55 Mesh_1.Clear()
56 isDone = Mesh_1.SetMeshOrder( [ [ SubMesh_2, SubMesh_1, SubMesh_3 ] ])
57 isDone = Mesh_1.Compute()