]> SALOME platform Git repositories - plugins/hybridplugin.git/blob - tests/mg_hybrid_pyramids.py
Salome HOME
Update tests for python 3 + remove study
[plugins/hybridplugin.git] / tests / mg_hybrid_pyramids.py
1 # -*- coding: utf-8 -*-
2
3
4 import sys
5 import salome
6
7 salome.salome_init()
8
9 ###
10 ### GEOM component
11 ###
12
13 import GEOM
14 from salome.geom import geomBuilder
15 import math
16 import SALOMEDS
17
18
19 geompy = geomBuilder.New()
20
21 box_side = 200
22
23 O = geompy.MakeVertex(0, 0, 0)
24 OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
25 OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
26 OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
27 Box_1 = geompy.MakeBoxDXDYDZ(box_side, box_side, box_side)
28 geompy.addToStudy( O, 'O' )
29 geompy.addToStudy( OX, 'OX' )
30 geompy.addToStudy( OY, 'OY' )
31 geompy.addToStudy( OZ, 'OZ' )
32 geompy.addToStudy( Box_1, 'Box_1' )
33
34 ###
35 ### SMESH component
36 ###
37
38 import  SMESH, SALOMEDS
39 from salome.smesh import smeshBuilder
40
41 smesh = smeshBuilder.New()
42 Mesh_1 = smesh.Mesh(Box_1)
43 MG_CADSurf = Mesh_1.Triangle(algo=smeshBuilder.MG_CADSurf)
44 MG_CADSurf_Parameters_1 = MG_CADSurf.Parameters()
45 MG_CADSurf_Parameters_1.SetPhySize( 10 )
46 MG_CADSurf_Parameters_1.SetMinSize( 0.34641 )
47 MG_CADSurf_Parameters_1.SetMaxSize( 69.282 )
48
49 isDone = Mesh_1.Compute()
50
51 # Copy the skin mesh
52 Mesh_2 = smesh.CopyMesh( Mesh_1, 'Mesh_2', 0, 0)
53
54 # Add hybrid
55 HYBRID_3D = Mesh_1.Tetrahedron(algo=smeshBuilder.HYBRID)
56 MG_Hybrid_Parameters_1 = HYBRID_3D.Parameters()
57 MG_Hybrid_Parameters_1.SetElementGeneration( 1 )
58 MG_Hybrid_Parameters_1.SetHeightFirstLayer( 1 )
59 MG_Hybrid_Parameters_1.SetNbOfBoundaryLayers( 3 )
60
61 # Compute mesh on CAD
62 # ===================
63 isDone = Mesh_1.Compute()
64
65 # Check volume
66 vol_mesh_1 = smesh.GetVolume(Mesh_1)
67 vol_box = box_side**3
68 assert abs(vol_mesh_1-vol_box)/vol_box < 1e-4
69
70 # Check number of pyramids
71 assert Mesh_1.NbPyramids() > 1000
72
73 # Add hybrid to skin mesh
74 HYBRID_3D_1 = Mesh_2.Tetrahedron(algo=smeshBuilder.HYBRID,geom=None)
75 status = Mesh_2.AddHypothesis(MG_Hybrid_Parameters_1,None)
76
77 # Compute mesh without CAD
78 # ========================
79 isDone = Mesh_2.Compute()
80
81 # Check volume
82 vol_mesh_2 = smesh.GetVolume(Mesh_2)
83 vol_box = box_side**3
84 assert abs(vol_mesh_2-vol_box)/vol_box < 1e-4
85
86 # Check number of pyramids
87 assert Mesh_2.NbPyramids() > 1000
88