Commit ac92336c authored by mattijs's avatar mattijs
Browse files

ENH: wallBoundedStreamline: handle patches with zero faces. See #502.

parent 4c41c770
......@@ -767,7 +767,7 @@ bool Foam::functionObjects::streamLineBase::write()
// Convert scalar values
if (allScalars_.size() > 0)
if (allScalars_.size() > 0 && tracks.size() > 0)
{
List<List<scalarField>> scalarValues(allScalars_.size());
......@@ -811,7 +811,7 @@ bool Foam::functionObjects::streamLineBase::write()
// Convert vector values
if (allVectors_.size() > 0)
if (allVectors_.size() > 0 && tracks.size() > 0)
{
List<List<vectorField>> vectorValues(allVectors_.size());
......
......@@ -139,39 +139,43 @@ void Foam::functionObjects::wallBoundedStreamLine::track()
forAll(seedPoints, i)
{
const point& seedPt = seedPoints[i];
label celli = seedPoints.cells()[i];
tetIndices ids(findNearestTet(isWallPatch, seedPt, celli));
if (ids.face() != -1 && isWallPatch[ids.face()])
if (celli != -1)
{
//Pout<< "Seeding particle :" << nl
// << " seedPt:" << seedPt << nl
// << " face :" << ids.face() << nl
// << " at :" << mesh_.faceCentres()[ids.face()] << nl
// << " cell :" << mesh_.cellCentres()[ids.cell()] << nl
// << endl;
particles.addParticle
(
new wallBoundedStreamLineParticle
const point& seedPt = seedPoints[i];
tetIndices ids(findNearestTet(isWallPatch, seedPt, celli));
if (ids.face() != -1 && isWallPatch[ids.face()])
{
//Pout<< "Seeding particle :" << nl
// << " seedPt:" << seedPt << nl
// << " face :" << ids.face() << nl
// << " at :" << mesh_.faceCentres()[ids.face()]
// << nl
// << " cell :" << mesh_.cellCentres()[ids.cell()]
// << nl << endl;
particles.addParticle
(
mesh_,
ids.faceTri(mesh_).centre(),
ids.cell(),
ids.face(), // tetFace
ids.tetPt(),
-1, // not on a mesh edge
-1, // not on a diagonal edge
lifeTime_ // lifetime
)
);
}
else
{
Pout<< type() << " : ignoring seed " << seedPt
<< " since not in wall cell." << endl;
new wallBoundedStreamLineParticle
(
mesh_,
ids.faceTri(mesh_).centre(),
ids.cell(),
ids.face(), // tetFace
ids.tetPt(),
-1, // not on a mesh edge
-1, // not on a diagonal edge
lifeTime_ // lifetime
)
);
}
else
{
Pout<< type() << " : ignoring seed " << seedPt
<< " since not in wall cell." << endl;
}
}
}
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment