VISCOUS_3D Namespace Reference

Classes

struct  _2NearEdges
 
struct  _CentralCurveOnEdge
 Container of centers of curvature at nodes on an EDGE bounding _ConvexFace. More...
 
struct  _ConvexFace
 Convex FACE whose radius of curvature is less than the thickness of layers. It is used to detect distortion of prisms based on a convex FACE and to update normals to enable further increasing the thickness. More...
 
struct  _Curvature
 
struct  _EdgesOnShape
 _LayerEdge's on a shape and other shape data More...
 
struct  _halfPlane
 
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  _MeshOfSolid
 SMESH_ProxyMesh computed by _ViscousBuilder for a SOLID. It is stored in a SMESH_subMesh of the SOLID as SMESH_subMeshEventListenerData. More...
 
struct  _NodeCoordHelper
 Retriever of node coordinates either directly or from a surface by node UV. More...
 
class  _Shrinker1D
 Shrinker of nodes on the EDGE. More...
 
class  _ShrinkShapeListener
 Listener of events of 3D sub-meshes computed with viscous layers. It is used to clear an inferior dim sub-meshes modified by 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. The class is used to check validity of face or volumes around a smoothed node; it stores only 2 nodes as the other nodes are stored by _LayerEdge. More...
 
struct  _SmoothNode
 Data of node on a shrinked FACE. More...
 
struct  _SolidData
 Data of a SOLID. More...
 
struct  _TmpMeshFace
 Class of temporary mesh face. We can't use SMDS_FaceOfNodes since it's impossible to set it's ID which is needed because SMESH_ElementSearcher internaly uses set of elements sorted by ID. More...
 
struct  _TmpMeshFaceOnEdge
 Class of temporary mesh face storing _LayerEdge it's based on. More...
 
class  _ViscousBuilder
 Builder of viscous layers. More...
 
class  _ViscousListener
 Listener of events of 3D sub-meshes computed with viscous layers. It is used to store data computed by _ViscousBuilder for a sub-mesh and to delete the data as soon as it has been used. More...
 
struct  AverageHyp
 Layers parameters got by averaging several hypotheses. More...
 
struct  PyDump
 

Typedefs

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

Enumerations

enum  UIndex { U_TGT = 1 , U_SRC , LEN_TGT }
 

Functions

bool getConcaveVertices (const TopoDS_Face &F, SMESH_MesherHelper &helper, set< TGeomID > *vertices=0)
 Finds concave VERTEXes of a FACE. 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...
 
gp_XYZ getEdgeDir (const TopoDS_Edge &E, const SMDS_MeshNode *atNode, SMESH_MesherHelper &helper)
 
gp_XYZ getEdgeDir (const TopoDS_Edge &E, const TopoDS_Vertex &fromV)
 
gp_XYZ getFaceDir (const TopoDS_Face &F, const TopoDS_Edge &fromE, const SMDS_MeshNode *node, SMESH_MesherHelper &helper, bool &ok)
 
gp_XYZ getFaceDir (const TopoDS_Face &F, const TopoDS_Vertex &fromV, const SMDS_MeshNode *node, SMESH_MesherHelper &helper, bool &ok, double *cosin=0)
 
bool getRovolutionAxis (const Adaptor3d_Surface &surface, gp_Dir &axis)
 Return direction of axis or revolution of a surface. 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 needSmoothing (double cosin, double tgtThick, 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...
 

Variables

const double theMinSmoothCosin = 0.1
 
const double theSmoothThickToElemSizeRatio = 0.3
 
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 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 SMESH_Hypothesis::GetDim(), getDistFromEdge(), SMDS_MeshElement::GetID(), SMESHDS_Hypothesis::GetID(), SMDS_MeshElement::GetNode(), and SMESH_MesherHelper::WrapIndex().

Referenced by getDistFromEdge().

◆ getEdgeDir() [1/2]

gp_XYZ VISCOUS_3D::getEdgeDir ( const TopoDS_Edge &  E,
const SMDS_MeshNode atNode,
SMESH_MesherHelper helper 
)

◆ getEdgeDir() [2/2]

gp_XYZ VISCOUS_3D::getEdgeDir ( const TopoDS_Edge &  E,
const TopoDS_Vertex &  fromV 
)

◆ 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,
double *  cosin = 0 
)

◆ getRovolutionAxis()

bool VISCOUS_3D::getRovolutionAxis ( const Adaptor3d_Surface surface,
gp_Dir &  axis 
)

Return direction of axis or revolution of a surface.

References getRovolutionAxis().

Referenced by getRovolutionAxis().

◆ 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 getConcaveVertices(), isConcave(), and SMESH_Algo::isDegenerated().

Referenced by isConcave(), and VISCOUS_3D::_SolidData::PrepareEdgesToSmoothOnFace().

◆ 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 DraftVecUtils::find(), SMESH_subMesh::GetEventListenerData(), SMESH_subMesh::GetFather(), SMESH_Mesh::GetSubMesh(), SMESH_subMeshEventListenerData::MakeData(), SMESH_subMeshEventListenerData::mySubMeshes, SMESH_subMesh::SetEventListener(), and ToClearSubWithMain().

Referenced by StdMeshers_ViscousLayers2D::RestoreListeners(), and ToClearSubWithMain().

Variable Documentation

◆ theMinSmoothCosin

const double VISCOUS_3D::theMinSmoothCosin = 0.1

◆ theSmoothThickToElemSizeRatio

const double VISCOUS_3D::theSmoothThickToElemSizeRatio = 0.3

Referenced by needSmoothing().

◆ theThickToIntersection

const double VISCOUS_3D::theThickToIntersection = 1.5