From 4dfafc3c3668149a0c6ba5a2677c38c5276544a8 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Tue, 18 Jul 2023 16:23:00 +0200 Subject: [PATCH] ENH: store sorted mesh pointers for vtkWrite, areaWrite - replaces HashTable of pointers --- .../utilities/areaWrite/areaWrite.C | 19 +++++++++---------- .../utilities/areaWrite/areaWrite.H | 6 +++--- .../utilities/vtkWrite/vtkWrite.C | 3 ++- .../utilities/vtkWrite/vtkWrite.H | 6 +++--- .../utilities/vtkWrite/vtkWriteUpdate.C | 18 +++++++----------- 5 files changed, 24 insertions(+), 28 deletions(-) diff --git a/src/functionObjects/utilities/areaWrite/areaWrite.C b/src/functionObjects/utilities/areaWrite/areaWrite.C index 8a6e7b898e..424471ddc7 100644 --- a/src/functionObjects/utilities/areaWrite/areaWrite.C +++ b/src/functionObjects/utilities/areaWrite/areaWrite.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2019-2022 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -148,9 +148,6 @@ bool Foam::areaWrite::read(const dictionary& dict) verbose_ = dict.getOrDefault("verbose", false); - // All possible area meshes for the given fvMesh region - meshes_ = obr().lookupClass(); - dict.readIfPresent("areas", selectAreas_); if (selectAreas_.empty()) @@ -162,19 +159,19 @@ bool Foam::areaWrite::read(const dictionary& dict) if (available.size()) { - areaName = available.first(); + areaName = available.front(); } } if (!areaName.empty()) { selectAreas_.resize(1); - selectAreas_.first() = areaName; + selectAreas_.front() = areaName; } } // Restrict to specified meshes - meshes_.filterKeys(selectAreas_); + meshes_ = obr().csorted(selectAreas_); dict.readEntry("fields", fieldSelection_); fieldSelection_.uniq(); @@ -188,8 +185,10 @@ bool Foam::areaWrite::read(const dictionary& dict) surfaceWriter::formatOptions(dict, writerType) ); - for (const word& areaName : meshes_.keys()) + for (const faMesh& areaMesh : meshes_) { + const word& areaName = areaMesh.name(); + // Define surface writer, but do NOT yet attach a surface auto surfWriter = surfaceWriter::New(writerType, writerOptions); @@ -222,9 +221,9 @@ bool Foam::areaWrite::write() DynamicList