Salome HOME
Copyright update 2022
[modules/smesh.git] / src / Tools / blocFissure / gmu / genereMeshCalculZoneDefaut.py
index 3a423775ac36ff2b257dc63cda8a53d2d58b4475..a2fb670398ba0d909005b29b54eba421e1a2dd4f 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2014-2020  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
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+"""Maillage face de fissure pour identification zone de défaut"""
 
 import logging
-from .geomsmesh import smesh
+
 from salome.smesh import smeshBuilder
 
-# -----------------------------------------------------------------------------
-# --- maillage face de fissure pour identification zone de defaut
+from .geomsmesh import smesh
+
+from .putName import putName
 
 def genereMeshCalculZoneDefaut(facefiss, minSize, maxSize, \
-                               mailleur="MeshGems"):
+                               mailleur="MeshGems", nro_cas=None):
   """Maillage de l'objet géométrique 'facefiss'
 
 . Avec l'algorithme MG_CADSurf :
@@ -46,12 +48,16 @@ def genereMeshCalculZoneDefaut(facefiss, minSize, maxSize, \
       -SetQuadAllowed = permission quadrangle dans maillage triangle
 
 -On récupère les coordonnées de chaque noeud de la fissure qu'on stocke
-   dans une liste sous la forme : [X0, Y0, Z0, ..., Xn, Yn, Zn]"""
+   dans une liste sous la forme : [X0, Y0, Z0, ..., Xn, Yn, Zn]
+  """
 
   logging.info('start')
+  logging.info("Maillage avec %s pour le cas n°%s", mailleur, nro_cas)
 
   meshFissure = smesh.Mesh(facefiss)
-  text = "Maillage de '{}' avec {}".format(facefiss.GetName(),mailleur)
+  putName(meshFissure, "facefiss", i_pref=nro_cas)
+
+  text = "Maillage de '{}'".format(facefiss.GetName())
   logging.info(text)
   if ( mailleur == "MeshGems"):
     algo2d = meshFissure.Triangle(algo=smeshBuilder.MG_CADSurf)
@@ -69,9 +75,11 @@ def genereMeshCalculZoneDefaut(facefiss, minSize, maxSize, \
     hypo2d.SetOptimize( 1 )
     hypo2d.SetFineness( 2 )
     hypo2d.SetMinSize( minSize )
+    hypo2d.SetChordalErrorEnabled (True)
+    hypo2d.SetChordalError( maxSize*0.25 )
+    hypo2d.SetUseSurfaceCurvature (True)
     hypo2d.SetQuadAllowed( 0 )
-  smesh.SetName(algo2d, "algo2d_zoneFiss")
-  smesh.SetName(hypo2d, "hypo1d_zoneFiss")
+  putName(hypo2d, "zoneFiss", i_pref=nro_cas)
 
   is_done = meshFissure.Compute()
   text = "meshFissure.Compute"