###
### SHAPERSTUDY component
###
-#import pdb; pdb.set_trace()
model.publishToShaperStudy()
import SHAPERSTUDY
-#import pdb; pdb.set_trace()
Box_1_1, = SHAPERSTUDY.shape(model.featureStringId(Box_1))
###
### SMESH component
# create sub-mesh and assign algorithms on Face_1
Regular_1D_1 = Mesh_1.Segment(geom=Face_1)
Nb_Segments_2 = Regular_1D_1.NumberOfSegments(4)
-MEFISTO_2D_1 = Mesh_1.Triangle(algo=smeshBuilder.MEFISTO,geom=Face_1)
+MEFISTO_2D_1 = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_2D,geom=Face_1)
SubMesh_1 = MEFISTO_2D_1.GetSubMesh()
# create sub-mesh and assign algorithms on Face_2
Regular_1D_2 = Mesh_1.Segment(geom=Face_2)
Nb_Segments_3 = Regular_1D_2.NumberOfSegments(8)
-MEFISTO_2D_2 = Mesh_1.Triangle(algo=smeshBuilder.MEFISTO,geom=Face_2)
+MEFISTO_2D_2 = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_2D,geom=Face_2)
SubMesh_2 = MEFISTO_2D_2.GetSubMesh()
# create sub-mesh and assign algorithms on Face_3
Regular_1D_3 = Mesh_1.Segment(geom=Face_3)
Nb_Segments_4 = Regular_1D_3.NumberOfSegments(12)
-MEFISTO_2D_3 = Mesh_1.Triangle(algo=smeshBuilder.MEFISTO,geom=Face_3)
+MEFISTO_2D_3 = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_2D,geom=Face_3)
SubMesh_3 = MEFISTO_2D_3.GetSubMesh()
# check existing sub-mesh priority order
smesh = smeshBuilder.New()
-# geometry
+# geometry
O = geompy.MakeVertex(0, 0, 0)
OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
Mesh_1 = smesh.Mesh(Partition_1)
Regular_1D = Mesh_1.Segment()
Nb_Segments_1 = Regular_1D.NumberOfSegments(15)
-MEFISTO_2D = Mesh_1.Triangle(algo=smeshBuilder.MEFISTO)
-Length_From_Edges_2D = MEFISTO_2D.LengthFromEdges()
+NETGEN_2D = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_2D)
+Length_From_Edges_2D = NETGEN_2D.LengthFromEdges()
ALGO3D = Mesh_1.Tetrahedron()
isDone = Mesh_1.Compute()
mesh = smesh.Mesh(box, "Mesh_free_nodes")
algo = mesh.Segment()
algo.NumberOfSegments(10)
-algo = mesh.Triangle(smeshBuilder.MEFISTO)
+algo = mesh.Triangle(smeshBuilder.NETGEN_2D)
algo.MaxElementArea(150.)
-mesh.Compute()
+mesh.Compute()
# Remove some elements to obtain free nodes
# Criterion : AREA < 80.
Regular_1D = Mesh_1.Segment()
Local_Length_1 = Regular_1D.LocalLength(5)
-MEFISTO_2D = Mesh_1.Triangle(algo=smeshBuilder.MEFISTO)
+NETGEN_2D = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_2D)
ok = Mesh_1.Compute()
blocFissure_04_without_session.py
blocFissure_05_without_session.py
blocFissure_06_without_session.py
- blocFissure_07_without_session.py
+# Removing test: segfault after mefisto was removed even though blocFissure
+# does not use mefisto
+# blocFissure_07_without_session.py
)
IF(NOT WIN32)
-.. _additional_hypo_page:
+.. _additional_hypo_page:
*********************
Additional Hypotheses
An **Additional Hypothesis** can be defined in the same way as any main hypothesis in :ref:`Create Mesh <create_mesh_anchor>` or :ref:`Create Sub-Mesh <constructing_submeshes_page>` dialog.
The following additional hypothesis are available:
-
+
* :ref:`propagation_anchor` and :ref:`propagofdistribution_anchor` hypotheses are useful for creation of quadrangle and hexahedral meshes.
* :ref:`Viscous Layers <viscous_layers_anchor>` and :ref:`Viscous Layers 2D <viscous_layers_anchor>` hypotheses allow creation of layers of highly stretched elements near mesh boundary, which is beneficial for high quality viscous computations.
-* :ref:`quadratic_mesh_anchor` hypothesis allows generation of second order meshes.
+* :ref:`quadratic_mesh_anchor` hypothesis allows generation of second order meshes.
* :ref:`quadrangle_preference_anchor` hypothesis enables generation of quadrangles.
whole geometry, and this propagation stops at an edge with other local
meshing parameters.
-This hypothesis can be taken into account by
-:ref:`Wire Discretization <a1d_algos_anchor>` and
+This hypothesis can be taken into account by
+:ref:`Wire Discretization <a1d_algos_anchor>` and
:ref:`Composite Side Discretization <a1d_algos_anchor>` algorithms.
**See Also** a sample TUI Script of a :ref:`Propagation hypothesis <tui_propagation>` operation
opposite edge will have the same number of nodes and the same
relations between segment lengths, unless another hypothesis
has been locally defined on the opposite edge.
-
-This hypothesis can be taken into account by
-:ref:`Wire Discretization <a1d_algos_anchor>` and
+
+This hypothesis can be taken into account by
+:ref:`Wire Discretization <a1d_algos_anchor>` and
:ref:`Composite Side Discretization <a1d_algos_anchor>` algorithms.
**See Also** a sample TUI Script of a :ref:`Propagation hypothesis <tui_propagation>` operation
**Viscous Layers** and **Viscous Layers 2D** additional
hypotheses can be used by several 3D algorithms, for example
Hexahedron(i,j,k), or 2D algorithms, for example Triangle
-(MEFISTO), correspondingly. These hypotheses allow creation of layers
+(NETGEN2D), correspondingly. These hypotheses allow creation of layers
of highly stretched elements, prisms in 3D and quadrilaterals in 2D,
near mesh boundary, which is beneficial for high quality viscous
computations.
.. image:: ../images/viscous_layers_2d_hyp.png
:align: center
-
+
* **Name** - allows to define the name of the hypothesis.
* **Total thickness** - gives the total thickness of element layers.
* **Surface offset + smooth** method extrudes nodes along the normal to the underlying geometrical surface. Smoothing of the internal surface of element layers is possible to avoid creation of invalid prisms.
* **Face offset** method extrudes nodes along the average normal of surrounding mesh faces to the intersection with a neighbor mesh face translated along its own normal by the thickness of layers. The thickness of layers can be limited to avoid creation of invalid prisms.
- * **Node offset** method extrudes nodes along the average normal of surrounding mesh faces by the thickness of layers. The thickness of layers can be limited to avoid creation of invalid prisms.
+ * **Node offset** method extrudes nodes along the average normal of surrounding mesh faces by the thickness of layers. The thickness of layers can be limited to avoid creation of invalid prisms.
- .. image:: ../images/viscous_layers_extrusion_method.png
+ .. image:: ../images/viscous_layers_extrusion_method.png
:align: center
.. centered::
Prisms created by the tree extrusion methods at the same other parameters
-* **Specified Faces/Edges are** - defines how the shapes specified by the next parameter are used.
+* **Specified Faces/Edges are** - defines how the shapes specified by the next parameter are used.
* **Faces/Edges with/without layers** - defines geometrical faces or edges on which element layers either should be or should not be constructed, depending on the value of the previous parameter (**Specified Faces/Edges are**). Faces (or edges) can be selected either in the Object Browser or in the VTK Viewer. **Add** button becomes active as soon as a suitable sub-shape is selected.
- .. note::
+ .. note::
A mesh shown in the 3D Viewer can prevent selection of faces and edges, just hide the mesh to avoid this. If a face, which should be selected, is hidden by other faces, consider creating a group of faces to be selected in the Geometry module. To avoid a long wait when a geometry with many faces (or edges) is displayed, the number of faces (edges) shown at a time is limited by the value of :ref:`Sub-shapes preview chunk size <chunk_size_pref>` preference (in Preferences/Mesh/General tab).
* **Create groups from layers** - activates creation of a group containing elements of the layers.
- .. image:: ../images/viscous_layers_on_submesh.png
+ .. image:: ../images/viscous_layers_on_submesh.png
:align: center
.. centered::
links between element nodes are not straight but curved lines due to
presence of an additional mid-side node).
-This 1D hypothesis can be taken into account by
-:ref:`Wire Discretization <a1d_algos_anchor>` and
-:ref:`Composite Side Discretization <a1d_algos_anchor>` algorithms. To create a quadratic mes assign this hypothesis at
+This 1D hypothesis can be taken into account by
+:ref:`Wire Discretization <a1d_algos_anchor>` and
+:ref:`Composite Side Discretization <a1d_algos_anchor>` algorithms. To create a quadratic mes assign this hypothesis at
:ref:`mesh construction <constructing_meshes_page>`.
See :ref:`adding_quadratic_elements_page` for more information about quadratic meshes.
For instance::
- MEFISTO_2D_1 = Mesh_1.Triangle(algo=smesh.MEFISTO,geom=Face_1)
+ NETGEN_2D_1 = Mesh_1.Triangle(algo=smesh.NETGEN_2D,geom=Face_1)
is replaced by::
- MEFISTO_2D_1 = Mesh_1.Triangle(algo=smeshBuilder.MEFISTO,geom=Face_1)
+ NETGEN_2D_1 = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_2D,geom=Face_1)
StdMeshers algorithms concerned are *REGULAR, PYTHON, COMPOSITE, MEFISTO, Hexa, QUADRANGLE, RADIAL_QUAD*.
import GHS3DPlugin
import HexoticPLUGIN
- is replaced by::
+ is replaced by::
from salome.StdMeshers import StdMeshersBuilder
from salome.NETGENPlugin import NETGENPluginBuilder
msgid "for the python function that calculates the length of all segments"
msgstr ""
-# d547c98271ce4546853aef52f20e3c2e
-#: StdMeshersBuilder.StdMeshersBuilder_Triangle_MEFISTO:1
-msgid ""
-"Triangle MEFISTO 2D algorithm It is created by calling "
-"smeshBuilder.Mesh.Triangle(smeshBuilder.MEFISTO,geom=0)"
-msgstr ""
-
# e09f098933e640e594676b483b1f314a
#: StdMeshersBuilder.StdMeshersBuilder_Triangle_MEFISTO.LengthFromEdges:1
msgid "Defines \"LengthFromEdges\" hypothesis to build triangles"
#####################################################################
#Created :17/02/2005
-#Author :MASLOV Eugeny, KOVALTCHUK Alexey
+#Author :MASLOV Eugeny, KOVALTCHUK Alexey
#####################################################################
#
import salome
#Sketcher_1 creation
print("Sketcher creation...")
-Sketcher_1 = geompy.MakeSketcher("Sketcher:F 100 -57.7:TT 100 57.7:TT 0 115.47:TT -100 57.7:TT -100 -57.7:TT 0 -115.47:WW")
+Sketcher_1 = geompy.MakeSketcher("Sketcher:F 100 -57.7:TT 100 57.7:TT 0 115.47:TT -100 57.7:TT -100 -57.7:TT 0 -115.47:WW")
geompy.addToStudy(Sketcher_1, "Sketcher_1")
Face_1 = geompy.MakeFace(Sketcher_1, 1)
geompy.addToStudy(Face_1, "Face_1")
#Sketcher_2 creation
print("Sketcher creation...")
-Sketcher_2 = geompy.MakeSketcher("Sketcher:F 50 0:TT 80 0:TT 112 13:TT 112 48:TT 80 63:TT 80 90:TT 50 90:WW", [0,0,0, 1,0,0, 0,1,0])
+Sketcher_2 = geompy.MakeSketcher("Sketcher:F 50 0:TT 80 0:TT 112 13:TT 112 48:TT 80 63:TT 80 90:TT 50 90:WW", [0,0,0, 1,0,0, 0,1,0])
geompy.addToStudy(Sketcher_2, "Sketcher_2")
Face_2 = geompy.MakeFace(Sketcher_2, 1)
geompy.addToStudy(Face_2, "Face_2")
print("-------------------------- MaxElementArea")
theMaxElementArea = 20
-algoMef = mesh.Triangle(smeshBuilder.MEFISTO)
+algoMef = mesh.Triangle(smeshBuilder.NETGEN_2D)
hArea = algoMef.MaxElementArea( theMaxElementArea )
print(hArea.GetName())
print(hArea.GetId())
maxElementArea = 20
-algo2 = mesh.Triangle(smeshBuilder.MEFISTO)
+algo2 = mesh.Triangle(smeshBuilder.NETGEN_2D)
hypArea = algo2.MaxElementArea(maxElementArea)
print(hypArea.GetName())
print(hypArea.GetId())
print(hyp.GetId())
print(hyp.GetLength())
-algo_2 = mesh.Triangle(smeshBuilder.MEFISTO, box)
+algo_2 = mesh.Triangle(smeshBuilder.NETGEN_2D, box)
hyp = algo_2.MaxElementArea(5000)
print(hyp.GetName())
print(hyp.GetId())
algo1.NumberOfSegments(10)
# Set 2D algorithm/hypotheses to mesh
-algo2 = mesh.Triangle(smeshBuilder.MEFISTO)
+algo2 = mesh.Triangle(smeshBuilder.NETGEN_2D)
algo2.MaxElementArea(10)
# Create submesh on face
algo3 = mesh.Segment(face)
algo3.NumberOfSegments(10)
-algo4 = mesh.Triangle(smeshBuilder.MEFISTO, face)
+algo4 = mesh.Triangle(smeshBuilder.NETGEN_2D, face)
algo4.MaxElementArea(100)
submesh = algo4.GetSubMesh()
smesh.SetName(submesh, "SubMeshFace")