BUG: ensightWrite has out-of-date subMesh reference (fixes #2499)

- triggered with cell selections (especially with manifold cells).
  The ensightMesh was still holding an old subMesh reference.
This commit is contained in:
Mark Olesen
2022-05-30 17:59:24 +02:00
parent 520001bafb
commit 1845c28ee4

View File

@ -138,25 +138,21 @@ bool Foam::functionObjects::ensightWrite::update()
return false;
}
// This is heavy-handed, but with a bounding-box limited sub-mesh,
// we don't readily know if the updates affect the subsetted mesh.
// if (meshSubset_.hasSubMesh())
// {
// ensMesh_.clear();
// meshSubset_.clear();
// }
// else if (ensMesh_)
// {
// ensMesh_->expire();
// }
meshSubset_.clear();
// Even if selection doesn't nominally change, a new subMesh is built.
// Must update the reference for ensightMesh
if (meshSubset_.hasSubMesh())
{
ensMesh_.clear();
meshSubset_.clear();
}
// Probably not needed...
/// else if (ensMesh_)
/// {
/// ensMesh_->expire();
/// }
updateSubset(meshSubset_);
meshState_ = polyMesh::UNCHANGED;
if (!ensMesh_)
{
ensMesh_.reset(new ensightMesh(meshSubset_.mesh(), writeOpts_));
@ -166,6 +162,7 @@ bool Foam::functionObjects::ensightWrite::update()
ensMesh_->correct();
}
meshState_ = polyMesh::UNCHANGED;
return true;
}