Salome HOME
bos #29171 Refactor testing procedure
[modules/smesh.git] / doc / examples / creating_meshes_ex03.py
1 # Change priority of sub-meshes in Mesh
2
3 import salome
4 salome.salome_init_without_session()
5
6 from salome.geom import geomBuilder
7 from salome.smesh import smeshBuilder
8
9 geom_builder = geomBuilder.New()
10 smesh_builder = smeshBuilder.New()
11
12 Box_1 = geom_builder.MakeBoxDXDYDZ(200, 200, 200)
13 [Face_1,Face_2,Face_3,Face_4,Face_5,Face_6] = geom_builder.SubShapeAllSorted(Box_1, geom_builder.ShapeType["FACE"])
14
15 # create Mesh object on Box shape
16 Mesh_1 = smesh_builder.Mesh(Box_1)
17
18 # assign mesh algorithms and hypotheses
19 Regular_1D = Mesh_1.Segment()
20 Nb_Segments_1 = Regular_1D.NumberOfSegments(20)
21 MEFISTO_2D = Mesh_1.Triangle()
22 Max_Element_Area_1 = MEFISTO_2D.MaxElementArea(1200)
23 Tetrahedron = Mesh_1.Tetrahedron()
24 Max_Element_Volume_1 = Tetrahedron.MaxElementVolume(40000)
25
26 # create sub-mesh and assign algorithms on Face_1
27 Regular_1D_1 = Mesh_1.Segment(geom=Face_1)
28 Nb_Segments_2 = Regular_1D_1.NumberOfSegments(4)
29 MEFISTO_2D_1 = Mesh_1.Triangle(algo=smeshBuilder.MEFISTO,geom=Face_1)
30 SubMesh_1 = MEFISTO_2D_1.GetSubMesh()
31
32 # create sub-mesh and assign algorithms on Face_2
33 Regular_1D_2 = Mesh_1.Segment(geom=Face_2)
34 Nb_Segments_3 = Regular_1D_2.NumberOfSegments(8)
35 MEFISTO_2D_2 = Mesh_1.Triangle(algo=smeshBuilder.MEFISTO,geom=Face_2)
36 SubMesh_2 = MEFISTO_2D_2.GetSubMesh()
37
38 # create sub-mesh and assign algorithms on Face_3
39 Regular_1D_3 = Mesh_1.Segment(geom=Face_3)
40 Nb_Segments_4 = Regular_1D_3.NumberOfSegments(12)
41 MEFISTO_2D_3 = Mesh_1.Triangle(algo=smeshBuilder.MEFISTO,geom=Face_3)
42 SubMesh_3 = MEFISTO_2D_3.GetSubMesh()
43
44 # check existing sub-mesh priority order
45 [ [ SubMesh_1, SubMesh_3, SubMesh_2 ] ] = Mesh_1.GetMeshOrder()
46 isDone = Mesh_1.Compute()
47 print("Nb elements at initial order of sub-meshes:", Mesh_1.NbElements())
48
49 # set new sub-mesh order
50 isDone = Mesh_1.SetMeshOrder( [ [ SubMesh_1, SubMesh_2, SubMesh_3 ] ])
51 # compute mesh
52 isDone = Mesh_1.Compute()
53 print("Nb elements at new order of sub-meshes:", Mesh_1.NbElements())
54
55 # compute with other sub-mesh order
56 isDone = Mesh_1.SetMeshOrder( [ [ SubMesh_2, SubMesh_1, SubMesh_3 ] ])
57 isDone = Mesh_1.Compute()
58 print("Nb elements at another order of sub-meshes:", Mesh_1.NbElements())