mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-27 11:10:34 +05:00
Removing last traces of mefisto
This commit is contained in:
parent
8628ca77d6
commit
83a5e55ace
@ -58,10 +58,10 @@ class TestMesh(unittest.TestCase):
|
|||||||
lib = 'StdMeshersEngine'
|
lib = 'StdMeshersEngine'
|
||||||
self.processGuiEvents()
|
self.processGuiEvents()
|
||||||
|
|
||||||
# ---- create hypotheses
|
# ---- create hypotheses
|
||||||
print('... Create hypotheses')
|
print('... Create hypotheses')
|
||||||
|
|
||||||
# **** create local length
|
# **** create local length
|
||||||
print('...... Local Length')
|
print('...... Local Length')
|
||||||
local_length = smesh.CreateHypothesis('LocalLength', lib)
|
local_length = smesh.CreateHypothesis('LocalLength', lib)
|
||||||
self.assertIsNotNone(local_length)
|
self.assertIsNotNone(local_length)
|
||||||
@ -97,18 +97,18 @@ class TestMesh(unittest.TestCase):
|
|||||||
self.assertEqual(regular.GetName(), 'Regular_1D')
|
self.assertEqual(regular.GetName(), 'Regular_1D')
|
||||||
self.processGuiEvents()
|
self.processGuiEvents()
|
||||||
|
|
||||||
# **** create mefisto 2d
|
# **** create NETGEN 2d
|
||||||
print('...... Mefisto 2D')
|
print('...... NETGEN 2D')
|
||||||
mefisto = smesh.CreateHypothesis( 'MEFISTO_2D', lib )
|
netgen = smesh.CreateHypothesis( 'NETGEN_2D', lib )
|
||||||
listHyp = mefisto.GetCompatibleHypothesis()
|
listHyp = netgen.GetCompatibleHypothesis()
|
||||||
self.assertEqual(mefisto.GetName(), 'MEFISTO_2D')
|
self.assertEqual(netgen.GetName(), 'NETGEN_2D')
|
||||||
self.processGuiEvents()
|
self.processGuiEvents()
|
||||||
|
|
||||||
# ---- create mesh on box
|
# ---- create mesh on box
|
||||||
print('... Create mesh on box')
|
print('... Create mesh on box')
|
||||||
mesh = smesh.CreateMesh(box)
|
mesh = smesh.CreateMesh(box)
|
||||||
self.assertEqual(mesh.AddHypothesis(box, regular)[0], SMESH.HYP_OK)
|
self.assertEqual(mesh.AddHypothesis(box, regular)[0], SMESH.HYP_OK)
|
||||||
self.assertEqual(mesh.AddHypothesis(box, mefisto)[0], SMESH.HYP_OK)
|
self.assertEqual(mesh.AddHypothesis(box, netgen)[0], SMESH.HYP_OK)
|
||||||
self.assertEqual(mesh.AddHypothesis(box, nb_segments)[0], SMESH.HYP_OK)
|
self.assertEqual(mesh.AddHypothesis(box, nb_segments)[0], SMESH.HYP_OK)
|
||||||
self.assertEqual(mesh.AddHypothesis(box, max_area)[0], SMESH.HYP_OK)
|
self.assertEqual(mesh.AddHypothesis(box, max_area)[0], SMESH.HYP_OK)
|
||||||
self.processGuiEvents()
|
self.processGuiEvents()
|
||||||
|
@ -19,28 +19,28 @@ Mesh_1 = smesh.Mesh(Box_1)
|
|||||||
# assign mesh algorithms and hypotheses
|
# assign mesh algorithms and hypotheses
|
||||||
Regular_1D = Mesh_1.Segment()
|
Regular_1D = Mesh_1.Segment()
|
||||||
Nb_Segments_1 = Regular_1D.NumberOfSegments(20)
|
Nb_Segments_1 = Regular_1D.NumberOfSegments(20)
|
||||||
MEFISTO_2D = Mesh_1.Triangle()
|
NETGEN_2D = Mesh_1.Triangle()
|
||||||
Max_Element_Area_1 = MEFISTO_2D.MaxElementArea(1200)
|
Max_Element_Area_1 = NETGEN_2D.MaxElementArea(1200)
|
||||||
Tetrahedron = Mesh_1.Tetrahedron()
|
Tetrahedron = Mesh_1.Tetrahedron()
|
||||||
Max_Element_Volume_1 = Tetrahedron.MaxElementVolume(40000)
|
Max_Element_Volume_1 = Tetrahedron.MaxElementVolume(40000)
|
||||||
|
|
||||||
# create sub-mesh and assign algorithms on Face_1
|
# create sub-mesh and assign algorithms on Face_1
|
||||||
Regular_1D_1 = Mesh_1.Segment(geom=Face_1)
|
Regular_1D_1 = Mesh_1.Segment(geom=Face_1)
|
||||||
Nb_Segments_2 = Regular_1D_1.NumberOfSegments(4)
|
Nb_Segments_2 = Regular_1D_1.NumberOfSegments(4)
|
||||||
MEFISTO_2D_1 = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_2D,geom=Face_1)
|
NETGEN_2D_1 = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_2D,geom=Face_1)
|
||||||
SubMesh_1 = MEFISTO_2D_1.GetSubMesh()
|
SubMesh_1 = NETGEN_2D_1.GetSubMesh()
|
||||||
|
|
||||||
# create sub-mesh and assign algorithms on Face_2
|
# create sub-mesh and assign algorithms on Face_2
|
||||||
Regular_1D_2 = Mesh_1.Segment(geom=Face_2)
|
Regular_1D_2 = Mesh_1.Segment(geom=Face_2)
|
||||||
Nb_Segments_3 = Regular_1D_2.NumberOfSegments(8)
|
Nb_Segments_3 = Regular_1D_2.NumberOfSegments(8)
|
||||||
MEFISTO_2D_2 = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_2D,geom=Face_2)
|
NETGEN_2D_2 = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_2D,geom=Face_2)
|
||||||
SubMesh_2 = MEFISTO_2D_2.GetSubMesh()
|
SubMesh_2 = NETGEN_2D_2.GetSubMesh()
|
||||||
|
|
||||||
# create sub-mesh and assign algorithms on Face_3
|
# create sub-mesh and assign algorithms on Face_3
|
||||||
Regular_1D_3 = Mesh_1.Segment(geom=Face_3)
|
Regular_1D_3 = Mesh_1.Segment(geom=Face_3)
|
||||||
Nb_Segments_4 = Regular_1D_3.NumberOfSegments(12)
|
Nb_Segments_4 = Regular_1D_3.NumberOfSegments(12)
|
||||||
MEFISTO_2D_3 = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_2D,geom=Face_3)
|
NETGEN_2D_3 = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_2D,geom=Face_3)
|
||||||
SubMesh_3 = MEFISTO_2D_3.GetSubMesh()
|
SubMesh_3 = NETGEN_2D_3.GetSubMesh()
|
||||||
|
|
||||||
# check existing sub-mesh priority order
|
# check existing sub-mesh priority order
|
||||||
[ [ SubMesh_1, SubMesh_3, SubMesh_2 ] ] = Mesh_1.GetMeshOrder()
|
[ [ SubMesh_1, SubMesh_3, SubMesh_2 ] ] = Mesh_1.GetMeshOrder()
|
||||||
|
@ -38,7 +38,7 @@ tetra = smesh.Mesh(box, "Box : tetrahedrical mesh")
|
|||||||
# create a Regular 1D algorithm for edges
|
# create a Regular 1D algorithm for edges
|
||||||
algo1D = tetra.Segment()
|
algo1D = tetra.Segment()
|
||||||
|
|
||||||
# create a Mefisto 2D algorithm for faces
|
# create a NETGEN 2D algorithm for faces
|
||||||
algo2D = tetra.Triangle()
|
algo2D = tetra.Triangle()
|
||||||
|
|
||||||
# create a 3D algorithm for solids
|
# create a 3D algorithm for solids
|
||||||
|
@ -28,7 +28,7 @@ geompy.addToStudyInFather( box, Face_1, 'Face_1' )
|
|||||||
geompy.addToStudyInFather( box, Face_2, 'Face_2' )
|
geompy.addToStudyInFather( box, Face_2, 'Face_2' )
|
||||||
|
|
||||||
|
|
||||||
# Make the source mesh triangulated by MEFISTO
|
# Make the source mesh triangulated by NETGEN
|
||||||
src_mesh = smesh.Mesh(Face_1, "Source mesh")
|
src_mesh = smesh.Mesh(Face_1, "Source mesh")
|
||||||
src_mesh.Segment().NumberOfSegments(15)
|
src_mesh.Segment().NumberOfSegments(15)
|
||||||
src_mesh.Triangle()
|
src_mesh.Triangle()
|
||||||
|
@ -21,7 +21,7 @@ geompy.addToStudy( Sphere, "Sphere" )
|
|||||||
Mesh = smesh.Mesh(Sphere)
|
Mesh = smesh.Mesh(Sphere)
|
||||||
Regular_1D = Mesh.Segment()
|
Regular_1D = Mesh.Segment()
|
||||||
Nb_Segments = Regular_1D.NumberOfSegments(5)
|
Nb_Segments = Regular_1D.NumberOfSegments(5)
|
||||||
MEFISTO_2D = Mesh.Triangle()
|
NETGEN_2D = Mesh.Triangle()
|
||||||
Tetrahedron = Mesh.Tetrahedron()
|
Tetrahedron = Mesh.Tetrahedron()
|
||||||
|
|
||||||
# compute mesh
|
# compute mesh
|
||||||
@ -45,7 +45,7 @@ Mesh.ConvertFromQuadratic()
|
|||||||
|
|
||||||
Mesh.ConvertToQuadratic( theForce3d=0 )
|
Mesh.ConvertToQuadratic( theForce3d=0 )
|
||||||
|
|
||||||
# to convert not the whole mesh but a sub-mesh, provide it as
|
# to convert not the whole mesh but a sub-mesh, provide it as
|
||||||
# an additional argument to the functions:
|
# an additional argument to the functions:
|
||||||
# Mesh.ConvertToQuadratic( 0, subMesh )
|
# Mesh.ConvertToQuadratic( 0, subMesh )
|
||||||
# Mesh.ConvertFromQuadratic( subMesh )
|
# Mesh.ConvertFromQuadratic( subMesh )
|
||||||
|
@ -42,7 +42,7 @@ geompy.addToStudy( Plane_2, "Plane_2" )
|
|||||||
Mesh_1 = smesh.Mesh(Partition_1)
|
Mesh_1 = smesh.Mesh(Partition_1)
|
||||||
Regular_1D = Mesh_1.Segment()
|
Regular_1D = Mesh_1.Segment()
|
||||||
Max_Size_1 = Regular_1D.MaxSize(34.641)
|
Max_Size_1 = Regular_1D.MaxSize(34.641)
|
||||||
MEFISTO_2D = Mesh_1.Triangle()
|
NETGEN_2D = Mesh_1.Triangle()
|
||||||
Tetrahedronn = Mesh_1.Tetrahedron()
|
Tetrahedronn = Mesh_1.Tetrahedron()
|
||||||
isDone = Mesh_1.Compute()
|
isDone = Mesh_1.Compute()
|
||||||
|
|
||||||
|
@ -19,17 +19,17 @@ An algorithm represents either an implementation of a certain meshing technique
|
|||||||
|
|
||||||
* For meshing of 2D entities (**faces**):
|
* For meshing of 2D entities (**faces**):
|
||||||
|
|
||||||
* **Triangle: Mefisto** meshing algorithm - splits faces into triangular elements.
|
* **Triangle: NETGEN_2D** meshing algorithm - splits faces into triangular elements.
|
||||||
* :ref:`Quadrangle: Mapping <quad_ijk_algo_page>` meshing algorithm - splits faces into quadrangular elements.
|
* :ref:`Quadrangle: Mapping <quad_ijk_algo_page>` meshing algorithm - splits faces into quadrangular elements.
|
||||||
|
|
||||||
.. image:: ../images/image123.gif
|
.. image:: ../images/image123.gif
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
.. centered::
|
.. centered::
|
||||||
Example of a triangular 2D mesh
|
Example of a triangular 2D mesh
|
||||||
|
|
||||||
.. image:: ../images/image124.gif
|
.. image:: ../images/image124.gif
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
.. centered::
|
.. centered::
|
||||||
Example of a quadrangular 2D mesh
|
Example of a quadrangular 2D mesh
|
||||||
@ -37,8 +37,8 @@ An algorithm represents either an implementation of a certain meshing technique
|
|||||||
* For meshing of 3D entities (**solid objects**):
|
* For meshing of 3D entities (**solid objects**):
|
||||||
|
|
||||||
* **Hexahedron (i,j,k)** meshing algorithm - solids are split into hexahedral elements thus forming a structured 3D mesh. The algorithm requires that 2D mesh generated on a solid could be considered as a mesh of a box, i.e. there should be eight nodes shared by three quadrangles and the rest nodes should be shared by four quadrangles.
|
* **Hexahedron (i,j,k)** meshing algorithm - solids are split into hexahedral elements thus forming a structured 3D mesh. The algorithm requires that 2D mesh generated on a solid could be considered as a mesh of a box, i.e. there should be eight nodes shared by three quadrangles and the rest nodes should be shared by four quadrangles.
|
||||||
.. image:: ../images/hexa_ijk_mesh.png
|
.. image:: ../images/hexa_ijk_mesh.png
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
.. centered::
|
.. centered::
|
||||||
Structured mesh generated by Hexahedron (i,j,k) on a solid bound by 16 faces
|
Structured mesh generated by Hexahedron (i,j,k) on a solid bound by 16 faces
|
||||||
@ -64,7 +64,7 @@ An algorithm represents either an implementation of a certain meshing technique
|
|||||||
|
|
||||||
:ref:`constructing_meshes_page` page describes in detail how to apply meshing algorithms.
|
:ref:`constructing_meshes_page` page describes in detail how to apply meshing algorithms.
|
||||||
|
|
||||||
**See Also** a sample TUI Script of a :ref:`tui_defining_meshing_algos` operation.
|
**See Also** a sample TUI Script of a :ref:`tui_defining_meshing_algos` operation.
|
||||||
|
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
|
@ -7,7 +7,7 @@ Constructing meshes
|
|||||||
To create a mesh on geometry, it is necessary to create a mesh object by choosing
|
To create a mesh on geometry, it is necessary to create a mesh object by choosing
|
||||||
|
|
||||||
* a geometrical shape produced in the Geometry module (*main shape*);
|
* a geometrical shape produced in the Geometry module (*main shape*);
|
||||||
* *meshing parameters*, including
|
* *meshing parameters*, including
|
||||||
|
|
||||||
* :ref:`meshing algorithms <basic_meshing_algos_page>` and
|
* :ref:`meshing algorithms <basic_meshing_algos_page>` and
|
||||||
* :ref:`hypotheses <about_hypo_page>` specifying constraints to be taken into account by the chosen meshing algorithms.
|
* :ref:`hypotheses <about_hypo_page>` specifying constraints to be taken into account by the chosen meshing algorithms.
|
||||||
@ -77,11 +77,11 @@ To construct a mesh:
|
|||||||
#. Select a geometrical object for meshing.
|
#. Select a geometrical object for meshing.
|
||||||
#. In the **Mesh** menu select **Create Mesh** or click *"Create Mesh"* button |img| in the toolbar.
|
#. In the **Mesh** menu select **Create Mesh** or click *"Create Mesh"* button |img| in the toolbar.
|
||||||
|
|
||||||
The following dialog box will appear:
|
The following dialog box will appear:
|
||||||
|
|
||||||
.. image:: ../images/createmesh-inv.png
|
.. image:: ../images/createmesh-inv.png
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
#. To filter off irrelevant meshing algorithms, you can select **Mesh Type** in the corresponding list from **Any, Hexahedral, Tetrahedral, Triangular** and **Quadrilateral** (there can be less items for the geometry of lower dimensions). Selection of a mesh type hides all meshing algorithms that cannot generate elements of this type.
|
#. To filter off irrelevant meshing algorithms, you can select **Mesh Type** in the corresponding list from **Any, Hexahedral, Tetrahedral, Triangular** and **Quadrilateral** (there can be less items for the geometry of lower dimensions). Selection of a mesh type hides all meshing algorithms that cannot generate elements of this type.
|
||||||
|
|
||||||
#. Apply :ref:`meshing algorithms <basic_meshing_algos_page>` and :ref:`hypotheses <about_hypo_page>` which will be used to compute this mesh.
|
#. Apply :ref:`meshing algorithms <basic_meshing_algos_page>` and :ref:`hypotheses <about_hypo_page>` which will be used to compute this mesh.
|
||||||
@ -106,16 +106,16 @@ To construct a mesh:
|
|||||||
Click the *"Edit Hypothesis"* button |edt| to change the values for the current hypothesis.
|
Click the *"Edit Hypothesis"* button |edt| to change the values for the current hypothesis.
|
||||||
|
|
||||||
Most 2D and 3D algorithms can work without hypotheses using default meshing parameters. Some algorithms do not require any hypotheses. After selection of an algorithm "Hypothesis" field of the dialog can contain:
|
Most 2D and 3D algorithms can work without hypotheses using default meshing parameters. Some algorithms do not require any hypotheses. After selection of an algorithm "Hypothesis" field of the dialog can contain:
|
||||||
|
|
||||||
* *\<Default\>* if the algorithm can work using default parameters.
|
* *\<Default\>* if the algorithm can work using default parameters.
|
||||||
* *\<None\>* if the algorithm requires a hypothesis defining its parameters.
|
* *\<None\>* if the algorithm requires a hypothesis defining its parameters.
|
||||||
* If the algorithm does not use hypotheses, this field is grayed.
|
* If the algorithm does not use hypotheses, this field is grayed.
|
||||||
|
|
||||||
After selection of an algorithm **Add. Hypothesis** field can contain:
|
After selection of an algorithm **Add. Hypothesis** field can contain:
|
||||||
|
|
||||||
* *\<None\>* if the algorithm can be tuned using an additional hypothesis.
|
* *\<None\>* if the algorithm can be tuned using an additional hypothesis.
|
||||||
* If the algorithm does not use additional hypotheses, this field is grayed.
|
* If the algorithm does not use additional hypotheses, this field is grayed.
|
||||||
|
|
||||||
|
|
||||||
Proceed in the same way with 2D and 1D Algorithms and Hypotheses that will be used to mesh faces and edges of your geometry. (Note that any object has edges, even if their existence is not apparent, for example, a sphere has 4 edges). Note that the choice of hypotheses and lower dimension algorithms depends on the higher dimension algorithm.
|
Proceed in the same way with 2D and 1D Algorithms and Hypotheses that will be used to mesh faces and edges of your geometry. (Note that any object has edges, even if their existence is not apparent, for example, a sphere has 4 edges). Note that the choice of hypotheses and lower dimension algorithms depends on the higher dimension algorithm.
|
||||||
|
|
||||||
@ -128,12 +128,12 @@ To construct a mesh:
|
|||||||
.. image:: ../images/image88.jpg
|
.. image:: ../images/image88.jpg
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
It contains:
|
It contains:
|
||||||
|
|
||||||
* a mesh name (*Mesh_mechanic*);
|
* a mesh name (*Mesh_mechanic*);
|
||||||
* a reference to the geometrical object on the basis of which the mesh has been constructed (*mechanic*);
|
* a reference to the geometrical object on the basis of which the mesh has been constructed (*mechanic*);
|
||||||
* **Applied hypotheses** folder containing the references to the hypotheses chosen at the construction of the mesh;
|
* **Applied hypotheses** folder containing the references to the hypotheses chosen at the construction of the mesh;
|
||||||
* **Applied algorithms** folder containing the references to the algorithms chosen at the construction of the mesh.
|
* **Applied algorithms** folder containing the references to the algorithms chosen at the construction of the mesh.
|
||||||
* **SubMeshes on Face** folder containing the sub-meshes defined on geometrical faces. There also can be folders for sub-meshes on vertices, edges, wires, shells, solids and compounds.
|
* **SubMeshes on Face** folder containing the sub-meshes defined on geometrical faces. There also can be folders for sub-meshes on vertices, edges, wires, shells, solids and compounds.
|
||||||
* **Groups of Faces** folder containing the groups of mesh faces. There also can be folders for groups of nodes, edges, volumes 0D elements and balls.
|
* **Groups of Faces** folder containing the groups of mesh faces. There also can be folders for groups of nodes, edges, volumes 0D elements and balls.
|
||||||
|
|
||||||
@ -161,7 +161,7 @@ To construct a mesh:
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
* The list of sets of hypotheses can be shorter than in the above image depending on the geometry dimension.
|
* The list of sets of hypotheses can be shorter than in the above image depending on the geometry dimension.
|
||||||
|
|
||||||
|
|
||||||
Consider trying a sample script for construction of a mesh from our :ref:`TUI Scripts <tui_creating_meshes_page>` section.
|
Consider trying a sample script for construction of a mesh from our :ref:`TUI Scripts <tui_creating_meshes_page>` section.
|
||||||
|
|
||||||
@ -171,7 +171,7 @@ Evaluating mesh size
|
|||||||
####################
|
####################
|
||||||
|
|
||||||
After the mesh object is created and all hypotheses are assigned and before :ref:`Compute <compute_anchor>` operation, it is possible to calculate the eventual mesh size. For this, select the mesh in the **Object Browser** and from the **Mesh** menu select **Evaluate**.
|
After the mesh object is created and all hypotheses are assigned and before :ref:`Compute <compute_anchor>` operation, it is possible to calculate the eventual mesh size. For this, select the mesh in the **Object Browser** and from the **Mesh** menu select **Evaluate**.
|
||||||
The result of evaluation will be displayed in the following information box:
|
The result of evaluation will be displayed in the following information box:
|
||||||
|
|
||||||
.. image:: ../images/mesh_evaluation_succeed.png
|
.. image:: ../images/mesh_evaluation_succeed.png
|
||||||
:align: center
|
:align: center
|
||||||
@ -185,16 +185,16 @@ Before :ref:`the mesh computation <compute_anchor>`, it is also possible to see
|
|||||||
|
|
||||||
For this, select the mesh in the Object Browser. From the **Mesh** menu select **Preview** or click "Preview" button |prv| in the toolbar or activate "Preview" item from the pop-up menu.
|
For this, select the mesh in the Object Browser. From the **Mesh** menu select **Preview** or click "Preview" button |prv| in the toolbar or activate "Preview" item from the pop-up menu.
|
||||||
|
|
||||||
Select **1D mesh** or **2D mesh** preview mode in the Preview dialog.
|
Select **1D mesh** or **2D mesh** preview mode in the Preview dialog.
|
||||||
|
|
||||||
.. image:: ../images/preview_mesh_1D.png
|
.. image:: ../images/preview_mesh_1D.png
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
.. centered::
|
.. centered::
|
||||||
1D mesh preview shows nodes computed on geometry edges
|
1D mesh preview shows nodes computed on geometry edges
|
||||||
|
|
||||||
|
|
||||||
.. image:: ../images/preview_mesh_2D.png
|
.. image:: ../images/preview_mesh_2D.png
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
.. centered::
|
.. centered::
|
||||||
@ -224,29 +224,29 @@ If the mesh contains concurrent :ref:`sub-meshes <constructing_submeshes_page>`,
|
|||||||
|
|
||||||
*To change sub-mesh priority:*
|
*To change sub-mesh priority:*
|
||||||
|
|
||||||
Choose **Change sub-mesh priority** from the **Mesh** menu or a pop-up menu. The opened dialog shows a list of sub-meshes in the order of their priority.
|
Choose **Change sub-mesh priority** from the **Mesh** menu or a pop-up menu. The opened dialog shows a list of sub-meshes in the order of their priority.
|
||||||
|
|
||||||
There is an example of sub-mesh order modifications taking a Mesh created on a Box shape. The main Mesh object:
|
There is an example of sub-mesh order modifications taking a Mesh created on a Box shape. The main Mesh object:
|
||||||
|
|
||||||
* *1D* **Wire discretisation** with **Number of Segments** = 20
|
* *1D* **Wire discretisation** with **Number of Segments** = 20
|
||||||
* *2D* **Triangle: Mefisto** with Hypothesis **Max Element Area**
|
* *2D* **Triangle: NETGEN_2D** with Hypothesis **Max Element Area**
|
||||||
|
|
||||||
|
|
||||||
The first sub-mesh **Submesh_1** created on **Face_1** is:
|
The first sub-mesh **Submesh_1** created on **Face_1** is:
|
||||||
|
|
||||||
* *1D* **Wire discretisation** with **Number of Segments** = 4
|
* *1D* **Wire discretisation** with **Number of Segments** = 4
|
||||||
* *2D* **Triangle: Mefisto** with Hypothesis **MaxElementArea** = 1200
|
* *2D* **Triangle: NETGEN_2D** with Hypothesis **MaxElementArea** = 1200
|
||||||
|
|
||||||
The second sub-mesh **Submesh_2** created on **Face_2** is:
|
The second sub-mesh **Submesh_2** created on **Face_2** is:
|
||||||
|
|
||||||
* *1D* **Wire discretisation** with **Number of Segments** = 8
|
* *1D* **Wire discretisation** with **Number of Segments** = 8
|
||||||
* *2D* **Triangle: Mefisto** with Hypothesis **MaxElementArea** = 1200
|
* *2D* **Triangle: NETGEN_2D** with Hypothesis **MaxElementArea** = 1200
|
||||||
|
|
||||||
|
|
||||||
And the last sub-mesh **Submesh_3** created on **Face_3** is:
|
And the last sub-mesh **Submesh_3** created on **Face_3** is:
|
||||||
|
|
||||||
* *1D* **Wire discretisation** with **Number of Segments** = 12
|
* *1D* **Wire discretisation** with **Number of Segments** = 12
|
||||||
* *2D* **Triangle: Mefisto** with Hypothesis **MaxElementArea** = 1200
|
* *2D* **Triangle: NETGEN_2D** with Hypothesis **MaxElementArea** = 1200
|
||||||
|
|
||||||
|
|
||||||
The sub-meshes become concurrent if they share sub-shapes that can be meshed with different algorithms (or different hypotheses). In the example, we have three sub-meshes with concurrent algorithms, because they have different hypotheses.
|
The sub-meshes become concurrent if they share sub-shapes that can be meshed with different algorithms (or different hypotheses). In the example, we have three sub-meshes with concurrent algorithms, because they have different hypotheses.
|
||||||
@ -287,7 +287,7 @@ And the last mesh computation is made with:
|
|||||||
|
|
||||||
.. centered::
|
.. centered::
|
||||||
Mesh order SubMesh_3, SubMesh_2, SubMesh_1
|
Mesh order SubMesh_3, SubMesh_2, SubMesh_1
|
||||||
|
|
||||||
|
|
||||||
.. image:: ../images/mesh_order_321_res.png
|
.. image:: ../images/mesh_order_321_res.png
|
||||||
:align: center
|
:align: center
|
||||||
@ -296,13 +296,13 @@ And the last mesh computation is made with:
|
|||||||
Result mesh with order SubMesh_3, SubMesh_2, SubMesh_1
|
Result mesh with order SubMesh_3, SubMesh_2, SubMesh_1
|
||||||
|
|
||||||
As we can see, each mesh computation has a different number of result
|
As we can see, each mesh computation has a different number of result
|
||||||
elements and a different mesh discretization on the shared edges (the edges
|
elements and a different mesh discretization on the shared edges (the edges
|
||||||
that are shared between **Face_1**, **Face_2** and **Face_3**)
|
that are shared between **Face_1**, **Face_2** and **Face_3**)
|
||||||
|
|
||||||
Additionally, sub-mesh priority (the order of applied algorithms) can
|
Additionally, sub-mesh priority (the order of applied algorithms) can
|
||||||
be modified not only in a separate dialog box, but also in
|
be modified not only in a separate dialog box, but also in
|
||||||
the **Preview**. This helps to preview different mesh results,
|
the **Preview**. This helps to preview different mesh results,
|
||||||
modifying the order of sub-meshes.
|
modifying the order of sub-meshes.
|
||||||
|
|
||||||
.. image:: ../images/mesh_order_preview.png
|
.. image:: ../images/mesh_order_preview.png
|
||||||
:align: center
|
:align: center
|
||||||
@ -335,8 +335,8 @@ After the mesh computation finishes, the Mesh Computation information
|
|||||||
box appears. If you close this box and click "Compute" button again,
|
box appears. If you close this box and click "Compute" button again,
|
||||||
without previously changing meshing parameters, the mesh will NOT be
|
without previously changing meshing parameters, the mesh will NOT be
|
||||||
re-computed and the Mesh Computation information box will be shown
|
re-computed and the Mesh Computation information box will be shown
|
||||||
with the same contents. (To fully re-compute the mesh, invoke
|
with the same contents. (To fully re-compute the mesh, invoke
|
||||||
:ref:`clear_mesh_anchor` command before).
|
:ref:`clear_mesh_anchor` command before).
|
||||||
|
|
||||||
.. _meshing_result_anchor:
|
.. _meshing_result_anchor:
|
||||||
|
|
||||||
@ -356,7 +356,7 @@ After you select an error in **Errors** table, **Show Sub-shape** button allows
|
|||||||
visualizing in magenta the geometrical entity meshing of which failed
|
visualizing in magenta the geometrical entity meshing of which failed
|
||||||
(Name of this entity or its ID and type is shown in *Sub-shape* column).
|
(Name of this entity or its ID and type is shown in *Sub-shape* column).
|
||||||
|
|
||||||
.. image:: ../images/failed_computation.png
|
.. image:: ../images/failed_computation.png
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
.. centered::
|
.. centered::
|
||||||
@ -368,7 +368,7 @@ allows analyzing the problematic geometry and creating a sub-mesh on it in
|
|||||||
order to locally tune the hypotheses.
|
order to locally tune the hypotheses.
|
||||||
|
|
||||||
If the failure is caused by an invalid input mesh and the algorithm has
|
If the failure is caused by an invalid input mesh and the algorithm has
|
||||||
found which mesh entities are bad, **Show bad Mesh**
|
found which mesh entities are bad, **Show bad Mesh**
|
||||||
button appears in the dialog. Clicked, it shows the bad mesh entities in
|
button appears in the dialog. Clicked, it shows the bad mesh entities in
|
||||||
the Viewer in magenta. Sometimes the shown mesh entities are too small
|
the Viewer in magenta. Sometimes the shown mesh entities are too small
|
||||||
or/and hidden by other mesh elements. They can be seen after
|
or/and hidden by other mesh elements. They can be seen after
|
||||||
@ -390,7 +390,7 @@ Edges bounding a hole in the surface are shown in magenta using **Show bad Mesh*
|
|||||||
Editing the mesh
|
Editing the mesh
|
||||||
################
|
################
|
||||||
|
|
||||||
It is possible to :ref:`edit the mesh <modifying_meshes_page>` of a
|
It is possible to :ref:`edit the mesh <modifying_meshes_page>` of a
|
||||||
lower dimension before generation of the mesh of a higher dimension.
|
lower dimension before generation of the mesh of a higher dimension.
|
||||||
|
|
||||||
For example you can generate a 2D mesh, modify it using e.g. :ref:`Pattern mapping <pattern_mapping_page>`, and then generate a 3D mesh basing on the modified 2D mesh. The workflow is as follows:
|
For example you can generate a 2D mesh, modify it using e.g. :ref:`Pattern mapping <pattern_mapping_page>`, and then generate a 3D mesh basing on the modified 2D mesh. The workflow is as follows:
|
||||||
|
@ -102,8 +102,8 @@ Defining hypotheses
|
|||||||
|
|
||||||
.. autosummary::
|
.. autosummary::
|
||||||
|
|
||||||
StdMeshersBuilder_Triangle_MEFISTO.MaxElementArea
|
StdMeshersBuilder_Triangle_NETGEN_2D.MaxElementArea
|
||||||
StdMeshersBuilder_Triangle_MEFISTO.LengthFromEdges
|
StdMeshersBuilder_Triangle_NETGEN_2D.LengthFromEdges
|
||||||
StdMeshersBuilder_Quadrangle.QuadrangleParameters
|
StdMeshersBuilder_Quadrangle.QuadrangleParameters
|
||||||
StdMeshersBuilder_Quadrangle.QuadranglePreference
|
StdMeshersBuilder_Quadrangle.QuadranglePreference
|
||||||
StdMeshersBuilder_Quadrangle.TrianglePreference
|
StdMeshersBuilder_Quadrangle.TrianglePreference
|
||||||
@ -131,7 +131,7 @@ Constructing sub-meshes
|
|||||||
Mesh.GetSubMesh
|
Mesh.GetSubMesh
|
||||||
Mesh.ClearSubMesh
|
Mesh.ClearSubMesh
|
||||||
|
|
||||||
Editing Meshes
|
Editing Meshes
|
||||||
==============
|
==============
|
||||||
|
|
||||||
.. autosummary::
|
.. autosummary::
|
||||||
@ -151,7 +151,7 @@ Grouping elements
|
|||||||
Mesh.SetAutoColor
|
Mesh.SetAutoColor
|
||||||
Mesh.GetAutoColor
|
Mesh.GetAutoColor
|
||||||
Mesh.HasDuplicatedGroupNamesMED
|
Mesh.HasDuplicatedGroupNamesMED
|
||||||
|
|
||||||
Creating groups
|
Creating groups
|
||||||
===============
|
===============
|
||||||
|
|
||||||
@ -512,7 +512,7 @@ Duplication of nodes and elements (to emulate cracks)
|
|||||||
Mesh.AffectedElemGroupsInRegion
|
Mesh.AffectedElemGroupsInRegion
|
||||||
Mesh.DoubleNodesOnGroupBoundaries
|
Mesh.DoubleNodesOnGroupBoundaries
|
||||||
Mesh.CreateFlatElementsOnFacesGroups
|
Mesh.CreateFlatElementsOnFacesGroups
|
||||||
|
|
||||||
Renumbering nodes and elements
|
Renumbering nodes and elements
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ User Guide.
|
|||||||
|
|
||||||
NETGEN_2D_1 = Mesh_1.Triangle(algo=smeshBuilder.NETGEN_2D,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*.
|
StdMeshers algorithms concerned are *REGULAR, PYTHON, COMPOSITE, Hexa, QUADRANGLE, RADIAL_QUAD*.
|
||||||
|
|
||||||
SMESH Plugins provide such algorithms as: *NETGEN, NETGEN_FULL, FULL_NETGEN, NETGEN_1D2D3D, NETGEN_1D2D, NETGEN_2D, NETGEN_3D*.
|
SMESH Plugins provide such algorithms as: *NETGEN, NETGEN_FULL, FULL_NETGEN, NETGEN_1D2D3D, NETGEN_1D2D, NETGEN_2D, NETGEN_3D*.
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ A usual workflow to generate a mesh on geometry is following:
|
|||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
regular1D = mesh.Segment()
|
regular1D = mesh.Segment()
|
||||||
mefisto = mesh.Triangle( smeshBuilder.MEFISTO )
|
netgen = mesh.Triangle( smeshBuilder.NETGEN_2D )
|
||||||
# use other triangle algorithm on a face -- a sub-mesh appears in the mesh
|
# use other triangle algorithm on a face -- a sub-mesh appears in the mesh
|
||||||
netgen = mesh.Triangle( smeshBuilder.NETGEN_1D2D, face )
|
netgen = mesh.Triangle( smeshBuilder.NETGEN_1D2D, face )
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ A usual workflow to generate a mesh on geometry is following:
|
|||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
segLen10 = regular1D.LocalLength( 10. )
|
segLen10 = regular1D.LocalLength( 10. )
|
||||||
maxArea = mefisto.LocalLength( 100. )
|
maxArea = netgen.LocalLength( 100. )
|
||||||
netgen.SetMaxSize( 20. )
|
netgen.SetMaxSize( 20. )
|
||||||
netgen.SetFineness( smeshBuilder.VeryCoarse )
|
netgen.SetFineness( smeshBuilder.VeryCoarse )
|
||||||
|
|
||||||
|
@ -8,30 +8,30 @@ This page provides example codes of :ref:`defining algorithms <tui_defining_mesh
|
|||||||
and hypotheses.
|
and hypotheses.
|
||||||
|
|
||||||
* Wire discretisation 1D algorithm
|
* Wire discretisation 1D algorithm
|
||||||
|
|
||||||
* :ref:`tui_1d_adaptive` hypothesis
|
* :ref:`tui_1d_adaptive` hypothesis
|
||||||
* :ref:`Arithmetic Progression <tui_1d_arithmetic>` hypothesis
|
* :ref:`Arithmetic Progression <tui_1d_arithmetic>` hypothesis
|
||||||
* :ref:`Geometric Progression <tui_1d_arithmetic>` hypothesis
|
* :ref:`Geometric Progression <tui_1d_arithmetic>` hypothesis
|
||||||
* :ref:`Deflection and Number of Segments <tui_deflection_1d>` hypotheses
|
* :ref:`Deflection and Number of Segments <tui_deflection_1d>` hypotheses
|
||||||
* :ref:`Start and End Length <tui_start_and_end_length>` hypothesis
|
* :ref:`Start and End Length <tui_start_and_end_length>` hypothesis
|
||||||
* :ref:`tui_average_length` hypothesis
|
* :ref:`tui_average_length` hypothesis
|
||||||
* :ref:`tui_propagation` additional hypotheses
|
* :ref:`tui_propagation` additional hypotheses
|
||||||
* :ref:`Fixed Points 1D <tui_fixed_points>` hypothesis
|
* :ref:`Fixed Points 1D <tui_fixed_points>` hypothesis
|
||||||
|
|
||||||
|
|
||||||
* Triangle: Mefisto 2D algorithm
|
|
||||||
|
* Triangle: netgen 2D algorithm
|
||||||
* :ref:`tui_max_element_area` hypothesis
|
|
||||||
* :ref:`tui_length_from_edges` hypothesis
|
* :ref:`tui_max_element_area` hypothesis
|
||||||
|
* :ref:`tui_length_from_edges` hypothesis
|
||||||
|
|
||||||
* Quadrangle: Mapping 2D algorithm
|
* Quadrangle: Mapping 2D algorithm
|
||||||
|
|
||||||
* :ref:`Quadrangle Parameters <tui_quadrangle_parameters>` hypothesis
|
* :ref:`Quadrangle Parameters <tui_quadrangle_parameters>` hypothesis
|
||||||
|
|
||||||
* :ref:`Radial Quadrangle 1D-2D <tui_radial_quadrangle>` algorithm
|
* :ref:`Radial Quadrangle 1D-2D <tui_radial_quadrangle>` algorithm
|
||||||
* NETGEN 3D algorithm
|
* NETGEN 3D algorithm
|
||||||
|
|
||||||
* :ref:`tui_max_element_volume` hypothesis
|
* :ref:`tui_max_element_volume` hypothesis
|
||||||
* :ref:`Viscous layers <tui_viscous_layers>` hypotheses
|
* :ref:`Viscous layers <tui_viscous_layers>` hypotheses
|
||||||
|
|
||||||
* Hexahedron (i,j,k) 3D algorithm
|
* Hexahedron (i,j,k) 3D algorithm
|
||||||
@ -271,7 +271,7 @@ Usage of Body Fitting algorithm
|
|||||||
|
|
||||||
:download:`Download this script <../../../examples/cartesian_algo.py>`
|
:download:`Download this script <../../../examples/cartesian_algo.py>`
|
||||||
|
|
||||||
.. _tui_use_existing_faces:
|
.. _tui_use_existing_faces:
|
||||||
|
|
||||||
Usage of "Use Faces to be Created Manually" algorithm
|
Usage of "Use Faces to be Created Manually" algorithm
|
||||||
#####################################################
|
#####################################################
|
||||||
|
@ -134,7 +134,7 @@ msgstr ""
|
|||||||
msgid ""
|
msgid ""
|
||||||
"**Viscous Layers** and **Viscous Layers 2D** additional hypotheses can be"
|
"**Viscous Layers** and **Viscous Layers 2D** additional hypotheses can be"
|
||||||
" used by several 3D algorithms, for example Hexahedron(i,j,k), or 2D "
|
" used by several 3D algorithms, for example Hexahedron(i,j,k), or 2D "
|
||||||
"algorithms, for example Triangle (MEFISTO), correspondingly. These "
|
"algorithms, for example Triangle (NETGEN_2D), correspondingly. These "
|
||||||
"hypotheses allow creation of layers of highly stretched elements, prisms "
|
"hypotheses allow creation of layers of highly stretched elements, prisms "
|
||||||
"in 3D and quadrilaterals in 2D, near mesh boundary, which is beneficial "
|
"in 3D and quadrilaterals in 2D, near mesh boundary, which is beneficial "
|
||||||
"for high quality viscous computations."
|
"for high quality viscous computations."
|
||||||
|
@ -71,7 +71,7 @@ msgstr ""
|
|||||||
# 96ff3177522e4abbac57c5166724c7db
|
# 96ff3177522e4abbac57c5166724c7db
|
||||||
#: ../../../../../../../SRC/SMESH_SRC/doc/salome/gui/SMESH/input/basic_meshing_algos.rst:22
|
#: ../../../../../../../SRC/SMESH_SRC/doc/salome/gui/SMESH/input/basic_meshing_algos.rst:22
|
||||||
msgid ""
|
msgid ""
|
||||||
"**Triangle: Mefisto** meshing algorithm - splits faces into triangular "
|
"**Triangle: NETGEN_2D** meshing algorithm - splits faces into triangular "
|
||||||
"elements."
|
"elements."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -559,7 +559,7 @@ msgstr ""
|
|||||||
|
|
||||||
# 223a2036b61245b9a74d39e766c41171
|
# 223a2036b61245b9a74d39e766c41171
|
||||||
#: ../../../../../../../SRC/SMESH_SRC/doc/salome/gui/SMESH/input/constructing_meshes.rst:242
|
#: ../../../../../../../SRC/SMESH_SRC/doc/salome/gui/SMESH/input/constructing_meshes.rst:242
|
||||||
msgid "*2D* **Triangle: Mefisto** with Hypothesis **Max Element Area**"
|
msgid "*2D* **Triangle: NETGEN_2D** with Hypothesis **Max Element Area**"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
# af68c57a6c6541e4a5ee565e61ce82a8
|
# af68c57a6c6541e4a5ee565e61ce82a8
|
||||||
@ -578,7 +578,7 @@ msgstr ""
|
|||||||
#: ../../../../../../../SRC/SMESH_SRC/doc/salome/gui/SMESH/input/constructing_meshes.rst:248
|
#: ../../../../../../../SRC/SMESH_SRC/doc/salome/gui/SMESH/input/constructing_meshes.rst:248
|
||||||
#: ../../../../../../../SRC/SMESH_SRC/doc/salome/gui/SMESH/input/constructing_meshes.rst:253
|
#: ../../../../../../../SRC/SMESH_SRC/doc/salome/gui/SMESH/input/constructing_meshes.rst:253
|
||||||
#: ../../../../../../../SRC/SMESH_SRC/doc/salome/gui/SMESH/input/constructing_meshes.rst:259
|
#: ../../../../../../../SRC/SMESH_SRC/doc/salome/gui/SMESH/input/constructing_meshes.rst:259
|
||||||
msgid "*2D* **Triangle: Mefisto** with Hypothesis **MaxElementArea** =1200"
|
msgid "*2D* **Triangle: NETGEN_2D** with Hypothesis **MaxElementArea** =1200"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
# dae60f1eb8924fd19c98131c2b68967a
|
# dae60f1eb8924fd19c98131c2b68967a
|
||||||
|
@ -126,7 +126,7 @@ msgstr ""
|
|||||||
# 5d5613278457472fbf4dd155ba325791
|
# 5d5613278457472fbf4dd155ba325791
|
||||||
#: StdMeshersBuilder.MEFISTO:1
|
#: StdMeshersBuilder.MEFISTO:1
|
||||||
msgid ""
|
msgid ""
|
||||||
"*Algorithm type* -- Triangle MEFISTO 2D algorithm, see "
|
"*Algorithm type* -- Triangle NETGEN_2D algorithm, see "
|
||||||
":class:`~StdMeshersBuilder.StdMeshersBuilder_Triangle_MEFISTO`"
|
":class:`~StdMeshersBuilder.StdMeshersBuilder_Triangle_MEFISTO`"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ msgstr ""
|
|||||||
#: ../../../../../../../SRC/SMESH_SRC/doc/salome/gui/SMESH/input/smesh_migration.rst:55
|
#: ../../../../../../../SRC/SMESH_SRC/doc/salome/gui/SMESH/input/smesh_migration.rst:55
|
||||||
msgid ""
|
msgid ""
|
||||||
"StdMeshers algorithms concerned are **REGULAR, PYTHON, COMPOSITE, "
|
"StdMeshers algorithms concerned are **REGULAR, PYTHON, COMPOSITE, "
|
||||||
"MEFISTO, Hexa, QUADRANGLE, RADIAL_QUAD**."
|
"Hexa, QUADRANGLE, RADIAL_QUAD**."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
# ca97ecd8ffc74d798b1c512b44fb6b95
|
# ca97ecd8ffc74d798b1c512b44fb6b95
|
||||||
|
@ -71,7 +71,7 @@ msgstr ""
|
|||||||
|
|
||||||
# 65a07e23b54b4b28a44b18cee2f6eb18
|
# 65a07e23b54b4b28a44b18cee2f6eb18
|
||||||
#: ../../../../../../../SRC/SMESH_SRC/doc/salome/gui/SMESH/input/tui_defining_hypotheses.rst:21
|
#: ../../../../../../../SRC/SMESH_SRC/doc/salome/gui/SMESH/input/tui_defining_hypotheses.rst:21
|
||||||
msgid "Triangle: Mefisto 2D algorithm"
|
msgid "Triangle: NETGEN 2D algorithm"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
# 88b6fff7e253450eb7ea36fb2fe5445d
|
# 88b6fff7e253450eb7ea36fb2fe5445d
|
||||||
|
@ -37,7 +37,7 @@ SET(SMESH_RESOURCES_FILES
|
|||||||
mesh_add.png
|
mesh_add.png
|
||||||
mesh_add_sub.png
|
mesh_add_sub.png
|
||||||
mesh_algo_hexa.png
|
mesh_algo_hexa.png
|
||||||
mesh_algo_mefisto.png
|
mesh_algo_tri.png
|
||||||
mesh_algo_quad.png
|
mesh_algo_quad.png
|
||||||
mesh_algo_regular.png
|
mesh_algo_regular.png
|
||||||
mesh_algo_tetra.png
|
mesh_algo_tetra.png
|
||||||
@ -187,7 +187,7 @@ SET(SMESH_RESOURCES_FILES
|
|||||||
mesh_tree_algo_0D.png
|
mesh_tree_algo_0D.png
|
||||||
mesh_tree_algo_existing_2D.png
|
mesh_tree_algo_existing_2D.png
|
||||||
mesh_tree_algo_hexa.png
|
mesh_tree_algo_hexa.png
|
||||||
mesh_tree_algo_mefisto.png
|
mesh_tree_algo_tri.png
|
||||||
mesh_tree_algo_polygon.png
|
mesh_tree_algo_polygon.png
|
||||||
mesh_tree_algo_prism.png
|
mesh_tree_algo_prism.png
|
||||||
mesh_tree_algo_projection_2d.png
|
mesh_tree_algo_projection_2d.png
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 450 B After Width: | Height: | Size: 450 B |
@ -413,7 +413,7 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>ICON_PATTERN_2d</source>
|
<source>ICON_PATTERN_2d</source>
|
||||||
<translation>mesh_algo_mefisto.png</translation>
|
<translation>mesh_algo_tri.png</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>ICON_PATTERN_3d</source>
|
<source>ICON_PATTERN_3d</source>
|
||||||
|
@ -90,7 +90,7 @@ maxElementArea = 200
|
|||||||
algoMef = mesh.Triangle()
|
algoMef = mesh.Triangle()
|
||||||
listHyp = algoMef.GetCompatibleHypothesis()
|
listHyp = algoMef.GetCompatibleHypothesis()
|
||||||
print(algoMef.GetName())
|
print(algoMef.GetName())
|
||||||
algoMef.SetName("Triangle (Mefisto)")
|
algoMef.SetName("Triangle (netgen)")
|
||||||
|
|
||||||
hypArea200 = algoMef.MaxElementArea(maxElementArea)
|
hypArea200 = algoMef.MaxElementArea(maxElementArea)
|
||||||
print(hypArea200.GetName())
|
print(hypArea200.GetName())
|
||||||
|
@ -70,7 +70,7 @@ smesh.SetName(hypNbSeg1, "NumberOfSegments_" + str(numberOfSegments1))
|
|||||||
maxElementArea = 30
|
maxElementArea = 30
|
||||||
|
|
||||||
algoMef = mesh1.Triangle()
|
algoMef = mesh1.Triangle()
|
||||||
algoMef.SetName("MEFISTO_2D")
|
algoMef.SetName("NETGEN_2D")
|
||||||
hypArea = algoMef.MaxElementArea(maxElementArea)
|
hypArea = algoMef.MaxElementArea(maxElementArea)
|
||||||
smesh.SetName(hypArea, "MaxElementArea_" + str(maxElementArea))
|
smesh.SetName(hypArea, "MaxElementArea_" + str(maxElementArea))
|
||||||
|
|
||||||
|
@ -149,8 +149,8 @@ print("-------------------------- MaxElementArea")
|
|||||||
|
|
||||||
maxElementArea = 0.1
|
maxElementArea = 0.1
|
||||||
|
|
||||||
mefisto2D = mesh.Triangle()
|
netgen2D = mesh.Triangle()
|
||||||
hypArea = mefisto2D.MaxElementArea(maxElementArea)
|
hypArea = netgen2D.MaxElementArea(maxElementArea)
|
||||||
print(hypArea.GetName())
|
print(hypArea.GetName())
|
||||||
print(hypArea.GetId())
|
print(hypArea.GetId())
|
||||||
print(hypArea.GetMaxElementArea())
|
print(hypArea.GetMaxElementArea())
|
||||||
|
@ -103,8 +103,8 @@ print("-------------------------- MaxElementArea")
|
|||||||
|
|
||||||
maxElementArea = 500
|
maxElementArea = 500
|
||||||
|
|
||||||
mefisto2D = mesh.Triangle()
|
netgen2D = mesh.Triangle()
|
||||||
hypArea = mefisto2D.MaxElementArea(maxElementArea)
|
hypArea = netgen2D.MaxElementArea(maxElementArea)
|
||||||
print(hypArea.GetName())
|
print(hypArea.GetName())
|
||||||
print(hypArea.GetId())
|
print(hypArea.GetId())
|
||||||
print(hypArea.GetMaxElementArea())
|
print(hypArea.GetMaxElementArea())
|
||||||
|
@ -113,8 +113,8 @@ print("-------------------------- MaxElementArea")
|
|||||||
|
|
||||||
maxElementArea = 500
|
maxElementArea = 500
|
||||||
|
|
||||||
mefisto2D = mesh.Triangle()
|
netgen2D = mesh.Triangle()
|
||||||
hypArea = mefisto2D.MaxElementArea(maxElementArea)
|
hypArea = netgen2D.MaxElementArea(maxElementArea)
|
||||||
print(hypArea.GetName())
|
print(hypArea.GetName())
|
||||||
print(hypArea.GetId())
|
print(hypArea.GetId())
|
||||||
print(hypArea.GetMaxElementArea())
|
print(hypArea.GetMaxElementArea())
|
||||||
|
@ -72,8 +72,8 @@ print("-------------------------- MaxElementArea")
|
|||||||
|
|
||||||
maxElementArea = 500
|
maxElementArea = 500
|
||||||
|
|
||||||
mefisto2D = mesh.Triangle()
|
netgen2D = mesh.Triangle()
|
||||||
hypArea = mefisto2D.MaxElementArea(maxElementArea)
|
hypArea = netgen2D.MaxElementArea(maxElementArea)
|
||||||
print(hypArea.GetName())
|
print(hypArea.GetName())
|
||||||
print(hypArea.GetId())
|
print(hypArea.GetId())
|
||||||
print(hypArea.GetMaxElementArea())
|
print(hypArea.GetMaxElementArea())
|
||||||
|
@ -75,9 +75,9 @@ smesh.SetName(hypNbSeg, "NumberOfSegments_" + str(numberOfSegments))
|
|||||||
|
|
||||||
## maxElementArea = 80
|
## maxElementArea = 80
|
||||||
|
|
||||||
## mefisto2D = mesh.Triangle()
|
## netgen2D = mesh.Triangle()
|
||||||
## mefisto2D.SetName("MEFISTO_2D")
|
## netgen2D.SetName("NETGEN_2D")
|
||||||
## hypArea = mefisto2D.MaxElementArea(maxElementArea)
|
## hypArea = netgen2D.MaxElementArea(maxElementArea)
|
||||||
## print hypArea.GetName()
|
## print hypArea.GetName()
|
||||||
## print hypArea.GetId()
|
## print hypArea.GetId()
|
||||||
## print hypArea.GetMaxElementArea()
|
## print hypArea.GetMaxElementArea()
|
||||||
@ -85,9 +85,9 @@ smesh.SetName(hypNbSeg, "NumberOfSegments_" + str(numberOfSegments))
|
|||||||
|
|
||||||
print("-------------------------- LengthFromEdges")
|
print("-------------------------- LengthFromEdges")
|
||||||
|
|
||||||
mefisto2D = mesh.Triangle()
|
netgen2D = mesh.Triangle()
|
||||||
mefisto2D.SetName("MEFISTO_2D")
|
netgen2D.SetName("NETGEN_2D")
|
||||||
hypLengthFromEdges = mefisto2D.LengthFromEdges()
|
hypLengthFromEdges = netgen2D.LengthFromEdges()
|
||||||
print(hypLengthFromEdges.GetName())
|
print(hypLengthFromEdges.GetName())
|
||||||
print(hypLengthFromEdges.GetId())
|
print(hypLengthFromEdges.GetId())
|
||||||
smesh.SetName(hypLengthFromEdges, "LengthFromEdges")
|
smesh.SetName(hypLengthFromEdges, "LengthFromEdges")
|
||||||
@ -119,7 +119,7 @@ if ret != 0:
|
|||||||
print("Number of triangles : ", mesh.NbTriangles())
|
print("Number of triangles : ", mesh.NbTriangles())
|
||||||
print("Number of volumes : ", mesh.NbVolumes())
|
print("Number of volumes : ", mesh.NbVolumes())
|
||||||
print("Number of tetrahedrons : ", mesh.NbTetras())
|
print("Number of tetrahedrons : ", mesh.NbTetras())
|
||||||
|
|
||||||
else:
|
else:
|
||||||
print("problem when computing the mesh")
|
print("problem when computing the mesh")
|
||||||
|
|
||||||
|
@ -85,8 +85,8 @@ smesh.SetName(hypLength, "LocalLength_" + str(lengthOfSegments))
|
|||||||
|
|
||||||
print("-------------------------- LengthFromEdges")
|
print("-------------------------- LengthFromEdges")
|
||||||
|
|
||||||
mefisto2D = mesh.Triangle()
|
netgen2D = mesh.Triangle()
|
||||||
hypLengthFromEdge = mefisto2D.LengthFromEdges()
|
hypLengthFromEdge = netgen2D.LengthFromEdges()
|
||||||
print(hypLengthFromEdge.GetName())
|
print(hypLengthFromEdge.GetName())
|
||||||
print(hypLengthFromEdge.GetId())
|
print(hypLengthFromEdge.GetId())
|
||||||
smesh.SetName(hypLengthFromEdge,"LengthFromEdge")
|
smesh.SetName(hypLengthFromEdge,"LengthFromEdge")
|
||||||
|
@ -34,7 +34,7 @@ using namespace std;
|
|||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ StdMeshers_LengthFromEdges::StdMeshers_LengthFromEdges(int hypId, SMESH_Gen* gen
|
|||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
@ -58,14 +58,14 @@ StdMeshers_LengthFromEdges::~StdMeshers_LengthFromEdges()
|
|||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
void StdMeshers_LengthFromEdges::SetMode(int mode)
|
void StdMeshers_LengthFromEdges::SetMode(int mode)
|
||||||
{
|
{
|
||||||
int oldMode = _mode;
|
int oldMode = _mode;
|
||||||
if (mode <= 0)
|
if (mode <= 0)
|
||||||
throw SALOME_Exception(LOCALIZED("mode must be positive"));
|
throw SALOME_Exception(LOCALIZED("mode must be positive"));
|
||||||
_mode = mode;
|
_mode = mode;
|
||||||
if (oldMode != _mode)
|
if (oldMode != _mode)
|
||||||
@ -74,7 +74,7 @@ void StdMeshers_LengthFromEdges::SetMode(int mode)
|
|||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
@ -85,7 +85,7 @@ int StdMeshers_LengthFromEdges::GetMode()
|
|||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
@ -97,7 +97,7 @@ ostream & StdMeshers_LengthFromEdges::SaveTo(ostream & save)
|
|||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
@ -106,16 +106,16 @@ istream & StdMeshers_LengthFromEdges::LoadFrom(istream & load)
|
|||||||
bool isOK = true;
|
bool isOK = true;
|
||||||
int a;
|
int a;
|
||||||
isOK = static_cast<bool>(load >> a);
|
isOK = static_cast<bool>(load >> a);
|
||||||
if (isOK)
|
if (isOK)
|
||||||
this->_mode = a;
|
this->_mode = a;
|
||||||
else
|
else
|
||||||
load.clear(ios::badbit | load.rdstate());
|
load.clear(ios::badbit | load.rdstate());
|
||||||
return load;
|
return load;
|
||||||
}
|
}
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
@ -126,7 +126,7 @@ ostream & operator << (ostream & save, StdMeshers_LengthFromEdges & hyp)
|
|||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
|
@ -124,8 +124,8 @@
|
|||||||
<translation>mesh_tree_algo_hexa.png</translation>
|
<translation>mesh_tree_algo_hexa.png</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>ICON_SMESH_TREE_ALGO_MEFISTO_2D</source>
|
<source>ICON_SMESH_TREE_ALGO_TRI_2D</source>
|
||||||
<translation>mesh_tree_algo_mefisto.png</translation>
|
<translation>mesh_tree_algo_tri.png</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>ICON_SMESH_TREE_ALGO_PolygonPerFace_2D</source>
|
<source>ICON_SMESH_TREE_ALGO_PolygonPerFace_2D</source>
|
||||||
@ -289,7 +289,7 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>ICON_SMESH_TREE_HYPO_TrianglePreference</source>
|
<source>ICON_SMESH_TREE_HYPO_TrianglePreference</source>
|
||||||
<translation>mesh_tree_algo_mefisto.png</translation>
|
<translation>mesh_tree_algo_tri.png</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>ICON_SMESH_TREE_HYPO_QuadraticMesh</source>
|
<source>ICON_SMESH_TREE_HYPO_QuadraticMesh</source>
|
||||||
|
Loading…
Reference in New Issue
Block a user