X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FTools%2FblocFissure%2Fgmu%2FinsereFissureLongue_c.py;h=c8b8578d42891deb8a775a31fa46c9f8c021cbaf;hp=ce6d0b25b25f347dff3fb0179142b544843af386;hb=13469a2390c6d6061a023967950aa3b3a1196bb2;hpb=b4a070b88fa66729853637acf3f5aa91a429a7d7 diff --git a/src/Tools/blocFissure/gmu/insereFissureLongue_c.py b/src/Tools/blocFissure/gmu/insereFissureLongue_c.py index ce6d0b25b..c8b8578d4 100644 --- a/src/Tools/blocFissure/gmu/insereFissureLongue_c.py +++ b/src/Tools/blocFissure/gmu/insereFissureLongue_c.py @@ -22,7 +22,6 @@ import logging import math -import salome from salome.smesh import smeshBuilder import SMESH @@ -36,53 +35,60 @@ from .distance2 import distance2 def insereFissureLongue_c (pipeFondFiss, disques, rayons, demiCercles, demiCerclesPeau, generatrices, \ VerticesEndPipeFiss, verticesEdgePeauFiss, \ groupFaceFissInPipe, groupEdgeFondFiss, groupsDemiCerclesPipe, groupGenerFiss, \ - profondeur, rayonPipe): + profondeur, rayonPipe, \ + nro_cas=None): """maillage pipe fond fissure""" logging.info('start') + logging.info("Maillage pour le cas n°%s", nro_cas) meshFondFiss = smesh.Mesh(pipeFondFiss) - algo2d = meshFondFiss.Quadrangle(algo=smeshBuilder.QUADRANGLE) + putName(meshFondFiss, "pipeFondFiss", i_pref=nro_cas) + algo3d = meshFondFiss.Prism() - putName(algo3d.GetSubMesh(), "pipe") - putName(algo3d, "algo3d_pipe") - putName(algo2d, "algo2d_pipe") + putName(algo3d.GetSubMesh(), "pipe", i_pref=nro_cas) + putName(algo3d, "Prism", i_pref=nro_cas) + + algo2d = meshFondFiss.Quadrangle(algo=smeshBuilder.QUADRANGLE) + putName(algo2d, "QUADRANGLE", i_pref=nro_cas) - for i, face in enumerate(disques): + for i_aux, face in enumerate(disques): + #print (i_aux) + # la commande suivante entraîne addToStudy() failed algo2d = meshFondFiss.Quadrangle(algo=smeshBuilder.RADIAL_QUAD,geom=face) - putName(algo2d.GetSubMesh(), "disque", i) - putName(algo2d, "algo2d_disque", i) + putName(algo2d.GetSubMesh(), "disque", i_aux, nro_cas) + putName(algo2d, "RADIAL_QUAD", i_aux, nro_cas) - for i, edge in enumerate(rayons): + for i_aux, edge in enumerate(rayons): algo1d = meshFondFiss.Segment(geom=edge) hypo1d = algo1d.NumberOfSegments(4) - putName(algo1d.GetSubMesh(), "rayon", i) - putName(algo1d, "algo1d_rayon", i) - putName(hypo1d, "hypo1d_rayon", i) + putName(algo1d.GetSubMesh(), "rayon", i_aux, nro_cas) + putName(algo1d, "algo1d_rayon", i_aux, nro_cas) + 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) hypo1d = algo1d.NumberOfSegments(6) - putName(algo1d.GetSubMesh(), "demiCercle", i) - putName(algo1d, "algo1d_demiCercle", i) - putName(hypo1d, "hypo1d_demiCercle", i) + putName(algo1d.GetSubMesh(), "demiCercle", i_aux, nro_cas) + putName(algo1d, "algo1d_demiCercle", i_aux, nro_cas) + putName(hypo1d, "hypo1d_demiCercle", i_aux, nro_cas) 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 nbSegGenBout = 6 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) - if i < 6: + if i_aux < 6: hypo1d = algo1d.NumberOfSegments(nbSegGenBout) else: hypo1d = algo1d.NumberOfSegments(nbSegGenLong) - putName(algo1d.GetSubMesh(), "generatrice", i) - putName(algo1d, "algo1d_generatrice", i) - putName(hypo1d, "hypo1d_generatrice", i) + putName(algo1d.GetSubMesh(), "generatrice", i_aux, nro_cas) + putName(algo1d, "algo1d_generatrice", i_aux, nro_cas) + putName(hypo1d, "hypo1d_generatrice", i_aux, nro_cas) disks = list() - for i, face in enumerate(disques[:4]): - name = "disk%d"%i + for i_aux, face in enumerate(disques[:4]): + name = "disk{}".format(i_aux) disks.append(meshFondFiss.GroupOnGeom(face, name, SMESH.FACE)) _ = meshFondFiss.GetMesh().UnionListOfGroups( disks, 'PEAUEXT' ) @@ -95,10 +101,10 @@ def insereFissureLongue_c (pipeFondFiss, disques, rayons, demiCercles, demiCercl groups_demiCercles = list() groupnodes_demiCercles = list() - for i, group in enumerate(groupsDemiCerclesPipe): - name = "Cercle%d"%i + for i_aux, group in enumerate(groupsDemiCerclesPipe): + name = "Cercle{}".format(i_aux) 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)) group_generFiss = meshFondFiss.GroupOnGeom(groupGenerFiss, "GenFiss", SMESH.EDGE) groupnode_generFiss = meshFondFiss.GroupOnGeom(groupGenerFiss, "GenFiss", SMESH.NODE) @@ -134,12 +140,12 @@ def insereFissureLongue_c (pipeFondFiss, disques, rayons, demiCercles, demiCercl minDist = 100000 minCoord = None imin = -1 - for i, edge in enumerate(demiCerclesPeau): + for i_aux, edge in enumerate(demiCerclesPeau): discoord = geompy.MinDistanceComponents(vertex, edge) if discoord[0] = 0 and minDist > 1.E-6: 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])