X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH_SWIG%2FsmeshBuilder.py;fp=src%2FSMESH_SWIG%2FsmeshBuilder.py;h=62db8895183d921e4967b74ec190ee4713171e83;hp=ec65b9fa92be7c17356f01b6fd6b2a2d479ee0c0;hb=da9f965ac4a75ae18f0074cacf6acf47b07a16bd;hpb=b60e215be81a131a861b11b5d778c5cd47b21459 diff --git a/src/SMESH_SWIG/smeshBuilder.py b/src/SMESH_SWIG/smeshBuilder.py index ec65b9fa9..62db88951 100644 --- a/src/SMESH_SWIG/smeshBuilder.py +++ b/src/SMESH_SWIG/smeshBuilder.py @@ -462,21 +462,6 @@ class smeshBuilder( SMESH._objref_SMESH_Gen, object ): obj,name = name,obj return Mesh(self, self.geompyD, obj, name) - def ParallelMesh(self, obj, param, nbThreads, name=0): - """ - Create a parallel mesh. - - Parameters: - obj: geometrical object for meshing - name: the name for the new mesh. - param: full mesh parameters - nbThreads: Number of threads for parallelisation. - - Returns: - an instance of class :class:`ParallelMesh`. - """ - return ParallelMesh(self, self.geompyD, obj, param, nbThreads, name) - def RemoveMesh( self, mesh ): """ Delete a mesh @@ -1878,6 +1863,7 @@ class Mesh(metaclass = MeshMeta): geom = self.geom return self.smeshpyD.Evaluate(self.mesh, geom) + def Compute(self, geom=0, discardModifs=False, refresh=False): """ Compute the mesh and return the status of the computation @@ -7501,121 +7487,6 @@ class Mesh(metaclass = MeshMeta): pass # end of Mesh class -def _copy_netgen_param(dim, local_param, global_param): - if dim==1: - #TODO: Try to identify why we need to substract 1 - local_param.NumberOfSegments(int(global_param.GetNbSegPerEdge())-1) - elif dim==2: - local_param.SetMaxSize(global_param.GetMaxSize()) - local_param.SetMinSize(global_param.GetMinSize()) - local_param.SetOptimize(global_param.GetOptimize()) - local_param.SetFineness(global_param.GetFineness()) - local_param.SetNbSegPerEdge(global_param.GetNbSegPerEdge()) - local_param.SetNbSegPerRadius(global_param.GetNbSegPerRadius()) - local_param.SetGrowthRate(global_param.GetGrowthRate()*0.9) - local_param.SetChordalError(global_param.GetChordalError()) - local_param.SetChordalErrorEnabled(global_param.GetChordalErrorEnabled()) - local_param.SetUseSurfaceCurvature(global_param.GetUseSurfaceCurvature()) - local_param.SetUseDelauney(global_param.GetUseDelauney()) - local_param.SetQuadAllowed(global_param.GetQuadAllowed()) - local_param.SetWorstElemMeasure(global_param.GetWorstElemMeasure()) - local_param.SetCheckChartBoundary(global_param.GetCheckChartBoundary()) - local_param.SetNbThreads(global_param.GetNbThreads()) - else: - local_param.SetMaxSize(global_param.GetMaxSize()) - local_param.SetMinSize(global_param.GetMinSize()) - local_param.SetOptimize(global_param.GetOptimize()) - local_param.SetCheckOverlapping(global_param.GetCheckOverlapping()) - local_param.SetCheckChartBoundary(global_param.GetCheckChartBoundary()) - local_param.SetFineness(global_param.GetFineness()) - local_param.SetNbSegPerEdge(global_param.GetNbSegPerEdge()) - local_param.SetNbSegPerRadius(global_param.GetNbSegPerRadius()) - local_param.SetGrowthRate(global_param.GetGrowthRate()) - local_param.SetNbThreads(global_param.GetNbThreads()) - -class ParallelMesh(Mesh): - """ - Surcharge on Mesh for parallel computation of a mesh - """ - - def __init__(self, smeshpyD, geompyD, geom, param, nbThreads, name=0): - """ - Create a parallel mesh. - - Parameters: - geom: geometrical object for meshing - param: full mesh parameters - nbThreads: Number of threads for parallelisation. - name: the name for the new mesh. - - Returns: - an instance of class :class:`ParallelMesh`. - """ - - if not isinstance(geom, geomBuilder.GEOM._objref_GEOM_Object): - raise ValueError("geom argument must be a geometry") - - if not isinstance(param, NETGENPlugin._objref_NETGENPlugin_Hypothesis): - raise ValueError("param must come from NETGENPlugin") - - if nbThreads < 1: - raise ValueError("Number of threads must be stricly greater than 1") - - # Splitting geometry into 3D elements and all the 2D/1D into one compound - object_solids = geompyD.ExtractShapes(geom, geompyD.ShapeType["SOLID"], - True) - - solids = [] - isolid = 0 - for solid in object_solids: - isolid += 1 - geompyD.addToStudyInFather( geom, solid, 'Solid_{}'.format(isolid) ) - solids.append(solid) - - faces = [] - iface = 0 - for isolid, solid in enumerate(solids): - solid_faces = geompyD.ExtractShapes(solid, geompyD.ShapeType["FACE"], - True) - for face in solid_faces: - faces.append(face) - iface += 1 - geompyD.addToStudyInFather(solid, face, - 'Face_{}'.format(iface)) - - # Creating submesh for edges 1D/2D part - - all_faces = geompyD.MakeCompound(faces) - geompyD.addToStudy(all_faces, 'Compound_1') - all_faces = geompyD.MakeGlueEdges(all_faces, 1e-07) - all_faces = geompyD.MakeGlueFaces(all_faces, 1e-07) - geompyD.addToStudy(all_faces, 'global2D') - - super(ParallelMesh, self).__init__(smeshpyD, geompyD, geom, name) - - self.mesh.SetNbThreads(nbThreads) - - self.UseExistingSegments() - self.UseExistingFaces() - - algo2d = self.Triangle(geom=all_faces, algo="NETGEN_2D") - param2d = algo2d.Parameters() - - _copy_netgen_param(2, param2d, param) - - for solid_id, solid in enumerate(solids): - name = "Solid_{}".format(solid_id) - self.UseExistingSegments(geom=solid) - self.UseExistingFaces(geom=solid) - algo3d = self.Tetrahedron(geom=solid, algo="NETGEN_3D_Remote") - - param3d = algo3d.Parameters() - - _copy_netgen_param(3, param3d, param) - - pass # End of ParallelMesh - - class meshProxy(SMESH._objref_SMESH_Mesh): """ Private class used to compensate change of CORBA API of SMESH_Mesh for backward compatibility