PR: missing doc on generate flat elements

This commit is contained in:
prascle 2011-05-11 15:50:41 +00:00
parent f8ddfb2118
commit a6b047ce31
3 changed files with 88 additions and 0 deletions

View 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.
*/

View File

@ -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

View 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.
*/