mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-02-04 16:00:34 +05:00
IPAL52450: Mesh generation fails due to viscous layers
This commit is contained in:
parent
a5f7916fb6
commit
bcfa36bbd0
@ -2328,6 +2328,7 @@ bool SMESH_MesherHelper::LoadNodeColumns(TParam2ColumnMap & theParam2
|
|||||||
while ( ++u_n != sortedBaseNN.end() && !isNodeInSubMesh( u_n->second, faceSubMesh ));
|
while ( ++u_n != sortedBaseNN.end() && !isNodeInSubMesh( u_n->second, faceSubMesh ));
|
||||||
sortedBaseNN.erase( sortedBaseNN.begin(), u_n );
|
sortedBaseNN.erase( sortedBaseNN.begin(), u_n );
|
||||||
}
|
}
|
||||||
|
if ( !sortedBaseNN.empty() )
|
||||||
if ( u_n = --sortedBaseNN.end(), !isNodeInSubMesh( u_n->second, faceSubMesh ))
|
if ( u_n = --sortedBaseNN.end(), !isNodeInSubMesh( u_n->second, faceSubMesh ))
|
||||||
{
|
{
|
||||||
while ( u_n != sortedBaseNN.begin() && !isNodeInSubMesh( (--u_n)->second, faceSubMesh ));
|
while ( u_n != sortedBaseNN.begin() && !isNodeInSubMesh( (--u_n)->second, faceSubMesh ));
|
||||||
@ -2349,7 +2350,7 @@ bool SMESH_MesherHelper::LoadNodeColumns(TParam2ColumnMap & theParam2
|
|||||||
u2nn->second.push_back( u_n->second );
|
u2nn->second.push_back( u_n->second );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( theParam2ColumnMap.empty() )
|
if ( theParam2ColumnMap.size() < 2 )
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1735,6 +1735,8 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
|
|||||||
case CHECK_COMPUTE_STATE:
|
case CHECK_COMPUTE_STATE:
|
||||||
if ( IsMeshComputed() )
|
if ( IsMeshComputed() )
|
||||||
_computeState = COMPUTE_OK;
|
_computeState = COMPUTE_OK;
|
||||||
|
else if ( _computeError && _computeError->IsKO() )
|
||||||
|
_computeState = FAILED_TO_COMPUTE;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ASSERT(0);
|
ASSERT(0);
|
||||||
|
@ -1460,8 +1460,11 @@ SMESH::compute_error_array* SMESH_Gen_i::GetComputeErrors( SMESH::SMESH_Mesh_ptr
|
|||||||
// if ( sm->GetSubShape().ShapeType() == TopAbs_VERTEX )
|
// if ( sm->GetSubShape().ShapeType() == TopAbs_VERTEX )
|
||||||
// break;
|
// break;
|
||||||
SMESH_ComputeErrorPtr error = sm->GetComputeError();
|
SMESH_ComputeErrorPtr error = sm->GetComputeError();
|
||||||
if ( error && !error->IsOK() && error->myAlgo )
|
if ( error && !error->IsOK() )
|
||||||
{
|
{
|
||||||
|
if ( !( error->myAlgo ) &&
|
||||||
|
!( error->myAlgo = sm->GetAlgo() ))
|
||||||
|
continue;
|
||||||
SMESH::ComputeError & errStruct = error_array[ nbErr++ ];
|
SMESH::ComputeError & errStruct = error_array[ nbErr++ ];
|
||||||
errStruct.code = -( error->myName < 0 ? error->myName + 1: error->myName ); // -1 -> 0
|
errStruct.code = -( error->myName < 0 ? error->myName + 1: error->myName ); // -1 -> 0
|
||||||
errStruct.comment = error->myComment.c_str();
|
errStruct.comment = error->myComment.c_str();
|
||||||
|
@ -371,8 +371,9 @@ bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh & aMesh,
|
|||||||
for ( int i = 0; i < 6; ++i )
|
for ( int i = 0; i < 6; ++i )
|
||||||
{
|
{
|
||||||
const TopoDS_Face& sideF = aCubeSide[i]._quad->face;
|
const TopoDS_Face& sideF = aCubeSide[i]._quad->face;
|
||||||
if ( !SMESH_MesherHelper::IsSameElemGeometry( meshDS->MeshElements( sideF ),
|
const SMESHDS_SubMesh* smDS =
|
||||||
SMDSGeom_QUADRANGLE,
|
proxymesh ? proxymesh->GetSubMesh( sideF ) : meshDS->MeshElements( sideF );
|
||||||
|
if ( !SMESH_MesherHelper::IsSameElemGeometry( smDS, SMDSGeom_QUADRANGLE,
|
||||||
/*nullSubMeshRes=*/false ))
|
/*nullSubMeshRes=*/false ))
|
||||||
{
|
{
|
||||||
SMESH_ComputeErrorPtr err = ComputePentahedralMesh(aMesh, aShape, proxymesh.get());
|
SMESH_ComputeErrorPtr err = ComputePentahedralMesh(aMesh, aShape, proxymesh.get());
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user