BUG: fixed retrieving field from sub surface.

It now caters for
- all surfaces having fields
- no surfaces having fields
but not a combination of those.
This commit is contained in:
mattijs
2010-02-03 06:15:41 +00:00
parent 1513507e94
commit 953030879e

View File

@ -681,19 +681,22 @@ void Foam::searchableSurfaceCollection::getField
List<List<label> > infoMap;
sortHits(info, surfInfo, infoMap);
values.setSize(info.size());
//?Misses do not get set? values = 0;
// Do surface tests
forAll(surfInfo, surfI)
{
labelList surfValues;
subGeom_[surfI].getField(surfInfo[surfI], surfValues);
const labelList& map = infoMap[surfI];
forAll(map, i)
if (surfValues.size())
{
values[map[i]] = surfValues[i];
// Size values only when we have a surface that supports it.
values.setSize(info.size());
const labelList& map = infoMap[surfI];
forAll(map, i)
{
values[map[i]] = surfValues[i];
}
}
}
}