Salome HOME
Update copyrights
[plugins/ghs3dplugin.git] / doc / salome / examples / ghs3d_optimization.py
1 import salome
2 salome.salome_init()
3
4 from salome.geom import geomBuilder
5 geompy = geomBuilder.New(salome.myStudy)
6
7 from salome.smesh import smeshBuilder
8 smesh =  smeshBuilder.New(salome.myStudy)
9
10 # create a disk
11 disk = geompy.MakeDiskR(100., 1, theName="disk")
12
13 # triangulate the disk
14 mesh = smesh.Mesh( disk )
15 cadsurf = mesh.Triangle( smeshBuilder.MG_CADSurf )
16 cadsurf.SetQuadAllowed( True )
17 mesh.Compute()
18
19 # extrude the 2D mesh into a prismatic mesh
20 mesh.ExtrusionSweepObject( mesh, [0,0,10], 7 )
21
22 # split prisms into tetrahedra
23 mesh.SplitVolumesIntoTetra( mesh )
24
25 # copy the mesh into a new mesh, since only a mesh not based of geometry
26 # can be optimized using MG-Tetra Optimization
27 optMesh = smesh.CopyMesh( mesh, "optimization" )
28
29 # add MG-Tetra Optimization
30 mg_opt = optMesh.Tetrahedron( smeshBuilder.MG_Tetra_Optimization )
31 mg_opt.SetSmoothOffSlivers( True )
32 mg_opt.SetOptimizationLevel( smeshBuilder.Strong_Optimization )
33
34 # run optimization
35 optMesh.Compute()
36
37 print("Nb tetra before optimization", mesh.NbTetras())
38 print("Nb tetra after  optimization", optMesh.NbTetras())
39
40 # End of script
41