Salome HOME
Adding tests for Hybrid
[plugins/hybridplugin.git] / tests / test_cartesian_core_size.py
1 # -*- coding: utf-8 -*-
2
3
4 import sys
5 import salome
6
7 salome.salome_init()
8 theStudy = salome.myStudy
9
10 ###
11 ### GEOM component
12 ###
13
14 import GEOM
15 from salome.geom import geomBuilder
16 import math
17 import SALOMEDS
18
19
20 geompy = geomBuilder.New(theStudy)
21
22 O = geompy.MakeVertex(0, 0, 0)
23 OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
24 OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
25 OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
26 Cylinder_1 = geompy.MakeCylinderRH(100, 300)
27 geompy.addToStudy( O, 'O' )
28 geompy.addToStudy( OX, 'OX' )
29 geompy.addToStudy( OY, 'OY' )
30 geompy.addToStudy( OZ, 'OZ' )
31 geompy.addToStudy( Cylinder_1, 'Cylinder_1' )
32
33 ###
34 ### SMESH component
35 ###
36
37 import  SMESH, SALOMEDS
38 from salome.smesh import smeshBuilder
39
40 from salome.HYBRIDPlugin import HYBRIDPluginBuilder
41
42 smesh = smeshBuilder.New(theStudy)
43
44 # Hybrid mesh with hexa dominant core
45 # ===================================
46
47 Mesh_1 = smesh.Mesh(Cylinder_1)
48
49 MG_CADSurf = Mesh_1.Triangle(algo=smeshBuilder.MG_CADSurf)
50
51 MG_Hybrid = Mesh_1.Tetrahedron(algo=smeshBuilder.HYBRID)
52 MG_Hybrid_Parameters_1 = MG_Hybrid.Parameters()
53 MG_Hybrid_Parameters_1.SetElementGeneration( HYBRIDPluginBuilder.Generation_Hexa_Dominant )
54 MG_Hybrid_Parameters_1.SetHeightFirstLayer( 1 )
55 MG_Hybrid_Parameters_1.SetNbOfBoundaryLayers( 3 )
56
57 isDone = Mesh_1.Compute()
58
59 nb_hexas_1 = Mesh_1.NbHexas()
60
61 # check that hexaedra have been genereted
62 assert nb_hexas_1 > 0
63
64 # Hybrid mesh with cartesian core
65 # ===============================
66
67 Mesh_2 = smesh.Mesh(Cylinder_1)
68
69 MG_CADSurf_1 = Mesh_2.Triangle(algo=smeshBuilder.MG_CADSurf)
70
71 MG_Hybrid_1 = Mesh_2.Tetrahedron(algo=smeshBuilder.HYBRID)
72 MG_Hybrid_Parameters_2 = MG_Hybrid_1.Parameters()
73 MG_Hybrid_Parameters_2.SetElementGeneration( HYBRIDPluginBuilder.Generation_Cartesian_Core )
74 MG_Hybrid_Parameters_2.SetHeightFirstLayer( 1 )
75 MG_Hybrid_Parameters_2.SetNbOfBoundaryLayers( 3 )
76
77 isDone = Mesh_2.Compute()
78
79 nb_hexas_2 = Mesh_2.NbHexas()
80
81 # check that hexaedra have been genereted
82 assert nb_hexas_2 > 0
83
84
85 # Hybrid mesh with cartesian core with fine core elements size
86 # ============================================================
87
88 Mesh_3 = smesh.Mesh(Cylinder_1)
89
90 MG_CADSurf_1 = Mesh_3.Triangle(algo=smeshBuilder.MG_CADSurf)
91
92 MG_Hybrid_1 = Mesh_3.Tetrahedron(algo=smeshBuilder.HYBRID)
93 MG_Hybrid_Parameters_3 = MG_Hybrid_1.Parameters()
94 MG_Hybrid_Parameters_3.SetElementGeneration( HYBRIDPluginBuilder.Generation_Cartesian_Core )
95 MG_Hybrid_Parameters_3.SetHeightFirstLayer( 1 )
96 MG_Hybrid_Parameters_3.SetNbOfBoundaryLayers( 3 )
97 MG_Hybrid_Parameters_3.SetCoreSize( 10 )
98
99 isDone = Mesh_3.Compute()
100
101 nb_hexas_3 = Mesh_3.NbHexas()
102
103 # check that more hexaedra have been genereted
104 assert nb_hexas_3 > nb_hexas_2
105
106 if salome.sg.hasDesktop():
107   salome.sg.updateObjBrowser(True)