Salome HOME
bos #17015 [CEA 17008] Body fitting with Viscous Layers for CFD meshing
[modules/smesh.git] / doc / examples / transforming_meshes_ex07.py
1 # Sew Meshes Border to Side
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 # create two faces of a box
13 box1 = geom_builder.MakeBox(0., 0., -10., 30., 20., 25.)
14 facesList1 = geom_builder.SubShapeAll(box1, geom_builder.ShapeType["FACE"])
15 face1 = facesList1[2]
16
17 box2 = geom_builder.MakeBox(0., 5., 0., 20., 20., 15.)
18 facesList2 = geom_builder.SubShapeAll(box2, geom_builder.ShapeType["FACE"])
19 face2 = facesList2[1]
20
21 edgesList = geom_builder.SubShapeAll(face2, geom_builder.ShapeType["EDGE"])
22 edge1 = edgesList[2]
23
24 aComp = geom_builder.MakeCompound([face1, face2])
25 geom_builder.addToStudy(aComp, "Two faces")
26
27 # create a mesh on two faces
28 mesh = smesh_builder.Mesh(aComp, "Two faces : quadrangle mesh")
29
30 algo1D = mesh.Segment()
31 algo1D.NumberOfSegments(9)
32 algo2D = mesh.Quadrangle()
33
34 algo_local = mesh.Segment(edge1)
35 algo_local.Arithmetic1D(1, 4)
36 algo_local.Propagation()
37
38 if not mesh.Compute(): raise Exception("Error when computing Mesh")
39
40 # sew border to side
41 # FirstNodeIDOnFreeBorder, SecondNodeIDOnFreeBorder, LastNodeIDOnFreeBorder,
42 # FirstNodeIDOnSide, LastNodeIDOnSide,
43 # CreatePolygons, CreatePolyedrs
44 mesh.SewBorderToSide(5, 45, 6, 113, 109, 0, 0)