Salome HOME
Update copyrights
[modules/smesh.git] / src / Tools / blocFissure / gmu / listOfExtraFunctions.py
index 535396226642e898e455a972dbeb1b804435bfee..998595316c766de8866750d23505e79863ee9710 100644 (file)
@@ -1,23 +1,43 @@
 # -*- coding: utf-8 -*-
+# Copyright (C) 2014-2019  CEA/DEN, 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
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
 """
 Created on Mon Jun 23 14:49:36 2014
 
-@author: I48174
+@author: I48174 (Olivier HOAREAU)
 """
 
 import logging
 import SMESH
-from geomsmesh import smesh
+from .geomsmesh import smesh
 
 def lookForCorner(maillageAScanner):
     
     """ Cette fonction permet de scanner la liste de noeuds qui composent le
         maillage passé en paramètre. On recherche un ou plusieurs coins, ce
         qui implique les caractéristiques suivantes:
-            - le noeud doit appartenir au moins à trois éléments distinctes
-            - chaque élément doit appartenir à un ensemble distincte
+            - le noeud doit appartenir au moins à trois éléments distincts
+            - chaque élément doit appartenir à un ensemble distinct
         La fonction renvoie une liste de coins par l'intermédiaire de l'IDs
-        chaque noeud. La liste contient en général au maximum deux coins. """
+        chaque noeud. La liste contient en général au maximum deux coins.
+    """
     
     logging.info("start")
     
@@ -27,19 +47,16 @@ def lookForCorner(maillageAScanner):
         # On parcours la liste de noeuds
         listOfElements = maillageAScanner.GetNodeInverseElements(ND)
         if len(listOfElements) >=3:
-            # On teste le nombre d'éléments qui partage le même noeud
+            # On teste le nombre d'éléments qui partagent le même noeud
             # --- Filtre selon le critère 'coplanar' --- #
             listOfCriterion = [smesh.GetCriterion(SMESH.FACE, SMESH.FT_CoplanarFaces, \
-            SMESH.FT_Undefined, elem, SMESH.FT_Undefined, SMESH.FT_Undefined, 30) \
-            for elem in listOfElements]
-            listOfFilters = [smesh.GetFilterFromCriteria([criteria]) \
-            for criteria in listOfCriterion]
-            # ------------------------------------------ #
-            listOfSets = [maillageAScanner.GetIdsFromFilter(filter) \
-            for filter in listOfFilters]
+                               SMESH.FT_Undefined, elem, SMESH.FT_Undefined, SMESH.FT_Undefined, 30) \
+                               for elem in listOfElements]
+            listOfFilters = [smesh.GetFilterFromCriteria([criteria]) for criteria in listOfCriterion]
+            listOfSets = [maillageAScanner.GetIdsFromFilter(filter) for filter in listOfFilters]
             if listOfSets.count(listOfSets[0]) == len(listOfSets):
                 # Si toutes les listes d'éléments sont similaires, on retourne
-                # au début pour éviter de travailler sur des éléments inutils.
+                # au début pour éviter de travailler sur des éléments inutiles.
                 # Exemple : un noeud appartenant à 4 éléments sur la même face.
                 continue
             for s in listOfSets:
@@ -56,7 +73,7 @@ def createLinesFromMesh(maillageSupport):
     
     """ Cette fonction permet de générer une liste de lignes à partir du 
         maillage support passé en paramètre. On démarre à partir d'un coin
-        simple et on parcourt tout les noeuds pour former un ligne. Soit la
+        simple et on parcourt tout les noeuds pour former une ligne. Soit la
         figure ci-dessous :
             
             1_____4_____7    On part du coin N1, et on cherche les noeuds
@@ -69,7 +86,8 @@ def createLinesFromMesh(maillageSupport):
             |     |     |    dernière ligne, à savoir le noeud N9, on considère
             3_____6_____9    que toutes les lignes sont créées.
             
-        La fonction retourne une liste de lignes utilisées par la suite. """
+        La fonction retourne une liste de lignes utilisées par la suite.
+    """
     
     logging.info("start")
     
@@ -173,7 +191,8 @@ def createNewMeshesFromCorner(maillageSupport, listOfCorners):
     """ Cette fonction permet de générer un nouveau maillage plus facile à
         utiliser. On démarre d'un coin et on récupère les trois éléments
         auquel le noeud appartient. Grâce à un filtre 'coplanar' sur les trois
-        éléments, on peut générer des faces distinctes. """
+        éléments, on peut générer des faces distinctes.
+    """
     
     logging.info("start")
     
@@ -184,9 +203,8 @@ def createNewMeshesFromCorner(maillageSupport, listOfCorners):
         for i, elem in enumerate(elems):
             # --- Filtre selon le critère 'coplanar' --- #
             critere = smesh.GetCriterion(SMESH.FACE, SMESH.FT_CoplanarFaces, \
-            SMESH.FT_Undefined, elem, SMESH.FT_Undefined, SMESH.FT_Undefined, 30)
+                                         SMESH.FT_Undefined, elem, SMESH.FT_Undefined, SMESH.FT_Undefined, 30)
             filtre = smesh.GetFilterFromCriteria([critere])
-            # ------------------------------------------ #
             grp = maillageSupport.GroupOnFilter(SMESH.FACE, 'grp', filtre)
             # On copie le maillage en fonction du filtre
             msh = smesh.CopyMesh(grp, 'new_{0}'.format(i + 1), False, True)