1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2014-2021 EDF R&D
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License, or (at your option) any later version.
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 """Lancement des cas-tests de blocFissure"""
26 from blocFissure import gmu
27 from blocFissure.gmu import initLog
28 from blocFissure.gmu import geomsmesh
29 from blocFissure.gmu.casStandard import casStandard
31 # -----------------------------------------------------------------------------------------------
35 #initLog.setPerfTests()
37 # ---tous les cas en séquence, ou les cas sélectionnés ...
38 TORUNOK = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0] # OK
39 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28
43 TORUN = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
44 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28
48 TORUNPB.append((IAUX+1)%2)
49 print ("TORUN = {} # OK".format(TORUNOK))
50 print ("TORUN = {} # PB".format(TORUNPB))
52 TORUN = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0] # aucun
53 TORUN = [ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # cubeAngle
54 TORUN = [ 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # cubeFin
55 TORUN = [ 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # decoupeCylindre
56 TORUN = [ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # disque_perce + ellipse_disque
57 TORUN = [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # ellipse + fissureGauche2
58 TORUN = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # ellipse_probleme + fissureGauche2
59 TORUN = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # eprouvetteCourbe
60 TORUN = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # eprouvetteDroite
61 TORUN = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # fissureGauche + fissureGauche2
62 TORUN = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0] # vis
63 TORUN = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1] # tube
64 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28
65 TORUN = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0] # OK
66 # -----------------------------------------------------------------------------------------------
68 def caract_l_problemes ():
69 """Caractérisation des problèmes"""
74 # genereMateriel : cubeAngle
75 from blocFissure.CasTests.cubeAngle import cubeAngle
76 l_problemes.append(cubeAngle(n_cas))
79 # genereMateriel : cubeAngle
80 from blocFissure.CasTests.cubeAngle2 import cubeAngle2
81 l_problemes.append(cubeAngle2(n_cas))
84 # genereMateriel : cubeFin
85 from blocFissure.CasTests import cubeCoin
86 l_problemes.append(casStandard(cubeCoin.dicoParams, cubeCoin.referencesMaillageFissure, n_cas))
87 d_aux[n_cas] = "cubeCoin"
90 # genereMateriel : cubeFin
91 from blocFissure.CasTests import cubeMilieu
92 l_problemes.append(casStandard(cubeMilieu.dicoParams, cubeMilieu.referencesMaillageFissure, n_cas))
93 d_aux[n_cas] = "cubeMilieu"
96 # genereMateriel : cubeFin
97 from blocFissure.CasTests import cubeTransverse
98 l_problemes.append(casStandard(cubeTransverse.dicoParams, cubeTransverse.referencesMaillageFissure, n_cas))
99 d_aux[n_cas] = "cubeTransverse"
102 # genereMateriel : decoupeCylindre
103 from blocFissure.CasTests.cylindre import cylindre
104 l_problemes.append(cylindre(n_cas))
107 # genereMateriel : decoupeCylindre
108 from blocFissure.CasTests.cylindre_2 import cylindre_2
109 l_problemes.append(cylindre_2(n_cas))
112 # genereMateriel : disque_perce
113 # genereMateriel : ellipse_disque
114 from blocFissure.CasTests import disquePerce
115 l_problemes.append(casStandard(disquePerce.dicoParams, disquePerce.referencesMaillageFissure, n_cas))
116 d_aux[n_cas] = "disquePerce"
119 # genereMateriel: ellipse
120 # genereMateriel : fissureGauche2
121 from blocFissure.CasTests.ellipse_1 import ellipse_1
122 l_problemes.append(ellipse_1(n_cas))
125 # genereMateriel: ellipse_probleme
126 # genereMateriel : fissureGauche2
127 from blocFissure.CasTests.ellipse_2 import ellipse_2
128 l_problemes.append(ellipse_2(n_cas))
131 # genereMateriel : eprouvetteCourbe
132 from blocFissure.CasTests.eprouvetteCourbe import eprouvetteCourbe
133 l_problemes.append(eprouvetteCourbe(n_cas))
136 # genereMateriel : eprouvetteDroite
137 from blocFissure.CasTests.eprouvetteDroite import eprouvetteDroite
138 l_problemes.append(eprouvetteDroite(n_cas))
141 # genereMateriel : eprouvetteDroite
142 from blocFissure.CasTests.eprouvetteDroite_2 import eprouvetteDroite_2
143 l_problemes.append(eprouvetteDroite_2(n_cas))
146 # genereMateriel : fissureGauche
147 # genereMateriel : fissureGauche2
148 from blocFissure.CasTests.faceGauche import faceGauche
149 l_problemes.append(faceGauche(n_cas))
152 # genereMateriel : aucun
153 from blocFissure.CasTests.faceGauche_2 import faceGauche_2
154 l_problemes.append(faceGauche_2(n_cas))
155 #"boiteDefaut" has not been computed:
156 #- "algo3d_boiteDefaut" failed. Error: Algorithm failed. Presumably, the surface mesh is not compatible with the domain being processed (warning).
157 #An edge is unique (i.e., bounds a hole in the surface).
158 #The surface mesh includes at least one hole. The domain is not well defined.
159 #See /tmp/GHS3D_18605_10269264.log for more information
160 #Traceback (most recent call last):
161 #File "/home/D68518/salome-dev/DEV_package/appli_DEV_package/lib/python3.6/site-packages/salome/blocFissure/CasTests/execution_Cas.py", line 222, in <module>
162 #ok_maillage = cas.executeProbleme()
163 #File "/home/D68518/salome-dev/DEV_package/appli_DEV_package/lib/python3.6/site-packages/salome/blocFissure/gmu/fissureGenerique.py", line 122, in executeProbleme
164 #self.maillageFissureParams, elementsDefaut, step)
165 #File "/home/D68518/salome-dev/DEV_package/appli_DEV_package/lib/python3.6/site-packages/salome/blocFissure/CasTests/faceGauche_2.py", line 108, in genereMaillageFissure
166 #maillageFissureParams, elementsDefaut, step)
167 #File "/home/D68518/salome-dev/DEV_package/appli_DEV_package/lib/python3.6/site-packages/salome/blocFissure/gmu/construitFissureGenerale.py", line 330, in construitFissureGenerale
168 #raise Exception(text)
169 #Exception: Erreur au calcul du maillage.
172 # genereMateriel : aucun
173 from blocFissure.CasTests.fissureCoude_1 import fissureCoude_1
174 l_problemes.append(fissureCoude_1(n_cas))
177 # genereMateriel : aucun
178 from blocFissure.CasTests.fissureCoude_2 import fissureCoude_2
179 l_problemes.append(fissureCoude_2(n_cas))
182 # genereMateriel : aucun
183 from blocFissure.CasTests.fissureCoude_3 import fissureCoude_3
184 l_problemes.append(fissureCoude_3(n_cas))
187 # genereMateriel : aucun
188 from blocFissure.CasTests.fissureCoude_4 import fissureCoude_4
189 l_problemes.append(fissureCoude_4(n_cas))
192 # genereMateriel : aucun
193 from blocFissure.CasTests.fissureCoude_5 import fissureCoude_5
194 l_problemes.append(fissureCoude_5(n_cas))
197 # genereMateriel : aucun
198 from blocFissure.CasTests.fissureCoude_6 import fissureCoude_6
199 l_problemes.append(fissureCoude_6(n_cas))
202 # genereMateriel : aucun
203 from blocFissure.CasTests.fissureCoude_7 import fissureCoude_7
204 l_problemes.append(fissureCoude_7(n_cas))
207 # genereMateriel : aucun
208 from blocFissure.CasTests.fissureCoude_8 import fissureCoude_8
209 l_problemes.append(fissureCoude_8(n_cas))
212 # genereMateriel : aucun
213 from blocFissure.CasTests.fissureCoude_9 import fissureCoude_9
214 l_problemes.append(fissureCoude_9(n_cas))
217 # genereMateriel : aucun
218 from blocFissure.CasTests.fissureCoude_10 import fissureCoude_10
219 l_problemes.append(fissureCoude_10(n_cas))
222 # genereMateriel : aucun
223 from blocFissure.CasTests.fissure_Coude import fissure_Coude
224 l_problemes.append(fissure_Coude(n_cas))
225 #"Mesh_366" has not been computed:
226 #- global 1D algorithm is missing
227 #File "/home/D68518/salome-dev/DEV_package/appli_DEV_package/lib/python3.6/site-packages/salome/blocFissure/CasTests/execution_Cas.py", line 274, in calcul_cas
228 #ok_maillage = cas.executeProbleme()
229 #File "/home/D68518/salome-dev/DEV_package/appli_DEV_package/lib/python3.6/site-packages/salome/blocFissure/gmu/fissureGenerique.py", line 137, in executeProbleme
230 #elementsDefaut, step, mailleur)
231 #File "/home/D68518/salome-dev/DEV_package/appli_DEV_package/lib/python3.6/site-packages/salome/blocFissure/CasTests/fissure_Coude.py", line 513, in genereMaillageFissure
233 #File "/home/D68518/salome-dev/DEV_package/appli_DEV_package/lib/python3.6/site-packages/salome/blocFissure/gmu/insereFissureLongue.py", line 435, in insereFissureLongue
235 #File "/home/D68518/salome-dev/DEV_package/appli_DEV_package/lib/python3.6/site-packages/salome/blocFissure/gmu/insereFissureLongue_c.py", line 82, in insereFissureLongue_c
236 #raise Exception(text)
239 # genereMateriel : aucun
240 from blocFissure.CasTests.fissure_Coude_4 import fissure_Coude_4
241 l_problemes.append(fissure_Coude_4(n_cas))
242 #"Mesh_375" has not been computed:
243 #- global 1D algorithm is missing
244 #File "/home/D68518/salome-dev/DEV_package/appli_DEV_package/lib/python3.6/site-packages/salome/blocFissure/CasTests/execution_Cas.py", line 274, in calcul_cas
245 #ok_maillage = cas.executeProbleme()
246 #File "/home/D68518/salome-dev/DEV_package/appli_DEV_package/lib/python3.6/site-packages/salome/blocFissure/gmu/fissureGenerique.py", line 137, in executeProbleme
247 #elementsDefaut, step, mailleur)
248 #File "/home/D68518/salome-dev/DEV_package/appli_DEV_package/lib/python3.6/site-packages/salome/blocFissure/CasTests/fissure_Coude.py", line 513, in genereMaillageFissure
250 #File "/home/D68518/salome-dev/DEV_package/appli_DEV_package/lib/python3.6/site-packages/salome/blocFissure/gmu/insereFissureLongue.py", line 435, in insereFissureLongue
252 #File "/home/D68518/salome-dev/DEV_package/appli_DEV_package/lib/python3.6/site-packages/salome/blocFissure/gmu/insereFissureLongue_c.py", line 82, in insereFissureLongue_c
253 #raise Exception(text)
256 # genereMateriel : vis
257 from blocFissure.CasTests.vis_1 import vis_1
258 l_problemes.append(vis_1(n_cas))
259 #"Mesh_22" has not been computed:
260 #- "algo2d_faceFiss" failed on FACE #2. Error: Algorithm failed. NgException at Surface meshing: Problem in Surface mesh generation
261 #- "algo1d_edgeFissPeau" failed on EDGE #9. Error: Algorithm failed. Source elements don't cover totally the geometrical edge
262 #Traceback (most recent call last):
263 #File "/home/D68518/salome-dev/DEV_package/appli_DEV_package/lib/python3.6/site-packages/salome/blocFissure/CasTests/execution_Cas.py", line 233, in <module>
264 #ok_maillage = cas.executeProbleme()
265 #File "/home/D68518/salome-dev/DEV_package/appli_DEV_package/lib/python3.6/site-packages/salome/blocFissure/gmu/fissureGenerique.py", line 122, in executeProbleme
266 #self.maillageFissureParams, elementsDefaut, step)
267 #File "/home/D68518/salome-dev/DEV_package/appli_DEV_package/lib/python3.6/site-packages/salome/blocFissure/CasTests/vis_1.py", line 116, in genereMaillageFissure
268 #maillageFissureParams, elementsDefaut, step)
269 #File "/home/D68518/salome-dev/DEV_package/appli_DEV_package/lib/python3.6/site-packages/salome/blocFissure/gmu/construitFissureGenerale.py", line 282, in construitFissureGenerale
270 #meshPipeGroups, areteFaceFissure, rayonPipe, nbsegRad)
271 #File "/home/D68518/salome-dev/DEV_package/appli_DEV_package/lib/python3.6/site-packages/salome/blocFissure/gmu/mailleFacesFissure.py", line 69, in mailleFacesFissure
272 #raise Exception(text)
273 #Exception: Erreur au calcul du maillage.
276 # genereMateriel : tube
277 from blocFissure.CasTests.tube import tube
278 l_problemes.append(tube(n_cas))
279 #"Mesh_13" has not been computed:
280 #- "algo2d_facePeau_0" failed on "FACE_12 to mesh". Error: Algorithm failed. NgException at Surface meshing: Problem in Surface mesh generation
281 #- "algo1d_cercle1_0" failed on EDGE #20. Error: Algorithm failed. Source elements don't cover totally the geometrical edge
282 #- "algo1d_cercle1_0" failed on EDGE #17. Error: Algorithm failed. Source elements don't cover totally the geometrical edge
283 #- "algo1d_cercle1_0" failed on EDGE #15. Error: Algorithm failed. Source elements don't cover totally the geometrical edge
284 #- "algo1d_cercle1_0" failed on EDGE #12. Error: Algorithm failed. Source elements don't cover totally the geometrical edge
286 return l_problemes, d_aux
287 #=============================================================
288 def calcul_cas (n_cas, cas, d_aux, ligne):
289 """Calcul d'un cas"""
294 nom = cas.nomProbleme
295 texte_a = "\n=== Exécution du cas n° {}, '{}'".format(n_cas,nom)
296 logging.critical(ligne+texte_a)
298 ok_maillage = cas.executeProbleme()
300 traceback.print_exc()
301 texte = "Problème avec le cas n° {}, '{}'\n".format(n_cas,nom)
304 return ok_maillage, texte
305 #=============================================================
306 def calcul_tout (l_problemes, d_aux):
307 """Calcul de tous les cas"""
309 ligne = "---------------------------------------------------------------------"
313 for n_cas, cas in enumerate(l_problemes):
314 #print ("Cas n° {}, '{}'".format(n_cas,cas.nomProbleme))
316 ok_maillage, texte_a = calcul_cas (n_cas, cas, d_aux, ligne)
324 nb_cas = nb_cas_nook + nb_cas_ok
327 texte += ". Nombre de cas_tests OK : {}\n".format(nb_cas_ok)
328 texte += ". Nombre de cas_tests NOOK : {}\n".format(nb_cas_nook)
330 texte += "Les {} tests se sont bien passés.\n".format(nb_cas)
334 #=============================================================
335 #=============================================================
339 L_PROBLEMES, D_AUX = caract_l_problemes()
341 if ( len(L_PROBLEMES) != len(TORUN) ):
342 TEXTE = "\nNombre de problèmes définis : {}\n".format(len(L_PROBLEMES))
343 TEXTE += "Longueur de la liste 'TORUN' : {}\n".format(len(TORUN))
344 TEXTE += "\t==> Incohérence de programmation à corriger dans {}".format(__name__)
348 calcul_tout (L_PROBLEMES, D_AUX)