Fix regression of test grid 2d_mesh_NETGEN/D2

fix restricting local H, which was broken by a defaut netgen::mparam.minh
This commit is contained in:
eap 2011-11-02 08:56:59 +00:00
parent 997b0b500d
commit 1ead0a723d

View File

@ -301,15 +301,14 @@ static TError addSegmentsToMesh(netgen::Mesh& ngMesh,
ngMesh.AddSegment (seg); ngMesh.AddSegment (seg);
{ {
// restrict size of elements near the segment // restrict size of elements near the segment
netgen::Point3d ngP1(n->X(), n->Y(), n->Z()); SMESH_TNodeXYZ np1( n ), np2( uvPtVec[ i+1 ].node );
n = uvPtVec[ i+1 ].node;
netgen::Point3d ngP2(n->X(), n->Y(), n->Z());
// get an average size of adjacent segments to avoid sharp change of // get an average size of adjacent segments to avoid sharp change of
// element size (regression on issue 0020452, note 0010898) // element size (regression on issue 0020452, note 0010898)
int iPrev = SMESH_MesherHelper::WrapIndex( i-1, nbSegments ); int iPrev = SMESH_MesherHelper::WrapIndex( i-1, nbSegments );
int iNext = SMESH_MesherHelper::WrapIndex( i+1, nbSegments ); int iNext = SMESH_MesherHelper::WrapIndex( i+1, nbSegments );
double avgH = ( segLen[ iPrev ] + segLen[ i ] + segLen[ iNext ]) / 3; double avgH = ( segLen[ iPrev ] + segLen[ i ] + segLen[ iNext ]) / 3;
ngMesh.RestrictLocalH( netgen::Center( ngP1,ngP2), avgH );
NETGENPlugin_Mesher::RestrictLocalSize( ngMesh, 0.5*(np1+np2), avgH );
} }
#ifdef DUMP_SEGMENTS #ifdef DUMP_SEGMENTS
cout << "Segment: " << seg.edgenr << endl cout << "Segment: " << seg.edgenr << endl