mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-26 07:30:33 +05:00
PAL10237. Add Mesh.AutomaticTetrahedralization() and Mesh.AutomaticHexahedralization()
This commit is contained in:
parent
cee115afad
commit
15549165c3
@ -199,6 +199,12 @@ class Mesh_Segment(Mesh_Algorithm):
|
|||||||
"""
|
"""
|
||||||
return self.Hypothesis("Propagation")
|
return self.Hypothesis("Propagation")
|
||||||
|
|
||||||
|
def AutomaticLength(self):
|
||||||
|
"""
|
||||||
|
Define "AutomaticLength" hypothesis
|
||||||
|
"""
|
||||||
|
return self.Hypothesis("AutomaticLength")
|
||||||
|
|
||||||
# Public class: Mesh_Segment_Python
|
# Public class: Mesh_Segment_Python
|
||||||
# ---------------------------------
|
# ---------------------------------
|
||||||
|
|
||||||
@ -348,6 +354,21 @@ class Mesh:
|
|||||||
"""
|
"""
|
||||||
return self.geom
|
return self.geom
|
||||||
|
|
||||||
|
def MeshDimension(self):
|
||||||
|
"""
|
||||||
|
Returns mesh dimension depending on shape one
|
||||||
|
"""
|
||||||
|
shells = geompy.SubShapeAllIDs( self.geom, geompy.ShapeType["SHELL"] )
|
||||||
|
if len( shells ) > 0 :
|
||||||
|
return 3
|
||||||
|
elif geompy.NumberOfFaces( self.geom ) > 0 :
|
||||||
|
return 2
|
||||||
|
elif geompy.NumberOfEdges( self.geom ) > 0 :
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
return 0;
|
||||||
|
pass
|
||||||
|
|
||||||
def Segment(self, algo=REGULAR, geom=0):
|
def Segment(self, algo=REGULAR, geom=0):
|
||||||
"""
|
"""
|
||||||
Creates a segment discretization 1D algorithm.
|
Creates a segment discretization 1D algorithm.
|
||||||
@ -414,6 +435,50 @@ class Mesh:
|
|||||||
salome.sg.updateObjBrowser(1)
|
salome.sg.updateObjBrowser(1)
|
||||||
return b
|
return b
|
||||||
|
|
||||||
|
def AutomaticTetrahedralization(self):
|
||||||
|
"""
|
||||||
|
Compute tetrahedral mesh using AutomaticLength + MEFISTO + NETGEN
|
||||||
|
"""
|
||||||
|
dim = self.MeshDimension()
|
||||||
|
# assign hypotheses
|
||||||
|
self.RemoveGlobalHypotheses()
|
||||||
|
self.Segment().AutomaticLength()
|
||||||
|
if dim > 1 :
|
||||||
|
self.Triangle().LengthFromEdges()
|
||||||
|
pass
|
||||||
|
if dim > 2 :
|
||||||
|
self.Tetrahedron(NETGEN)
|
||||||
|
pass
|
||||||
|
self.Compute()
|
||||||
|
pass
|
||||||
|
|
||||||
|
def AutomaticHexahedralization(self):
|
||||||
|
"""
|
||||||
|
Compute hexahedral mesh using AutomaticLength + Quadrangle + Hexahedron
|
||||||
|
"""
|
||||||
|
dim = self.MeshDimension()
|
||||||
|
# assign hypotheses
|
||||||
|
self.RemoveGlobalHypotheses()
|
||||||
|
self.Segment().AutomaticLength()
|
||||||
|
if dim > 1 :
|
||||||
|
self.Quadrangle()
|
||||||
|
pass
|
||||||
|
if dim > 2 :
|
||||||
|
self.Hexahedron()
|
||||||
|
pass
|
||||||
|
self.Compute()
|
||||||
|
pass
|
||||||
|
|
||||||
|
def RemoveGlobalHypotheses(self):
|
||||||
|
"""
|
||||||
|
Removes all global hypotheses
|
||||||
|
"""
|
||||||
|
current_hyps = self.mesh.GetHypothesisList( self.geom )
|
||||||
|
for hyp in current_hyps:
|
||||||
|
self.mesh.RemoveHypothesis( self.geom, hyp )
|
||||||
|
pass
|
||||||
|
pass
|
||||||
|
|
||||||
def Group(self, grp, name=""):
|
def Group(self, grp, name=""):
|
||||||
"""
|
"""
|
||||||
Create a mesh group based on geometric object \a grp
|
Create a mesh group based on geometric object \a grp
|
||||||
|
Loading…
Reference in New Issue
Block a user