From: eap Date: Wed, 18 Aug 2021 17:36:17 +0000 (+0300) Subject: bos #20643 EDF 22805 - Pb Viscous Layer X-Git-Tag: V9_8_0a1~13^2 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=83429c29b7432c2076e40986d2cac98df3ce943d;p=modules%2Fsmesh.git bos #20643 EDF 22805 - Pb Viscous Layer It's the 2nd step of fixing --- diff --git a/src/StdMeshers/StdMeshers_ViscousLayers.cxx b/src/StdMeshers/StdMeshers_ViscousLayers.cxx index 21bcc6c3c..4ed66607a 100644 --- a/src/StdMeshers/StdMeshers_ViscousLayers.cxx +++ b/src/StdMeshers/StdMeshers_ViscousLayers.cxx @@ -2781,7 +2781,7 @@ bool _ViscousBuilder::makeLayer(_SolidData& data) } dumpMove(edge->_nodes.back()); - if ( edge->_cosin > faceMaxCosin ) + if ( edge->_cosin > faceMaxCosin && !edge->Is( _LayerEdge::BLOCKED )) { faceMaxCosin = edge->_cosin; maxCosinEdge = edge; @@ -10497,7 +10497,8 @@ bool _ViscousBuilder::refine(_SolidData& data) if ( n2eMap && (( n2e = n2eMap->find( edge._nodes[0] )) != n2eMap->end() )) { edgeOnSameNode = n2e->second; - useExistingPos = ( edgeOnSameNode->_len < edge._len ); + useExistingPos = ( edgeOnSameNode->_len < edge._len || + segLen[0] == segLen.back() ); // too short inflation step (bos #20643) const gp_XYZ& otherTgtPos = edgeOnSameNode->_pos.back(); SMDS_PositionPtr lastPos = tgtNode->GetPosition(); if ( isOnEdge )