22576: EDF 8029 SMESH: Bug with 3D viscous layer

Add more smoothing loops after fixing all bad faces
This commit is contained in:
eap 2014-04-28 15:07:53 +04:00
parent 12d0e1ecd2
commit a913b7ad54

View File

@ -2379,8 +2379,8 @@ bool _ViscousBuilder::smoothAndCheck(_SolidData& data,
else else
{ {
// smooth on FACE's // smooth on FACE's
int step = 0, badNb = 0; moved = true; int step = 0, stepLimit = 5, badNb = 0; moved = true;
while (( ++step <= 5 && moved ) || improved ) while (( ++step <= stepLimit && moved ) || improved )
{ {
dumpFunction(SMESH_Comment("smooth")<<data._index<<"_Fa"<<sInd dumpFunction(SMESH_Comment("smooth")<<data._index<<"_Fa"<<sInd
<<"_InfStep"<<nbSteps<<"_"<<step); // debug <<"_InfStep"<<nbSteps<<"_"<<step); // debug
@ -2391,6 +2391,10 @@ bool _ViscousBuilder::smoothAndCheck(_SolidData& data,
moved |= data._edges[i]->Smooth(badNb); moved |= data._edges[i]->Smooth(badNb);
improved = ( badNb < oldBadNb ); improved = ( badNb < oldBadNb );
// issue 22576. no bad faces but still there are intersections to fix
if ( improved && badNb == 0 )
stepLimit = step + 3;
dumpFunctionEnd(); dumpFunctionEnd();
} }
if ( badNb > 0 ) if ( badNb > 0 )