Salome HOME
poursuite du découpage en fonctions plus simples
[modules/smesh.git] / src / Tools / blocFissure / gmu / mailleFacesFissure.py
1 # -*- coding: utf-8 -*-
2
3 import logging
4
5 from geomsmesh import geompy
6 from geomsmesh import smesh
7 from salome.smesh import smeshBuilder
8
9 from putName import putName
10   
11 def mailleFacesFissure(faceFissureExterne, edgesPipeFissureExterneC, edgesPeauFissureExterneC,
12                         meshPipeGroups, areteFaceFissure, rayonPipe, nbsegRad):
13   """
14   maillage faces de fissure
15   """
16   logging.info('start')
17
18   meshFaceFiss = smesh.Mesh(faceFissureExterne)
19   algo2d = meshFaceFiss.Triangle(algo=smeshBuilder.NETGEN_1D2D)
20   hypo2d = algo2d.Parameters()
21   hypo2d.SetMaxSize( areteFaceFissure )
22   hypo2d.SetSecondOrder( 0 )
23   hypo2d.SetOptimize( 1 )
24   hypo2d.SetFineness( 2 )
25   hypo2d.SetMinSize( rayonPipe/float(nbsegRad) )
26   hypo2d.SetQuadAllowed( 0 )
27   putName(algo2d.GetSubMesh(), "faceFiss")
28   putName(algo2d, "algo2d_faceFiss")
29   putName(hypo2d, "hypo2d_faceFiss")
30   
31   algo1d = meshFaceFiss.UseExisting1DElements(geom=edgesPipeFissureExterneC)
32   hypo1d = algo1d.SourceEdges([ meshPipeGroups['edgeFaceFissGroup'] ],0,0)
33   putName(algo1d.GetSubMesh(), "edgeFissPeau")
34   putName(algo1d, "algo1d_edgeFissPeau")
35   putName(hypo1d, "hypo1d_edgeFissPeau")
36   
37   isDone = meshFaceFiss.Compute()
38   logging.info("meshFaceFiss fini")
39
40   grpFaceFissureExterne = meshFaceFiss.GroupOnGeom(faceFissureExterne, "fisOutPi", SMESH.FACE)
41   grpEdgesPeauFissureExterne = meshFaceFiss.GroupOnGeom(edgesPeauFissureExterneC,'edgesPeauFissureExterne',SMESH.EDGE)
42   grpEdgesPipeFissureExterne = meshFaceFiss.GroupOnGeom(edgesPipeFissureExterneC,'edgesPipeFissureExterne',SMESH.EDGE)
43
44   return (meshFaceFiss, grpFaceFissureExterne, grpEdgesPeauFissureExterne, grpEdgesPipeFissureExterne)