Salome HOME
0020832: EDF 1359 SMESH : Automatic meshing of boundary layers
authoreap <eap@opencascade.com>
Tue, 18 Jan 2011 10:59:55 +0000 (10:59 +0000)
committereap <eap@opencascade.com>
Tue, 18 Jan 2011 10:59:55 +0000 (10:59 +0000)
+    <hypothesis type="ViscousLayers"

doc/salome/gui/SMESH/images/viscous_layers_hyp.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/viscous_layers_mesh.png [new file with mode: 0644]
doc/salome/gui/SMESH/input/about_hypo.doc
doc/salome/gui/SMESH/input/additional_hypo.doc
doc/salome/gui/SMESH/input/tui_defining_hypotheses.doc
resources/Makefile.am
resources/StdMeshers.xml
resources/mesh_hypo_viscous_layers.png [new file with mode: 0644]
resources/mesh_tree_hypo_viscous_layers.png [new file with mode: 0644]

diff --git a/doc/salome/gui/SMESH/images/viscous_layers_hyp.png b/doc/salome/gui/SMESH/images/viscous_layers_hyp.png
new file mode 100644 (file)
index 0000000..843ff5d
Binary files /dev/null and b/doc/salome/gui/SMESH/images/viscous_layers_hyp.png differ
diff --git a/doc/salome/gui/SMESH/images/viscous_layers_mesh.png b/doc/salome/gui/SMESH/images/viscous_layers_mesh.png
new file mode 100644 (file)
index 0000000..9373a5e
Binary files /dev/null and b/doc/salome/gui/SMESH/images/viscous_layers_mesh.png differ
index 5f989ec3d671fd581b4d88448fa7ad89f0747e80..e1c9e401ba31d9d120b441d9c3bd7768156a0546 100644 (file)
@@ -55,6 +55,7 @@ with other hypotheses:
 <li>Quadratic mesh</li>
 <li>Quadrangle preference</li>
 <li>Triangle preference</li>
+<li>Viscous layers</li>
 </ul>
 
 The choice of a hypothesis depends on:
index 81eab0be8228ac10f0dd197eb4bf5e48692cdc67..67e10c35b86942f2e5bbcb5aa2faad689f607805 100644 (file)
@@ -57,4 +57,34 @@ otherwise refinement area will contain some quadrangular elements.
 <i>This hypothesis is obsolete now. Use <b>Quadrangle Parameters</b>
 hypothesis with type <b>Triangle Preference</b> set instead.</i>
 
+\anchor viscous_layers_anchor
+<h2>Viscous Layers</h2>
+
+<b>Viscous Layers</b> additional hypotheses can be used together with
+several 3D algorithms: NETGEN 3D, GHS3D and Hexahedron(i,j,k). This
+hypothesis allows creation of layers of highly stretched prisms near
+mesh boundary, which is beneficial for high quality viscous
+computations. The prisms constructed on the quadrangular mesh faces are
+actually the hexahedrons.
+
+
+\image html viscous_layers_hyp.png
+
+<ul>
+<li><b>Name</b> - allows to define the name of the hypothesis.</li>
+<li><b>Total thicknes</b> - gives total thickness of layers of prisms.</li>
+<li><b>Number of layers</b> - defines number of layers of prisms.</li>
+<li><b>Stretch factor</b> - defines factor of growth of height of
+prisms from the mesh boundary towards inside of mesh.</li>
+<li><b>Faces without layers</b> - defines geometrical faces on which
+layers of prisms should not be constructed. By default the layers of
+prisms are not constructed on geometrical faces shared by solids.</li>
+</ul>
+
+\image html viscous_layers_mesh.png A group containing viscous layer prisms.
+
+<br><b>See also</b> a sample TUI script of a \ref tui_viscous_layers
+"Viscous layers construction".
+
+
 */
index 1581e7c2fbb4f495a4d0719af05e136de7ec1cf5..4ced1731af1869d3d47c36e9c75af26554ea6726 100644 (file)
@@ -673,6 +673,51 @@ import2hyp.SetCopySourceMesh(True,True)
 tgtMesh.Compute()
 \endcode
 
+\anchor tui_viscous_layers
+<h2>Viscous layers construction</h2>
+
+\code
+from smesh import *
+SetCurrentStudy(salome.myStudy)
+
+X = geompy.MakeVectorDXDYDZ( 1,0,0 )
+O = geompy.MakeVertex( 100,50,50 )
+plane = geompy.MakePlane( O, X, 200 ) # plane YZ
+
+box = geompy.MakeBoxDXDYDZ(200,100,100)
+
+shape = geompy.MakeHalfPartition( box, plane )
+
+faces = geompy.SubShapeAllSorted(shape, geompy.ShapeType["FACE"])
+face1 = faces[1]
+ignoreFaces = [ faces[0], faces[-1]]
+
+geompy.addToStudy( shape, "shape" )
+geompy.addToStudyInFather( shape, face1, "face1")
+
+
+mesh = Mesh(shape, "CFD")
+
+mesh.Segment().NumberOfSegments( 4 )
+
+mesh.Triangle(NETGEN_2D)
+mesh.Quadrangle(face1)
+mesh.Compute()
+algo3D = mesh.Tetrahedron(NETGEN)
+
+thickness = 20
+numberOfLayers = 10
+stretchFactor = 1.5
+layersHyp = algo3D.ViscousLayers(thickness,numberOfLayers,stretchFactor,ignoreFaces)
+
+mesh.Compute()
+
+mesh.MakeGroup("Tetras",VOLUME,FT_ElemGeomType,"=",Geom_TETRA)
+mesh.MakeGroup("Pyras",VOLUME,FT_ElemGeomType,"=",Geom_PYRAMID)
+mesh.MakeGroup("Prims",VOLUME,FT_ElemGeomType,"=",Geom_PENTA)
+
+\endcode
+
 \n Other meshing algorithms:
 
 <ul>
index 623d04ff1e795f31624852172f06143260e9a94b..a5891f4ac1e83680811b80223ca31c1ada414c65 100644 (file)
@@ -190,6 +190,8 @@ dist_salomeres_DATA = \
        mesh_duplicate_nodes.png \
        mesh_duplicate_nodes_with_elem.png \
        mesh_bounding_box.png \
+       mesh_hypo_viscous_layers.png \
+       mesh_tree_hypo_viscous_layers.png \
        mesh_min_dist.png
 
 # VSR: little trick to avoid putting if SMESHCatalog.xml to the distribution archive
index 41c83c997d219654952a24f665582a8fa104c929..e698c71ea78f8fe7fb0e28acff4d6834c3ff765a 100644 (file)
                 icon-id="mesh_hypo_length.png"
                 dim="3"/>
 
+    <hypothesis type="ViscousLayers"
+                label-id="Viscous Layers"
+                icon-id="mesh_algo_quad.png"
+                auxiliary="true"
+                dim="3"/>
+
     <hypothesis type="NumberOfLayers2D"
                 label-id="Number of Layers"
                 icon-id="mesh_hypo_length.png"
                icon-id="mesh_algo_hexa.png"
                input="QUAD"
               need-geom="false"
+               opt-hypos="ViscousLayers"
                dim="3"/>
 
     <algorithm type="Projection_1D"
diff --git a/resources/mesh_hypo_viscous_layers.png b/resources/mesh_hypo_viscous_layers.png
new file mode 100644 (file)
index 0000000..9223c61
Binary files /dev/null and b/resources/mesh_hypo_viscous_layers.png differ
diff --git a/resources/mesh_tree_hypo_viscous_layers.png b/resources/mesh_tree_hypo_viscous_layers.png
new file mode 100644 (file)
index 0000000..694a4aa
Binary files /dev/null and b/resources/mesh_tree_hypo_viscous_layers.png differ