Salome HOME
0022108: EDF 2547 SMESH: Duplicate elements only
[modules/smesh.git] / doc / salome / examples / cartesian_algo.py
1 # Usage of Body Fitting algorithm
2
3
4 import salome
5 salome.salome_init()
6 import GEOM
7 from salome.geom import geomBuilder
8 geompy = geomBuilder.New(salome.myStudy)
9
10 import SMESH, SALOMEDS
11 from salome.smesh import smeshBuilder
12 smesh =  smeshBuilder.New(salome.myStudy)
13 import salome_notebook
14
15
16 # create a sphere
17 sphere = geompy.MakeSphereR( 50 )
18 geompy.addToStudy( sphere, "sphere" )
19
20 # create a mesh and assign a "Body Fitting" algo
21 mesh = smesh.Mesh( sphere )
22 cartAlgo = mesh.BodyFitted()
23
24 # define a cartesian grid using Coordinates
25 coords = range(-100,100,10)
26 cartHyp = cartAlgo.SetGrid( coords,coords,coords, 1000000)
27
28 # compute the mesh
29 mesh.Compute()
30 print "nb hexahedra",mesh.NbHexas()
31 print "nb tetrahedra",mesh.NbTetras()
32 print "nb polyhedra",mesh.NbPolyhedrons()
33 print
34
35 # define the grid by setting constant spacing
36 cartHyp = cartAlgo.SetGrid( "10","10","10", 1000000)
37
38 mesh.Compute()
39 print "nb hexahedra",mesh.NbHexas()
40 print "nb tetrahedra",mesh.NbTetras()
41 print "nb polyhedra",mesh.NbPolyhedrons()
42
43
44 # define the grid by setting different spacing in 2 sub-ranges of geometry
45 spaceFuns = ["5","10+10*t"]
46 cartAlgo.SetGrid( [spaceFuns, [0.5]], [spaceFuns, [0.5]], [spaceFuns, [0.25]], 10 )
47
48 mesh.Compute()
49 print "nb hexahedra",mesh.NbHexas()
50 print "nb tetrahedra",mesh.NbTetras()
51 print "nb polyhedra",mesh.NbPolyhedrons()
52 print