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