X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FTools%2FblocFissure%2Fgmu%2FconstruitFissureGenerale.py;h=3f48bebac29f611922083c5e5e984d933de3c14f;hp=c6291434e9ebc1413585538d191671251f03219c;hb=499f29d24922cec66e41b41a0039a954993bc6df;hpb=caba16c69d5765610810c22df363d31fb4a35bae diff --git a/src/Tools/blocFissure/gmu/construitFissureGenerale.py b/src/Tools/blocFissure/gmu/construitFissureGenerale.py index c6291434e..3f48bebac 100644 --- a/src/Tools/blocFissure/gmu/construitFissureGenerale.py +++ b/src/Tools/blocFissure/gmu/construitFissureGenerale.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2014-2021 EDF R&D +# Copyright (C) 2014-2022 EDF R&D # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -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,10 +54,10 @@ from .construitFissureGenerale_c import construitFissureGenerale_c def construitFissureGenerale(shapesFissure, shapeFissureParams, \ maillageFissureParams, elementsDefaut, \ - step=-1, mailleur="MeshGems", nro_cas=None): + mailleur="MeshGems", nro_cas=None): """procédure complète fissure générale""" logging.info('start') - logging.info("Usage du mailleur %s pour le cas n°%d", mailleur, nro_cas) + logging.info("Usage du mailleur %s pour le cas n°%s", mailleur, nro_cas) shapeDefaut = shapesFissure[0] # faces de fissure, débordant @@ -103,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 # @@ -132,19 +132,21 @@ def construitFissureGenerale(shapesFissure, shapeFissureParams, \ # --- inventaire des faces de peau coupées par la fissure - ptEdgeFond, fsFissuExt, edFisExtPe, edFisExtPi, \ - facesPeaux, edCircPeau, ptCircPeau, gpedgeBord, gpedgeVifs, edFissPeau, ptFisExtPi, \ + ptEdgeFond, fsFissuExt, edFisExtPe, edFisExtPi, facesPeaux, edCircPeau, \ + gpedgeBord, gpedgeVifs, edFissPeau, ptFisExtPi, \ 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é) @@ -157,8 +159,7 @@ def construitFissureGenerale(shapesFissure, shapeFissureParams, \ # --- 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,8 +180,9 @@ def construitFissureGenerale(shapesFissure, shapeFissureParams, \ # --- maillage effectif du pipe - (meshPipe, meshPipeGroups, edgesCircPipeGroup) = \ - construitMaillagePipe(gptsdisks, idisklim, nbsegCercle, nbsegRad) + (meshPipe, edgeFaceFissGroup, edgesCircPipeGroup) = \ + construitMaillagePipe(gptsdisks, idisklim, nbsegCercle, nbsegRad, \ + nro_cas) # --- edges de bord, faces défaut à respecter @@ -193,13 +195,13 @@ def construitFissureGenerale(shapesFissure, shapeFissureParams, \ (meshFaceFiss, _, grpEdgesPeauFissureExterne, _) = \ mailleFacesFissure(faceFissureExterne, \ edgesPipeFissureExterneC, edgesPeauFissureExterneC, \ - meshPipeGroups, areteFaceFissure, rayonPipe, nbsegRad, \ + edgeFaceFissGroup, areteFaceFissure, rayonPipe, nbsegRad, \ mailleur, nro_cas) # --- maillage faces de peau meshesFacesPeau = mailleFacesPeau(partitionsPeauFissFond, idFillingFromBout, facesDefaut, \ - facesPeaux, edCircPeau, ptCircPeau, gpedgeBord, gpedgeVifs, edFissPeau, \ + facesPeaux, edCircPeau, gpedgeBord, gpedgeVifs, edFissPeau, \ bordsLibres, grpEdgesPeauFissureExterne, grpAretesVives, \ edgesCircPipeGroup, dmoyen, rayonPipe, nbsegRad, \ mailleur, nro_cas) @@ -210,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, \