X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FStdMeshers%2FStdMeshers_ViscousLayers.cxx;h=a6530b9244a5782abe3a820e82075e2aab951077;hp=2513c991c59bf8dae4518c679347e14d414ade86;hb=refs%2Ftags%2FV8_3_0a2;hpb=c80762b0a1cdba101aec4aa2b1cae281331a162e diff --git a/src/StdMeshers/StdMeshers_ViscousLayers.cxx b/src/StdMeshers/StdMeshers_ViscousLayers.cxx index 2513c991c..a6530b924 100644 --- a/src/StdMeshers/StdMeshers_ViscousLayers.cxx +++ b/src/StdMeshers/StdMeshers_ViscousLayers.cxx @@ -409,7 +409,7 @@ namespace VISCOUS_3D gp_XYZ _normal; // to boundary of solid vector _pos; // points computed during inflation - double _len; // length achived with the last inflation step + double _len; // length achieved with the last inflation step double _maxLen; // maximal possible length double _cosin; // of angle (_normal ^ surface) double _minAngle; // of _simplices @@ -1865,15 +1865,19 @@ SMESH_ComputeErrorPtr _ViscousBuilder::Compute(SMESH_Mesh& theMesh, size_t iSD = 0; for ( iSD = 0; iSD < _sdVec.size(); ++iSD ) // find next SOLID to compute if ( _sdVec[iSD]._before.IsEmpty() && + !_sdVec[iSD]._solid.IsNull() && _sdVec[iSD]._n2eMap.empty() ) break; if ( ! makeLayer(_sdVec[iSD]) ) // create _LayerEdge's return _error; - if ( _sdVec[iSD]._n2eMap.size() == 0 ) + if ( _sdVec[iSD]._n2eMap.size() == 0 ) // no layers in a SOLID + { + _sdVec[iSD]._solid.Nullify(); continue; - + } + if ( ! inflate(_sdVec[iSD]) ) // increase length of _LayerEdge's return _error; @@ -2949,7 +2953,7 @@ bool _ViscousBuilder::findShapesToSmooth( _SolidData& data ) //const double tgtThick = /*Min( 0.5 * data._geomSize, */data._maxThickness; // Find shapes needing smoothing; such a shape has _LayerEdge._normal on it's - // boundry inclined to the shape at a sharp angle + // boundary inclined to the shape at a sharp angle //list< TGeomID > shapesToSmooth; TopTools_MapOfShape edgesOfSmooFaces; @@ -8511,7 +8515,7 @@ gp_XYZ _LayerEdge::smoothNefPolygon() { gp_XYZ newPos(0,0,0); - // get a plane to seach a solution on + // get a plane to search a solution on vector< gp_XYZ > vecs( _simplices.size() + 1 ); size_t i; @@ -8702,7 +8706,7 @@ gp_XYZ _LayerEdge::smoothNefPolygon() { ////////////////////////////////// NEW gp_XYZ newPos(0,0,0); - // get a plane to seach a solution on + // get a plane to search a solution on size_t i; gp_XYZ center(0,0,0); @@ -9049,7 +9053,7 @@ void _LayerEdge::Block( _SolidData& data ) minDist = Min( pSrc.SquareDistance( pTgtN ), minDist ); minDist = Min( pTgt.SquareDistance( pSrcN ), minDist ); double newMaxLen = edge->_maxLen + 0.5 * Sqrt( minDist ); - if ( edge->_nodes[0]->getshapeId() == neibor->_nodes[0]->getshapeId() ) + //if ( edge->_nodes[0]->getshapeId() == neibor->_nodes[0]->getshapeId() ) viscous_layers_00/A3 { newMaxLen *= edge->_lenFactor / neibor->_lenFactor; }