mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-02-04 07:30:33 +05:00
IPAL52450: Mesh generation fails due to viscous layers
This commit is contained in:
parent
a5f7916fb6
commit
bcfa36bbd0
@ -2328,11 +2328,12 @@ bool SMESH_MesherHelper::LoadNodeColumns(TParam2ColumnMap & theParam2
|
||||
while ( ++u_n != sortedBaseNN.end() && !isNodeInSubMesh( u_n->second, faceSubMesh ));
|
||||
sortedBaseNN.erase( sortedBaseNN.begin(), u_n );
|
||||
}
|
||||
if ( u_n = --sortedBaseNN.end(), !isNodeInSubMesh( u_n->second, faceSubMesh ))
|
||||
{
|
||||
while ( u_n != sortedBaseNN.begin() && !isNodeInSubMesh( (--u_n)->second, faceSubMesh ));
|
||||
sortedBaseNN.erase( ++u_n, sortedBaseNN.end() );
|
||||
}
|
||||
if ( !sortedBaseNN.empty() )
|
||||
if ( u_n = --sortedBaseNN.end(), !isNodeInSubMesh( u_n->second, faceSubMesh ))
|
||||
{
|
||||
while ( u_n != sortedBaseNN.begin() && !isNodeInSubMesh( (--u_n)->second, faceSubMesh ));
|
||||
sortedBaseNN.erase( ++u_n, sortedBaseNN.end() );
|
||||
}
|
||||
if ( sortedBaseNN.empty() ) continue;
|
||||
}
|
||||
|
||||
@ -2349,7 +2350,7 @@ bool SMESH_MesherHelper::LoadNodeColumns(TParam2ColumnMap & theParam2
|
||||
u2nn->second.push_back( u_n->second );
|
||||
}
|
||||
}
|
||||
if ( theParam2ColumnMap.empty() )
|
||||
if ( theParam2ColumnMap.size() < 2 )
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -1735,6 +1735,8 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
|
||||
case CHECK_COMPUTE_STATE:
|
||||
if ( IsMeshComputed() )
|
||||
_computeState = COMPUTE_OK;
|
||||
else if ( _computeError && _computeError->IsKO() )
|
||||
_computeState = FAILED_TO_COMPUTE;
|
||||
break;
|
||||
default:
|
||||
ASSERT(0);
|
||||
|
@ -1460,8 +1460,11 @@ SMESH::compute_error_array* SMESH_Gen_i::GetComputeErrors( SMESH::SMESH_Mesh_ptr
|
||||
// if ( sm->GetSubShape().ShapeType() == TopAbs_VERTEX )
|
||||
// break;
|
||||
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++ ];
|
||||
errStruct.code = -( error->myName < 0 ? error->myName + 1: error->myName ); // -1 -> 0
|
||||
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 )
|
||||
{
|
||||
const TopoDS_Face& sideF = aCubeSide[i]._quad->face;
|
||||
if ( !SMESH_MesherHelper::IsSameElemGeometry( meshDS->MeshElements( sideF ),
|
||||
SMDSGeom_QUADRANGLE,
|
||||
const SMESHDS_SubMesh* smDS =
|
||||
proxymesh ? proxymesh->GetSubMesh( sideF ) : meshDS->MeshElements( sideF );
|
||||
if ( !SMESH_MesherHelper::IsSameElemGeometry( smDS, SMDSGeom_QUADRANGLE,
|
||||
/*nullSubMeshRes=*/false ))
|
||||
{
|
||||
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