myMinSize = 1e-10;
myMaxSize = 1e+10;
myDeflection = 1e-2;
+ myGrading = 1e-2;
myAlgo = NULL;
_name = "Adaptive1D";
_param_algo_dim = 1; // is used by SMESH_Regular_1D
}
}
//=======================================================================
+//function : SetGrading
+//purpose :
+void StdMeshers_Adaptive1D::SetGrading(double value)
+ throw(SALOME_Exception)
+{
+ if (value <= std::numeric_limits<double>::min() )
+ throw SALOME_Exception("Grading must be greater that zero");
+ if (myGrading != value)
+ {
+ myGrading = value;
+ NotifySubMeshesHypothesisModification();
+ }
+}
+//=======================================================================
//function : SetMinSize
//purpose : Sets minimal allowed segment length
void StdMeshers_Adaptive1D::SetMinSize(double minSize)
//purpose : Persistence
ostream & StdMeshers_Adaptive1D::SaveTo(ostream & save)
{
- save << myMinSize << " " << myMaxSize << " " << myDeflection;
+ save << myMinSize << " " << myMaxSize << " " << myDeflection << " " << myGrading;
save << " " << -1 << " " << -1; // preview addition of parameters
return save;
}
istream & StdMeshers_Adaptive1D::LoadFrom(istream & load)
{
int dummyParam;
- bool isOK = (load >> myMinSize >> myMaxSize >> myDeflection >> dummyParam >> dummyParam);
+ bool isOK = (load >> myMinSize >> myMaxSize >> myDeflection >> myGrading >> dummyParam >> dummyParam);
if (!isOK)
load.clear(ios::badbit | load.rdstate());
return load;
myMinSize = dflts._elemLength / 10;
myMaxSize = dflts._elemLength * 2;
myDeflection = myMinSize / 7;
+ myGrading = 0.7;
return true;
}
myMesh = &theMesh;
SMESH_MesherHelper helper( theMesh );
- const double grading = 0.7;
+ const double grading = myHyp->GetGrading();
TopTools_IndexedMapOfShape edgeMap, faceMap;
TopExp::MapShapes( theShape, TopAbs_EDGE, edgeMap );