PR: doc adaptation to smeshBuilder
This commit is contained in:
parent
c4d4d6d3c1
commit
b92ee90187
@ -32,10 +32,7 @@ guidoc_DATA = images/head.png
|
|||||||
DOC_PYTHONPATH=$(prefix)/bin/salome:$(SMESH_ROOT_DIR)/bin/salome:$(SMESH_ROOT_DIR)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(MED_ROOT_DIR)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(GEOM_ROOT_DIR)/bin/salome:$(GEOM_ROOT_DIR)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(KERNEL_ROOT_DIR)/bin/salome:$(KERNEL_ROOT_DIR)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(OMNIORB_ROOT)/lib/python$(PYTHON_VERSION)/site-packages:$(OMNIORB_ROOT)/lib64/python$(PYTHON_VERSION)/site-packages
|
DOC_PYTHONPATH=$(prefix)/bin/salome:$(SMESH_ROOT_DIR)/bin/salome:$(SMESH_ROOT_DIR)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(MED_ROOT_DIR)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(GEOM_ROOT_DIR)/bin/salome:$(GEOM_ROOT_DIR)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(KERNEL_ROOT_DIR)/bin/salome:$(KERNEL_ROOT_DIR)/lib/python$(PYTHON_VERSION)/site-packages/salome:$(OMNIORB_ROOT)/lib/python$(PYTHON_VERSION)/site-packages:$(OMNIORB_ROOT)/lib64/python$(PYTHON_VERSION)/site-packages
|
||||||
DOC_SMESH_MeshersList=NETGENPlugin
|
DOC_SMESH_MeshersList=NETGENPlugin
|
||||||
|
|
||||||
smesh.py: $(top_srcdir)/src/NETGENPlugin/NETGENPluginDC.py
|
usr_docs: doxyfile_py doxyfile
|
||||||
@PYTHONPATH=$(DOC_PYTHONPATH):${PYTHONPATH} SMESH_MeshersList=$(DOC_SMESH_MeshersList) $(PYTHON) $(SMESH_ROOT_DIR)/bin/salome/collect_mesh_methods.py -d -o $@ NETGENPlugin
|
|
||||||
|
|
||||||
usr_docs: doxyfile_py doxyfile smesh.py
|
|
||||||
@$(DOXYGEN) doxyfile_py ; \
|
@$(DOXYGEN) doxyfile_py ; \
|
||||||
$(DOXYGEN) doxyfile
|
$(DOXYGEN) doxyfile
|
||||||
|
|
||||||
|
@ -99,8 +99,7 @@ EXAMPLE_RECURSIVE = NO
|
|||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
#Input related options
|
#Input related options
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
INPUT = @top_srcdir@/src/NETGENPlugin/NETGENPluginDC.py \
|
INPUT = @top_srcdir@/src/NETGENPlugin/NETGENPluginBuilder.py \
|
||||||
smesh.py \
|
|
||||||
@SMESH_ROOT_DIR@/bin/salome/smesh_algorithm.py
|
@SMESH_ROOT_DIR@/bin/salome/smesh_algorithm.py
|
||||||
FILE_PATTERNS =
|
FILE_PATTERNS =
|
||||||
IMAGE_PATH = @srcdir@/images
|
IMAGE_PATH = @srcdir@/images
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
\page netgenplugin_python_interface_page Python Interface
|
\page netgenplugin_python_interface_page Python Interface
|
||||||
|
|
||||||
Python package NETGENPluginDC defines several classes, destined for
|
Python package NETGENPluginBuilder defines several classes, destined for
|
||||||
creation of the 2D and 3D meshes.
|
creation of the 2D and 3D meshes.
|
||||||
|
|
||||||
NETGEN meshing plugin dynamically adds several methods to the
|
NETGEN meshing plugin dynamically adds several methods to the
|
||||||
|
@ -1,465 +0,0 @@
|
|||||||
# Copyright (C) 2007-2012 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.
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
#
|
|
||||||
|
|
||||||
##
|
|
||||||
# @package NETGENPluginDC
|
|
||||||
# Python API for the NETGEN meshing plug-in module.
|
|
||||||
|
|
||||||
from smesh_algorithm import Mesh_Algorithm
|
|
||||||
from smeshDC import AssureGeomPublished, ParseParameters, IsEqual
|
|
||||||
|
|
||||||
# import NETGENPlugin module if possible
|
|
||||||
noNETGENPlugin = 0
|
|
||||||
try:
|
|
||||||
import NETGENPlugin
|
|
||||||
except ImportError:
|
|
||||||
noNETGENPlugin = 1
|
|
||||||
pass
|
|
||||||
|
|
||||||
#----------------------------
|
|
||||||
# Mesh algo type identifiers
|
|
||||||
#----------------------------
|
|
||||||
|
|
||||||
## Algorithm type: Netgen tetrahedron 3D algorithm, see NETGEN_3D_Algorithm
|
|
||||||
NETGEN_3D = "NETGEN_3D"
|
|
||||||
## Algorithm type: Netgen tetrahedron 1D-2D-3D algorithm, see NETGEN_1D2D3D_Algorithm
|
|
||||||
NETGEN_1D2D3D = "NETGEN_2D3D"
|
|
||||||
## Algorithm type: Netgen triangle 1D-2D algorithm, see NETGEN_1D2D_Algorithm
|
|
||||||
NETGEN_1D2D = "NETGEN_2D"
|
|
||||||
## Algorithm type: Netgen triangle 2D algorithm, see NETGEN_2D_Only_Algorithm
|
|
||||||
NETGEN_2D = "NETGEN_2D_ONLY"
|
|
||||||
## Algorithm type: Synonim of NETGEN_1D2D3D, see NETGEN_1D2D3D_Algorithm
|
|
||||||
NETGEN_FULL = NETGEN_1D2D3D
|
|
||||||
## Algorithm type: Synonim of NETGEN_3D, see NETGEN_3D_Algorithm
|
|
||||||
NETGEN = NETGEN_3D
|
|
||||||
## Algorithm type: Synonim of NETGEN_1D2D3D, see NETGEN_1D2D3D_Algorithm
|
|
||||||
FULL_NETGEN = NETGEN_FULL
|
|
||||||
|
|
||||||
#----------------------------
|
|
||||||
# Hypothesis type enumeration
|
|
||||||
#----------------------------
|
|
||||||
|
|
||||||
## Hypothesis type enumeration: complex hypothesis
|
|
||||||
# (full set of parameters can be specified),
|
|
||||||
# see NETGEN_Algorithm.Parameters()
|
|
||||||
SOLE = 0
|
|
||||||
## Hypothesis type enumeration: simple hypothesis
|
|
||||||
# (only major parameters are specified),
|
|
||||||
# see NETGEN_Algorithm.Parameters()
|
|
||||||
SIMPLE = 1
|
|
||||||
|
|
||||||
#----------------------
|
|
||||||
# Fineness enumeration
|
|
||||||
#----------------------
|
|
||||||
|
|
||||||
## Fineness enumeration: very coarse quality of mesh,
|
|
||||||
# see NETGEN_Algorithm.SetFineness()
|
|
||||||
VeryCoarse = 0
|
|
||||||
## Fineness enumeration: coarse quality of mesh,
|
|
||||||
# see NETGEN_Algorithm.SetFineness()
|
|
||||||
Coarse = 1
|
|
||||||
## Fineness enumeration: moderate quality of mesh,
|
|
||||||
# see NETGEN_Algorithm.SetFineness()
|
|
||||||
Moderate = 2
|
|
||||||
## Fineness enumeration: fine quality of mesh,
|
|
||||||
# see NETGEN_Algorithm.SetFineness()
|
|
||||||
Fine = 3
|
|
||||||
## Fineness enumeration: very fine quality of mesh,
|
|
||||||
# see NETGEN_Algorithm.SetFineness()
|
|
||||||
VeryFine = 4
|
|
||||||
## Fineness enumeration: custom quality of mesh specified by other parameters),
|
|
||||||
# see NETGEN_Algorithm.SetFineness()
|
|
||||||
Custom = 5
|
|
||||||
|
|
||||||
#----------------------
|
|
||||||
# Algorithms
|
|
||||||
#----------------------
|
|
||||||
|
|
||||||
## Base of all NETGEN algorithms.
|
|
||||||
#
|
|
||||||
# This class provides common methods for all algorithms implemented by NETGEN plugin.
|
|
||||||
# @note This class must not be instantiated directly.
|
|
||||||
class NETGEN_Algorithm(Mesh_Algorithm):
|
|
||||||
|
|
||||||
## Private constructor
|
|
||||||
# @param mesh parent mesh object algorithm is assigned to
|
|
||||||
# @param geom geometry (shape/sub-shape) algorithm is assigned to;
|
|
||||||
# if it is @c 0 (default), the algorithm is assigned to the main shape
|
|
||||||
def __init__(self, mesh, geom=0):
|
|
||||||
Mesh_Algorithm.__init__(self)
|
|
||||||
if noNETGENPlugin: print "Warning: NETGENPlugin module unavailable"
|
|
||||||
self.Create(mesh, geom, self.algoType, "libNETGENEngine.so")
|
|
||||||
self.params = None
|
|
||||||
pass
|
|
||||||
|
|
||||||
## Sets @c MaxSize parameter
|
|
||||||
# @param theSize new value of the @c MaxSize parameter
|
|
||||||
def SetMaxSize(self, theSize):
|
|
||||||
if self.Parameters(): self.params.SetMaxSize(theSize)
|
|
||||||
pass
|
|
||||||
|
|
||||||
## Sets @c MinSize parameter
|
|
||||||
# @param theSize new value of the @c MinSize parameter
|
|
||||||
def SetMinSize(self, theSize):
|
|
||||||
if self.Parameters(): self.params.SetMinSize(theSize)
|
|
||||||
pass
|
|
||||||
|
|
||||||
## Sets @c Optimize flag
|
|
||||||
# @param theVal new value of the @c Optimize parameter
|
|
||||||
def SetOptimize(self, theVal):
|
|
||||||
if self.Parameters(): self.params.SetOptimize(theVal)
|
|
||||||
pass
|
|
||||||
|
|
||||||
## Sets @c Fineness parameter
|
|
||||||
# @param theFineness new value of the @c Fineness parameter; it can be:
|
|
||||||
# @ref VeryCoarse, @ref Coarse, @ref Moderate, @ref Fine, @ref VeryFine or @ref Custom
|
|
||||||
def SetFineness(self, theFineness):
|
|
||||||
if self.Parameters(): self.params.SetFineness(theFineness)
|
|
||||||
pass
|
|
||||||
|
|
||||||
## Sets @c GrowthRate parameter
|
|
||||||
# @param theRate new value of the @c GrowthRate parameter
|
|
||||||
def SetGrowthRate(self, theRate):
|
|
||||||
if self.Parameters(): self.params.SetGrowthRate(theRate)
|
|
||||||
pass
|
|
||||||
|
|
||||||
## Creates meshing hypothesis according to the chosen algorithm type
|
|
||||||
# and initializes it with default parameters
|
|
||||||
# @param which hypothesis type; can be either @ref SOLE (default) or @ref SIMPLE
|
|
||||||
# @return hypothesis object
|
|
||||||
def Parameters(self, which=SOLE):
|
|
||||||
if self.algoType == NETGEN_1D2D:
|
|
||||||
if which == SIMPLE:
|
|
||||||
hypType = "NETGEN_SimpleParameters_2D"
|
|
||||||
else:
|
|
||||||
hypType = "NETGEN_Parameters_2D"
|
|
||||||
elif self.algoType == NETGEN_1D2D3D:
|
|
||||||
if which == SIMPLE:
|
|
||||||
hypType = "NETGEN_SimpleParameters_3D"
|
|
||||||
else:
|
|
||||||
hypType = "NETGEN_Parameters"
|
|
||||||
elif self.algoType == NETGEN_2D:
|
|
||||||
hypType = "NETGEN_Parameters_2D_ONLY"
|
|
||||||
else:
|
|
||||||
hypType = "NETGEN_Parameters_3D"
|
|
||||||
|
|
||||||
if self.params and self.params.GetName() != hypType:
|
|
||||||
self.mesh.RemoveHypothesis( self.params, self.geom )
|
|
||||||
self.params = None
|
|
||||||
if not self.params:
|
|
||||||
self.params = self.Hypothesis(hypType, [],"libNETGENEngine.so",UseExisting=0)
|
|
||||||
|
|
||||||
return self.params
|
|
||||||
|
|
||||||
pass # end of NETGEN_Algorithm class
|
|
||||||
|
|
||||||
|
|
||||||
## Tetrahedron 1D-2D-3D algorithm.
|
|
||||||
#
|
|
||||||
# It can be created by calling smesh.Mesh.Tetrahedron( smesh.NETGEN_1D2D3D, geom=0 ).
|
|
||||||
# This algorithm generates all 1D (edges), 2D (faces) and 3D (volumes) elements
|
|
||||||
# for given geometrical shape.
|
|
||||||
class NETGEN_1D2D3D_Algorithm(NETGEN_Algorithm):
|
|
||||||
|
|
||||||
## name of the dynamic method in smesh.Mesh class
|
|
||||||
# @internal
|
|
||||||
meshMethod = "Tetrahedron"
|
|
||||||
## type of algorithm used with helper function in smesh.Mesh class
|
|
||||||
# @internal
|
|
||||||
algoType = NETGEN_1D2D3D
|
|
||||||
## doc string of the method
|
|
||||||
# @internal
|
|
||||||
docHelper = "Creates tetrahedron 3D algorithm for solids"
|
|
||||||
|
|
||||||
## Private constructor.
|
|
||||||
# @param mesh parent mesh object algorithm is assigned to
|
|
||||||
# @param geom geometry (shape/sub-shape) algorithm is assigned to;
|
|
||||||
# if it is @c 0 (default), the algorithm is assigned to the main shape
|
|
||||||
def __init__(self, mesh, geom=0):
|
|
||||||
NETGEN_Algorithm.__init__(self, mesh, geom)
|
|
||||||
pass
|
|
||||||
|
|
||||||
## Sets @c SecondOrder flag
|
|
||||||
# @param theVal new value of the @c SecondOrder parameter
|
|
||||||
def SetSecondOrder(self, theVal):
|
|
||||||
if self.Parameters(): self.params.SetSecondOrder(theVal)
|
|
||||||
pass
|
|
||||||
|
|
||||||
## Sets @c NbSegPerEdge parameter
|
|
||||||
# @param theVal new value of the @c NbSegPerEdge parameter
|
|
||||||
def SetNbSegPerEdge(self, theVal):
|
|
||||||
if self.Parameters(): self.params.SetNbSegPerEdge(theVal)
|
|
||||||
pass
|
|
||||||
|
|
||||||
## Sets @c NbSegPerRadius parameter
|
|
||||||
# @param theVal new value of the @c NbSegPerRadius parameter
|
|
||||||
def SetNbSegPerRadius(self, theVal):
|
|
||||||
if self.Parameters(): self.params.SetNbSegPerRadius(theVal)
|
|
||||||
pass
|
|
||||||
|
|
||||||
## Sets @c QuadAllowed flag
|
|
||||||
# @param toAllow new value of the @c QuadAllowed parameter (@c True by default)
|
|
||||||
def SetQuadAllowed(self, toAllow=True):
|
|
||||||
if self.Parameters(): self.params.SetQuadAllowed(toAllow)
|
|
||||||
pass
|
|
||||||
|
|
||||||
## Sets number of segments overriding the value set by SetLocalLength()
|
|
||||||
# @param theVal new value of number of segments parameter
|
|
||||||
def SetNumberOfSegments(self, theVal):
|
|
||||||
self.Parameters(SIMPLE).SetNumberOfSegments(theVal)
|
|
||||||
pass
|
|
||||||
|
|
||||||
## Sets number of segments overriding the value set by SetNumberOfSegments()
|
|
||||||
# @param theVal new value of local length parameter
|
|
||||||
def SetLocalLength(self, theVal):
|
|
||||||
self.Parameters(SIMPLE).SetLocalLength(theVal)
|
|
||||||
pass
|
|
||||||
|
|
||||||
## Defines @c MaxElementArea parameter of @c NETGEN_SimpleParameters_3D hypothesis.
|
|
||||||
# Overrides value set by LengthFromEdges()
|
|
||||||
# @param area new value of @c MaxElementArea parameter
|
|
||||||
def MaxElementArea(self, area):
|
|
||||||
self.Parameters(SIMPLE).SetMaxElementArea(area)
|
|
||||||
pass
|
|
||||||
|
|
||||||
## Defines @c LengthFromEdges parameter of @c NETGEN_SimpleParameters_3D hypothesis.
|
|
||||||
# Overrides value set by MaxElementArea()
|
|
||||||
def LengthFromEdges(self):
|
|
||||||
self.Parameters(SIMPLE).LengthFromEdges()
|
|
||||||
pass
|
|
||||||
|
|
||||||
## Defines @c LengthFromFaces parameter of @c NETGEN_SimpleParameters_3D hypothesis.
|
|
||||||
# Overrides value set by MaxElementVolume()
|
|
||||||
def LengthFromFaces(self):
|
|
||||||
self.Parameters(SIMPLE).LengthFromFaces()
|
|
||||||
pass
|
|
||||||
|
|
||||||
## Defines @c MaxElementVolume parameter of @c NETGEN_SimpleParameters_3D hypothesis.
|
|
||||||
# Overrides value set by LengthFromFaces()
|
|
||||||
# @param vol new value of @c MaxElementVolume parameter
|
|
||||||
def MaxElementVolume(self, vol):
|
|
||||||
self.Parameters(SIMPLE).SetMaxElementVolume(vol)
|
|
||||||
pass
|
|
||||||
|
|
||||||
pass # end of NETGEN_1D2D3D_Algorithm class
|
|
||||||
|
|
||||||
|
|
||||||
## Triangle NETGEN 1D-2D algorithm.
|
|
||||||
#
|
|
||||||
# It can be created by calling smesh.Mesh.Triangle( smesh.NETGEN_1D2D, geom=0 )
|
|
||||||
#
|
|
||||||
# This algorithm generates 1D (edges) and 2D (faces) elements
|
|
||||||
# for given geometrical shape.
|
|
||||||
class NETGEN_1D2D_Algorithm(NETGEN_1D2D3D_Algorithm):
|
|
||||||
|
|
||||||
## name of the dynamic method in smesh.Mesh class
|
|
||||||
# @internal
|
|
||||||
meshMethod = "Triangle"
|
|
||||||
## type of algorithm used with helper function in smesh.Mesh class
|
|
||||||
# @internal
|
|
||||||
algoType = NETGEN_1D2D
|
|
||||||
## doc string of the method
|
|
||||||
# @internal
|
|
||||||
docHelper = "Creates triangle 2D algorithm for faces"
|
|
||||||
|
|
||||||
## Private constructor.
|
|
||||||
# @param mesh parent mesh object algorithm is assigned to
|
|
||||||
# @param geom geometry (shape/sub-shape) algorithm is assigned to;
|
|
||||||
# if it is @c 0 (default), the algorithm is assigned to the main shape
|
|
||||||
def __init__(self, mesh, geom=0):
|
|
||||||
NETGEN_1D2D3D_Algorithm.__init__(self, mesh, geom)
|
|
||||||
pass
|
|
||||||
|
|
||||||
pass # end of NETGEN_1D2D_Algorithm class
|
|
||||||
|
|
||||||
|
|
||||||
## Triangle NETGEN 2D algorithm
|
|
||||||
#
|
|
||||||
# It can be created by calling smesh.Mesh.Triangle( smesh.NETGEN_2D, geom=0 )
|
|
||||||
#
|
|
||||||
# This algorithm generates only 2D (faces) elements for given geometrical shape
|
|
||||||
# and, in contrast to NETGEN_1D2D_Algorithm class, should be used in conjunction
|
|
||||||
# with other 1D meshing algorithm.
|
|
||||||
class NETGEN_2D_Only_Algorithm(NETGEN_Algorithm):
|
|
||||||
|
|
||||||
## name of the dynamic method in smesh.Mesh class
|
|
||||||
# @internal
|
|
||||||
meshMethod = "Triangle"
|
|
||||||
## type of algorithm used with helper function in smesh.Mesh class
|
|
||||||
# @internal
|
|
||||||
algoType = NETGEN_2D
|
|
||||||
## doc string of the method
|
|
||||||
# @internal
|
|
||||||
docHelper = "Creates triangle 2D algorithm for faces"
|
|
||||||
|
|
||||||
## Private constructor.
|
|
||||||
# @param mesh parent mesh object algorithm is assigned to
|
|
||||||
# @param geom geometry (shape/sub-shape) algorithm is assigned to;
|
|
||||||
# if it is @c 0 (default), the algorithm is assigned to the main shape
|
|
||||||
def __init__(self, mesh, geom=0):
|
|
||||||
NETGEN_Algorithm.__init__(self, mesh, geom)
|
|
||||||
pass
|
|
||||||
|
|
||||||
## Defines @c MaxElementArea parameter of hypothesis basing on the definition of the
|
|
||||||
# maximum area of each triangle
|
|
||||||
# @param area maximum area value of each triangle
|
|
||||||
# @param UseExisting if \c True - searches for an existing hypothesis created with the
|
|
||||||
# same parameters, else (default) - creates a new one
|
|
||||||
# @return hypothesis object
|
|
||||||
def MaxElementArea(self, area, UseExisting=0):
|
|
||||||
compFun = lambda hyp, args: IsEqual(hyp.GetMaxElementArea(), args[0])
|
|
||||||
hyp = self.Hypothesis("MaxElementArea", [area], UseExisting=UseExisting,
|
|
||||||
CompareMethod=compFun)
|
|
||||||
hyp.SetMaxElementArea(area)
|
|
||||||
return hyp
|
|
||||||
|
|
||||||
## Defines @c LengthFromEdges hypothesis to build triangles
|
|
||||||
# based on the length of the edges taken from the wire
|
|
||||||
# @return hypothesis object
|
|
||||||
def LengthFromEdges(self):
|
|
||||||
hyp = self.Hypothesis("LengthFromEdges", UseExisting=1, CompareMethod=self.CompareEqualHyp)
|
|
||||||
return hyp
|
|
||||||
|
|
||||||
## Sets @c QuadAllowed flag.
|
|
||||||
# @param toAllow new value of the @c QuadAllowed parameter (@c True by default)
|
|
||||||
# @return hypothesis object
|
|
||||||
def SetQuadAllowed(self, toAllow=True):
|
|
||||||
if not self.params:
|
|
||||||
# use simple hyps
|
|
||||||
hasSimpleHyps = False
|
|
||||||
simpleHyps = ["QuadranglePreference","LengthFromEdges","MaxElementArea"]
|
|
||||||
for hyp in self.mesh.GetHypothesisList( self.geom ):
|
|
||||||
if hyp.GetName() in simpleHyps:
|
|
||||||
hasSimpleHyps = True
|
|
||||||
if hyp.GetName() == "QuadranglePreference":
|
|
||||||
if not toAllow: # remove QuadranglePreference
|
|
||||||
self.mesh.RemoveHypothesis( self.geom, hyp )
|
|
||||||
else:
|
|
||||||
return hyp
|
|
||||||
return None
|
|
||||||
pass
|
|
||||||
pass
|
|
||||||
if hasSimpleHyps:
|
|
||||||
if toAllow: # add QuadranglePreference
|
|
||||||
return self.Hypothesis("QuadranglePreference", UseExisting=1, CompareMethod=self.CompareEqualHyp)
|
|
||||||
return None
|
|
||||||
pass
|
|
||||||
self.Parameters().SetQuadAllowed( toAllow )
|
|
||||||
return self.params
|
|
||||||
|
|
||||||
pass # end of NETGEN_2D_Only_Algorithm class
|
|
||||||
|
|
||||||
|
|
||||||
## Tetrahedron 3D algorithm
|
|
||||||
#
|
|
||||||
# It can be created by calling smesh.Mesh.Tetrahedron() or smesh.Mesh.Tetrahedron( smesh.NETGEN, geom=0 )
|
|
||||||
#
|
|
||||||
# This algorithm generates only 3D (volumes) elements for given geometrical shape
|
|
||||||
# and, in contrast to NETGEN_1D2D3D_Algorithm class, should be used in conjunction
|
|
||||||
# with other 1D and 2D meshing algorithms.
|
|
||||||
class NETGEN_3D_Algorithm(NETGEN_Algorithm):
|
|
||||||
|
|
||||||
## name of the dynamic method in smesh.Mesh class
|
|
||||||
# @internal
|
|
||||||
meshMethod = "Tetrahedron"
|
|
||||||
## type of algorithm used with helper function in smesh.Mesh class
|
|
||||||
# @internal
|
|
||||||
algoType = NETGEN
|
|
||||||
## flag pointing either this algorithm should be used by default in dynamic method
|
|
||||||
# of smesh.Mesh class
|
|
||||||
# @internal
|
|
||||||
isDefault = True
|
|
||||||
## doc string of the method
|
|
||||||
# @internal
|
|
||||||
docHelper = "Creates tetrahedron 3D algorithm for solids"
|
|
||||||
|
|
||||||
## Private constructor.
|
|
||||||
# @param mesh parent mesh object algorithm is assigned to
|
|
||||||
# @param geom geometry (shape/sub-shape) algorithm is assigned to;
|
|
||||||
# if it is @c 0 (default), the algorithm is assigned to the main shape
|
|
||||||
def __init__(self, mesh, geom=0):
|
|
||||||
NETGEN_Algorithm.__init__(self, mesh, geom)
|
|
||||||
pass
|
|
||||||
|
|
||||||
## Defines @c MaxElementVolume hypothesis to specify the maximum volume value of each tetrahedron
|
|
||||||
# @param vol maximum volume value of each tetrahedron
|
|
||||||
# @param UseExisting if \c True - searches for the existing hypothesis created with
|
|
||||||
# the same parameters, else (default) - creates a new one
|
|
||||||
# @return hypothesis object
|
|
||||||
def MaxElementVolume(self, vol, UseExisting=0):
|
|
||||||
compFun = lambda hyp, args: IsEqual(hyp.GetMaxElementVolume(), args[0])
|
|
||||||
hyp = self.Hypothesis("MaxElementVolume", [vol], UseExisting=UseExisting,
|
|
||||||
CompareMethod=compFun)
|
|
||||||
hyp.SetMaxElementVolume(vol)
|
|
||||||
return hyp
|
|
||||||
|
|
||||||
pass # end of NETGEN_3D_Algorithm class
|
|
||||||
|
|
||||||
|
|
||||||
## Triangle (helper) 1D-2D algorithm
|
|
||||||
#
|
|
||||||
# This is the helper class that is used just to allow creating of create NETGEN_1D2D algorithm
|
|
||||||
# by calling smesh.Mesh.Triangle( smesh.NETGEN, geom=0 ); this is required for backward compatibility
|
|
||||||
# with old Python scripts.
|
|
||||||
#
|
|
||||||
# @note This class (and corresponding smesh.Mesh function) is obsolete;
|
|
||||||
# use smesh.Mesh.Triangle( smesh.NETGEN_1D2D, geom=0 ) instead.
|
|
||||||
class NETGEN_1D2D_Algorithm_2(NETGEN_1D2D_Algorithm):
|
|
||||||
|
|
||||||
## name of the dynamic method in smesh.Mesh class
|
|
||||||
# @internal
|
|
||||||
algoType = NETGEN
|
|
||||||
|
|
||||||
## Private constructor.
|
|
||||||
# @param mesh parent mesh object algorithm is assigned to
|
|
||||||
# @param geom geometry (shape/sub-shape) algorithm is assigned to;
|
|
||||||
# if it is @c 0 (default), the algorithm is assigned to the main shape
|
|
||||||
def __init__(self, mesh, geom=0):
|
|
||||||
self.algoType = NETGEN_1D2D
|
|
||||||
NETGEN_1D2D_Algorithm.__init__(self,mesh, geom)
|
|
||||||
pass
|
|
||||||
|
|
||||||
pass # end of NETGEN_1D2D_Algorithm_2 class
|
|
||||||
|
|
||||||
|
|
||||||
## Tetrahedron (helper) 1D-2D-3D algorithm.
|
|
||||||
#
|
|
||||||
# This is the helper class that is used just to allow creating of create NETGEN_1D2D3D
|
|
||||||
# by calling smesh.Mesh.Netgen(); this is required for backward compatibility with old Python scripts.
|
|
||||||
#
|
|
||||||
# @note This class (and corresponding smesh.Mesh function) is obsolete;
|
|
||||||
# use smesh.Mesh.Tetrahedron( smesh.NETGEN_1D2D3D, geom=0 ) instead.
|
|
||||||
class NETGEN_1D2D3D_Algorithm_2(NETGEN_1D2D3D_Algorithm):
|
|
||||||
|
|
||||||
## name of the dynamic method in smesh.Mesh class
|
|
||||||
# @internal
|
|
||||||
meshMethod = "Netgen"
|
|
||||||
## doc string of the method
|
|
||||||
# @internal
|
|
||||||
docHelper = "Deprecated, used only for compatibility! See Tetrahedron() method."
|
|
||||||
|
|
||||||
## Private constructor.
|
|
||||||
# @param mesh parent mesh object algorithm is assigned to
|
|
||||||
# @param geom geometry (shape/sub-shape) algorithm is assigned to;
|
|
||||||
# if it is @c 0 (default), the algorithm is assigned to the main shape
|
|
||||||
def __init__(self, mesh, geom=0):
|
|
||||||
NETGEN_1D2D3D_Algorithm.__init__(self,mesh, geom)
|
|
||||||
pass
|
|
||||||
|
|
||||||
pass # end of NETGEN_1D2D3D_Algorithm_2 class
|
|
Loading…
x
Reference in New Issue
Block a user