StdMeshers_AutomaticLength Class Reference

1D Hypothesis to compute segment length free of thinking More...

#include <StdMeshers_AutomaticLength.hxx>

Inheritance diagram for StdMeshers_AutomaticLength:

Inheritance graph

Public Types

enum  Hypothesis_Status {
  HYP_OK, HYP_MISSING, HYP_CONCURENT, HYP_BAD_PARAMETER,
  HYP_UNKNOWN_FATAL, HYP_INCOMPATIBLE, HYP_NOTCONFORM, HYP_ALREADY_EXIST,
  HYP_BAD_DIM, HYP_BAD_SUBSHAPE
}
enum  hypothesis_type {
  PARAM_ALGO, ALGO, ALGO_1D, ALGO_2D,
  ALGO_3D
}

Public Member Functions

 StdMeshers_AutomaticLength (int hypId, int studyId, SMESH_Gen *gen)
virtual ~StdMeshers_AutomaticLength ()
double GetLength (const SMESH_Mesh *aMesh, const TopoDS_Shape &anEdge) throw (SALOME_Exception)
void SetFineness (double theFineness) throw (SALOME_Exception)
 Set Fineness.
double GetFineness () const
 Return mesh Fineness.
virtual std::ostream & SaveTo (std::ostream &save)
virtual std::istream & LoadFrom (std::istream &load)
virtual bool SetParametersByMesh (const SMESH_Mesh *theMesh, const TopoDS_Shape &theShape)
 Initialize Fineness by the mesh built on the geometry.
virtual int GetDim () const
int GetStudyId () const
virtual void NotifySubMeshesHypothesisModification ()
virtual int GetShapeType () const
virtual const char * GetLibName () const
void SetLibName (const char *theLibName)
virtual bool IsAuxiliary () const
 Return true if me is an auxiliary hypothesis.
const char * GetName () const
int GetID () const
int GetType () const

Static Public Member Functions

static bool IsStatusFatal (Hypothesis_Status theStatus)

Protected Attributes

std::map< const TopoDS_TShape *,
double > 
_TShapeToLength
const SMESH_Mesh_mesh
double _fineness
SMESH_Gen_gen
int _studyId
int _shapeType
int _param_algo_dim
std::string _name
int _hypId
int _type

Friends

std::ostream & operator<< (std::ostream &save, StdMeshers_AutomaticLength &hyp)
std::istream & operator>> (std::istream &load, StdMeshers_AutomaticLength &hyp)

Detailed Description

It computes segment length basing on max shape size to shortest edge length ratio: S = S0 * f(L/Lmin) where f(x) = 1 + (2/Pi * 7 * atan(x/5) )


Member Enumeration Documentation

enum SMESH_Hypothesis::Hypothesis_Status [inherited]
 

Enumerator:
HYP_OK 
HYP_MISSING 
HYP_CONCURENT 
HYP_BAD_PARAMETER 
HYP_UNKNOWN_FATAL 
HYP_INCOMPATIBLE 
HYP_NOTCONFORM 
HYP_ALREADY_EXIST 
HYP_BAD_DIM 
HYP_BAD_SUBSHAPE 

enum SMESHDS_Hypothesis::hypothesis_type [inherited]
 

Enumerator:
PARAM_ALGO 
ALGO 
ALGO_1D 
ALGO_2D 
ALGO_3D 


Constructor & Destructor Documentation

StdMeshers_AutomaticLength.StdMeshers_AutomaticLength int  hypId,
int  studyId,
SMESH_Gen gen
 

virtual StdMeshers_AutomaticLength.~StdMeshers_AutomaticLength  )  [virtual]
 


Member Function Documentation

double StdMeshers_AutomaticLength.GetLength const SMESH_Mesh aMesh,
const TopoDS_Shape anEdge
throw (SALOME_Exception)
 

void StdMeshers_AutomaticLength.SetFineness double  theFineness  )  throw (SALOME_Exception)
 

Parameters:
theFineness - The Fineness value [0.0-1.0], 0 - coarse mesh 1 - fine mesh
Raise if theFineness is out of range The "Initial Number of Elements on the Shortest Edge" (S0) is divided by (0.5 + 4.5 x theFineness)

double StdMeshers_AutomaticLength.GetFineness  )  const
 

Return values:
double - Fineness value [0.0-1.0]

virtual std::ostream& StdMeshers_AutomaticLength.SaveTo std::ostream &  save  )  [virtual]
 

Implements SMESHDS_Hypothesis.

virtual std::istream& StdMeshers_AutomaticLength.LoadFrom std::istream &  load  )  [virtual]
 

Implements SMESHDS_Hypothesis.

virtual bool StdMeshers_AutomaticLength.SetParametersByMesh const SMESH_Mesh theMesh,
const TopoDS_Shape theShape
[virtual]
 

Parameters:
theMesh - the built mesh
theShape - the geometry of interest
Return values:
bool - true if parameter values have been successfully defined

Implements SMESH_Hypothesis.

static bool SMESH_Hypothesis.IsStatusFatal Hypothesis_Status  theStatus  )  [static, inherited]
 

virtual int SMESH_Hypothesis.GetDim  )  const [virtual, inherited]
 

int SMESH_Hypothesis.GetStudyId  )  const [inherited]
 

virtual void SMESH_Hypothesis.NotifySubMeshesHypothesisModification  )  [virtual, inherited]
 

virtual int SMESH_Hypothesis.GetShapeType  )  const [virtual, inherited]
 

virtual const char* SMESH_Hypothesis.GetLibName  )  const [virtual, inherited]
 

void SMESH_Hypothesis.SetLibName const char *  theLibName  )  [inherited]
 

virtual bool SMESH_Hypothesis.IsAuxiliary  )  const [virtual, inherited]
 

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 dimention can be assigned to the shape

const char * SMESHDS_Hypothesis::GetName  )  const [inherited]
 

int SMESHDS_Hypothesis::GetID  )  const [inherited]
 

int SMESHDS_Hypothesis::GetType  )  const [inherited]
 


Friends And Related Function Documentation

std::ostream& operator<< std::ostream &  save,
StdMeshers_AutomaticLength hyp
[friend]
 

std::istream& operator>> std::istream &  load,
StdMeshers_AutomaticLength hyp
[friend]
 


Field Documentation

std::map<const TopoDS_TShape*, double> StdMeshers_AutomaticLength._TShapeToLength [protected]
 

const SMESH_Mesh* StdMeshers_AutomaticLength._mesh [protected]
 

double StdMeshers_AutomaticLength._fineness [protected]
 

SMESH_Gen* SMESH_Hypothesis._gen [protected, inherited]
 

int SMESH_Hypothesis._studyId [protected, inherited]
 

int SMESH_Hypothesis._shapeType [protected, inherited]
 

int SMESH_Hypothesis._param_algo_dim [protected, inherited]
 

std::string SMESHDS_Hypothesis._name [protected, inherited]
 

int SMESHDS_Hypothesis._hypId [protected, inherited]
 

int SMESHDS_Hypothesis._type [protected, inherited]