X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FTools%2FblocFissure%2Fgmu%2FgetStatsMaillageFissure.py;h=76330251feb2077db53a470dc9357b29915ea39b;hp=49a93052fc81a71cc91947d8557b24dc60aafc38;hb=d9f4b53e489dd5857db264ede6acded7b076c9f1;hpb=ff873c8b10f4cc15316f4ee7e1331ec1b4e0c1ab diff --git a/src/Tools/blocFissure/gmu/getStatsMaillageFissure.py b/src/Tools/blocFissure/gmu/getStatsMaillageFissure.py old mode 100644 new mode 100755 index 49a93052f..76330251f --- a/src/Tools/blocFissure/gmu/getStatsMaillageFissure.py +++ b/src/Tools/blocFissure/gmu/getStatsMaillageFissure.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2014-2021 EDF R&D +# Copyright (C) 2014-2022 EDF R&D # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -21,8 +21,6 @@ import os import logging -import SMESH - def getStatsMaillageFissure(maillage, referencesMaillageFissure, maillageFissureParams): """"Statistiques maillage""" @@ -50,10 +48,10 @@ def getStatsMaillageFissure(maillage, referencesMaillageFissure, maillageFissure text_2 = "" ok_maillage = True - with open(fichierStatMaillageFissure, "w") as fic_stat : + with open(fichierStatMaillageFissure, "w", encoding='utf-8') as fic_stat : - # Le nombre d'arêtes, de quadrangles ou d'hexaèdres doit être rigoureusement identique - for key in ('Entity_Quad_Edge', 'Entity_Quad_Quadrangle', 'Entity_Quad_Hexa'): + # Le nombre de quadrangles ou d'hexaèdres doit être rigoureusement identique + for key in ('Entity_Quad_Quadrangle', 'Entity_Quad_Hexa'): if d_resu[key] != referencesMaillageFissure[key]: text = "Ecart" ok_maillage = False @@ -64,12 +62,14 @@ def getStatsMaillageFissure(maillage, referencesMaillageFissure, maillageFissure fic_stat.write(text+"\n") text_2 += " {} = {}, \\\n".format(key,d_resu[key]) - # Le nombre de noeuds, de triangles, de tétarèdres ou de pyramides peut varier du fait des algorithmes. On tolère 1% d'écart. - tolerance = 0.01 - for key in ('Entity_Node', 'Entity_Quad_Triangle', 'Entity_Quad_Tetra', 'Entity_Quad_Pyramid', 'Entity_Quad_Penta'): - if (d_resu[key] < (1.0 - tolerance)*referencesMaillageFissure[key]) \ - or (d_resu[key] > (1.0 + tolerance)*referencesMaillageFissure[key]): - text = "Ecart" + # Le nombre de noeuds, d'arêtes, de triangles, de tétraèdres ou de pyramides peut varier du fait des algorithmes. On tolère 5% d'écart. + tolerance = 0.05 + for key in ('Entity_Node', 'Entity_Quad_Edge', 'Entity_Quad_Triangle', 'Entity_Quad_Tetra', 'Entity_Quad_Pyramid', 'Entity_Quad_Penta'): + if d_resu[key] == referencesMaillageFissure[key]: + text = "Valeur_OK" + elif (d_resu[key] < (1.0 - tolerance)*referencesMaillageFissure[key]) \ + or (d_resu[key] > (1.0 + tolerance)*referencesMaillageFissure[key]): + text = "Ecart de plus de {}%".format(tolerance*100.) ok_maillage = False else: text = "Valeur_OK à moins de {}%".format(tolerance*100.) @@ -89,6 +89,6 @@ def getStatsMaillageFissure(maillage, referencesMaillageFissure, maillageFissure with open(fichierNewRef, "w") as fic_info : fic_info.write(text_2[:-4]+" \\") - print (text) + print (text.encode('utf-8')) return ok_maillage