mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-02-12 16:33:07 +05:00
PR: missing doc on generate flat elements
This commit is contained in:
parent
f8ddfb2118
commit
a6b047ce31
12
doc/salome/gui/SMESH/input/generate_flat_elements.doc
Normal file
12
doc/salome/gui/SMESH/input/generate_flat_elements.doc
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
/*!
|
||||||
|
|
||||||
|
\page generate_flat_elements_page Generate flat elements on group boundaries or on faces
|
||||||
|
|
||||||
|
\n These functionalities, used in some mechanics calculations,
|
||||||
|
allow to generate flat volume elements on the boundaries of a list
|
||||||
|
of groups of volumes, or on a list of groups of faces.
|
||||||
|
\n These functionalities are only available in python scripts.
|
||||||
|
|
||||||
|
<br><b>See </b> a sample TUI Script of a \ref tui_double_nodes_on_group_boundaries "Generate flat elements" operations.
|
||||||
|
|
||||||
|
*/
|
@ -48,6 +48,7 @@ of the selected node or edge.</li>
|
|||||||
<li>\subpage convert_to_from_quadratic_mesh_page "Convert regular mesh to quadratic",
|
<li>\subpage convert_to_from_quadratic_mesh_page "Convert regular mesh to quadratic",
|
||||||
or vice versa.</li>
|
or vice versa.</li>
|
||||||
<li>\subpage make_2dmesh_from_3d_page "Generate boundary elements".</li>
|
<li>\subpage make_2dmesh_from_3d_page "Generate boundary elements".</li>
|
||||||
|
<li>\subpage generate_flat_elements_page "Generate flat elements on group boundaries or on faces".</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
\note It is possible to use the variables defined in the SALOME \b NoteBook
|
\note It is possible to use the variables defined in the SALOME \b NoteBook
|
||||||
|
75
doc/salome/gui/SMESH/input/tui_generate_flat_elements.doc
Normal file
75
doc/salome/gui/SMESH/input/tui_generate_flat_elements.doc
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
/*!
|
||||||
|
|
||||||
|
\page tui_generate_flat_elements_page Generate flat elements
|
||||||
|
|
||||||
|
<br>
|
||||||
|
\anchor tui_double_nodes_on_group_boundaries
|
||||||
|
<h2>Double nodes on groups boundaries</h2>
|
||||||
|
|
||||||
|
\n Double nodes on shared faces between groups of volumes and create flat elements on demand.
|
||||||
|
\n The list of groups must describe a partition of the mesh volumes.The nodes of the internal
|
||||||
|
faces at the boundaries of the groups are doubled. In option, the internal faces are replaced
|
||||||
|
by flat elements.
|
||||||
|
\n Triangles are transformed in prisms, and quadrangles in hexahedrons.
|
||||||
|
\n The flat elements are stored in groups of volumes.
|
||||||
|
|
||||||
|
\n
|
||||||
|
\n This example represents an iron cable (a thin cylinder) in a concrete bloc (a big cylinder).
|
||||||
|
The big cylinder is defined by two geometric volumes.
|
||||||
|
|
||||||
|
\code
|
||||||
|
# geometry
|
||||||
|
|
||||||
|
O = geompy.MakeVertex(0, 0, 0)
|
||||||
|
OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
|
||||||
|
OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
|
||||||
|
OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
|
||||||
|
Vertex_1 = geompy.MakeVertex(50, 0, 0)
|
||||||
|
Cylinder_1 = geompy.MakeCylinder(O, OX, 10, 500)
|
||||||
|
Cylinder_2 = geompy.MakeCylinder(Vertex_1, OX, 100, 400)
|
||||||
|
Vertex_2 = geompy.MakeVertex(-200, -200, -200)
|
||||||
|
Vertex_3 = geompy.MakeVertex(250, 200, 200)
|
||||||
|
Box_1 = geompy.MakeBoxTwoPnt(Vertex_2, Vertex_3)
|
||||||
|
Cut_1 = geompy.MakeCut(Cylinder_2, Cylinder_1)
|
||||||
|
Partition_2 = geompy.MakePartition([Cut_1], [Box_1], [], [], geompy.ShapeType["SOLID"], 0, [], 0)
|
||||||
|
Fuse_1 = geompy.MakeFuse(Partition_2, Cylinder_1)
|
||||||
|
Partition_1 = geompy.MakePartition([Fuse_1], [Cylinder_1], [], [], geompy.ShapeType["SOLID"], 0, [], 0)
|
||||||
|
[Solid_1,Solid_2,Solid_3] = geompy.SubShapes(Partition_1, [53, 2, 30])
|
||||||
|
[Face_1,Face_2] = geompy.SubShapes(Partition_1, [37, 20])
|
||||||
|
|
||||||
|
# meshing (linear tetrahedrons here, but other elements are OK)
|
||||||
|
|
||||||
|
Mesh_1 = smesh.Mesh(Partition_1)
|
||||||
|
BLSURF = Mesh_1.Triangle(algo=smesh.BLSURF)
|
||||||
|
BLSURF_Parameters = BLSURF.Parameters()
|
||||||
|
BLSURF_Parameters.SetPhysicalMesh( 0 )
|
||||||
|
BLSURF_Parameters.SetGeometricMesh( 1 )
|
||||||
|
BLSURF_Parameters.SetAngleMeshS( 16 )
|
||||||
|
BLSURF_Parameters.SetAngleMeshC( 16 )
|
||||||
|
GHS3D_3D = Mesh_1.Tetrahedron(algo=smesh.GHS3D)
|
||||||
|
isDone = Mesh_1.Compute()
|
||||||
|
|
||||||
|
# relevant groups of volumes and faces
|
||||||
|
|
||||||
|
Solid_1_1 = Mesh_1.GroupOnGeom(Solid_1,'Solid_1',SMESH.VOLUME)
|
||||||
|
Solid_2_1 = Mesh_1.GroupOnGeom(Solid_2,'Solid_2',SMESH.VOLUME)
|
||||||
|
Solid_3_1 = Mesh_1.GroupOnGeom(Solid_3,'Solid_3',SMESH.VOLUME)
|
||||||
|
Face_1_1 = Mesh_1.GroupOnGeom(Face_1,'Face_1',SMESH.FACE)
|
||||||
|
Face_2_1 = Mesh_1.GroupOnGeom(Face_2,'Face_2',SMESH.FACE)
|
||||||
|
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
\n Here, the 3 groups of volumes [Solid_1_1, Solid_2_1, Solid_3_1] constitute a partition of the mesh.
|
||||||
|
The flat elements on group boundaries and on faces are built with the following code.
|
||||||
|
\n If the last argument (boolean) in DoubleNodesOnGroupBoundaries is set to 1,
|
||||||
|
the flat elements are built, otherwise, there is only a duplication of the nodes.
|
||||||
|
|
||||||
|
\code
|
||||||
|
Mesh_1.DoubleNodesOnGroupBoundaries([Solid_1_1, Solid_2_1, Solid_3_1], 1)
|
||||||
|
|
||||||
|
Mesh_1.CreateFlatElementsOnFacesGroups([Face_1_1, Face_2_1])
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
\n To observe the flat element groups, save the resulting mesh on a Med file and reload it.
|
||||||
|
|
||||||
|
*/
|
Loading…
Reference in New Issue
Block a user