Version: 8.3.0
VISCOUS_3D Namespace Reference

Data Structures

struct  _MeshOfSolid
 SMESH_ProxyMesh computed by _ViscousBuilder for a SOLID. More...
 
class  _ShrinkShapeListener
 Listener of events of 3D sub-meshes computed with viscous layers. More...
 
class  _ViscousListener
 Listener of events of 3D sub-meshes computed with viscous layers. More...
 
struct  _Simplex
 Simplex (triangle or tetrahedron) based on 1 (tria) or 2 (tet) nodes of _LayerEdge and 2 nodes of the mesh surface beening smoothed. More...
 
struct  _Curvature
 Structure used to take into account surface curvature while smoothing. More...
 
struct  _LayerEdge
 Edge normal to surface, connecting a node on solid surface (_nodes[0]) and a node of the most internal layer (_nodes.back()) More...
 
struct  _LayerEdgeCmp
 
struct  _halfPlane
 A 2D half plane used by _LayerEdge::smoothNefPolygon() More...
 
struct  _2NearEdges
 Structure used to smooth a _LayerEdge based on an EDGE. More...
 
struct  AverageHyp
 Layers parameters got by averaging several hypotheses. More...
 
struct  _EdgesOnShape
 _LayerEdge's on a shape and other shape data More...
 
struct  _ConvexFace
 Convex FACE whose radius of curvature is less than the thickness of layers. More...
 
struct  _CollisionEdges
 Structure holding _LayerEdge's based on EDGEs that will collide at inflation up to the full thickness. More...
 
struct  _SolidData
 Data of a SOLID. More...
 
struct  _OffsetPlane
 Offset plane used in getNormalByOffset() More...
 
struct  _CentralCurveOnEdge
 Container of centers of curvature at nodes on an EDGE bounding _ConvexFace. More...
 
struct  _SmoothNode
 Data of node on a shrinked FACE. More...
 
class  _ViscousBuilder
 Builder of viscous layers. More...
 
class  _Shrinker1D
 Shrinker of nodes on the EDGE. More...
 
struct  _Smoother1D
 Smoother of _LayerEdge's on EDGE. More...
 
struct  _TmpMeshFace
 Class of temporary mesh face. More...
 
struct  _TmpMeshFaceOnEdge
 Class of temporary mesh face storing _LayerEdge it's based on. More...
 
struct  _NodeCoordHelper
 Retriever of node coordinates either directly or from a surface by node UV. More...
 
struct  PyDump
 

Typedefs

typedef int TGeomID
 
typedef map< const
SMDS_MeshNode *, _LayerEdge
*, TIDCompare
TNode2Edge
 

Enumerations

enum  UIndex { U_TGT = 1, U_SRC, LEN_TGT }
 

Functions

bool needSmoothing (double cosin, double tgtThick, double elemSize)
 
double getSmoothingThickness (double cosin, double elemSize)
 
void ToClearSubWithMain (SMESH_subMesh *sub, const TopoDS_Shape &main)
 sets a sub-mesh event listener to clear sub-meshes of sub-shapes of the main shape when sub-mesh of the main shape is cleared, for example to clear sub-meshes of FACEs when sub-mesh of a SOLID is cleared More...
 
bool isLessAngle (const gp_Vec &v1, const gp_Vec &v2, const double cos)
 Check angle between vectors. More...
 
gp_XYZ getEdgeDir (const TopoDS_Edge &E, const TopoDS_Vertex &fromV)
 
gp_XYZ getEdgeDir (const TopoDS_Edge &E, const SMDS_MeshNode *atNode, SMESH_MesherHelper &helper)
 
gp_XYZ getFaceDir (const TopoDS_Face &F, const TopoDS_Vertex &fromV, const SMDS_MeshNode *node, SMESH_MesherHelper &helper, bool &ok, double *cosin=0)
 
gp_XYZ getFaceDir (const TopoDS_Face &F, const TopoDS_Edge &fromE, const SMDS_MeshNode *node, SMESH_MesherHelper &helper, bool &ok)
 
bool getConcaveVertices (const TopoDS_Face &F, SMESH_MesherHelper &helper, set< TGeomID > *vertices=0)
 Finds concave VERTEXes of a FACE. More...
 
bool isConcave (const TopoDS_Face &F, SMESH_MesherHelper &helper, set< TGeomID > *vertices=0)
 Returns true if a FACE is bound by a concave EDGE. More...
 
bool getDistFromEdge (const SMDS_MeshElement *face, const SMDS_MeshNode *nodeOnEdge, double &faceSize)
 Computes mimimal distance of face in-FACE nodes from an EDGE. More...
 
bool getRovolutionAxis (const Adaptor3d_Surface &surface, gp_Dir &axis)
 Return direction of axis or revolution of a surface. More...
 

Variables

const double theMinSmoothCosin = 0.1
 
const double theSmoothThickToElemSizeRatio = 0.3
 
const double theMinSmoothTriaAngle = 30
 
const double theMinSmoothQuadAngle = 45
 
const double theThickToIntersection = 1.5
 

Typedef Documentation

Enumeration Type Documentation

Enumerator
U_TGT 
U_SRC 
LEN_TGT 

Function Documentation

bool VISCOUS_3D::getConcaveVertices ( const TopoDS_Face &  F,
SMESH_MesherHelper helper,
set< TGeomID > *  vertices = 0 
)
bool VISCOUS_3D::getDistFromEdge ( const SMDS_MeshElement face,
const SMDS_MeshNode nodeOnEdge,
double &  faceSize 
)

Computes mimimal distance of face in-FACE nodes from an EDGE.

Parameters
[in]face- the mesh face to treat
[in]nodeOnEdge- a node on the EDGE
[out]faceSize- the computed distance
Returns
bool - true if faceSize computed

References SMDS_MeshElement::GetID(), SMDS_MeshElement::GetNode(), SMDS_MeshElement::GetNodeIndex(), Min(), SMDS_MeshElement::NbCornerNodes(), and SMESH_MesherHelper::WrapIndex().

Referenced by VISCOUS_3D::_ViscousBuilder::findShapesToSmooth().

gp_XYZ VISCOUS_3D::getEdgeDir ( const TopoDS_Edge &  E,
const SMDS_MeshNode atNode,
SMESH_MesherHelper helper 
)
gp_XYZ VISCOUS_3D::getFaceDir ( const TopoDS_Face &  F,
const TopoDS_Vertex &  fromV,
const SMDS_MeshNode node,
SMESH_MesherHelper helper,
bool ok,
double *  cosin = 0 
)
bool VISCOUS_3D::getRovolutionAxis ( const Adaptor3d_Surface surface,
gp_Dir &  axis 
)

Return direction of axis or revolution of a surface.

References Handle().

Referenced by VISCOUS_3D::_ViscousBuilder::getFaceNormalAtSingularity().

double VISCOUS_3D::getSmoothingThickness ( double  cosin,
double  elemSize 
)
bool VISCOUS_3D::isConcave ( const TopoDS_Face &  F,
SMESH_MesherHelper helper,
set< TGeomID > *  vertices = 0 
)

Returns true if a FACE is bound by a concave EDGE.

References Edge, getConcaveVertices(), and SMESH_Algo::isDegenerated().

Referenced by VISCOUS_3D::_SolidData::PrepareEdgesToSmoothOnFace(), and VISCOUS_3D::_ViscousBuilder::shrink().

bool VISCOUS_3D::isLessAngle ( const gp_Vec &  v1,
const gp_Vec &  v2,
const double  cos 
)
bool VISCOUS_3D::needSmoothing ( double  cosin,
double  tgtThick,
double  elemSize 
)
void VISCOUS_3D::ToClearSubWithMain ( SMESH_subMesh sub,
const TopoDS_Shape &  main 
)

sets a sub-mesh event listener to clear sub-meshes of sub-shapes of the main shape when sub-mesh of the main shape is cleared, for example to clear sub-meshes of FACEs when sub-mesh of a SOLID is cleared

References SMESH_subMesh::GetEventListenerData(), SMESH_subMesh::GetFather(), SMESH_subMeshEventListenerData::MakeData(), SMESH_subMeshEventListenerData::mySubMeshes, and SMESH_subMesh::SetEventListener().

Referenced by StdMeshers_ViscousLayers2D::RestoreListeners(), VISCOUS_2D::_ViscousBuilder2D::shrink(), and VISCOUS_3D::_ViscousBuilder::shrink().

Variable Documentation

const double VISCOUS_3D::theMinSmoothQuadAngle = 45
const double VISCOUS_3D::theMinSmoothTriaAngle = 30
const double VISCOUS_3D::theSmoothThickToElemSizeRatio = 0.3