Version: 8.3.0
StdMeshers_Hexa_3D Class Reference

#include <StdMeshers_Hexa_3D.hxx>

Inheritance diagram for StdMeshers_Hexa_3D:

Public Types

enum  EMeshError { MEr_OK = 0, MEr_HOLES, MEr_BAD_ORI, MEr_EMPTY }
 
enum  Hypothesis_Status {
  HYP_OK = 0, HYP_MISSING, HYP_CONCURENT, HYP_BAD_PARAMETER,
  HYP_HIDDEN_ALGO, HYP_HIDING_ALGO, HYP_UNKNOWN_FATAL, HYP_INCOMPATIBLE,
  HYP_NOTCONFORM, HYP_ALREADY_EXIST, HYP_BAD_DIM, HYP_BAD_SUBSHAPE,
  HYP_BAD_GEOMETRY, HYP_NEED_SHAPE, HYP_INCOMPAT_HYPS
}
 
enum  hypothesis_type {
  PARAM_ALGO, ALGO_0D, ALGO_1D, ALGO_2D,
  ALGO_3D
}
 

Public Member Functions

 StdMeshers_Hexa_3D (int hypId, int studyId, SMESH_Gen *gen)
 Constructor. More...
 
virtual ~StdMeshers_Hexa_3D ()
 Destructor. More...
 
virtual bool CheckHypothesis (SMESH_Mesh &aMesh, const TopoDS_Shape &aShape, SMESH_Hypothesis::Hypothesis_Status &aStatus)
 Retrieves defined hypotheses. More...
 
virtual bool Compute (SMESH_Mesh &aMesh, const TopoDS_Shape &aShape)
 Generates hexahedron mesh on hexaedron like form using algorithm from "Application de l'interpolation transfinie � la cr�ation de maillages C0 ou G1 continus sur des triangles, quadrangles, tetraedres, pentaedres et hexaedres d�form�s. More...
 
virtual bool Compute (SMESH_Mesh &aMesh, SMESH_MesherHelper *aHelper)
 Computes hexahedral mesh from 2D mesh of block. More...
 
virtual bool Evaluate (SMESH_Mesh &aMesh, const TopoDS_Shape &aShape, MapShapeNbElems &aResMap)
 Evaluate. More...
 
const FeaturesGetFeatures () const
 
virtual std::ostream & SaveTo (std::ostream &save)
 Saves nothing in a stream. More...
 
virtual std::istream & LoadFrom (std::istream &load)
 Loads nothing from a stream. More...
 
const std::vector< std::string > & GetCompatibleHypothesis ()
 Returns all types of compatible hypotheses. More...
 
virtual void CancelCompute ()
 Sets _computeCanceled to true. More...
 
virtual double GetProgress () const
 If possible, returns progress of computation [0.,1. More...
 
virtual const std::list< const
SMESHDS_Hypothesis * > & 
GetUsedHypothesis (SMESH_Mesh &aMesh, const TopoDS_Shape &aShape, const bool ignoreAuxiliary=true) const
 Returns a list of compatible hypotheses used to mesh a shape. More...
 
const std::list< const
SMESHDS_Hypothesis * > & 
GetAppliedHypothesis (SMESH_Mesh &aMesh, const TopoDS_Shape &aShape, const bool ignoreAuxiliary=true) const
 Returns a list of compatible hypotheses assigned to a shape in a mesh. More...
 
const SMESH_HypoFilterGetCompatibleHypoFilter (const bool ignoreAuxiliary) const
 Returns the filter recognizing only compatible hypotheses. More...
 
virtual bool SetParametersByMesh (const SMESH_Mesh *theMesh, const TopoDS_Shape &theShape)
 Just return false as the algorithm does not hold parameters values. More...
 
virtual bool SetParametersByDefaults (const TDefaults &dflts, const SMESH_Mesh *theMesh=0)
 Initialize my parameter values by default parameters. More...
 
SMESH_ComputeErrorPtr GetComputeError () const
 return compute error More...
 
void InitComputeError ()
 initialize compute error etc. More...
 
double GetProgressByTic () const
 Return compute progress by nb of calls of this method. More...
 
std::vector< SMESH_subMesh * > & SubMeshesToCompute ()
 Return a vector of sub-meshes to Compute() More...
 
bool OnlyUnaryInput () const
 
bool NeedDiscreteBoundary () const
 
bool NeedShape () const
 
bool SupportSubmeshes () const
 
bool NeedLowerHyps (int dim) const
 
virtual void SetEventListener (SMESH_subMesh *subMesh)
 Sets event listener to submeshes if necessary. More...
 
virtual void SubmeshRestored (SMESH_subMesh *subMesh)
 Allow algo to do something after persistent restoration. More...
 
int NumberOfPoints (SMESH_Mesh &aMesh, const TopoDS_Wire &W)
 
virtual int GetDim () const
 
int GetStudyId () const
 
SMESH_GenGetGen () const
 
virtual int GetShapeType () const
 
virtual const char * GetLibName () const
 
virtual void NotifySubMeshesHypothesisModification ()
 
void SetLibName (const char *theLibName)
 
virtual bool DataDependOnParams () const
 The returned value is used by NotifySubMeshesHypothesisModification() to decide to call subMesh->AlgoStateEngine( MODIF_HYP, hyp ) or not if subMesh is ready to be computed (algo+hyp==OK) but not yet computed. More...
 
virtual bool IsAuxiliary () const
 Return true if me is an auxiliary hypothesis. More...
 
SMESH_MeshGetMeshByPersistentID (int id)
 Find a mesh with given persistent ID. More...
 
const char * GetName () const
 
int GetID () const
 
int GetType () const
 
bool IsSameName (const SMESHDS_Hypothesis &other) const
 Compare types of hypotheses. More...
 
virtual bool operator== (const SMESHDS_Hypothesis &other) const
 Equality. More...
 
bool operator!= (const SMESHDS_Hypothesis &other) const
 

Static Public Member Functions

static bool IsApplicable (const TopoDS_Shape &aShape, bool toCheckAll)
 Return true if the algorithm can mesh this shape. More...
 
static const FeaturesGetFeatures (const std::string &algoType)
 Returns a structure describing algorithm features. More...
 
static bool GetNodeParamOnEdge (const SMESHDS_Mesh *theMesh, const TopoDS_Edge &theEdge, std::vector< double > &theParams)
 Fill vector of node parameters on geometrical edge, including vertex nodes. More...
 
static bool GetSortedNodesOnEdge (const SMESHDS_Mesh *theMesh, const TopoDS_Edge &theEdge, const bool ignoreMediumNodes, std::map< double, const SMDS_MeshNode * > &theNodes, const SMDSAbs_ElementType typeToCheck=SMDSAbs_All)
 Fill map of node parameter on geometrical edge to node it-self. More...
 
static double EdgeLength (const TopoDS_Edge &E)
 Compute length of an edge. More...
 
static GeomAbs_Shape Continuity (const TopoDS_Edge &E1, const TopoDS_Edge &E2)
 Return continuity of two edges. More...
 
static bool IsContinuous (const TopoDS_Edge &E1, const TopoDS_Edge &E2)
 Return true if an edge can be considered as a continuation of another. More...
 
static bool IsStraight (const TopoDS_Edge &E, const bool degenResult=false)
 Return true if an edge can be considered straight. More...
 
static bool isDegenerated (const TopoDS_Edge &E, const bool checkLength=false)
 Return true if an edge has no 3D curve. More...
 
static const SMDS_MeshNodeVertexNode (const TopoDS_Vertex &V, const SMESHDS_Mesh *meshDS)
 Return the node built on a vertex. More...
 
static const SMDS_MeshNodeVertexNode (const TopoDS_Vertex &V, const SMESH_Mesh *mesh)
 Return the node built on a vertex. More...
 
static const SMDS_MeshNodeVertexNode (const TopoDS_Vertex &V, const SMESHDS_SubMesh *edgeSM, const SMESH_Mesh *mesh, const bool checkV=true)
 Return the node built on a vertex. More...
 
static EMeshError GetMeshError (SMESH_subMesh *subMesh)
 Finds topological errors of a sub-mesh. More...
 
static bool IsStatusFatal (Hypothesis_Status theStatus)
 

Protected Member Functions

bool error (int error, const SMESH_Comment &comment="")
 store error and comment and then return ( error == COMPERR_OK ) More...
 
bool error (const SMESH_Comment &comment="")
 store COMPERR_ALGO_FAILED error and comment and then return false More...
 
bool error (SMESH_ComputeErrorPtr error)
 store error and return error->IsOK() More...
 
void addBadInputElement (const SMDS_MeshElement *elem)
 store a bad input element preventing computation, which may be a temporary one i.e. More...
 
void addBadInputElements (const SMESHDS_SubMesh *sm, const bool addNodes=false)
 

Protected Attributes

const StdMeshers_ViscousLayers_viscousLayersHyp
 
const SMESH_HypoFilter_compatibleAllHypFilter
 
const SMESH_HypoFilter_compatibleNoAuxHypFilter
 
std::vector< std::string > _compatibleHypothesis
 
std::list< const
SMESHDS_Hypothesis * > 
_appliedHypList
 
std::list< const
SMESHDS_Hypothesis * > 
_usedHypList
 
bool _onlyUnaryInput
 
bool _requireDiscreteBoundary
 
bool _requireShape
 
bool _supportSubmeshes
 
bool _neededLowerHyps [4]
 
bool _quadraticMesh
 
int _error
 SMESH_ComputeErrorName or anything algo specific. More...
 
std::string _comment
 any text explaining what is wrong in Compute() More...
 
std::list< const
SMDS_MeshElement * > 
_badInputElements
 to explain COMPERR_BAD_INPUT_MESH More...
 
volatile bool _computeCanceled
 is set to True while computing to stop it More...
 
double _progress
 
int _progressTic
 
std::vector< SMESH_subMesh * > _smToCompute
 
SMESH_Gen_gen
 
int _studyId
 
int _shapeType
 
int _param_algo_dim
 
std::string _name
 
int _hypId
 
hypothesis_type _type
 

Member Enumeration Documentation

enum SMESH_Algo::EMeshError
inherited
Enumerator
MEr_OK 
MEr_HOLES 
MEr_BAD_ORI 
MEr_EMPTY 
Enumerator
HYP_OK 
HYP_MISSING 
HYP_CONCURENT 
HYP_BAD_PARAMETER 
HYP_HIDDEN_ALGO 
HYP_HIDING_ALGO 
HYP_UNKNOWN_FATAL 
HYP_INCOMPATIBLE 
HYP_NOTCONFORM 
HYP_ALREADY_EXIST 
HYP_BAD_DIM 
HYP_BAD_SUBSHAPE 
HYP_BAD_GEOMETRY 
HYP_NEED_SHAPE 
HYP_INCOMPAT_HYPS 
Enumerator
PARAM_ALGO 
ALGO_0D 
ALGO_1D 
ALGO_2D 
ALGO_3D 

Constructor & Destructor Documentation

StdMeshers_Hexa_3D::StdMeshers_Hexa_3D ( int  hypId,
int  studyId,
SMESH_Gen gen 
)
StdMeshers_Hexa_3D::~StdMeshers_Hexa_3D ( )
virtual

Destructor.

Member Function Documentation

void SMESH_Algo::addBadInputElement ( const SMDS_MeshElement elem)
protectedinherited

store a bad input element preventing computation, which may be a temporary one i.e.

not residing the mesh, then it will be deleted by InitComputeError()

Referenced by StdMeshers_Projection_2D::Compute().

void SMESH_Algo::addBadInputElements ( const SMESHDS_SubMesh sm,
const bool  addNodes = false 
)
protectedinherited
void SMESH_Algo::CancelCompute ( )
virtualinherited

Sets _computeCanceled to true.

It's usage depends on implementation of a particular mesher.

Reimplemented in StdMeshers_Regular_1D.

References COMPERR_CANCELED.

Referenced by StdMeshers_Regular_1D::CancelCompute().

bool StdMeshers_Hexa_3D::CheckHypothesis ( SMESH_Mesh aMesh,
const TopoDS_Shape &  aShape,
SMESH_Hypothesis::Hypothesis_Status aStatus 
)
virtual

Retrieves defined hypotheses.

Implements SMESH_Algo.

References SMESH::HYP_INCOMPATIBLE, SMESH_Hypothesis::HYP_OK, and SMESH::HYP_OK.

bool StdMeshers_Hexa_3D::Compute ( SMESH_Mesh aMesh,
const TopoDS_Shape &  aShape 
)
virtual

Generates hexahedron mesh on hexaedron like form using algorithm from "Application de l'interpolation transfinie � la cr�ation de maillages C0 ou G1 continus sur des triangles, quadrangles, tetraedres, pentaedres et hexaedres d�form�s.

" Alain PERONNET - 8 janvier 1999

Implements SMESH_Algo.

References SMESH_MesherHelper::AddNode(), SMESH_MesherHelper::AddVolume(), B_BACK, B_BOTTOM, B_FRONT, B_LEFT, B_RIGHT, B_TOP, COMPERR_BAD_SHAPE, ComputePentahedralMesh(), COO_X, COO_Y, COO_Z, SMDS_MeshElement::GetNode(), SMESH_MesherHelper::GetNodeU(), SMESH_Block::ID_E00z, SMESH_Block::ID_E01z, SMESH_Block::ID_E0y0, SMESH_Block::ID_E0y1, SMESH_Block::ID_E10z, SMESH_Block::ID_E11z, SMESH_Block::ID_E1y0, SMESH_Block::ID_E1y1, SMESH_Block::ID_Ex00, SMESH_Block::ID_Ex01, SMESH_Block::ID_Ex10, SMESH_Block::ID_Ex11, SMESH_Block::ID_F0yz, SMESH_Block::ID_F1yz, SMESH_Block::ID_Fx0z, SMESH_Block::ID_Fx1z, SMESH_Block::ID_Fxy0, SMESH_Block::ID_Fxy1, SMESH_Block::ID_Shell, SMESH_Block::ID_V000, SMESH_Block::ID_V001, SMESH_Block::ID_V010, SMESH_Block::ID_V011, SMESH_Block::ID_V100, SMESH_Block::ID_V101, SMESH_Block::ID_V110, SMESH_Block::ID_V111, SMESH_MesherHelper::IsQuadraticSubMesh(), SMESH_MesherHelper::IsSameElemGeometry(), SMESH_MesherHelper::LoadNodeColumns(), SMESHDS_Mesh::MeshElements(), SMESHDS_SubMesh::NbElements(), Q_BOTTOM, Q_LEFT, Q_RIGHT, Q_TOP, SMESH_MesherHelper::SetElementsOnShape(), SMESH_MesherHelper::SetSubShape(), SMESH_Block::ShellPoint(), SMDSGeom_QUADRANGLE, and SMESH_MesherHelper::ToFixNodeParameters().

bool StdMeshers_Hexa_3D::Compute ( SMESH_Mesh aMesh,
SMESH_MesherHelper aHelper 
)
virtual

Computes hexahedral mesh from 2D mesh of block.

Reimplemented from SMESH_Algo.

References StdMeshers_HexaFromSkin_3D::Compute(), SMESH_Algo::GetComputeError(), SMESH_Hypothesis::GetGen(), and SMESH_Algo::InitComputeError().

GeomAbs_Shape SMESH_Algo::Continuity ( const TopoDS_Edge &  theE1,
const TopoDS_Edge &  theE2 
)
staticinherited

Return continuity of two edges.

Parameters
E1- the 1st edge
E2- the 2nd edge
Return values
GeomAbs_Shape- regularity at the junction between E1 and E2

References OCC_CATCH_SIGNALS.

virtual bool SMESH_Hypothesis::DataDependOnParams ( ) const
virtualinherited

The returned value is used by NotifySubMeshesHypothesisModification() to decide to call subMesh->AlgoStateEngine( MODIF_HYP, hyp ) or not if subMesh is ready to be computed (algo+hyp==OK) but not yet computed.

True result is reasonable for example if EventListeners depend on parameters of hypothesis.

Reimplemented in StdMeshers_ImportSource1D.

bool SMESH_Algo::error ( int  error,
const SMESH_Comment comment = "" 
)
protectedinherited
bool SMESH_Algo::error ( const SMESH_Comment comment = "")
protectedinherited

store COMPERR_ALGO_FAILED error and comment and then return false

References COMPERR_ALGO_FAILED, and SMESH_Algo::error().

Referenced by SMESH_Algo::error().

bool SMESH_Algo::error ( SMESH_ComputeErrorPtr  error)
protectedinherited

store error and return error->IsOK()

store error and return ( error == COMPERR_OK )

const list< const SMESHDS_Hypothesis * > & SMESH_Algo::GetAppliedHypothesis ( SMESH_Mesh aMesh,
const TopoDS_Shape &  aShape,
const bool  ignoreAuxiliary = true 
) const
inherited

Returns a list of compatible hypotheses assigned to a shape in a mesh.

List the relevant hypothesis associated to the shape.

Parameters
aMesh- the mesh
aShape- the shape
ignoreAuxiliary- do not include auxiliary hypotheses in the list
Return values
conststd::list <const SMESHDS_Hypothesis*> - hypotheses list

List the relevant hypothesis associated to the shape. Relevant hypothesis have a name (type) listed in the algorithm. Hypothesis associated to father shape -are not- taken into account (see GetUsedHypothesis)

Relevant hypothesis have a name (type) listed in the algorithm. Hypothesis associated to father shape -are not- taken into account (see GetUsedHypothesis)

References me.

const SMESH_HypoFilter * SMESH_Algo::GetCompatibleHypoFilter ( const bool  ignoreAuxiliary) const
inherited

Returns the filter recognizing only compatible hypotheses.

Parameters
ignoreAuxiliary- make filter ignore compatible auxiliary hypotheses
Return values
SMESH_HypoFilter*- the filter that can be NULL
Parameters
ignoreAuxiliary- make filter ignore auxiliary hypotheses
Return values
SMESH_HypoFilter*- the filter that can be NULL

References SMESH_HypoFilter::AndNot(), SMESH_HypoFilter::HasName(), SMESH_HypoFilter::Init(), SMESH_HypoFilter::IsAuxiliary(), me, and SMESH_HypoFilter::Or().

const std::vector< std::string >& SMESH_Algo::GetCompatibleHypothesis ( )
inherited

Returns all types of compatible hypotheses.

SMESH_ComputeErrorPtr SMESH_Algo::GetComputeError ( ) const
inherited

return compute error

References SMESH_ComputeError::New().

Referenced by Compute().

int SMESH_Hypothesis::GetDim ( ) const
virtualinherited
const SMESH_Algo::Features & SMESH_Algo::GetFeatures ( const std::string &  algoType)
staticinherited
const Features& SMESH_Algo::GetFeatures ( ) const
inherited
SMESH_Gen* SMESH_Hypothesis::GetGen ( ) const
inherited

Referenced by Compute().

int SMESHDS_Hypothesis::GetID ( ) const
inherited
virtual const char* SMESH_Hypothesis::GetLibName ( ) const
virtualinherited
SMESH_Mesh * SMESH_Hypothesis::GetMeshByPersistentID ( int  id)
inherited

Find a mesh with given persistent ID.

References studyContextStruct::mapMesh.

bool SMESH_Algo::GetNodeParamOnEdge ( const SMESHDS_Mesh theMesh,
const TopoDS_Edge &  theEdge,
std::vector< double > &  theParams 
)
staticinherited

Fill vector of node parameters on geometrical edge, including vertex nodes.

Parameters
theMesh- The mesh containing nodes
theEdge- The geometrical edge of interest
theParams- The resulting vector of sorted node parameters
Return values
bool- false if not all parameters are OK
Warning
Nodes moved to other geometry by MergeNodes() are NOT returned.
Parameters
theMesh- The mesh containing nodes
theEdge- The geometrical edge of interest
theParams- The resulting vector of sorted node parameters
Return values
bool- false if not all parameters are OK

References SMESHDS_SubMesh::GetElements(), SMESHDS_SubMesh::GetNodes(), SMDS_MeshNode::GetPosition(), SMDS_Position::GetTypeOfPosition(), SMDS_EdgePosition::GetUParameter(), SMESHDS_Mesh::MeshElements(), second, and SMDS_TOP_EDGE.

Referenced by StdMeshers_Projection_1D::Compute(), StdMeshers_Projection_1D::Evaluate(), StdMeshers_Geometric1D::SetParametersByMesh(), StdMeshers_Deflection1D::SetParametersByMesh(), StdMeshers_MaxLength::SetParametersByMesh(), StdMeshers_LocalLength::SetParametersByMesh(), StdMeshers_StartEndLength::SetParametersByMesh(), and StdMeshers_Arithmetic1D::SetParametersByMesh().

double SMESH_Algo::GetProgress ( ) const
virtualinherited

If possible, returns progress of computation [0.,1.

]

double SMESH_Algo::GetProgressByTic ( ) const
inherited

Return compute progress by nb of calls of this method.

int SMESH_Hypothesis::GetShapeType ( ) const
virtualinherited
bool SMESH_Algo::GetSortedNodesOnEdge ( const SMESHDS_Mesh theMesh,
const TopoDS_Edge &  theEdge,
const bool  ignoreMediumNodes,
std::map< double, const SMDS_MeshNode * > &  theNodes,
const SMDSAbs_ElementType  typeToCheck = SMDSAbs_All 
)
staticinherited

Fill map of node parameter on geometrical edge to node it-self.

Fill vector of node parameters on geometrical edge, including vertex nodes.

Parameters
theMesh- The mesh containing nodes
theEdge- The geometrical edge of interest
theNodes- The resulting map
ignoreMediumNodes- to store medium nodes of quadratic elements or not
typeToCheck- type of elements to check for medium nodes
Return values
bool- false if not all parameters are OK
Warning
Nodes moved to other geometry by MergeNodes() are NOT returned.
Parameters
theMesh- The mesh containing nodes
theEdge- The geometrical edge of interest
theParams- The resulting vector of sorted node parameters
Return values
bool- false if not all parameters are OK

References SMESHDS_SubMesh::GetNodes(), SMDS_MeshNode::GetPosition(), SMDS_Position::GetTypeOfPosition(), SMDS_EdgePosition::GetUParameter(), SMESH_MesherHelper::IsMedium(), SMESHDS_Mesh::MeshElements(), SMESHDS_SubMesh::NbElements(), SMESHDS_SubMesh::NbNodes(), and SMDS_TOP_EDGE.

Referenced by VISCOUS_3D::_ViscousBuilder::addBoundaryElements(), StdMeshers_Regular_1D::computeInternalParameters(), SMESH_Pattern::findExistingNodes(), SMESH_MesherHelper::IsStructured(), SMESH_MesherHelper::LoadNodeColumns(), VISCOUS_3D::_ViscousBuilder::shrink(), and _FaceSide::StoreNodes().

int SMESH_Hypothesis::GetStudyId ( ) const
inherited
int SMESHDS_Hypothesis::GetType ( ) const
inherited
const list< const SMESHDS_Hypothesis * > & SMESH_Algo::GetUsedHypothesis ( SMESH_Mesh aMesh,
const TopoDS_Shape &  aShape,
const bool  ignoreAuxiliary = true 
) const
virtualinherited

Returns a list of compatible hypotheses used to mesh a shape.

List the hypothesis used by the algorithm associated to the shape.

Parameters
aMesh- the mesh
aShape- the shape
ignoreAuxiliary- do not include auxiliary hypotheses in the list
Return values
conststd::list <const SMESHDS_Hypothesis*> - hypotheses list

List the hypothesis used by the algorithm associated to the shape. Hypothesis associated to father shape -are- taken into account (see GetAppliedHypothesis). Relevant hypothesis have a name (type) listed in the algorithm. This method could be surcharged by specific algorithms, in case of several hypothesis simultaneously applicable.

Hypothesis associated to father shape -are- taken into account (see GetAppliedHypothesis). Relevant hypothesis have a name (type) listed in the algorithm. This method could be surcharged by specific algorithms, in case of several hypothesis simultaneously applicable.

References me.

Referenced by StdMeshers_SegmentAroundVertex_0D::CheckHypothesis(), and StdMeshers_Regular_1D::GetUsedHypothesis().

void SMESH_Algo::InitComputeError ( )
inherited

initialize compute error etc.

initialize compute error before call of Compute()

before call of Compute()

References COMPERR_OK.

Referenced by Compute().

bool StdMeshers_Hexa_3D::IsApplicable ( const TopoDS_Shape &  aShape,
bool  toCheckAll 
)
static

Return true if the algorithm can mesh this shape.

Parameters
[in]aShape- shape to check
[in]toCheckAll- if true, this check returns OK if all shapes are OK, else, returns OK if at least one shape is OK

References SMESH_MesherHelper::Count().

virtual bool SMESH_Hypothesis::IsAuxiliary ( ) const
virtualinherited

Return true if me is an auxiliary hypothesis.

Return values
bool- auxiliary or not

An auxiliary hypothesis is optional, i.e. an algorithm can work without it and another hypothesis of the same dimension can be assigned to the shape

References SMESHDS_Hypothesis::GetType().

static bool SMESH_Algo::IsContinuous ( const TopoDS_Edge &  E1,
const TopoDS_Edge &  E2 
)
staticinherited

Return true if an edge can be considered as a continuation of another.

Referenced by StdMeshers_Quadrangle_2D::checkNbEdgesForEvaluate(), and _QuadFaceGrid::Init().

bool SMESHDS_Hypothesis::IsSameName ( const SMESHDS_Hypothesis other) const
inherited

Compare types of hypotheses.

References SMESHDS_Hypothesis::_name.

Referenced by StdMeshers_Regular_1D::CheckHypothesis().

bool SMESH_Algo::IsStraight ( const TopoDS_Edge &  E,
const bool  degenResult = false 
)
staticinherited

Return true if an edge can be considered straight.

References Min().

Referenced by Handle(), and VISCOUS_3D::_ViscousBuilder::limitMaxLenByCurvature().

istream & SMESH_Algo::LoadFrom ( std::istream &  load)
virtualinherited

Loads nothing from a stream.

Parameters
load- the stream
Return values
std::ostream& - the stream

Implements SMESHDS_Hypothesis.

bool SMESH_Algo::NeedDiscreteBoundary ( ) const
inherited
bool SMESH_Algo::NeedLowerHyps ( int  dim) const
inherited
bool SMESH_Algo::NeedShape ( ) const
inherited
void SMESH_Hypothesis::NotifySubMeshesHypothesisModification ( )
virtualinherited
int SMESH_Algo::NumberOfPoints ( SMESH_Mesh aMesh,
const TopoDS_Wire &  W 
)
inherited

References Edge.

bool SMESH_Algo::OnlyUnaryInput ( ) const
inherited
bool SMESHDS_Hypothesis::operator!= ( const SMESHDS_Hypothesis other) const
inherited
bool SMESHDS_Hypothesis::operator== ( const SMESHDS_Hypothesis other) const
virtualinherited

Equality.

References SMESHDS_Hypothesis::_name.

ostream & SMESH_Algo::SaveTo ( std::ostream &  save)
virtualinherited

Saves nothing in a stream.

Usually an algorithm has nothing to save.

Parameters
save- the stream
Return values
std::ostream& - the stream

Implements SMESHDS_Hypothesis.

void SMESH_Algo::SetEventListener ( SMESH_subMesh subMesh)
virtualinherited

Sets event listener to submeshes if necessary.

Parameters
subMesh- submesh where algo is set

This method is called when a submesh gets HYP_OK algo_state. After being set, event listener is notified on each event of a submesh. By default none listener is set

Parameters
subMesh- submesh where algo is set

After being set, event listener is notified on each event of a submesh. By default non listener is set

Reimplemented in StdMeshers_Regular_1D, StdMeshers_Projection_1D, StdMeshers_Projection_2D, StdMeshers_Projection_3D, StdMeshers_Cartesian_3D, StdMeshers_QuadFromMedialAxis_1D2D, StdMeshers_CompositeSegment_1D, StdMeshers_Import_1D, StdMeshers_Import_1D2D, and StdMeshers_Projection_1D2D.

void SMESH_Hypothesis::SetLibName ( const char *  theLibName)
inherited
bool SMESH_Algo::SetParametersByDefaults ( const TDefaults dflts,
const SMESH_Mesh theMesh = 0 
)
virtualinherited

Initialize my parameter values by default parameters.

Return values
bool- true if parameter values have been successfully defined

Implements SMESH_Hypothesis.

bool SMESH_Algo::SetParametersByMesh ( const SMESH_Mesh theMesh,
const TopoDS_Shape &  theShape 
)
virtualinherited

Just return false as the algorithm does not hold parameters values.

Implements SMESH_Hypothesis.

std::vector<SMESH_subMesh*>& SMESH_Algo::SubMeshesToCompute ( )
inherited

Return a vector of sub-meshes to Compute()

void SMESH_Algo::SubmeshRestored ( SMESH_subMesh subMesh)
virtualinherited

Allow algo to do something after persistent restoration.

Parameters
subMesh- restored submesh

This method is called only if a submesh has HYP_OK algo_state.

Reimplemented in StdMeshers_Regular_1D, StdMeshers_RadialQuadrangle_1D2D, StdMeshers_Import_1D, and StdMeshers_Import_1D2D.

bool SMESH_Algo::SupportSubmeshes ( ) const
inherited
const SMDS_MeshNode * SMESH_Algo::VertexNode ( const TopoDS_Vertex &  V,
const SMESHDS_Mesh meshDS 
)
staticinherited

Return the node built on a vertex.

Parameters
V- the vertex
meshDS- mesh data structure
Return values
constSMDS_MeshNode* - found node or NULL
Parameters
V- the vertex
meshDS- mesh
Return values
constSMDS_MeshNode* - found node or NULL
See Also
SMESH_MesherHelper::GetSubShapeByNode( const SMDS_MeshNode*, SMESHDS_Mesh* )

References SMESHDS_Mesh::MeshElements().

Referenced by StdMeshers_CompositeSegment_1D::Compute(), StdMeshers_Import_1D::Compute(), StdMeshers_Import_1D2D::Compute(), StdMeshers_Regular_1D::Compute(), StdMeshers_Prism_3D::computeWalls(), SMESH_Pattern::findExistingNodes(), StdMeshers_ProjectionUtils::FindMatchingNodesOnFaces(), StdMeshers_Quadrangle_2D::getEnforcedUV(), StdMeshers_FaceSide::GetFaceWires(), SMESH_MesherHelper::IsStructured(), VISCOUS_3D::_ViscousBuilder::makeLayer(), and StdMeshers_FaceSide::VertexNode().

const SMDS_MeshNode * SMESH_Algo::VertexNode ( const TopoDS_Vertex &  V,
const SMESH_Mesh mesh 
)
staticinherited

Return the node built on a vertex.

   A node moved to other geometry by MergeNodes() is also returned.
Parameters
V- the vertex
mesh- mesh
Return values
constSMDS_MeshNode* - found node or NULL

References SMESH_MesherHelper::GetAncestors().

static const SMDS_MeshNode* SMESH_Algo::VertexNode ( const TopoDS_Vertex &  V,
const SMESHDS_SubMesh edgeSM,
const SMESH_Mesh mesh,
const bool  checkV = true 
)
staticinherited

Return the node built on a vertex.

   A node moved to other geometry by MergeNodes() is also returned.
Parameters
V- the vertex
edgeSM- sub-mesh of a meshed EDGE sharing the vertex
mesh- the mesh
checkV- if true, presence of a node on the vertex is checked
Return values
constSMDS_MeshNode* - found node or NULL

Field Documentation

std::list<const SMESHDS_Hypothesis *> SMESH_Algo::_appliedHypList
protectedinherited
std::list<const SMDS_MeshElement*> SMESH_Algo::_badInputElements
protectedinherited

to explain COMPERR_BAD_INPUT_MESH

std::string SMESH_Algo::_comment
protectedinherited

any text explaining what is wrong in Compute()

const SMESH_HypoFilter* SMESH_Algo::_compatibleAllHypFilter
protectedinherited

Referenced by SMESH_Algo::SMESH_Algo().

const SMESH_HypoFilter* SMESH_Algo::_compatibleNoAuxHypFilter
protectedinherited

Referenced by SMESH_Algo::SMESH_Algo().

volatile bool SMESH_Algo::_computeCanceled
protectedinherited

is set to True while computing to stop it

int SMESH_Algo::_error
protectedinherited

SMESH_ComputeErrorName or anything algo specific.

Referenced by SMESH_Algo::SMESH_Algo().

SMESH_Gen* SMESH_Hypothesis::_gen
protectedinherited
int SMESHDS_Hypothesis::_hypId
protectedinherited
std::string SMESHDS_Hypothesis::_name
protectedinherited

Referenced by SMESHDS_Hypothesis::IsSameName(), SMESHDS_Hypothesis::operator==(), StdMeshers_Adaptive1D::StdMeshers_Adaptive1D(), StdMeshers_Arithmetic1D::StdMeshers_Arithmetic1D(), StdMeshers_AutomaticLength::StdMeshers_AutomaticLength(), StdMeshers_Cartesian_3D::StdMeshers_Cartesian_3D(), StdMeshers_CartesianParameters3D::StdMeshers_CartesianParameters3D(), StdMeshers_CompositeHexa_3D::StdMeshers_CompositeHexa_3D(), StdMeshers_CompositeSegment_1D::StdMeshers_CompositeSegment_1D(), StdMeshers_Deflection1D::StdMeshers_Deflection1D(), StdMeshers_FixedPoints1D::StdMeshers_FixedPoints1D(), StdMeshers_Geometric1D::StdMeshers_Geometric1D(), StdMeshers_Hexa_3D(), StdMeshers_HexaFromSkin_3D::StdMeshers_HexaFromSkin_3D(), StdMeshers_Import_1D::StdMeshers_Import_1D(), StdMeshers_Import_1D2D::StdMeshers_Import_1D2D(), StdMeshers_ImportSource1D::StdMeshers_ImportSource1D(), StdMeshers_ImportSource2D::StdMeshers_ImportSource2D(), StdMeshers_LayerDistribution::StdMeshers_LayerDistribution(), StdMeshers_LayerDistribution2D::StdMeshers_LayerDistribution2D(), StdMeshers_LengthFromEdges::StdMeshers_LengthFromEdges(), StdMeshers_LocalLength::StdMeshers_LocalLength(), StdMeshers_MaxElementArea::StdMeshers_MaxElementArea(), StdMeshers_MaxElementVolume::StdMeshers_MaxElementVolume(), StdMeshers_MaxLength::StdMeshers_MaxLength(), StdMeshers_MEFISTO_2D::StdMeshers_MEFISTO_2D(), StdMeshers_NotConformAllowed::StdMeshers_NotConformAllowed(), StdMeshers_NumberOfLayers::StdMeshers_NumberOfLayers(), StdMeshers_NumberOfLayers2D::StdMeshers_NumberOfLayers2D(), StdMeshers_NumberOfSegments::StdMeshers_NumberOfSegments(), StdMeshers_PolygonPerFace_2D::StdMeshers_PolygonPerFace_2D(), StdMeshers_Prism_3D::StdMeshers_Prism_3D(), StdMeshers_Projection_1D::StdMeshers_Projection_1D(), StdMeshers_Projection_1D2D::StdMeshers_Projection_1D2D(), StdMeshers_Projection_2D::StdMeshers_Projection_2D(), StdMeshers_Projection_3D::StdMeshers_Projection_3D(), StdMeshers_ProjectionSource1D::StdMeshers_ProjectionSource1D(), StdMeshers_ProjectionSource2D::StdMeshers_ProjectionSource2D(), StdMeshers_ProjectionSource3D::StdMeshers_ProjectionSource3D(), StdMeshers_Propagation::StdMeshers_Propagation(), StdMeshers_PropagOfDistribution::StdMeshers_PropagOfDistribution(), StdMeshers_QuadFromMedialAxis_1D2D::StdMeshers_QuadFromMedialAxis_1D2D(), StdMeshers_Quadrangle_2D::StdMeshers_Quadrangle_2D(), StdMeshers_QuadrangleParams::StdMeshers_QuadrangleParams(), StdMeshers_QuadranglePreference::StdMeshers_QuadranglePreference(), StdMeshers_QuadraticMesh::StdMeshers_QuadraticMesh(), StdMeshers_RadialPrism_3D::StdMeshers_RadialPrism_3D(), StdMeshers_RadialQuadrangle_1D2D::StdMeshers_RadialQuadrangle_1D2D(), StdMeshers_Regular_1D::StdMeshers_Regular_1D(), StdMeshers_StartEndLength::StdMeshers_StartEndLength(), StdMeshers_ViscousLayers::StdMeshers_ViscousLayers(), and StdMeshers_ViscousLayers2D::StdMeshers_ViscousLayers2D().

int SMESH_Hypothesis::_param_algo_dim
protectedinherited

Referenced by SMESH_Hypothesis::SMESH_Hypothesis(), StdMeshers_Adaptive1D::StdMeshers_Adaptive1D(), StdMeshers_Arithmetic1D::StdMeshers_Arithmetic1D(), StdMeshers_AutomaticLength::StdMeshers_AutomaticLength(), StdMeshers_CartesianParameters3D::StdMeshers_CartesianParameters3D(), StdMeshers_Deflection1D::StdMeshers_Deflection1D(), StdMeshers_FixedPoints1D::StdMeshers_FixedPoints1D(), StdMeshers_ImportSource1D::StdMeshers_ImportSource1D(), StdMeshers_ImportSource2D::StdMeshers_ImportSource2D(), StdMeshers_LayerDistribution::StdMeshers_LayerDistribution(), StdMeshers_LayerDistribution2D::StdMeshers_LayerDistribution2D(), StdMeshers_LengthFromEdges::StdMeshers_LengthFromEdges(), StdMeshers_LocalLength::StdMeshers_LocalLength(), StdMeshers_MaxElementArea::StdMeshers_MaxElementArea(), StdMeshers_MaxElementVolume::StdMeshers_MaxElementVolume(), StdMeshers_MaxLength::StdMeshers_MaxLength(), StdMeshers_NotConformAllowed::StdMeshers_NotConformAllowed(), StdMeshers_NumberOfLayers::StdMeshers_NumberOfLayers(), StdMeshers_NumberOfLayers2D::StdMeshers_NumberOfLayers2D(), StdMeshers_NumberOfSegments::StdMeshers_NumberOfSegments(), StdMeshers_ProjectionSource1D::StdMeshers_ProjectionSource1D(), StdMeshers_ProjectionSource2D::StdMeshers_ProjectionSource2D(), StdMeshers_ProjectionSource3D::StdMeshers_ProjectionSource3D(), StdMeshers_Propagation::StdMeshers_Propagation(), StdMeshers_QuadrangleParams::StdMeshers_QuadrangleParams(), StdMeshers_QuadranglePreference::StdMeshers_QuadranglePreference(), StdMeshers_QuadraticMesh::StdMeshers_QuadraticMesh(), StdMeshers_Reversible1D::StdMeshers_Reversible1D(), StdMeshers_StartEndLength::StdMeshers_StartEndLength(), StdMeshers_ViscousLayers::StdMeshers_ViscousLayers(), and StdMeshers_ViscousLayers2D::StdMeshers_ViscousLayers2D().

double SMESH_Algo::_progress
protectedinherited
int SMESH_Algo::_progressTic
protectedinherited
bool SMESH_Algo::_quadraticMesh
protectedinherited
bool SMESH_Algo::_requireShape
protectedinherited
std::vector<SMESH_subMesh*> SMESH_Algo::_smToCompute
protectedinherited
int SMESH_Hypothesis::_studyId
protectedinherited
const StdMeshers_ViscousLayers* StdMeshers_Hexa_3D::_viscousLayersHyp
protected