#19926 [CEA 19782] renumbering meshes \\ fix excess nodes

This commit is contained in:
eap 2020-10-15 18:02:26 +03:00
parent abc50b5f49
commit 3afca7a3ff
2 changed files with 19 additions and 2 deletions

View File

@ -605,7 +605,7 @@ QString SMESHGUI_GenericHypothesisCreator::helpPage() const
else if ( aHypType == "MaxElementArea") else if ( aHypType == "MaxElementArea")
aHelpFileName = "2d_meshing_hypo.html#max-element-area-anchor"; aHelpFileName = "2d_meshing_hypo.html#max-element-area-anchor";
else if ( aHypType == "MaxElementVolume") else if ( aHypType == "MaxElementVolume")
aHelpFileName = "max_element_volume_hypo.html"; aHelpFileName = "3d_meshing_hypo.html#max-element-volume-hypothesis";
else if ( aHypType == "StartEndLength") else if ( aHypType == "StartEndLength")
aHelpFileName = "1d_meshing_hypo.html#start-and-end-length-anchor"; aHelpFileName = "1d_meshing_hypo.html#start-and-end-length-anchor";
else if ( aHypType == "Deflection1D") else if ( aHypType == "Deflection1D")

View File

@ -824,7 +824,16 @@ bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh & aMesh,
pointsOnShapes[ SMESH_Block::ID_V111 ] = fTop->GetXYZ( X, Y ); pointsOnShapes[ SMESH_Block::ID_V111 ] = fTop->GetXYZ( X, Y );
gp_XYZ params; // normalized parameters of an internal node within the unit box gp_XYZ params; // normalized parameters of an internal node within the unit box
for ( x = 0; x < xSize; ++x )
if ( toRenumber )
for ( y = 0; y < ySize; ++y )
{
vector< const SMDS_MeshNode* >& column0y = columns[ colIndex( 0, y )];
for ( z = 0; z < zSize; ++z )
renumHelper.AddReplacingNode( column0y[ z ] );
}
for ( x = 1; x < xSize-1; ++x )
{ {
if ( toRenumber ) if ( toRenumber )
{ {
@ -912,6 +921,14 @@ bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh & aMesh,
} }
} // x loop } // x loop
if ( toRenumber )
for ( y = 0; y < ySize; ++y )
{
vector< const SMDS_MeshNode* >& columnXy = columns[ colIndex( X, y )];
for ( z = 0; z < zSize; ++z )
renumHelper.AddReplacingNode( columnXy[ z ] );
}
// side data no more needed, free memory // side data no more needed, free memory
for ( int i = 0; i < 6; ++i ) for ( int i = 0; i < 6; ++i )
SMESHUtils::FreeVector( aCubeSide[i]._columns ); SMESHUtils::FreeVector( aCubeSide[i]._columns );