X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FTools%2FblocFissure%2Fgmu%2FconstruitFissureGenerale.py;h=71df308c89717690d9f78f7bd0a3b72b0430f742;hp=78edf16debc72893b07beec018ac32ea0d985fb7;hb=19f671efb91ebb9fa8f4c1beb053d4dc059196fa;hpb=403a6925d3258b5d5aa5ed723c334256b883ef24 diff --git a/src/Tools/blocFissure/gmu/construitFissureGenerale.py b/src/Tools/blocFissure/gmu/construitFissureGenerale.py index 78edf16de..71df308c8 100644 --- a/src/Tools/blocFissure/gmu/construitFissureGenerale.py +++ b/src/Tools/blocFissure/gmu/construitFissureGenerale.py @@ -24,9 +24,6 @@ import logging from . import initLog import salome -from salome.smesh import smeshBuilder -import GEOM -import SMESH from .geomsmesh import geompy from .geomsmesh import geomPublishInFather @@ -47,6 +44,7 @@ from .construitMaillagePipe import construitMaillagePipe from .mailleAretesEtJonction import mailleAretesEtJonction from .mailleFacesFissure import mailleFacesFissure from .mailleFacesPeau import mailleFacesPeau +from .putName import putName from .construitFissureGenerale_a import construitFissureGenerale_a from .construitFissureGenerale_b import construitFissureGenerale_b @@ -56,11 +54,10 @@ from .construitFissureGenerale_c import construitFissureGenerale_c def construitFissureGenerale(shapesFissure, shapeFissureParams, \ maillageFissureParams, elementsDefaut, \ - step=-1, mailleur="MeshGems", nro_cas=-1): + mailleur="MeshGems", nro_cas=None): """procédure complète fissure générale""" logging.info('start') - logging.info("Usage du mailleur %s", mailleur) - logging.info("pour le cas %d", nro_cas) + logging.info("Usage du mailleur %s pour le cas n°%s", mailleur, nro_cas) shapeDefaut = shapesFissure[0] # faces de fissure, débordant @@ -104,17 +101,19 @@ def construitFissureGenerale(shapesFissure, shapeFissureParams, \ # --- restriction de la face de fissure au domaine solide : # partition face fissure étendue par fillings, on garde la face interne - facesPortFissure = restreintFaceFissure(shapeDefaut, facesDefaut, pointInterne) + facesPortFissure = restreintFaceFissure(shapeDefaut, facesDefaut, pointInterne, \ + nro_cas) # --- pipe de fond de fissure, prolongé, partition face fissure par pipe # identification des edges communes pipe et face fissure (fissPipe, edgesPipeFiss, edgesFondFiss, wirePipeFiss, wireFondFiss) = \ - partitionneFissureParPipe(shapesFissure, elementsDefaut, rayonPipe) + partitionneFissureParPipe(shapesFissure, elementsDefaut, rayonPipe, \ + nro_cas) edgesFondFiss, edgesIdByOrientation = orderEdgesFromWire(wireFondFiss) - for i,edge in enumerate(edgesFondFiss): - geomPublishInFather(initLog.debug, wireFondFiss, edge, "edgeFondFiss%d"%i) + for i_aux, edge in enumerate(edgesFondFiss): + geomPublishInFather(initLog.debug, wireFondFiss, edge, "edgeFondFiss{}".format(i_aux), nro_cas) # --- peau et face de fissure # @@ -138,27 +137,29 @@ def construitFissureGenerale(shapesFissure, shapeFissureParams, \ edgeRadFacePipePeau, facesPipePeau = \ construitFissureGenerale_b( partitionsPeauFissFond, \ edgesPipeFiss, edgesFondFiss, wireFondFiss, aretesVivesC, \ - facesDefaut, centreFondFiss, rayonPipe, aretesVivesCoupees ) + facesDefaut, centreFondFiss, rayonPipe, aretesVivesCoupees, \ + nro_cas ) # --- identification des faces et edges de fissure externe pour maillage (faceFissureExterne, edgesPipeFissureExterneC, wirePipeFissureExterne, edgesPeauFissureExterneC) = \ - identifieFacesEdgesFissureExterne(fsFissuExt, edFisExtPe, edFisExtPi, edgesPipeFiss) + identifieFacesEdgesFissureExterne(fsFissuExt, edFisExtPe, edFisExtPi, edgesPipeFiss, \ + nro_cas) - # --- preparation maillage du pipe : + # --- préparation maillage du pipe : # - détections des points a respecter : jonction des edges/faces constituant la face de fissure externe au pipe # - points sur les edges de fond de fissure et edges pipe/face fissure, # - vecteurs tangents au fond de fissure (normal au disque maillé) - (centres, gptsdisks, raydisks) = calculePointsAxiauxPipe(edgesFondFiss, edgesIdByOrientation, facesDefaut, \ - centreFondFiss, wireFondFiss, wirePipeFiss, \ - lenSegPipe, rayonPipe, nbsegCercle, nbsegRad) + (centres, gptsdisks, raydisks) = calculePointsAxiauxPipe (edgesFondFiss, edgesIdByOrientation, facesDefaut, \ + centreFondFiss, wireFondFiss, wirePipeFiss, \ + lenSegPipe, rayonPipe, nbsegCercle, nbsegRad, \ + nro_cas) # --- recherche des points en trop (externes au volume à remailler) # - on associe chaque extrémité du pipe à une face filling # - on part des disques aux extrémités du pipe - # - pour chaque disque, on prend les vertices de géométrie, - # on marque leur position relative à la face. + # - pour chaque disque, on prend les vertices de géométrie on marque leur position relative à la face. # - on s'arrete quand tous les noeuds sont dedans (idFillingFromBout, idisklim, idiskout) = elimineExtremitesPipe(ptEdgeFond, facesDefaut, centres, gptsdisks, nbsegCercle) @@ -170,8 +171,8 @@ def construitFissureGenerale(shapesFissure, shapeFissureParams, \ # --- création des points du maillage du pipe sur la face de peau - (gptsdisks, idisklim) = creePointsPipePeau(listEdges, idFacesDebouchantes, idFillingFromBout, \ - ptEdgeFond, ptFisExtPi, edCircPeau, gptsdisks, idisklim, nbsegRad) + gptsdisks = creePointsPipePeau(listEdges, idFacesDebouchantes, idFillingFromBout, \ + ptEdgeFond, ptFisExtPi, edCircPeau, gptsdisks, idisklim, nbsegRad) # --- ajustement precis des points sur edgesPipeFissureExterneC @@ -179,11 +180,15 @@ def construitFissureGenerale(shapesFissure, shapeFissureParams, \ # --- maillage effectif du pipe - (meshPipe, meshPipeGroups, edgesCircPipeGroup) = construitMaillagePipe(gptsdisks, idisklim, nbsegCercle, nbsegRad) + (meshPipe, meshPipeGroups, edgesCircPipeGroup) = \ + construitMaillagePipe(gptsdisks, idisklim, nbsegCercle, nbsegRad, \ + nro_cas) # --- edges de bord, faces défaut à respecter - (internalBoundary, bordsLibres, grpAretesVives) = mailleAretesEtJonction(internalBoundary, aretesVivesCoupees, lgAretesVives) + (internalBoundary, bordsLibres, grpAretesVives) = \ + mailleAretesEtJonction(internalBoundary, aretesVivesCoupees, lgAretesVives, \ + nro_cas) # --- maillage faces de fissure @@ -191,7 +196,7 @@ def construitFissureGenerale(shapesFissure, shapeFissureParams, \ mailleFacesFissure(faceFissureExterne, \ edgesPipeFissureExterneC, edgesPeauFissureExterneC, \ meshPipeGroups, areteFaceFissure, rayonPipe, nbsegRad, \ - mailleur) + mailleur, nro_cas) # --- maillage faces de peau @@ -207,7 +212,9 @@ def construitFissureGenerale(shapesFissure, shapeFissureParams, \ for mfpeau in meshesFacesPeau: listMeshes.append(mfpeau.GetMesh()) - meshBoiteDefaut = smesh.Concatenate(listMeshes, 1, 1, 1e-05,False) + # Attention à la précision... 1.e-5 est trop exigeant. Il faudrait mettre une valeur en cohérence avec les tailles de mailles. + meshBoiteDefaut = smesh.Concatenate(listMeshes, 1, 1, 1.e-04) + putName(meshBoiteDefaut, "boiteDefaut", i_pref=nro_cas) # Maillage complet maillageComplet = construitFissureGenerale_c( maillageSain, meshBoiteDefaut, \