Version: 9.12.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...
 
class  _Mapper2D
 Compute positions of nodes of 2D structured mesh using TFI. More...
 
struct  _TmpMeshFace
 Class of temporary mesh face. More...
 
struct  _TmpMeshFaceOnEdge
 Class of temporary mesh quadrangle face storing _LayerEdge it's based on. More...
 
struct  _NodeCoordHelper
 Retriever of node coordinates either directly or from a surface by node UV. More...
 
class  _Factory
 
struct  PyDump
 
struct  PeriodicFaces
 Pair of periodic FACEs. More...
 
struct  ShrinkFace
 Shrink FACE data used to find periodic FACEs. More...
 
struct  Periodicity
 Periodic FACEs. More...
 

Typedefs

typedef int TGeomID
 
typedef map< const SMDS_MeshNode *, _LayerEdge *, TIDCompareTNode2Edge
 

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, const double h0, bool *isRegularEdge=nullptr)
 
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)
 
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 minimal 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.6
 
const double theMinSmoothTriaAngle = 30
 
const double theMinSmoothQuadAngle = 45
 
const double theThickToIntersection = 1.5
 

Typedef Documentation

◆ TGeomID

typedef int VISCOUS_3D::TGeomID

◆ TNode2Edge

Enumeration Type Documentation

◆ UIndex

Enumerator
U_TGT 
U_SRC 
LEN_TGT 

Function Documentation

◆ getConcaveVertices()

bool VISCOUS_3D::getConcaveVertices ( const TopoDS_Face &  F,
SMESH_MesherHelper helper,
set< TGeomID > *  vertices = 0 
)

◆ getDistFromEdge()

bool VISCOUS_3D::getDistFromEdge ( const SMDS_MeshElement face,
const SMDS_MeshNode nodeOnEdge,
double &  faceSize 
)

Computes minimal 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 SMESH_Hypothesis::GetDim(), SMDS_MeshElement::GetID(), SMDS_MeshElement::GetNode(), SMDS_MeshElement::GetNodeIndex(), SMDS_MeshNode::GetPosition(), SMDS_MeshElement::NbCornerNodes(), and SMESH_MesherHelper::WrapIndex().

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

◆ getEdgeDir() [1/2]

◆ getEdgeDir() [2/2]

gp_XYZ VISCOUS_3D::getEdgeDir ( const TopoDS_Edge &  E,
const TopoDS_Vertex &  fromV,
const double  h0,
bool *  isRegularEdge = nullptr 
)

◆ getFaceDir() [1/2]

◆ getFaceDir() [2/2]

gp_XYZ VISCOUS_3D::getFaceDir ( const TopoDS_Face &  F,
const TopoDS_Vertex &  fromV,
const SMDS_MeshNode node,
SMESH_MesherHelper helper,
bool &  ok 
)

◆ getRovolutionAxis()

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().

◆ getSmoothingThickness()

double VISCOUS_3D::getSmoothingThickness ( double  cosin,
double  elemSize 
)

◆ isConcave()

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().

◆ isLessAngle()

bool VISCOUS_3D::isLessAngle ( const gp_Vec &  v1,
const gp_Vec &  v2,
const double  cos 
)

◆ needSmoothing()

bool VISCOUS_3D::needSmoothing ( double  cosin,
double  tgtThick,
double  elemSize 
)

◆ ToClearSubWithMain()

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_Mesh::GetSubMesh(), main(), 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

◆ theMinSmoothCosin

◆ theMinSmoothQuadAngle

const double VISCOUS_3D::theMinSmoothQuadAngle = 45

◆ theMinSmoothTriaAngle

const double VISCOUS_3D::theMinSmoothTriaAngle = 30

◆ theSmoothThickToElemSizeRatio

const double VISCOUS_3D::theSmoothThickToElemSizeRatio = 0.6

◆ theThickToIntersection