2 # -*- coding: utf-8 -*-
5 Checks the availability of the external plugins :
8 3 MG-CADSURF (BLSURFPLUGIN)
9 4 MG-TETRA (GHS3DPLUGIN)
10 5 MG-HEXA (HEXOTICPLUGIN)
11 6 MG-HYBRID (HYBRIDPLUGIN)
12 Copyright EDF R&D 2017
16 # Computation of the meshes: T/F
22 salome.salome_init_without_session()
23 theStudy = salome.myStudy
26 IPAR = iparameters.IParameters(salome.myStudy.GetCommonParameters("Interface Applicative", 1))
28 # fill list AP_MODULES_LIST
29 IPAR.append("AP_MODULES_LIST", "Geometry")
30 IPAR.append("AP_MODULES_LIST", "Mesh")
41 from salome.geom import geomBuilder
42 geompy = geomBuilder.New()
43 O = geompy.MakeVertex(0, 0, 0, "0")
44 OX = geompy.MakeVectorDXDYDZ(1, 0, 0, "OX")
45 OY = geompy.MakeVectorDXDYDZ(0, 1, 0, "OY")
46 OZ = geompy.MakeVectorDXDYDZ(0, 0, 1, "OZ")
47 BOX = geompy.MakeBoxDXDYDZ(200, 200, 200, "BOX")
50 ### B. SMESH component
54 from salome.smesh import smeshBuilder
56 smesh = smeshBuilder.New()
59 TEXTE = "NETGEN_1D2D3D"
60 MESH_1 = smesh.Mesh(BOX)
61 smesh.SetName(MESH_1.GetMesh(), "M_"+TEXTE)
63 NETGEN_2D3D = MESH_1.Tetrahedron(algo=smeshBuilder.NETGEN_1D2D3D)
65 MESSAGE += "\nImpossible d'utiliser "+TEXTE
69 smesh.SetName(NETGEN_2D3D.GetAlgorithm(), TEXTE)
70 OK_COMPUTE = MESH_1.Compute()
72 MESSAGE += "\nErreur avec "+TEXTE
78 # GMSH for windows not yet implemented BOS #18709
79 if platform.system() != "Windows" :
81 MESH_2 = smesh.Mesh(BOX)
82 smesh.SetName(MESH_2.GetMesh(), "M_"+TEXTE)
84 GMSH = MESH_2.Tetrahedron(algo=smeshBuilder.GMSH)
86 MESSAGE += "\nImpossible d'utiliser "+TEXTE
90 smesh.SetName(GMSH.GetAlgorithm(), TEXTE)
91 OK_COMPUTE = MESH_2.Compute()
93 MESSAGE += "\nErreur avec "+TEXTE
98 print("Skipping B.2 on windows")
102 MESH_3 = smesh.Mesh(BOX)
103 smesh.SetName(MESH_3.GetMesh(), "M_"+TEXTE)
105 MG_CADSurf = MESH_3.Triangle(algo=smeshBuilder.MG_CADSurf)
107 MESSAGE += "\nImpossible d'utiliser "+TEXTE
109 # On arrete tout en cas de problème car les suivants en dépendent
113 smesh.SetName(MG_CADSurf.GetAlgorithm(), TEXTE)
114 OK_COMPUTE = MESH_3.Compute()
116 MESSAGE += "\nErreur avec "+TEXTE
123 MESH_4 = smesh.Mesh(BOX)
124 smesh.SetName(MESH_4.GetMesh(), "M_"+TEXTE)
125 MG_CADSurf_Te = MESH_4.Triangle(algo=smeshBuilder.MG_CADSurf)
127 MG_Tetra = MESH_4.Tetrahedron(algo=smeshBuilder.MG_Tetra)
129 MESSAGE += "\nImpossible d'utiliser "+TEXTE
133 smesh.SetName(MG_Tetra.GetAlgorithm(), TEXTE)
134 OK_COMPUTE = MESH_4.Compute()
136 MESSAGE += "\nErreur avec "+TEXTE
143 MESH_5 = smesh.Mesh(BOX)
144 smesh.SetName(MESH_5.GetMesh(), "M_"+TEXTE)
145 MG_CADSurf_He = MESH_5.Triangle(algo=smeshBuilder.MG_CADSurf)
147 MG_Hexa = MESH_5.Hexahedron(algo=smeshBuilder.MG_Hexa)
149 MESSAGE += "\nImpossible d'utiliser "+TEXTE
153 smesh.SetName(MG_Hexa.GetAlgorithm(), TEXTE)
154 OK_COMPUTE = MESH_5.Compute()
156 MESSAGE += "\nErreur avec "+TEXTE
163 MESH_6 = smesh.Mesh(BOX)
164 smesh.SetName(MESH_6.GetMesh(), "M_"+TEXTE)
165 MG_CADSurf_Hy = MESH_6.Triangle(algo=smeshBuilder.MG_CADSurf)
167 MG_Hybrid = MESH_6.Tetrahedron(algo=smeshBuilder.HYBRID)
169 MESSAGE += "\nImpossible d'utiliser "+TEXTE
173 smesh.SetName(MG_Hybrid.GetAlgorithm(), TEXTE)
174 OK_COMPUTE = MESH_6.Compute()
176 MESSAGE += "\nErreur avec "+TEXTE
187 raise Exception("\n\nNombre d'erreurs : %d" % ERROR + MESSAGE + "\n")
189 print("\nAucun problème\n")