1 # -*- coding: utf-8 -*-
8 theStudy = salome.myStudy
15 from salome.geom import geomBuilder
20 geompy = geomBuilder.New(theStudy)
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' )
37 import SMESH, SALOMEDS
38 from salome.smesh import smeshBuilder
40 from salome.HYBRIDPlugin import HYBRIDPluginBuilder
42 smesh = smeshBuilder.New(theStudy)
44 # Hybrid mesh with hexa dominant core
45 # ===================================
47 Mesh_1 = smesh.Mesh(Cylinder_1)
49 MG_CADSurf = Mesh_1.Triangle(algo=smeshBuilder.MG_CADSurf)
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 )
57 isDone = Mesh_1.Compute()
59 nb_hexas_1 = Mesh_1.NbHexas()
61 # check that hexaedra have been genereted
64 # Hybrid mesh with cartesian core
65 # ===============================
67 Mesh_2 = smesh.Mesh(Cylinder_1)
69 MG_CADSurf_1 = Mesh_2.Triangle(algo=smeshBuilder.MG_CADSurf)
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 )
77 isDone = Mesh_2.Compute()
79 nb_hexas_2 = Mesh_2.NbHexas()
81 # check that hexaedra have been genereted
85 # Hybrid mesh with cartesian core with fine core elements size
86 # ============================================================
88 Mesh_3 = smesh.Mesh(Cylinder_1)
90 MG_CADSurf_1 = Mesh_3.Triangle(algo=smeshBuilder.MG_CADSurf)
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 )
99 isDone = Mesh_3.Compute()
101 nb_hexas_3 = Mesh_3.NbHexas()
103 # check that more hexaedra have been genereted
104 assert nb_hexas_3 > nb_hexas_2
106 if salome.sg.hasDesktop():
107 salome.sg.updateObjBrowser(True)