Version: 8.3.0
Main Page
Related Pages
Packages
Data Structures
Files
File List
Globals
SALOME Mesh Module Developer
Use the SpherePadder SMESH Plugin
Todo List
Packages
Data Structures
Files
File List
idl
src
Controls
Driver
DriverCGNS
DriverDAT
DriverGMF
DriverMED
DriverSTL
DriverUNV
MEDWrapper
MEFISTO2
OBJECT
PluginUtils
SMDS
SMESH
SMESH_I
SMESH_SWIG_WITHIHM
SMESHClient
SMESHDS
SMESHFiltersSelection
SMESHGUI
SMESHUtils
StdMeshers
SMESH_StdMeshers.hxx
StdMeshers_Adaptive1D.cxx
StdMeshers_Adaptive1D.hxx
StdMeshers_Arithmetic1D.cxx
StdMeshers_Arithmetic1D.hxx
StdMeshers_AutomaticLength.cxx
StdMeshers_AutomaticLength.hxx
StdMeshers_Cartesian_3D.cxx
StdMeshers_Cartesian_3D.hxx
StdMeshers_CartesianParameters3D.cxx
StdMeshers_CartesianParameters3D.hxx
StdMeshers_CompositeHexa_3D.cxx
StdMeshers_CompositeHexa_3D.hxx
StdMeshers_CompositeSegment_1D.cxx
StdMeshers_CompositeSegment_1D.hxx
StdMeshers_Deflection1D.cxx
StdMeshers_Deflection1D.hxx
StdMeshers_Distribution.cxx
StdMeshers_Distribution.hxx
StdMeshers_FaceSide.cxx
StdMeshers_FaceSide.hxx
StdMeshers_FixedPoints1D.cxx
StdMeshers_FixedPoints1D.hxx
StdMeshers_Geometric1D.cxx
StdMeshers_Geometric1D.hxx
StdMeshers_Hexa_3D.cxx
StdMeshers_Hexa_3D.hxx
StdMeshers_HexaFromSkin_3D.cxx
StdMeshers_HexaFromSkin_3D.hxx
StdMeshers_Import_1D.cxx
StdMeshers_Import_1D.hxx
StdMeshers_Import_1D2D.cxx
StdMeshers_Import_1D2D.hxx
StdMeshers_ImportSource.cxx
StdMeshers_ImportSource.hxx
StdMeshers_LayerDistribution.cxx
StdMeshers_LayerDistribution.hxx
StdMeshers_LayerDistribution2D.cxx
StdMeshers_LayerDistribution2D.hxx
StdMeshers_LengthFromEdges.cxx
StdMeshers_LengthFromEdges.hxx
StdMeshers_LocalLength.cxx
StdMeshers_LocalLength.hxx
StdMeshers_MaxElementArea.cxx
StdMeshers_MaxElementArea.hxx
StdMeshers_MaxElementVolume.cxx
StdMeshers_MaxElementVolume.hxx
StdMeshers_MaxLength.cxx
StdMeshers_MaxLength.hxx
StdMeshers_MEFISTO_2D.cxx
StdMeshers_MEFISTO_2D.hxx
StdMeshers_NotConformAllowed.cxx
StdMeshers_NotConformAllowed.hxx
StdMeshers_NumberOfLayers.cxx
StdMeshers_NumberOfLayers.hxx
StdMeshers_NumberOfLayers2D.cxx
StdMeshers_NumberOfLayers2D.hxx
StdMeshers_NumberOfSegments.cxx
StdMeshers_NumberOfSegments.hxx
StdMeshers_Penta_3D.cxx
StdMeshers_Penta_3D.hxx
StdMeshers_PolygonPerFace_2D.cxx
StdMeshers_PolygonPerFace_2D.hxx
StdMeshers_Prism_3D.cxx
StdMeshers_Prism_3D.hxx
StdMeshers_Projection_1D.cxx
StdMeshers_Projection_1D.hxx
StdMeshers_Projection_1D2D.cxx
StdMeshers_Projection_1D2D.hxx
StdMeshers_Projection_2D.cxx
StdMeshers_Projection_2D.hxx
StdMeshers_Projection_3D.cxx
StdMeshers_Projection_3D.hxx
StdMeshers_ProjectionSource1D.cxx
StdMeshers_ProjectionSource1D.hxx
StdMeshers_ProjectionSource2D.cxx
StdMeshers_ProjectionSource2D.hxx
StdMeshers_ProjectionSource3D.cxx
StdMeshers_ProjectionSource3D.hxx
StdMeshers_ProjectionUtils.cxx
StdMeshers_ProjectionUtils.hxx
StdMeshers_Propagation.cxx
StdMeshers_Propagation.hxx
StdMeshers_QuadFromMedialAxis_1D2D.cxx
StdMeshers_QuadFromMedialAxis_1D2D.hxx
StdMeshers_Quadrangle_2D.cxx
StdMeshers_Quadrangle_2D.hxx
StdMeshers_QuadrangleParams.cxx
StdMeshers_QuadrangleParams.hxx
StdMeshers_QuadranglePreference.cxx
StdMeshers_QuadranglePreference.hxx
StdMeshers_QuadraticMesh.cxx
StdMeshers_QuadraticMesh.hxx
StdMeshers_QuadToTriaAdaptor.cxx
StdMeshers_QuadToTriaAdaptor.hxx
StdMeshers_RadialPrism_3D.cxx
StdMeshers_RadialPrism_3D.hxx
StdMeshers_RadialQuadrangle_1D2D.cxx
StdMeshers_RadialQuadrangle_1D2D.hxx
StdMeshers_Regular_1D.cxx
StdMeshers_Regular_1D.hxx
StdMeshers_Reversible1D.cxx
StdMeshers_Reversible1D.hxx
StdMeshers_SegmentAroundVertex_0D.cxx
StdMeshers_SegmentAroundVertex_0D.hxx
StdMeshers_SegmentLengthAroundVertex.cxx
StdMeshers_SegmentLengthAroundVertex.hxx
StdMeshers_StartEndLength.cxx
StdMeshers_StartEndLength.hxx
StdMeshers_UseExisting_1D2D.cxx
StdMeshers_UseExisting_1D2D.hxx
StdMeshers_ViscousLayers.cxx
StdMeshers_ViscousLayers.hxx
StdMeshers_ViscousLayers2D.cxx
StdMeshers_ViscousLayers2D.hxx
StdMeshers_I
StdMeshersGUI
Tools
Globals
StdMeshers_ViscousLayers.hxx
Go to the documentation of this file.
1
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
2
//
3
// This library is free software; you can redistribute it and/or
4
// modify it under the terms of the GNU Lesser General Public
5
// License as published by the Free Software Foundation; either
6
// version 2.1 of the License, or (at your option) any later version.
7
//
8
// This library is distributed in the hope that it will be useful,
9
// but WITHOUT ANY WARRANTY; without even the implied warranty of
10
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
// Lesser General Public License for more details.
12
//
13
// You should have received a copy of the GNU Lesser General Public
14
// License along with this library; if not, write to the Free Software
15
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
//
17
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18
//
19
20
// File : StdMeshers_ViscousLayers.hxx
21
// Created : Wed Dec 1 15:15:34 2010
22
// Author : Edward AGAPOV (eap)
23
24
#ifndef __StdMeshers_ViscousLayers_HXX__
25
#define __StdMeshers_ViscousLayers_HXX__
26
27
#include "
SMESH_StdMeshers.hxx
"
28
29
#include "
SMESH_Hypothesis.hxx
"
30
#include "
SMESH_ProxyMesh.hxx
"
31
#include "
SMESH_ComputeError.hxx
"
32
33
#include <vector>
34
38
class
STDMESHERS_EXPORT
StdMeshers_ViscousLayers
:
public
SMESH_Hypothesis
39
{
40
public
:
41
StdMeshers_ViscousLayers
(
int
hypId,
int
studyId,
SMESH_Gen
* gen);
42
43
// Set boundary shapes (faces in 3D, edges in 2D) either to exclude from
44
// treatment or to make the Viscous Layers on
45
void
SetBndShapes(
const
std::vector<int>& shapeIds,
bool
toIgnore);
46
std::vector<int>
GetBndShapes
()
const
{
return
_shapeIds; }
47
bool
IsToIgnoreShapes
()
const
{
return
_isToIgnoreShapes; }
48
49
// Set total thickness of layers of prisms
50
void
SetTotalThickness(
double
thickness);
51
double
GetTotalThickness
()
const
{
return
_thickness; }
52
53
// Set number of layers of prisms
54
void
SetNumberLayers(
int
nb);
55
int
GetNumberLayers
()
const
{
return
_nbLayers; }
56
57
// Set factor (>1.0) of growth of layer thickness towards inside of mesh
58
void
SetStretchFactor(
double
factor);
59
double
GetStretchFactor
()
const
{
return
_stretchFactor; }
60
61
// Method of computing node translation
62
enum
ExtrusionMethod
{
63
// node is translated along normal to a surface with possible further smoothing
64
SURF_OFFSET_SMOOTH
,
65
// node is translated along the average normal of surrounding faces till
66
// intersection with a neighbor face translated along its own normal
67
// by the layers thickness
68
FACE_OFFSET
,
69
// node is translated along the average normal of surrounding faces
70
// by the layers thickness
71
NODE_OFFSET
72
};
73
void
SetMethod( ExtrusionMethod how );
74
ExtrusionMethod
GetMethod
()
const
{
return
_method; }
75
76
// Computes temporary 2D mesh to be used by 3D algorithm.
77
// Return SMESH_ProxyMesh for each SOLID in theShape
78
SMESH_ProxyMesh::Ptr
Compute(
SMESH_Mesh
& theMesh,
79
const
TopoDS_Shape& theShape,
80
const
bool
toMakeN2NMap=
false
)
const
;
81
82
// Checks compatibility of assigned StdMeshers_ViscousLayers hypotheses
83
static
SMESH_ComputeErrorPtr
84
CheckHypothesis(
SMESH_Mesh
& aMesh,
85
const
TopoDS_Shape& aShape,
86
SMESH_Hypothesis::Hypothesis_Status
& aStatus);
87
88
// Checks if viscous layers should be constructed on a shape
89
bool
IsShapeWithLayers(
int
shapeIndex)
const
;
90
91
virtual
std::ostream &
SaveTo
(std::ostream & save);
92
virtual
std::istream &
LoadFrom
(std::istream & load);
93
100
virtual
bool
SetParametersByMesh
(
const
SMESH_Mesh
* theMesh,
const
TopoDS_Shape& theShape);
101
106
virtual
bool
SetParametersByDefaults
(
const
TDefaults
& dflts,
const
SMESH_Mesh
* theMesh=0)
107
{
return
false
; }
108
109
static
const
char
*
GetHypType
() {
return
"ViscousLayers"
; }
110
111
private
:
112
113
std::vector<int>
_shapeIds
;
114
bool
_isToIgnoreShapes
;
115
int
_nbLayers
;
116
double
_thickness
;
117
double
_stretchFactor
;
118
ExtrusionMethod
_method
;
119
};
120
121
class
SMESH_subMesh
;
122
namespace
VISCOUS_3D
123
{
124
// sets a sub-mesh event listener to clear sub-meshes of sub-shapes of
125
// the main shape when sub-mesh of the main shape is cleared,
126
// for example to clear sub-meshes of FACEs when sub-mesh of a SOLID
127
// is cleared
128
void
ToClearSubWithMain
(
SMESH_subMesh
* sub,
const
TopoDS_Shape&
main
);
129
}
130
131
#endif
src
StdMeshers
StdMeshers_ViscousLayers.hxx
Copyright © 2007-2017 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS