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
index 000000000..843ff5d09
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
index 000000000..9373a5e46
Binary files /dev/null and b/doc/salome/gui/SMESH/images/viscous_layers_mesh.png differ
diff --git a/doc/salome/gui/SMESH/input/about_hypo.doc b/doc/salome/gui/SMESH/input/about_hypo.doc
index 5f989ec3d..e1c9e401b 100644
--- a/doc/salome/gui/SMESH/input/about_hypo.doc
+++ b/doc/salome/gui/SMESH/input/about_hypo.doc
@@ -55,6 +55,7 @@ with other hypotheses:
Quadratic mesh
Quadrangle preference
Triangle preference
+Viscous layers
The choice of a hypothesis depends on:
diff --git a/doc/salome/gui/SMESH/input/additional_hypo.doc b/doc/salome/gui/SMESH/input/additional_hypo.doc
index 81eab0be8..67e10c35b 100644
--- a/doc/salome/gui/SMESH/input/additional_hypo.doc
+++ b/doc/salome/gui/SMESH/input/additional_hypo.doc
@@ -57,4 +57,34 @@ otherwise refinement area will contain some quadrangular elements.
This hypothesis is obsolete now. Use Quadrangle Parameters
hypothesis with type Triangle Preference set instead.
+\anchor viscous_layers_anchor
+Viscous Layers
+
+Viscous Layers 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
+
+
+- Name - allows to define the name of the hypothesis.
+- Total thicknes - gives total thickness of layers of prisms.
+- Number of layers - defines number of layers of prisms.
+- Stretch factor - defines factor of growth of height of
+prisms from the mesh boundary towards inside of mesh.
+- Faces without layers - 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.
+
+
+\image html viscous_layers_mesh.png A group containing viscous layer prisms.
+
+
See also a sample TUI script of a \ref tui_viscous_layers
+"Viscous layers construction".
+
+
*/
diff --git a/doc/salome/gui/SMESH/input/tui_defining_hypotheses.doc b/doc/salome/gui/SMESH/input/tui_defining_hypotheses.doc
index 1581e7c2f..4ced1731a 100644
--- a/doc/salome/gui/SMESH/input/tui_defining_hypotheses.doc
+++ b/doc/salome/gui/SMESH/input/tui_defining_hypotheses.doc
@@ -673,6 +673,51 @@ import2hyp.SetCopySourceMesh(True,True)
tgtMesh.Compute()
\endcode
+\anchor tui_viscous_layers
+Viscous layers construction
+
+\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:
diff --git a/resources/Makefile.am b/resources/Makefile.am
index 623d04ff1..a5891f4ac 100644
--- a/resources/Makefile.am
+++ b/resources/Makefile.am
@@ -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
diff --git a/resources/StdMeshers.xml b/resources/StdMeshers.xml
index 41c83c997..e698c71ea 100644
--- a/resources/StdMeshers.xml
+++ b/resources/StdMeshers.xml
@@ -159,6 +159,12 @@
icon-id="mesh_hypo_length.png"
dim="3"/>
+
+