]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
bos #20643 EDF 22805 - Pb Viscous Layer
authoreap <eap@opencascade.com>
Fri, 27 Aug 2021 15:45:00 +0000 (18:45 +0300)
committereap <eap@opencascade.com>
Fri, 27 Aug 2021 15:45:00 +0000 (18:45 +0300)
1) Fix computing average thickness of layers
2) Don't block an edge with not limited _maxLen if it not reached an obstacle yet

src/StdMeshers/StdMeshers_ViscousLayers.cxx

index 47412786ea2ca81fefee7635cdd8ca1bc6ce90a4..fa4853668d343c773397d41e15204a78b3aa44b7 100644 (file)
@@ -4934,7 +4934,7 @@ bool _ViscousBuilder::inflate(_SolidData& data)
         if ( eos._edges[i]->_nodes.size() > 1 )
           avgThick    += Min( 1., eos._edges[i]->_len / shapeTgtThick );
         else
-          avgThick    += shapeTgtThick;
+          avgThick    += 1;
         nbActiveEdges += ( ! eos._edges[i]->Is( _LayerEdge::BLOCKED ));
       }
     }
@@ -5448,8 +5448,11 @@ bool _ViscousBuilder::smoothAndCheck(_SolidData& data,
 
         // intersection not ignored
 
-        if ( toBlockInfaltion &&
-             dist < ( eos._edges[i]->_len * theThickToIntersection ))
+        double minDist = 0;
+        if ( eos._edges[i]->_maxLen < 0.99 * eos._hyp.GetTotalThickness() ) // limited length
+          minDist = eos._edges[i]->_len * theThickToIntersection;
+
+        if ( toBlockInfaltion && dist < minDist  )
         {
           if ( is1stBlocked ) { is1stBlocked = false; // debug
             dumpFunction(SMESH_Comment("blockIntersected") <<data._index<<"_InfStep"<<infStep);