From: asozinov Date: Mon, 8 Jul 2024 13:04:14 +0000 (+0100) Subject: 42056 [CEA] Viscous layer 2D fails on a disc X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=a1e2cdd1ed62664a138263fb0ad14c600cc2779c;p=modules%2Fsmesh.git 42056 [CEA] Viscous layer 2D fails on a disc Fix problem with VL in some cases --- diff --git a/src/StdMeshers/StdMeshers_ViscousLayers2D.cxx b/src/StdMeshers/StdMeshers_ViscousLayers2D.cxx index b89a42c2d..c25d0d05b 100644 --- a/src/StdMeshers/StdMeshers_ViscousLayers2D.cxx +++ b/src/StdMeshers/StdMeshers_ViscousLayers2D.cxx @@ -1018,7 +1018,7 @@ bool _ViscousBuilder2D::makePolyLines() faceBndBox2D.Add( *_polyLineVec[ iPoLine]._segTree->getBox() ); const double boxTol = 1e-3 * sqrt( faceBndBox2D.SquareExtent() ); - if ( _maxThickness * maxLen2dTo3dRatio > sqrt( faceBndBox2D.SquareExtent() ) / 10 ) + if ( _maxThickness * maxLen2dTo3dRatio > sqrt( faceBndBox2D.SquareExtent() ) / 2 ) { vector< const _Segment* > foundSegs; double maxPossibleThick = 0; @@ -1041,6 +1041,8 @@ bool _ViscousBuilder2D::makePolyLines() foundSegs.clear(); L2._segTree->GetSegmentsNear( L1._lEdges[iLE]._ray, foundSegs ); for ( size_t i = 0; i < foundSegs.size(); ++i ) + // In this block periodically finding strange intersection with parameter close to 0 + // to investigate if ( intersection.Compute( *foundSegs[i], L1._lEdges[iLE]._ray )) { double distToL2 = intersection._param2 / L1._lEdges[iLE]._len2dTo3dRatio;