BUG: noise did not set num of output fields (VTK legacy) [fixes #2133]

ENH: less cryptic error message in surfaceWriters::vtkWriter

- fall back to nFields=1 and report the problem.
This commit is contained in:
Mark Olesen
2021-06-21 16:27:32 +02:00
parent 3825c4ee95
commit 98aa92a07f
2 changed files with 18 additions and 0 deletions

View File

@ -304,6 +304,7 @@ scalar surfaceNoise::writeSurfaceData
false // serial - already merged
);
writerPtr_->nFields(1); // Legacy VTK
writerPtr_->write(title, allData);
writerPtr_->endTime();
@ -341,6 +342,7 @@ scalar surfaceNoise::writeSurfaceData
false // serial - already merged
);
writerPtr_->nFields(1); // Legacy VTK
writerPtr_->write(title, data);
writerPtr_->endTime();

View File

@ -289,6 +289,22 @@ Foam::fileName Foam::surfaceWriters::vtkWriter::writeTemplate
if (Pstream::master() || !parallel_)
{
if (!nFields_ && writer_->legacy())
{
// Emit error message, but attempt to recover anyhow
nFields_ = 1;
FatalErrorInFunction
<< "Using VTK legacy format, but did not define nFields!"
<< nl
<< "Assuming nFields=1 (may be incorrect) and continuing..."
<< nl
<< " Field " << fieldName << " to " << outputFile << nl;
Info<< FatalError;
Info<< endl;
}
if (this->isPointData())
{
writer_->beginPointData(nFields_);