Nommage des objets pour une fissure longue

This commit is contained in:
GERALD NICOLAS 2021-04-02 15:18:46 +02:00
parent 56374a61bb
commit b07ad0d79c
8 changed files with 82 additions and 78 deletions

View File

@ -510,7 +510,7 @@ class fissure_Coude(fissureGenerique):
maillageFissure = insereFissureLongue(geometriesSaines, \ maillageFissure = insereFissureLongue(geometriesSaines, \
shapesFissure, shapeFissureParams, \ shapesFissure, shapeFissureParams, \
maillageFissureParams, elementsDefaut, \ maillageFissureParams, elementsDefaut, \
step, mailleur) step, mailleur, self.numeroCas)
return maillageFissure return maillageFissure
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------

View File

@ -42,10 +42,10 @@ from .insereFissureLongue_g import insereFissureLongue_g
def insereFissureLongue(geometriesSaines, \ def insereFissureLongue(geometriesSaines, \
shapesFissure, shapeFissureParams, \ shapesFissure, shapeFissureParams, \
maillageFissureParams, elementsDefaut, \ maillageFissureParams, elementsDefaut, \
step=-1, mailleur="MeshGems"): step=-1, mailleur="MeshGems", nro_cas=-1):
"""procedure complete fissure longue""" """procedure complete fissure longue"""
logging.info('start') logging.info('start')
logging.info("Usage du mailleur %s", mailleur) logging.info("Usage du mailleur %s pour le cas n° %d", mailleur, nro_cas)
#geometrieSaine = geometriesSaines[0] #geometrieSaine = geometriesSaines[0]
shapeDefaut = shapesFissure[0] # face de fissure, debordant shapeDefaut = shapesFissure[0] # face de fissure, debordant
@ -114,7 +114,7 @@ def insereFissureLongue(geometriesSaines, \
planfiss, planBord1, planBord2, \ planfiss, planBord1, planBord2, \
facePeau, verticesOutCercles, verticesEdgePeauFiss, \ facePeau, verticesOutCercles, verticesEdgePeauFiss, \
fillingFaceExterne, rayonPipe, \ fillingFaceExterne, rayonPipe, \
internalBoundary) internalBoundary)
# --- maillage pipe fond fissure # --- maillage pipe fond fissure
@ -122,7 +122,8 @@ def insereFissureLongue(geometriesSaines, \
insereFissureLongue_c (pipeFondFiss, disques, rayons, demiCercles, demiCerclesPeau, generatrices, \ insereFissureLongue_c (pipeFondFiss, disques, rayons, demiCercles, demiCerclesPeau, generatrices, \
VerticesEndPipeFiss, verticesEdgePeauFiss, \ VerticesEndPipeFiss, verticesEdgePeauFiss, \
groupFaceFissInPipe, groupEdgeFondFiss, groupsDemiCerclesPipe, groupGenerFiss, \ groupFaceFissInPipe, groupEdgeFondFiss, groupsDemiCerclesPipe, groupGenerFiss, \
profondeur, rayonPipe) profondeur, rayonPipe, \
nro_cas)
# --- maillage face de peau # --- maillage face de peau
@ -130,20 +131,20 @@ def insereFissureLongue(geometriesSaines, \
insereFissureLongue_d ( facePeau, edgePeauFiss, groupEdgesBordPeau, bordsLibres, \ insereFissureLongue_d ( facePeau, edgePeauFiss, groupEdgesBordPeau, bordsLibres, \
groupsDemiCerclesPeau, groups_demiCercles, verticesOutCercles, \ groupsDemiCerclesPeau, groups_demiCercles, verticesOutCercles, \
nbSegGenLong, nbSegGenBout, profondeur, \ nbSegGenLong, nbSegGenBout, profondeur, \
mailleur ) mailleur, nro_cas )
# --- maillage face de fissure # --- maillage face de fissure
meshFaceFiss = \ meshFaceFiss = \
insereFissureLongue_e ( faceFiss, edgePeauFiss, groupEdgesPeauFiss, group_generFiss, groupEdgesFaceFissPipe, \ insereFissureLongue_e ( faceFiss, edgePeauFiss, groupEdgesPeauFiss, group_generFiss, groupEdgesFaceFissPipe, \
profondeur, rayonPipe, \ profondeur, rayonPipe, \
mailleur ) mailleur, nro_cas )
# --- maillage meshBoiteDefaut # --- maillage meshBoiteDefaut
meshBoiteDefaut, group_faceFissInPipe, group_faceFissOutPipe = \ meshBoiteDefaut, group_faceFissInPipe, group_faceFissOutPipe = \
insereFissureLongue_f ( internalBoundary, meshFondFiss, meshFacePeau, meshFaceFiss, \ insereFissureLongue_f ( internalBoundary, meshFondFiss, meshFacePeau, meshFaceFiss, \
mailleur ) mailleur, nro_cas )
# --- maillage complet # --- maillage complet
@ -151,7 +152,8 @@ def insereFissureLongue(geometriesSaines, \
insereFissureLongue_g (nomFicFissure, fichierMaillageFissure, nomFicSain, maillageSain, \ insereFissureLongue_g (nomFicFissure, fichierMaillageFissure, nomFicSain, maillageSain, \
meshBoiteDefaut, facePorteFissure, \ meshBoiteDefaut, facePorteFissure, \
group_faceFissInPipe, group_faceFissOutPipe, \ group_faceFissInPipe, group_faceFissOutPipe, \
zoneDefaut, zoneDefaut_skin, zoneDefaut_internalEdges, zoneDefaut_internalFaces) zoneDefaut, zoneDefaut_skin, zoneDefaut_internalEdges, zoneDefaut_internalFaces, \
nro_cas)
if salome.sg.hasDesktop(): if salome.sg.hasDesktop():

View File

@ -128,29 +128,29 @@ def insereFissureLongue_a(facePorteFissure, WirePorteFondFissure, \
edgesFacePeauSorted, _, _ = sortEdges(edgesFacePeau) edgesFacePeauSorted, _, _ = sortEdges(edgesFacePeau)
demiCerclesPeau = edgesFacePeauSorted[0:4] demiCerclesPeau = edgesFacePeauSorted[0:4]
verticesDemiCerclesPeau = list() verticesDemiCerclesPeau = list()
for i, edge in enumerate(demiCerclesPeau): for i_aux, edge in enumerate(demiCerclesPeau):
name = "demiCerclePeau_%d"%i name = "demiCerclePeau_{}".format(i_aux)
geomPublishInFather(initLog.debug,facePeau, edge, name) geomPublishInFather(initLog.debug,facePeau, edge, name)
verticesDemiCerclesPeau += geompy.ExtractShapes(edge, geompy.ShapeType["VERTEX"], False) verticesDemiCerclesPeau += geompy.ExtractShapes(edge, geompy.ShapeType["VERTEX"], False)
verticesDemiCerclesPeau = eliminateDoubles(facePeau, verticesDemiCerclesPeau) verticesDemiCerclesPeau = eliminateDoubles(facePeau, verticesDemiCerclesPeau)
for i, vertex in enumerate(verticesDemiCerclesPeau): for i_aux, vertex in enumerate(verticesDemiCerclesPeau):
name = "verticesDemiCerclesPeau_%d"%i name = "verticesDemiCerclesPeau_{}".format(i_aux)
geomPublishInFather(initLog.debug,facePeau, vertex, name) geomPublishInFather(initLog.debug,facePeau, vertex, name)
verticesOutCercles = substractSubShapes(facePeau, verticesDemiCerclesPeau, verticesEdgePeauFiss) verticesOutCercles = substractSubShapes(facePeau, verticesDemiCerclesPeau, verticesEdgePeauFiss)
for i, vertex in enumerate(verticesOutCercles): for i_aux, vertex in enumerate(verticesOutCercles):
name = "verticesOutCercles_%d"%i name = "verticesOutCercles_{}".format(i_aux)
geomPublishInFather(initLog.debug,facePeau, vertex, name) geomPublishInFather(initLog.debug,facePeau, vertex, name)
# --- demi cercles regroupés # --- demi cercles regroupés
groupsDemiCerclesPeau = list() groupsDemiCerclesPeau = list()
for i, vertex in enumerate(verticesEdgePeauFiss): for i_aux, vertex in enumerate(verticesEdgePeauFiss):
demis = list() demis = list()
for edge in demiCerclesPeau: for edge in demiCerclesPeau:
if geompy.MinDistance(vertex, edge) < 1.e-5: if ( geompy.MinDistance(vertex, edge) < 1.e-5 ):
demis.append(edge) demis.append(edge)
group = geompy.CreateGroup(facePeau, geompy.ShapeType["EDGE"]) group = geompy.CreateGroup(facePeau, geompy.ShapeType["EDGE"])
geompy.UnionList(group, demis) geompy.UnionList(group, demis)
name = "Cercle%d"%i name = "Cercle{}".format(i_aux)
geomPublishInFather(initLog.debug,facePeau, group , name) geomPublishInFather(initLog.debug,facePeau, group , name)
groupsDemiCerclesPeau.append(group) groupsDemiCerclesPeau.append(group)

View File

@ -36,53 +36,54 @@ from .distance2 import distance2
def insereFissureLongue_c (pipeFondFiss, disques, rayons, demiCercles, demiCerclesPeau, generatrices, \ def insereFissureLongue_c (pipeFondFiss, disques, rayons, demiCercles, demiCerclesPeau, generatrices, \
VerticesEndPipeFiss, verticesEdgePeauFiss, \ VerticesEndPipeFiss, verticesEdgePeauFiss, \
groupFaceFissInPipe, groupEdgeFondFiss, groupsDemiCerclesPipe, groupGenerFiss, \ groupFaceFissInPipe, groupEdgeFondFiss, groupsDemiCerclesPipe, groupGenerFiss, \
profondeur, rayonPipe): profondeur, rayonPipe, \
nro_cas=-1):
"""maillage pipe fond fissure""" """maillage pipe fond fissure"""
logging.info('start') logging.info('start')
meshFondFiss = smesh.Mesh(pipeFondFiss) meshFondFiss = smesh.Mesh(pipeFondFiss)
algo2d = meshFondFiss.Quadrangle(algo=smeshBuilder.QUADRANGLE) algo2d = meshFondFiss.Quadrangle(algo=smeshBuilder.QUADRANGLE)
algo3d = meshFondFiss.Prism() algo3d = meshFondFiss.Prism()
putName(algo3d.GetSubMesh(), "pipe") putName(algo3d.GetSubMesh(), "pipe", i_pref=nro_cas)
putName(algo3d, "algo3d_pipe") putName(algo3d, "algo3d_pipe", i_pref=nro_cas)
putName(algo2d, "algo2d_pipe") putName(algo2d, "algo2d_pipe", i_pref=nro_cas)
for i, face in enumerate(disques): for i_aux, face in enumerate(disques):
algo2d = meshFondFiss.Quadrangle(algo=smeshBuilder.RADIAL_QUAD,geom=face) algo2d = meshFondFiss.Quadrangle(algo=smeshBuilder.RADIAL_QUAD,geom=face)
putName(algo2d.GetSubMesh(), "disque", i) putName(algo2d.GetSubMesh(), "disque", i_aux, nro_cas)
putName(algo2d, "algo2d_disque", i) putName(algo2d, "algo2d_disque", i_aux, nro_cas)
for i, edge in enumerate(rayons): for i_aux, edge in enumerate(rayons):
algo1d = meshFondFiss.Segment(geom=edge) algo1d = meshFondFiss.Segment(geom=edge)
hypo1d = algo1d.NumberOfSegments(4) hypo1d = algo1d.NumberOfSegments(4)
putName(algo1d.GetSubMesh(), "rayon", i) putName(algo1d.GetSubMesh(), "rayon", i_aux, nro_cas)
putName(algo1d, "algo1d_rayon", i) putName(algo1d, "algo1d_rayon", i_aux, nro_cas)
putName(hypo1d, "hypo1d_rayon", i) putName(hypo1d, "hypo1d_rayon", i_aux, nro_cas)
for i, edge in enumerate(demiCercles): for i_aux, edge in enumerate(demiCercles):
algo1d = meshFondFiss.Segment(geom=edge) algo1d = meshFondFiss.Segment(geom=edge)
hypo1d = algo1d.NumberOfSegments(6) hypo1d = algo1d.NumberOfSegments(6)
putName(algo1d.GetSubMesh(), "demiCercle", i) putName(algo1d.GetSubMesh(), "demiCercle", i_aux, nro_cas)
putName(algo1d, "algo1d_demiCercle", i) putName(algo1d, "algo1d_demiCercle", i_aux, nro_cas)
putName(hypo1d, "hypo1d_demiCercle", i) putName(hypo1d, "hypo1d_demiCercle", i_aux, nro_cas)
generSorted, minlg, maxlg = sortEdges(generatrices) generSorted, minlg, maxlg = sortEdges(generatrices)
nbSegGenLong = int(math.sqrt(3.0)*maxlg/(profondeur - rayonPipe)) # on veut 2 triangles equilateraux dans la largeur de la face nbSegGenLong = int(math.sqrt(3.0)*maxlg/(profondeur - rayonPipe)) # on veut 2 triangles equilateraux dans la largeur de la face
nbSegGenBout = 6 nbSegGenBout = 6
logging.info("min %s, max %s, nombre de segments %s, nombre de generatrices %s", minlg, maxlg, nbSegGenLong, len(generSorted)) logging.info("min %s, max %s, nombre de segments %s, nombre de generatrices %s", minlg, maxlg, nbSegGenLong, len(generSorted))
for i, edge in enumerate(generSorted): for i_aux, edge in enumerate(generSorted):
algo1d = meshFondFiss.Segment(geom=edge) algo1d = meshFondFiss.Segment(geom=edge)
if i < 6: if i_aux < 6:
hypo1d = algo1d.NumberOfSegments(nbSegGenBout) hypo1d = algo1d.NumberOfSegments(nbSegGenBout)
else: else:
hypo1d = algo1d.NumberOfSegments(nbSegGenLong) hypo1d = algo1d.NumberOfSegments(nbSegGenLong)
putName(algo1d.GetSubMesh(), "generatrice", i) putName(algo1d.GetSubMesh(), "generatrice", i_aux, nro_cas)
putName(algo1d, "algo1d_generatrice", i) putName(algo1d, "algo1d_generatrice", i_aux, nro_cas)
putName(hypo1d, "hypo1d_generatrice", i) putName(hypo1d, "hypo1d_generatrice", i_aux, nro_cas)
disks = list() disks = list()
for i, face in enumerate(disques[:4]): for i_aux, face in enumerate(disques[:4]):
name = "disk%d"%i name = "disk{}".format(i_aux)
disks.append(meshFondFiss.GroupOnGeom(face, name, SMESH.FACE)) disks.append(meshFondFiss.GroupOnGeom(face, name, SMESH.FACE))
_ = meshFondFiss.GetMesh().UnionListOfGroups( disks, 'PEAUEXT' ) _ = meshFondFiss.GetMesh().UnionListOfGroups( disks, 'PEAUEXT' )
@ -95,10 +96,10 @@ def insereFissureLongue_c (pipeFondFiss, disques, rayons, demiCercles, demiCercl
groups_demiCercles = list() groups_demiCercles = list()
groupnodes_demiCercles = list() groupnodes_demiCercles = list()
for i, group in enumerate(groupsDemiCerclesPipe): for i_aux, group in enumerate(groupsDemiCerclesPipe):
name = "Cercle%d"%i name = "Cercle{}".format(i_aux)
groups_demiCercles.append(meshFondFiss.GroupOnGeom(group, name, SMESH.EDGE)) groups_demiCercles.append(meshFondFiss.GroupOnGeom(group, name, SMESH.EDGE))
name = "nCercle%d"%i name = "nCercle{}".format(i_aux)
groupnodes_demiCercles.append(meshFondFiss.GroupOnGeom(group, name, SMESH.NODE)) groupnodes_demiCercles.append(meshFondFiss.GroupOnGeom(group, name, SMESH.NODE))
group_generFiss = meshFondFiss.GroupOnGeom(groupGenerFiss, "GenFiss", SMESH.EDGE) group_generFiss = meshFondFiss.GroupOnGeom(groupGenerFiss, "GenFiss", SMESH.EDGE)
groupnode_generFiss = meshFondFiss.GroupOnGeom(groupGenerFiss, "GenFiss", SMESH.NODE) groupnode_generFiss = meshFondFiss.GroupOnGeom(groupGenerFiss, "GenFiss", SMESH.NODE)
@ -134,12 +135,12 @@ def insereFissureLongue_c (pipeFondFiss, disques, rayons, demiCercles, demiCercl
minDist = 100000 minDist = 100000
minCoord = None minCoord = None
imin = -1 imin = -1
for i, edge in enumerate(demiCerclesPeau): for i_aux, edge in enumerate(demiCerclesPeau):
discoord = geompy.MinDistanceComponents(vertex, edge) discoord = geompy.MinDistanceComponents(vertex, edge)
if discoord[0] <minDist: if discoord[0] <minDist:
minDist = discoord[0] minDist = discoord[0]
minCoord = discoord[1:] minCoord = discoord[1:]
imin = i imin = i_aux
if imin >= 0 and minDist > 1.E-6: if imin >= 0 and minDist > 1.E-6:
logging.debug("node id moved : %s distance=%s", idNode, minDist) logging.debug("node id moved : %s distance=%s", idNode, minDist)
meshFondFiss.MoveNode(idNode, coordMesh[0] + minCoord[0], coordMesh[1] + minCoord[1], coordMesh[2] + minCoord[2]) meshFondFiss.MoveNode(idNode, coordMesh[0] + minCoord[0], coordMesh[1] + minCoord[1], coordMesh[2] + minCoord[2])

View File

@ -33,7 +33,7 @@ from .putName import putName
def insereFissureLongue_d (facePeau, edgePeauFiss, groupEdgesBordPeau, bordsLibres, \ def insereFissureLongue_d (facePeau, edgePeauFiss, groupEdgesBordPeau, bordsLibres, \
groupsDemiCerclesPeau, groups_demiCercles, verticesOutCercles, \ groupsDemiCerclesPeau, groups_demiCercles, verticesOutCercles, \
nbSegGenLong, nbSegGenBout, profondeur, \ nbSegGenLong, nbSegGenBout, profondeur, \
mailleur="MeshGems"): mailleur="MeshGems", nro_cas=-1):
"""maillage face de peau""" """maillage face de peau"""
logging.info('start') logging.info('start')
@ -55,9 +55,9 @@ def insereFissureLongue_d (facePeau, edgePeauFiss, groupEdgesBordPeau, bordsLibr
hypo2d.SetFineness( 2 ) hypo2d.SetFineness( 2 )
hypo2d.SetMinSize( 2 ) hypo2d.SetMinSize( 2 )
hypo2d.SetQuadAllowed( 0 ) hypo2d.SetQuadAllowed( 0 )
putName(algo2d.GetSubMesh(), "facePeau") putName(algo2d.GetSubMesh(), "facePeau", i_pref=nro_cas)
putName(algo2d, "algo2d_facePeau") putName(algo2d, "algo2d_facePeau", i_pref=nro_cas)
putName(hypo2d, "hypo2d_facePeau") putName(hypo2d, "hypo2d_facePeau", i_pref=nro_cas)
# #
lenEdgePeauFiss = geompy.BasicProperties(edgePeauFiss)[0] lenEdgePeauFiss = geompy.BasicProperties(edgePeauFiss)[0]
frac = profondeur/lenEdgePeauFiss frac = profondeur/lenEdgePeauFiss
@ -70,22 +70,22 @@ def insereFissureLongue_d (facePeau, edgePeauFiss, groupEdgesBordPeau, bordsLibr
hypo1d.SetDistrType( 2 ) hypo1d.SetDistrType( 2 )
hypo1d.SetConversionMode( 1 ) hypo1d.SetConversionMode( 1 )
hypo1d.SetTableFunction( [ 0, ratio, frac, 1, (1.-frac), 1, 1, ratio ] ) hypo1d.SetTableFunction( [ 0, ratio, frac, 1, (1.-frac), 1, 1, ratio ] )
putName(algo1d.GetSubMesh(), "edgePeauFiss") putName(algo1d.GetSubMesh(), "edgePeauFiss", i_pref=nro_cas)
putName(algo1d, "algo1d_edgePeauFiss") putName(algo1d, "algo1d_edgePeauFiss", i_pref=nro_cas)
putName(hypo1d, "hypo1d_edgePeauFiss") putName(hypo1d, "hypo1d_edgePeauFiss", i_pref=nro_cas)
# #
algo1d = meshFacePeau.UseExisting1DElements(geom=groupEdgesBordPeau) algo1d = meshFacePeau.UseExisting1DElements(geom=groupEdgesBordPeau)
hypo1d = algo1d.SourceEdges([ bordsLibres ],0,0) hypo1d = algo1d.SourceEdges([ bordsLibres ],0,0)
putName(algo1d.GetSubMesh(), "bordsLibres") putName(algo1d.GetSubMesh(), "bordsLibres", i_pref=nro_cas)
putName(algo1d, "algo1d_bordsLibres") putName(algo1d, "algo1d_bordsLibres", i_pref=nro_cas)
putName(hypo1d, "hypo1d_bordsLibres") putName(hypo1d, "hypo1d_bordsLibres", i_pref=nro_cas)
# #
for i in range(2): for i_aux in range(2):
algo1d = meshFacePeau.UseExisting1DElements(geom=groupsDemiCerclesPeau[i]) algo1d = meshFacePeau.UseExisting1DElements(geom=groupsDemiCerclesPeau[i_aux])
hypo1d = algo1d.SourceEdges([ groups_demiCercles[i] ],0,0) hypo1d = algo1d.SourceEdges([ groups_demiCercles[i_aux] ],0,0)
putName(algo1d.GetSubMesh(), "DemiCercles", i) putName(algo1d.GetSubMesh(), "DemiCercles", i_aux, nro_cas)
putName(algo1d, "algo1d_groupDemiCercles", i) putName(algo1d, "algo1d_groupDemiCercles", i_aux, nro_cas)
putName(hypo1d, "hypo1d_groupDemiCercles", i) putName(hypo1d, "hypo1d_groupDemiCercles", i_aux, nro_cas)
_ = meshFacePeau.GroupOnGeom(verticesOutCercles[0], "THOR", SMESH.NODE) _ = meshFacePeau.GroupOnGeom(verticesOutCercles[0], "THOR", SMESH.NODE)
_ = meshFacePeau.GroupOnGeom(verticesOutCercles[1], "THEX", SMESH.NODE) _ = meshFacePeau.GroupOnGeom(verticesOutCercles[1], "THEX", SMESH.NODE)

View File

@ -32,7 +32,7 @@ from .putName import putName
def insereFissureLongue_e (faceFiss, edgePeauFiss, groupEdgesPeauFiss, group_generFiss, groupEdgesFaceFissPipe, \ def insereFissureLongue_e (faceFiss, edgePeauFiss, groupEdgesPeauFiss, group_generFiss, groupEdgesFaceFissPipe, \
profondeur, rayonPipe, \ profondeur, rayonPipe, \
mailleur="MeshGems"): mailleur="MeshGems", nro_cas=-1):
"""maillage face de fissure""" """maillage face de fissure"""
logging.info('start') logging.info('start')
@ -55,21 +55,21 @@ def insereFissureLongue_e (faceFiss, edgePeauFiss, groupEdgesPeauFiss, group_gen
hypo2d.SetFineness( 2 ) hypo2d.SetFineness( 2 )
hypo2d.SetMinSize( 2 ) hypo2d.SetMinSize( 2 )
hypo2d.SetQuadAllowed( 0 ) hypo2d.SetQuadAllowed( 0 )
putName(algo2d.GetSubMesh(), "faceFiss") putName(algo2d.GetSubMesh(), "faceFiss", i_pref=nro_cas)
putName(algo2d, "algo2d_faceFiss") putName(algo2d, "algo2d_faceFiss", i_pref=nro_cas)
putName(hypo2d, "hypo2d_faceFiss") putName(hypo2d, "hypo2d_faceFiss", i_pref=nro_cas)
# #
algo1d = meshFaceFiss.UseExisting1DElements(geom=edgePeauFiss) algo1d = meshFaceFiss.UseExisting1DElements(geom=edgePeauFiss)
hypo1d = algo1d.SourceEdges([ groupEdgesPeauFiss ],0,0) hypo1d = algo1d.SourceEdges([ groupEdgesPeauFiss ],0,0)
putName(algo1d.GetSubMesh(), "edgeFissPeau") putName(algo1d.GetSubMesh(), "edgeFissPeau", i_pref=nro_cas)
putName(algo1d, "algo1d_edgeFissPeau") putName(algo1d, "algo1d_edgeFissPeau", i_pref=nro_cas)
putName(hypo1d, "hypo1d_edgeFissPeau") putName(hypo1d, "hypo1d_edgeFissPeau", i_pref=nro_cas)
# #
algo1d = meshFaceFiss.UseExisting1DElements(geom=groupEdgesFaceFissPipe) algo1d = meshFaceFiss.UseExisting1DElements(geom=groupEdgesFaceFissPipe)
hypo1d = algo1d.SourceEdges([ group_generFiss ],0,0) hypo1d = algo1d.SourceEdges([ group_generFiss ],0,0)
putName(algo1d.GetSubMesh(), "edgeFissPeau") putName(algo1d.GetSubMesh(), "edgeFissPeau", i_pref=nro_cas)
putName(algo1d, "algo1d_edgeFissPeau") putName(algo1d, "algo1d_edgeFissPeau", i_pref=nro_cas)
putName(hypo1d, "hypo1d_edgeFissPeau") putName(hypo1d, "hypo1d_edgeFissPeau", i_pref=nro_cas)
_ = meshFaceFiss.GroupOnGeom(faceFiss, "fisOutPi", SMESH.FACE) _ = meshFaceFiss.GroupOnGeom(faceFiss, "fisOutPi", SMESH.FACE)

View File

@ -30,7 +30,7 @@ from .geomsmesh import smesh
from .putName import putName from .putName import putName
def insereFissureLongue_f (internalBoundary, meshFondFiss, meshFacePeau, meshFaceFiss, \ def insereFissureLongue_f (internalBoundary, meshFondFiss, meshFacePeau, meshFaceFiss, \
mailleur="MeshGems"): mailleur="MeshGems", nro_cas=-1):
"""maillage meshBoiteDefaut""" """maillage meshBoiteDefaut"""
logging.info('start') logging.info('start')
logging.info("insereFissureLongue_f (%s)", mailleur) logging.info("insereFissureLongue_f (%s)", mailleur)
@ -39,7 +39,7 @@ def insereFissureLongue_f (internalBoundary, meshFondFiss, meshFacePeau, meshFac
meshFondFiss.GetMesh(), \ meshFondFiss.GetMesh(), \
meshFacePeau.GetMesh(), \ meshFacePeau.GetMesh(), \
meshFaceFiss.GetMesh()], \ meshFaceFiss.GetMesh()], \
1, 1, 1e-05,False) 1, 1, 1e-05,False )
# pour aider l'algo hexa-tetra a ne pas mettre de pyramides a l'exterieur des volumes replies sur eux-memes # pour aider l'algo hexa-tetra a ne pas mettre de pyramides a l'exterieur des volumes replies sur eux-memes
# on designe les faces de peau en quadrangles par le groupe "skinFaces" # on designe les faces de peau en quadrangles par le groupe "skinFaces"
group_faceFissOutPipe = None group_faceFissOutPipe = None
@ -65,9 +65,9 @@ def insereFissureLongue_f (internalBoundary, meshFondFiss, meshFacePeau, meshFac
hypo3d.SetVerboseLevel( 0 ) hypo3d.SetVerboseLevel( 0 )
hypo3d.SetStandardOutputLog( 0 ) hypo3d.SetStandardOutputLog( 0 )
hypo3d.SetRemoveLogOnSuccess( 1 ) hypo3d.SetRemoveLogOnSuccess( 1 )
putName(algo3d.GetSubMesh(), "boiteDefaut") putName(algo3d.GetSubMesh(), "boiteDefaut", i_pref=nro_cas)
putName(algo3d, "algo3d_boiteDefaut") putName(algo3d, "algo3d_boiteDefaut", i_pref=nro_cas)
putName(meshBoiteDefaut, "boiteDefaut") putName(meshBoiteDefaut, "boiteDefaut", i_pref=nro_cas)
is_done = meshBoiteDefaut.Compute() is_done = meshBoiteDefaut.Compute()
text = "meshBoiteDefaut.Compute" text = "meshBoiteDefaut.Compute"

View File

@ -37,7 +37,8 @@ from .triedreBase import triedreBase
def insereFissureLongue_g(nomFicFissure, fichierMaillageFissure, nomFicSain, maillageSain, \ def insereFissureLongue_g(nomFicFissure, fichierMaillageFissure, nomFicSain, maillageSain, \
meshBoiteDefaut, facePorteFissure, \ meshBoiteDefaut, facePorteFissure, \
group_faceFissInPipe, group_faceFissOutPipe, \ group_faceFissInPipe, group_faceFissOutPipe, \
zoneDefaut, zoneDefaut_skin, zoneDefaut_internalEdges, zoneDefaut_internalFaces): zoneDefaut, zoneDefaut_skin, zoneDefaut_internalEdges, zoneDefaut_internalFaces, \
nro_cas=-1):
"""Les groupes de la fissure longue""" """Les groupes de la fissure longue"""
logging.info('start') logging.info('start')
@ -52,7 +53,7 @@ def insereFissureLongue_g(nomFicFissure, fichierMaillageFissure, nomFicSain, mai
_ = meshBoiteDefaut.GetMesh().UnionListOfGroups( [ group_faceFissOutPipe, group_faceFissInPipe ], 'FACE1' ) _ = meshBoiteDefaut.GetMesh().UnionListOfGroups( [ group_faceFissOutPipe, group_faceFissInPipe ], 'FACE1' )
maillageSain = enleveDefaut(maillageSain, zoneDefaut, zoneDefaut_skin, zoneDefaut_internalFaces, zoneDefaut_internalEdges) maillageSain = enleveDefaut(maillageSain, zoneDefaut, zoneDefaut_skin, zoneDefaut_internalFaces, zoneDefaut_internalEdges)
putName(maillageSain, nomFicSain+"_coupe") putName(maillageSain, nomFicSain+"_coupe", i_pref=nro_cas)
extrusionFaceFissure, normfiss = shapeSurFissure(facePorteFissure) extrusionFaceFissure, normfiss = shapeSurFissure(facePorteFissure)
maillageComplet = RegroupeSainEtDefaut(maillageSain, meshBoiteDefaut, extrusionFaceFissure, facePorteFissure, 'COUDE') maillageComplet = RegroupeSainEtDefaut(maillageSain, meshBoiteDefaut, extrusionFaceFissure, facePorteFissure, 'COUDE')