X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FTools%2FblocFissure%2Fgmu%2FmeshBlocPart.py;h=6f49c0fc62ff8eb8f61c10d7d7c66907888c7ad3;hp=4693f307fcb3954e70c9b609252b021b82941686;hb=403a6925d3258b5d5aa5ed723c334256b883ef24;hpb=b07ad0d79cc8e79896cc853193fd0afe4185e30d diff --git a/src/Tools/blocFissure/gmu/meshBlocPart.py b/src/Tools/blocFissure/gmu/meshBlocPart.py index 4693f307f..6f49c0fc6 100644 --- a/src/Tools/blocFissure/gmu/meshBlocPart.py +++ b/src/Tools/blocFissure/gmu/meshBlocPart.py @@ -36,9 +36,10 @@ def meshBlocPart(blocPartition, faceFissure, tore, centres, edges, diams, circle gencnt, facefissoutore, edgeext, facesExternes, facesExtBloc, facesExtElli, \ aretesInternes, internalBoundary, ellipsoidep, sharedFaces, sharedEdges, edgesBords, \ nbsegExt, nbsegGen, nbsegRad, scaleRad, reverses, reverext, nbsegCercle, nbsegFis, dmoyen, lensegEllipsoide, \ - mailleur="MeshGems"): + mailleur="MeshGems", nro_cas=-1): """Maillage du bloc partitionné""" logging.info('start') + logging.info("Maillage avec %s pour le cas n°%d", mailleur, nro_cas) # --- edges de bord à respecter @@ -49,7 +50,7 @@ def meshBlocPart(blocPartition, faceFissure, tore, centres, edges, diams, circle criteres.append(unCritere) filtre = smesh.GetFilterFromCriteria(criteres) bordsLibres = internalBoundary.MakeGroupByFilter( 'bords', filtre ) - smesh.SetName(bordsLibres, 'bordsLibres') + putName(bordsLibres, 'bordsLibres', i_pref=nro_cas) # --- maillage bloc @@ -61,34 +62,34 @@ def meshBlocPart(blocPartition, faceFissure, tore, centres, edges, diams, circle hypo2d.SetLocalLength(lensegEllipsoide) hypo2d.LengthFromEdges() hypo2d.SetAllowQuadrangles(0) - putName(algo2d.GetSubMesh(), "sharedFaces", i_aux) - putName(algo2d, "algo2d_sharedFaces", i_aux) - putName(hypo2d, "hypo2d_sharedFaces", i_aux) + putName(algo2d.GetSubMesh(), "sharedFaces", i_aux, nro_cas) + putName(algo2d, "algo2d_sharedFaces", i_aux, nro_cas) + putName(hypo2d, "hypo2d_sharedFaces", i_aux, nro_cas) for i_aux, sharedEdges_i in enumerate(sharedEdges): algo1d = bloc1.Segment(geom=sharedEdges_i) hypo1d = algo1d.LocalLength(lensegEllipsoide) - putName(algo1d.GetSubMesh(), "sharedEdges", i_aux) - putName(algo1d, "algo1d_sharedEdges", i_aux) - putName(hypo1d, "hypo1d_sharedEdges", i_aux) + putName(algo1d.GetSubMesh(), "sharedEdges", i_aux, nro_cas) + putName(algo1d, "algo1d_sharedEdges", i_aux, nro_cas) + putName(hypo1d, "hypo1d_sharedEdges", i_aux, nro_cas) declareAlgoEllipsoideFirst = False if declareAlgoEllipsoideFirst: algo3d = bloc1.Tetrahedron(algo=smeshBuilder.NETGEN,geom=ellipsoidep) hypo3d = algo3d.MaxElementVolume(1000.0) - putName(algo3d.GetSubMesh(), "ellipsoide") - putName(algo3d, "algo3d_ellipsoide") - putName(hypo3d, "hypo3d_ellipsoide") + putName(algo3d.GetSubMesh(), "ellipsoide", i_pref=nro_cas) + putName(algo3d, "algo3d_ellipsoide", i_pref=nro_cas) + putName(hypo3d, "hypo3d_ellipsoide", i_pref=nro_cas) algo3d = bloc1.Prism(geom=tore) algo2d = bloc1.Quadrangle(geom=tore) algo1d = bloc1.Segment(geom=tore) hypo1d = algo1d.NumberOfSegments(nbsegGen) - putName(algo3d.GetSubMesh(), "tore") - putName(algo3d, "algo3d_tore") - putName(algo2d, "algo2d_tore") - putName(algo1d, "algo1d_tore") - putName(hypo1d, "hypo1d_tore") + putName(algo3d.GetSubMesh(), "tore", i_pref=nro_cas) + putName(algo3d, "algo3d_tore", i_pref=nro_cas) + putName(algo2d, "algo2d_tore", i_pref=nro_cas) + putName(algo1d, "algo1d_tore", i_pref=nro_cas) + putName(hypo1d, "hypo1d_tore", i_pref=nro_cas) for i_aux, faces_i in enumerate(faces): algo2d = bloc1.Quadrangle(geom=faces_i) @@ -96,9 +97,9 @@ def meshBlocPart(blocPartition, faceFissure, tore, centres, edges, diams, circle hypo2d.SetTriaVertex( geompy.GetSubShapeID(blocPartition,centres[i_aux]) ) hypo2d.SetQuadType( StdMeshersBuilder.QUAD_STANDARD ) _ = bloc1.AddHypothesis(hypo2d,faces_i) - putName(algo2d.GetSubMesh(), "faces", i_aux) - putName(algo2d, "algo2d_faces", i_aux) - putName(hypo2d, "hypo2d_faces", i_aux) + putName(algo2d.GetSubMesh(), "faces", i_aux, nro_cas) + putName(algo2d, "algo2d_faces", i_aux, nro_cas) + putName(hypo2d, "hypo2d_faces", i_aux, nro_cas) for i_aux, edges_i in enumerate(edges): algo1d = bloc1.Segment(geom=edges_i) @@ -106,16 +107,16 @@ def meshBlocPart(blocPartition, faceFissure, tore, centres, edges, diams, circle hypo1d = algo1d.NumberOfSegments(nbsegRad, scaleRad,[ geompy.GetSubShapeID(blocPartition,edges_i) ]) else: hypo1d = algo1d.NumberOfSegments(nbsegRad, scaleRad,[ ]) - putName(algo1d.GetSubMesh(), "edges", i_aux) - putName(algo1d, "algo1d_edges", i_aux) - putName(hypo1d, "hypo1d_edges", i_aux) + putName(algo1d.GetSubMesh(), "edges", i_aux, nro_cas) + putName(algo1d, "algo1d_edges", i_aux, nro_cas) + putName(hypo1d, "hypo1d_edges", i_aux, nro_cas) for i_aux, circles_i in enumerate(circles): algo1d = bloc1.Segment(geom=circles_i) hypo1d = algo1d.NumberOfSegments(nbsegCercle) - putName(algo1d.GetSubMesh(), "circles", i_aux) - putName(algo1d, "algo1d_circles", i_aux) - putName(hypo1d, "hypo1d_circles", i_aux) + putName(algo1d.GetSubMesh(), "circles", i_aux, nro_cas) + putName(algo1d, "algo1d_circles", i_aux, nro_cas) + putName(hypo1d, "hypo1d_circles", i_aux, nro_cas) if len(edgeext) == 1: densite = int(round(nbsegFis/2)) @@ -124,9 +125,9 @@ def meshBlocPart(blocPartition, faceFissure, tore, centres, edges, diams, circle hypo1d.SetDistrType( 2 ) hypo1d.SetConversionMode( 1 ) hypo1d.SetTableFunction( [ 0, densite, 0.4, 1, 0.6, 1, 1, densite ] ) - putName(algo1d.GetSubMesh(), "edgeext") - putName(algo1d, "algo1d_edgeext") - putName(hypo1d, "hypo1d_edgeext") + putName(algo1d.GetSubMesh(), "edgeext", i_pref=nro_cas) + putName(algo1d, "algo1d_edgeext", i_pref=nro_cas) + putName(hypo1d, "hypo1d_edgeext", i_pref=nro_cas) else: longTotal = 0 longEdgeExts = list() @@ -144,15 +145,15 @@ def meshBlocPart(blocPartition, faceFissure, tore, centres, edges, diams, circle hypo1d.SetTableFunction( [ 0, densite, 0.8, 1, 1, 1 ] ) if reverext[i_aux]: hypo1d.SetReversedEdges([ geompy.GetSubShapeID(blocPartition, edgeext_i) ]) - putName(algo1d.GetSubMesh(), "edgeext", i_aux) - putName(algo1d, "algo1d_edgeext", i_aux) - putName(hypo1d, "hypo1d_edgeext", i_aux) + putName(algo1d.GetSubMesh(), "edgeext", i_aux, nro_cas) + putName(algo1d, "algo1d_edgeext", i_aux, nro_cas) + putName(hypo1d, "hypo1d_edgeext", i_aux, nro_cas) algo2d = bloc1.Triangle(algo=smeshBuilder.NETGEN_2D, geom=facefissoutore) hypo2d = algo2d.LengthFromEdges() - putName(algo2d.GetSubMesh(), "facefissoutore") - putName(algo2d, "algo2d_facefissoutore") - putName(hypo2d, "hypo2d_facefissoutore") + putName(algo2d.GetSubMesh(), "facefissoutore", i_pref=nro_cas) + putName(algo2d, "algo2d_facefissoutore", i_pref=nro_cas) + putName(hypo2d, "hypo2d_facefissoutore", i_pref=nro_cas) maxElemArea = 0.5*dmoyen*dmoyen @@ -164,33 +165,33 @@ def meshBlocPart(blocPartition, faceFissure, tore, centres, edges, diams, circle if edgesBords is None: algo1d = bloc1.Segment(geom=facesExternes_i) hypo1d = algo1d.NumberOfSegments(1) - putName(algo2d.GetSubMesh(), "facesExternes", i_aux) - putName(algo2d, "algo2d_facesExternes", i_aux) - putName(hypo2d, "hypo2d_facesExternes", i_aux) + putName(algo2d.GetSubMesh(), "facesExternes", i_aux, nro_cas) + putName(algo2d, "algo2d_facesExternes", i_aux, nro_cas) + putName(hypo2d, "hypo2d_facesExternes", i_aux, nro_cas) if edgesBords is None: - putName(algo1d, "algo1d_facesExternes", i_aux) - putName(hypo1d, "hypo1d_facesExternes", i_aux) + putName(algo1d, "algo1d_facesExternes", i_aux, nro_cas) + putName(hypo1d, "hypo1d_facesExternes", i_aux, nro_cas) for i_aux, aretesInternes_i in enumerate(aretesInternes): algo1d = bloc1.Segment(geom=aretesInternes_i) hypo1d = algo1d.NumberOfSegments(nbsegExt) - putName(algo1d.GetSubMesh(), "aretesInternes", i_aux) - putName(algo1d, "algo1d_aretesInternes", i_aux) - putName(hypo1d, "hypo1d_aretesInternes", i_aux) + putName(algo1d.GetSubMesh(), "aretesInternes", i_aux, nro_cas) + putName(algo1d, "algo1d_aretesInternes", i_aux, nro_cas) + putName(hypo1d, "hypo1d_aretesInternes", i_aux, nro_cas) if edgesBords is not None: algo1d = bloc1.UseExisting1DElements(geom=edgesBords) hypo1d = algo1d.SourceEdges([ bordsLibres ],0,0) - putName(algo1d.GetSubMesh(), "bordsLibres") - putName(algo1d, "algo1d_bordsLibres") - putName(hypo1d, "hypo1d_bordsLibres") + putName(algo1d.GetSubMesh(), "bordsLibres", i_pref=nro_cas) + putName(algo1d, "algo1d_bordsLibres", i_pref=nro_cas) + putName(hypo1d, "hypo1d_bordsLibres", i_pref=nro_cas) if not declareAlgoEllipsoideFirst: algo3d = bloc1.Tetrahedron(algo=smeshBuilder.NETGEN,geom=ellipsoidep) hypo3d = algo3d.MaxElementVolume(1000.0) - putName(algo3d.GetSubMesh(), "ellipsoide") - putName(algo3d, "algo3d_ellipsoide") - putName(hypo3d, "hypo3d_ellipsoide") + putName(algo3d.GetSubMesh(), "ellipsoide", i_pref=nro_cas) + putName(algo3d, "algo3d_ellipsoide", i_pref=nro_cas) + putName(hypo3d, "hypo3d_ellipsoide", i_pref=nro_cas) _ = bloc1.GroupOnGeom(faceFissure,'FACE1',SMESH.FACE) _ = bloc1.GroupOnGeom(gencnt,'nfondfis',SMESH.NODE) @@ -230,9 +231,9 @@ def meshBlocPart(blocPartition, faceFissure, tore, centres, edges, diams, circle algo3d = blocMesh.Tetrahedron(algo=smeshBuilder.NETGEN) hypo3d = algo3d.MaxElementVolume(1000.0) - putName(algo3d.GetSubMesh(), "bloc") - putName(algo3d, "algo3d_bloc") - putName(hypo3d, "hypo3d_bloc") + putName(algo3d.GetSubMesh(), "bloc", i_pref=nro_cas) + putName(algo3d, "algo3d_bloc", i_pref=nro_cas) + putName(hypo3d, "hypo3d_bloc", i_pref=nro_cas) is_done = blocMesh.Compute() text = "blocMesh.Compute"