mirror of
https://github.com/NGSolve/netgen.git
synced 2024-12-26 13:50:33 +05:00
* Temporarily fixed bug: array "facedecoding" gets corrupted after converting a mesh to second order, subsequently causing a crash on using the function "GetSurfaceElementsOfFace"
-- Corrected by uncommenting a previous approach used to obtain the surface elements of a face, and commenting out the currently used code till further clarification
This commit is contained in:
parent
df79bea6bd
commit
0d1f18749d
@ -4980,42 +4980,53 @@ namespace netgen
|
|||||||
|
|
||||||
void Mesh :: GetSurfaceElementsOfFace (int facenr, Array<SurfaceElementIndex> & sei) const
|
void Mesh :: GetSurfaceElementsOfFace (int facenr, Array<SurfaceElementIndex> & sei) const
|
||||||
{
|
{
|
||||||
static int timer = NgProfiler::CreateTimer ("GetSurfaceElementsOfFace");
|
static int timer = NgProfiler::CreateTimer ("GetSurfaceElementsOfFace");
|
||||||
NgProfiler::RegionTimer reg (timer);
|
NgProfiler::RegionTimer reg (timer);
|
||||||
|
|
||||||
/*
|
|
||||||
sei.SetSize (0);
|
|
||||||
for (SurfaceElementIndex i = 0; i < GetNSE(); i++)
|
|
||||||
if ( (*this)[i].GetIndex () == facenr && (*this)[i][0] >= PointIndex::BASE &&
|
|
||||||
!(*this)[i].IsDeleted() )
|
|
||||||
sei.Append (i);
|
|
||||||
|
|
||||||
int size1 = sei.Size();
|
sei.SetSize (0);
|
||||||
*/
|
for (SurfaceElementIndex i = 0; i < GetNSE(); i++)
|
||||||
|
{
|
||||||
|
if ( (*this)[i].GetIndex () == facenr && (*this)[i][0] >= PointIndex::BASE &&
|
||||||
|
!(*this)[i].IsDeleted() )
|
||||||
|
{
|
||||||
|
sei.Append (i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sei.SetSize(0);
|
|
||||||
|
|
||||||
SurfaceElementIndex si = facedecoding[facenr-1].firstelement;
|
/* Philippose - 01/10/2009
|
||||||
while (si != -1)
|
Commented out the following lines, and activated the originally
|
||||||
{
|
commented out lines above because of a bug which causes corruption
|
||||||
|
of the variable "facedecoding" when a mesh is converted to second order
|
||||||
|
*/
|
||||||
|
|
||||||
|
// int size1 = sei.Size();
|
||||||
|
/*
|
||||||
|
sei.SetSize(0);
|
||||||
|
|
||||||
|
SurfaceElementIndex si = facedecoding[facenr-1].firstelement;
|
||||||
|
while (si != -1)
|
||||||
|
{
|
||||||
if ( (*this)[si].GetIndex () == facenr && (*this)[si][0] >= PointIndex::BASE &&
|
if ( (*this)[si].GetIndex () == facenr && (*this)[si][0] >= PointIndex::BASE &&
|
||||||
!(*this)[si].IsDeleted() )
|
!(*this)[si].IsDeleted() )
|
||||||
{
|
{
|
||||||
sei.Append (si);
|
sei.Append (si);
|
||||||
}
|
}
|
||||||
|
|
||||||
si = (*this)[si].next;
|
si = (*this)[si].next;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// *testout << "with list = " << endl << sei << endl;
|
// *testout << "with list = " << endl << sei << endl;
|
||||||
|
|
||||||
if (size1 != sei.Size())
|
if (size1 != sei.Size())
|
||||||
{
|
{
|
||||||
cout << "size mismatch" << endl;
|
cout << "size mismatch" << endl;
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user