Salome HOME
In SetParametersByDefaults(), make myMinSize and myDeflection greater
[modules/smesh.git] / src / StdMeshers / StdMeshers_Adaptive1D.cxx
index e47018290028060daf7432e8ab169a87f15550eb..b94b67ce9147ad164f3738e86042eacc3ccae9a1 100644 (file)
@@ -932,9 +932,9 @@ bool StdMeshers_Adaptive1D::SetParametersByMesh(const SMESH_Mesh*   theMesh,
 bool StdMeshers_Adaptive1D::SetParametersByDefaults(const TDefaults&  dflts,
                                                     const SMESH_Mesh* /*theMesh*/)
 {
-  myMinSize = dflts._elemLength / 100;
+  myMinSize = dflts._elemLength / 10;
   myMaxSize = dflts._elemLength * 2;
-  myDeflection = myMinSize / 10;
+  myDeflection = myMinSize / 7;
   return true;
 }
 
@@ -1227,7 +1227,7 @@ bool AdaptiveAlgo::makeSegments()
     const double f = eData.myC3d.FirstParameter(), l = eData.myC3d.LastParameter();
     const double parLen = l - f;
     const int  nbDivSeg = 5;
-    int           nbDiv = int ( eData.myLength / edgeMinSize * nbDivSeg );
+    int           nbDiv = Max( 1, int ( eData.myLength / edgeMinSize * nbDivSeg ));
 
     // compute nb of segments
     bool toRecompute = true;
@@ -1266,7 +1266,7 @@ bool AdaptiveAlgo::makeSegments()
     }
 
     // compute parameters of nodes
-    int nbSegFinal = int(floor(nbSegs.back()+0.5));
+    int nbSegFinal = Max( 1, int(floor( nbSegs.back() + 0.5 )));
     double fact = nbSegFinal / nbSegs.back();
     if ( maxSegSize / fact > myHyp->GetMaxSize() )
       fact = ++nbSegFinal / nbSegs.back();