Salome HOME
Merge branch V7_3_1_BR
[modules/smesh.git] / src / Tools / blocFissure / gmu / peauInterne.py
1 # -*- coding: utf-8 -*-
2
3 import logging
4 from geomsmesh import smesh
5 import SMESH
6
7 # -----------------------------------------------------------------------------
8 # --- peau interne du defaut dans le maillage sain
9
10 def peauInterne(fichierMaillage, nomZones):
11   """
12   Retrouve les groupes de défaut dans le maillage sain modifié par CreateHoleSkin (CreeZoneDefautMaillage)
13   On récupère le volume et la peau de la zone de défaut, les éventuelles faces et arêtes internes de cette zone.
14   """
15   logging.info("start")
16   ([maillageSain], status) = smesh.CreateMeshesFromMED(fichierMaillage)
17
18   groups = maillageSain.GetGroups()
19   zoneDefaut = None
20   for grp in groups:
21     #print " ",grp.GetName()
22     if grp.GetName() == nomZones + "_vol":
23       zoneDefaut = grp
24       break
25   zoneDefaut_skin = None
26   for grp in groups:
27     if grp.GetName() == nomZones + "_skin":
28       zoneDefaut_skin = grp
29       break
30   zoneDefaut_internalFaces = None
31   for grp in groups:
32     if grp.GetName() == nomZones + "_internalFaces":
33       zoneDefaut_internalFaces = grp
34       break
35   zoneDefaut_internalEdges = None
36   for grp in groups:
37     if grp.GetName() == nomZones + "_internalEdges":
38       zoneDefaut_internalEdges = grp
39       break
40
41   nbAdded, maillageSain, DefautBoundary = maillageSain.MakeBoundaryElements( SMESH.BND_2DFROM3D, 'DefBound', '', 0, [ zoneDefaut ])
42   internal = maillageSain.GetMesh().CutListOfGroups( [ DefautBoundary ], [ zoneDefaut_skin ], 'internal' )
43   internalBoundary = smesh.CopyMesh( internal, 'internalBoundary', 0, 0)
44
45   return maillageSain, internalBoundary, zoneDefaut, zoneDefaut_skin, zoneDefaut_internalFaces, zoneDefaut_internalEdges
46