Salome HOME
Adding user documentation
[modules/smesh.git] / doc / examples / create_dual_mesh.py
1 # Creating dual Mesh
2
3
4 import sys
5 import salome
6
7 salome.salome_init()
8 import salome_notebook
9 notebook = salome_notebook.NoteBook()
10 sys.path.insert(0, r'/home/B61570/work_in_progress/dual_mesh')
11
12 ###
13 ### GEOM component
14 ###
15
16 import GEOM
17 from salome.geom import geomBuilder
18 import math
19 import SALOMEDS
20
21
22 # Creating a sphere
23 geompy = geomBuilder.New()
24
25 O = geompy.MakeVertex(0, 0, 0)
26 OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
27 OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
28 OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
29 Sphere_1 = geompy.MakeSphereR(100)
30 [geomObj_1] = geompy.ExtractShapes(Sphere_1, geompy.ShapeType["FACE"], True)
31 geompy.addToStudy( O, 'O' )
32 geompy.addToStudy( OX, 'OX' )
33 geompy.addToStudy( OY, 'OY' )
34 geompy.addToStudy( OZ, 'OZ' )
35 geompy.addToStudy( Sphere_1, 'Sphere_1' )
36
37 import  SMESH, SALOMEDS
38 from salome.smesh import smeshBuilder
39
40 smesh = smeshBuilder.New()
41
42 # Meshing sphere in Tetrahedron
43 NETGEN_3D_Parameters_1 = smesh.CreateHypothesisByAverageLength( 'NETGEN_Parameters', 'NETGENEngine', 34.641, 0 )
44 Mesh_1 = smesh.Mesh(Sphere_1,'Mesh_1')
45 status = Mesh_1.AddHypothesis( Sphere_1, NETGEN_3D_Parameters_1 )
46 NETGEN_1D_2D_3D = Mesh_1.Tetrahedron(algo=smeshBuilder.NETGEN_1D2D3D)
47 isDone = Mesh_1.Compute()
48
49
50 # Creating Dual mesh
51 dual_Mesh_1 = smesh.CreateDualMesh( Mesh_1, 'dual_Mesh_1', True)
52
53
54 assert(dual_Mesh_1.NbPolyhedrons() > 0)
55 assert(dual_Mesh_1.NbTetras() == 0)
56
57
58 if salome.sg.hasDesktop():
59   salome.sg.updateObjBrowser()