X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH_SWIG%2Fsmesh_algorithm.py;h=46f2270c1d7b8d7f68ca9d8b65e02930cd792966;hp=cac705e124f8778b75257cd2bf081447e05d7e61;hb=214d7e4bdce3ce892f52229fd37d74ebf251cd8e;hpb=395112afac3d1d22056f3650681e3378adb6310c diff --git a/src/SMESH_SWIG/smesh_algorithm.py b/src/SMESH_SWIG/smesh_algorithm.py index cac705e12..46f2270c1 100644 --- a/src/SMESH_SWIG/smesh_algorithm.py +++ b/src/SMESH_SWIG/smesh_algorithm.py @@ -40,7 +40,7 @@ import SMESH # @code # meshMethod = "MyAlgorithm" # @endcode -# then an instance of @c MyPlugin_Algorithm can be created by the direct invokation of the function +# then an instance of @c MyPlugin_Algorithm can be created by the direct invocation of the function # of smesh.Mesh class: # @code # my_algo = mesh.MyAlgorithm() @@ -214,7 +214,7 @@ class Mesh_Algorithm: ## Private method def Hypothesis (self, hyp, args=[], so="libStdMeshersEngine.so", - UseExisting=0, CompareMethod=""): + UseExisting=0, CompareMethod="", toAdd=True): from salome.smesh.smeshBuilder import TreatHypoStatus, GetName hypo = None if UseExisting: @@ -243,8 +243,9 @@ class Mesh_Algorithm: geomName="" if self.geom: geomName = GetName(self.geom) - status = self.mesh.mesh.AddHypothesis(self.geom, hypo) - TreatHypoStatus( status, GetName(hypo), geomName, 0 ) + if toAdd: + status = self.mesh.mesh.AddHypothesis(self.geom, hypo) + TreatHypoStatus( status, GetName(hypo), geomName, 0, self.mesh ) return hypo ## Returns entry of the shape to mesh in the study @@ -256,7 +257,7 @@ class Mesh_Algorithm: ## Defines "ViscousLayers" hypothesis to give parameters of layers of prisms to build # near mesh boundary. This hypothesis can be used by several 3D algorithms: - # NETGEN 3D, GHS3D, Hexahedron(i,j,k) + # NETGEN 3D, MG-Tetra, Hexahedron(i,j,k) # @param thickness total thickness of layers of prisms # @param numberOfLayers number of layers of prisms # @param stretchFactor factor (>1.0) of growth of layer thickness towards inside of mesh @@ -275,16 +276,18 @@ class Mesh_Algorithm: if faces and isinstance( faces[0], geomBuilder.GEOM._objref_GEOM_Object ): faces = [ self.mesh.geompyD.GetSubShapeID(self.mesh.geom, f) for f in faces ] hyp = self.Hypothesis("ViscousLayers", - [thickness, numberOfLayers, stretchFactor, faces]) + [thickness, numberOfLayers, stretchFactor, faces, isFacesToIgnore], + toAdd=False) hyp.SetTotalThickness(thickness) hyp.SetNumberLayers(numberOfLayers) hyp.SetStretchFactor(stretchFactor) hyp.SetFaces(faces, isFacesToIgnore) + self.mesh.AddHypothesis( hyp, self.geom ) return hyp ## Defines "ViscousLayers2D" hypothesis to give parameters of layers of quadrilateral # elements to build near mesh boundary. This hypothesis can be used by several 2D algorithms: - # NETGEN 2D, NETGEN 1D-2D, Quadrangle (mapping), MEFISTO, BLSURF + # NETGEN 2D, NETGEN 1D-2D, Quadrangle (mapping), MEFISTO, MG-CADSurf # @param thickness total thickness of layers of quadrilaterals # @param numberOfLayers number of layers # @param stretchFactor factor (>1.0) of growth of layer thickness towards inside of mesh @@ -303,12 +306,13 @@ class Mesh_Algorithm: if edges and isinstance( edges[0], geomBuilder.GEOM._objref_GEOM_Object ): edges = [ self.mesh.geompyD.GetSubShapeID(self.mesh.geom, f) for f in edges ] hyp = self.Hypothesis("ViscousLayers2D", - [thickness, numberOfLayers, stretchFactor, - edges, isEdgesToIgnore]) + [thickness, numberOfLayers, stretchFactor, edges, isEdgesToIgnore], + toAdd=False) hyp.SetTotalThickness(thickness) hyp.SetNumberLayers(numberOfLayers) hyp.SetStretchFactor(stretchFactor) hyp.SetEdges(edges, isEdgesToIgnore) + self.mesh.AddHypothesis( hyp, self.geom ) return hyp ## Transform a list of either edges or tuples (edge, 1st_vertex_of_edge)