From: Yoann Audouin Date: Fri, 25 Feb 2022 07:51:16 +0000 (+0100) Subject: Cleanup + adaptation for parallel run X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=refs%2Fheads%2Fyan%2Fclear_smesh_swig_examples;p=modules%2Fsmesh.git Cleanup + adaptation for parallel run --- diff --git a/doc/salome/examples/SMESH_flight_skin.py b/doc/salome/examples/SMESH_flight_skin.py index bfbd5d387..14757a3c2 100644 --- a/doc/salome/examples/SMESH_flight_skin.py +++ b/doc/salome/examples/SMESH_flight_skin.py @@ -48,7 +48,7 @@ filePath = filePath + "/Shapes/Brep/" filename = "flight_solid.brep" filename = filePath + filename -shape = geompy.Import(filename, "BREP") +shape = geompy.ImportBREP(filename) idShape = geompy.addToStudy(shape, "flight") print("Analysis of the geometry flight :") diff --git a/doc/salome/examples/SMESH_test5.py b/doc/salome/examples/SMESH_test5.py index ca49d2c64..ba2b7b2e4 100644 --- a/doc/salome/examples/SMESH_test5.py +++ b/doc/salome/examples/SMESH_test5.py @@ -38,6 +38,10 @@ import CORBA import os import os.path +import tempfile + +aOutPath = tempfile.mkdtemp() + def SetSObjName(theSObj,theName) : ok, anAttr = theSObj.FindAttribute("AttributeName") if ok: @@ -58,8 +62,7 @@ def ConvertMED2UNV(thePath,theFile) : aMesh.SetName(aFileName) print(aMesh.GetName()) - aOutPath = '/tmp/' - aFileName = aOutPath + theFile + "." + str(iMesh) + ".unv" + aFileName = os.path.join(aOutPath, theFile + "." + str(iMesh) + ".unv") aMesh.ExportUNV(aFileName) aMesh = smesh.CreateMeshesFromUNV(aFileName) print(aMesh.GetName(), end=' ') @@ -72,13 +75,11 @@ aPath = os.getenv('DATA_DIR') + '/MedFiles/' aListDir = os.listdir(aPath) print(aListDir) -for iFile in range(len(aListDir)) : - aFileName = aListDir[iFile] +for aFileName in aListDir: aName,anExt = os.path.splitext(aFileName) if anExt == ".med" : aFileName = os.path.basename(aFileName) print(aFileName) ConvertMED2UNV(aPath,aFileName) - #break salome.sg.updateObjBrowser() diff --git a/doc/salome/examples/YACS_geomesh0.py b/doc/salome/examples/YACS_geomesh0.py deleted file mode 100644 index 05a235acb..000000000 --- a/doc/salome/examples/YACS_geomesh0.py +++ /dev/null @@ -1,192 +0,0 @@ -#!/usr/bin/env python3 -# Copyright (C) 2018-2021 CEA/DEN, EDF R&D, OPEN CASCADE -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# - -# test used in YACS, ForEachLoop - -def geomesh(l0, r0, h0, d0, d1, my_container, direc): - print("Géometrie et maillage barre : (l0, r0, h0, d0, d1)=", (l0, r0, h0, d0, d1)) - - import sys - import salome - salome.salome_init() - import GEOM - from salome.geom import geomBuilder - import math - import os - import SALOMEDS - import SMESH - from salome.smesh import smeshBuilder - - my_container.load_component_Library("GEOM") - #engineGeom = my_container.create_component_instance("GEOM") - engineGeom = my_container.load_impl("GEOM","") - geompy = geomBuilder.New(engineGeom) - my_container.load_component_Library("SMESH") - #engineSmesh = my_container.create_component_instance("SMESH") - engineSmesh = my_container.load_impl("SMESH","") - smesh = smeshBuilder.New(engineSmesh,engineGeom) - print("instances Names:", engineGeom.instanceName, engineSmesh.instanceName) - print("instances:", engineGeom, engineSmesh) - print("builders:", geompy, smesh) - - volume = (2.*l0*r0 + 0.75*math.pi*r0*r0)*h0 - O = geompy.MakeVertex(0, 0, 0) - OX = geompy.MakeVectorDXDYDZ(1, 0, 0) - OY = geompy.MakeVectorDXDYDZ(0, 1, 0) - OZ = geompy.MakeVectorDXDYDZ(0, 0, 1) - Vertex_1 = geompy.MakeVertex(-l0, -r0, 0) - Vertex_2 = geompy.MakeVertex(-l0-r0, 0, 0) - Vertex_3 = geompy.MakeVertex(-l0, r0, 0) - Vertex_4 = geompy.MakeVertex(l0, r0, 0) - Vertex_5 = geompy.MakeVertex(l0+r0, 0, 0) - Vertex_6 = geompy.MakeVertex(l0, -r0, 0) - Arc_1 = geompy.MakeArc(Vertex_1, Vertex_2, Vertex_3) - Arc_2 = geompy.MakeArc(Vertex_4, Vertex_5, Vertex_6) - Line_1 = geompy.MakeLineTwoPnt(Vertex_3, Vertex_4) - Line_2 = geompy.MakeLineTwoPnt(Vertex_6, Vertex_1) - Face_1 = geompy.MakeFaceWires([Arc_1, Arc_2, Line_1, Line_2], 1) - barre0 = geompy.MakePrismVecH(Face_1, OZ, h0) - Vertex_1a = geompy.MakeVertex(-l0, -r0/2, 0) - Vertex_2a = geompy.MakeVertex(-l0-r0/2, 0, 0) - Vertex_3a = geompy.MakeVertex(-l0, r0/2, 0) - Vertex_4a = geompy.MakeVertex(l0, r0/2, 0) - Vertex_5a = geompy.MakeVertex(l0+r0/2, 0, 0) - Vertex_6a = geompy.MakeVertex(l0, -r0/2, 0) - Arc_1a = geompy.MakeArc(Vertex_1a, Vertex_2a, Vertex_3a) - Arc_2a = geompy.MakeArc(Vertex_4a, Vertex_5a, Vertex_6a) - Line_1a = geompy.MakeLineTwoPnt(Vertex_3a, Vertex_4a) - Line_2a = geompy.MakeLineTwoPnt(Vertex_6a, Vertex_1a) - Face_1a = geompy.MakeFaceWires([Arc_1a, Arc_2a, Line_1a, Line_2a], 1) - barrea = geompy.MakePrismVecH(Face_1a, OZ, h0) - barreb = geompy.MakeCut(barre0, barrea) - Plane_1 = geompy.MakePlane(Vertex_1, OX, 2000) - Plane_2 = geompy.MakePlane(Vertex_6, OX, 2000) - barre = geompy.MakePartition([barreb], [Plane_1, Plane_2], [], [], geompy.ShapeType["SOLID"], 0, [], 0) - v1 = geompy.MakeVertex(-l0-r0, 0, h0/2.) - v2 = geompy.MakeVertex(l0+r0, 0, h0/2.) - f1 = geompy.GetShapesNearPoint(barre, v1, geompy.ShapeType["FACE"]) - f2 = geompy.GetShapesNearPoint(barre, v2, geompy.ShapeType["FACE"]) - #f1 = geompy.CreateGroup(barre, geompy.ShapeType["FACE"]) - #geompy.UnionIDs(f1, [3]) - #f2 = geompy.CreateGroup(barre, geompy.ShapeType["FACE"]) - #geompy.UnionIDs(f2, [20]) - - Auto_group_for_Sub_mesh_1 = geompy.CreateGroup(barre, geompy.ShapeType["FACE"]) - geompy.UnionList(Auto_group_for_Sub_mesh_1, [f1, f2]) - nom = r'barre_l_{:03d}__r_{:05.2f}__h_{:05.2f}__d0_{:05.2f}__d1_{:05.2f}'.format(int(l0), r0, h0, d0, d1) - nombrep = nom + ".brep" - geompy.ExportBREP(barre, direc + os.sep + nombrep ) - props = geompy.BasicProperties(barre) - geomvol = props[2] - - #geompy.addToStudy( barre, 'barre' ) - #geompy.addToStudyInFather( barre, f1, 'f1' ) - #geompy.addToStudyInFather( barre, f2, 'f2' ) - - smesh.SetEnablePublish( False ) - - isTetra = False - barre_1 = smesh.Mesh(barre) - # SO = salome.myStudy.FindObjectIOR(salome.myStudy.ConvertObjectToIOR(barre_1.GetMesh())) - # if SO: - # print ("_______",SO.GetID(),SO.GetName()) - # else: - # print ("_______NO_SO!!!") - if (isTetra): - NETGEN_1D_2D_3D = barre_1.Tetrahedron(algo=smeshBuilder.NETGEN_1D2D3D) - NETGEN_3D_Parameters_1 = NETGEN_1D_2D_3D.Parameters() - NETGEN_3D_Parameters_1.SetMaxSize( d0 ) - NETGEN_3D_Parameters_1.SetSecondOrder( 0 ) - NETGEN_3D_Parameters_1.SetOptimize( 1 ) - NETGEN_3D_Parameters_1.SetFineness( 3 ) - NETGEN_3D_Parameters_1.SetChordalError( 0.1 ) - NETGEN_3D_Parameters_1.SetChordalErrorEnabled( 0 ) - NETGEN_3D_Parameters_1.SetMinSize( d0 ) - NETGEN_3D_Parameters_1.SetUseSurfaceCurvature( 1 ) - NETGEN_3D_Parameters_1.SetFuseEdges( 1 ) - NETGEN_3D_Parameters_1.SetQuadAllowed( 0 ) - NETGEN_1D_2D = barre_1.Triangle(algo=smeshBuilder.NETGEN_1D2D,geom=Auto_group_for_Sub_mesh_1) - NETGEN_2D_Parameters_1 = NETGEN_1D_2D.Parameters() - NETGEN_2D_Parameters_1.SetMaxSize( d1 ) - NETGEN_2D_Parameters_1.SetSecondOrder( 0 ) - NETGEN_2D_Parameters_1.SetOptimize( 1 ) - NETGEN_2D_Parameters_1.SetFineness( 3 ) - NETGEN_2D_Parameters_1.SetChordalError( 0.1 ) - NETGEN_2D_Parameters_1.SetChordalErrorEnabled( 0 ) - NETGEN_2D_Parameters_1.SetMinSize( d1 ) - NETGEN_2D_Parameters_1.SetUseSurfaceCurvature( 1 ) - NETGEN_2D_Parameters_1.SetFuseEdges( 1 ) - NETGEN_2D_Parameters_1.SetQuadAllowed( 0 ) - else: - Regular_1D = barre_1.Segment() - Number_of_Segments_1 = Regular_1D.NumberOfSegments(15) - Quadrangle_2D = barre_1.Quadrangle(algo=smeshBuilder.QUADRANGLE) - Hexa_3D = barre_1.Hexahedron(algo=smeshBuilder.Hexa) - isDone = barre_1.Compute() - - f1_1 = barre_1.GroupOnGeom(f1,'f1',SMESH.FACE) - f2_1 = barre_1.GroupOnGeom(f2,'f2',SMESH.FACE) - smesh.SetName(barre_1, nom) - nommed = nom + ".med" - barre_1.ExportMED( direc + os.sep + nommed, auto_groups=0, minor=0, overwrite=1, meshPart=None, autoDimension=1 ) - measure = smesh.CreateMeasurements() - meshvol = measure.Volume(barre_1.mesh) - print("Maillage publié : ", direc + os.sep + nommed) - clearMesh(barre_1, salome.myStudy, nom) - deltag = abs(geomvol - volume)/volume - deltam = abs(meshvol - geomvol)/geomvol - delta = abs(meshvol - volume)/volume - print("volumes:", volume, geomvol, meshvol, deltag, deltam) - assert(deltag < 1.e-5) - assert(deltam < 2.e-3) - #import time - #time.sleep(30) - return delta - - -def clearMesh(theMesh, theStudy, aName): - theMesh.Clear() - aMesh = theMesh.GetMesh() - aMesh.UnRegister() - # aStudyBuilder = theStudy.NewBuilder() - # SO = theStudy.FindObjectIOR(theStudy.ConvertObjectToIOR(aMesh)) - # objects_to_unpublish = [SO] - # refs = theStudy.FindDependances(SO) - # objects_to_unpublish += refs - # for o in objects_to_unpublish: - # if o is not None: - # aStudyBuilder.RemoveObjectWithChildren(o) - print("clearMesh done:", aName) - -def genere(r0, h0, my_container, direc): - l0 = 50.0 - d0 = min(r0/2., h0/6.) - d1 = d0/2. - res = geomesh(l0, r0, h0, d0, d1, my_container, direc) - return res - -def genere2(r0h0, my_container, direc): - l0 = 50.0 - r0 = r0h0[0] - h0 = r0h0[1] - d0 = min(r0/2., h0/6.) - d1 = d0/2. - res = geomesh(l0, r0, h0, d0, d1, my_container, direc) - return res diff --git a/doc/salome/examples/ex29_refine.py b/doc/salome/examples/ex29_refine.py index b693f3029..7524048d5 100644 --- a/doc/salome/examples/ex29_refine.py +++ b/doc/salome/examples/ex29_refine.py @@ -36,7 +36,8 @@ import os # Values # ------ -tmpDir = os.getenv('SALOME_TMP_DIR', '/tmp') +import tempfile +tmpDir = tempfile.mkdtemp() print("Output directory:", tmpDir) # Path for ".med" files