From 044876bfe9237dc5a63f2962912ce351ca6cd79a Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Wed, 13 Mar 2019 14:13:04 +0100 Subject: [PATCH] ENH: surface writers now track their own write status - instead of deciding beforehand if a surface format requires a separate geometry file (or if a geometry file should be written if no fields were written) now determine afterwards if something was written. This improves the overall reliability (consistency) and is more convenient for the caller as well. --- .../sampledSurfaces/sampledSurfaces.C | 26 ++++++++--------- .../sampledSurfaces/sampledSurfaces.H | 10 +++---- .../boundaryData/boundaryDataSurfaceWriter.C | 2 ++ .../writers/ensight/ensightSurfaceWriter.C | 1 + .../ensight/ensightSurfaceWriterCollated.C | 5 ++-- .../ensight/ensightSurfaceWriterUncollated.C | 2 ++ src/surfMesh/writers/foam/foamSurfaceWriter.C | 8 ++++++ .../writers/nastran/nastranSurfaceWriter.C | 1 + .../nastran/nastranSurfaceWriterImpl.C | 1 + src/surfMesh/writers/null/nullSurfaceWriter.C | 7 +++++ src/surfMesh/writers/null/nullSurfaceWriter.H | 7 +++-- .../writers/proxy/proxySurfaceWriter.C | 1 + src/surfMesh/writers/raw/rawSurfaceWriter.C | 1 + .../writers/raw/rawSurfaceWriterImpl.C | 1 + .../writers/starcd/starcdSurfaceWriter.C | 8 ++++++ src/surfMesh/writers/surfaceWriter.C | 15 ++++++++++ src/surfMesh/writers/surfaceWriter.H | 28 ++++++++++++++----- src/surfMesh/writers/vtk/vtkSurfaceWriter.C | 2 ++ 18 files changed, 96 insertions(+), 30 deletions(-) diff --git a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C index bcef764598..39cc65418e 100644 --- a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C +++ b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C @@ -536,6 +536,7 @@ bool Foam::sampledSurfaces::performAction(unsigned request) // Only seems to be needed for VTK legacy countFields(); + // Update writers forAll(*this, surfi) @@ -544,7 +545,6 @@ bool Foam::sampledSurfaces::performAction(unsigned request) if (((request & actions_[surfi]) & ACTION_WRITE) && nFaces_[surfi]) { - // Output writers surfaceWriter& outWriter = writers_[surfi]; if (outWriter.needsUpdate()) @@ -556,24 +556,14 @@ bool Foam::sampledSurfaces::performAction(unsigned request) outWriter.beginTime(obr_.time()); - - // Write geometry if no fields would otherwise be written - if (!outWriter.nFields() || outWriter.separateGeometry()) - { - outWriter.write(); - continue; - } - - // Write original ids - as label or scalar field - - const word fieldName("Ids"); + // Write original ids if (s.hasFaceIds() && !s.interpolate()) { writeSurface ( outWriter, Field