mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-11-11 16:19:16 +05:00
Fix in case the mesh is unstructured and BC is on ElementRange.
Case of backstep5_4levdn_u.cgns TODO: check if unstructured and BC is on PointRange works.
This commit is contained in:
parent
6c60849534
commit
1c972ebcce
@ -675,6 +675,8 @@ namespace
|
||||
for ( int iN = 0; iN < nbNodesInGroup; ++iN )
|
||||
{
|
||||
n = aMeshDS->FindNode( nodeIDs[iN] );
|
||||
if (!n)
|
||||
continue;
|
||||
// check nodes of elements of theElemType around n
|
||||
SMDS_ElemIteratorPtr elOfTypeIt = n->GetInverseElementIterator( anElemType );
|
||||
while ( elOfTypeIt->more() )
|
||||
@ -1286,21 +1288,24 @@ Driver_Mesh::Status DriverCGNS_Read::Perform()
|
||||
}
|
||||
else // unstructured zone
|
||||
{
|
||||
if (location == CGNS_ENUMV( Vertex ))
|
||||
MESSAGE(" group on unstructured zone. ");
|
||||
if (location == CGNS_ENUMV( Vertex ) && psType != CGNS_ENUMV( ElementRange ))
|
||||
{
|
||||
MESSAGE(" BC on vertices");
|
||||
// ids are ids of all nodes, not stored element by element
|
||||
// so we can't use findElement
|
||||
// => Use findElements adapted from CreateDimGroup instead
|
||||
findElements(ids, myMesh, elemType, groupDS);
|
||||
MESSAGE(" group on unstructured zone. " << groupDS.Extent() << " elements have been added to " << groupName);
|
||||
MESSAGE(" " << groupDS.Extent() << " elements have been added to " << groupName);
|
||||
}
|
||||
else
|
||||
{
|
||||
MESSAGE(" BC not on vertices");
|
||||
if ( zone._elemIdShift )
|
||||
for ( size_t i = 0; i < ids.size(); ++i )
|
||||
ids[i] += zone._elemIdShift;
|
||||
|
||||
if ( psType == CGNS_ENUMV( PointRange ) && ids.size() == 2 )
|
||||
if ( (psType == CGNS_ENUMV( PointRange ) || psType == CGNS_ENUMV( ElementRange )) && ids.size() == 2 )
|
||||
{
|
||||
for ( cgsize_t i = ids[0]; i <= ids[1]; ++i )
|
||||
if ( const SMDS_MeshElement* e = myMesh->FindElement( i ))
|
||||
|
Loading…
Reference in New Issue
Block a user