From bc12ce2ac9b0eae716988bdc7a9539d6669794fb Mon Sep 17 00:00:00 2001 From: Andrew Heather <> Date: Mon, 21 Jan 2019 11:56:53 +0000 Subject: [PATCH] ENH: Updated fieldSelection dependent code --- .../postProcessing/postProcess/postProcess.C | 23 ++++++++++++------- .../field/columnAverage/columnAverage.C | 4 ++-- .../fieldCoordinateSystemTransform.C | 8 +++---- .../field/fieldExtents/fieldExtents.C | 5 ++-- .../field/fieldMinMax/fieldMinMax.C | 5 ++-- .../utilities/residuals/residuals.C | 6 ++--- 6 files changed, 28 insertions(+), 23 deletions(-) diff --git a/applications/utilities/postProcessing/postProcess/postProcess.C b/applications/utilities/postProcessing/postProcess/postProcess.C index 767fb9ff95..44d555cad6 100644 --- a/applications/utilities/postProcessing/postProcess/postProcess.C +++ b/applications/utilities/postProcessing/postProcess/postProcess.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2016 OpenFOAM Foundation - \\/ M anipulation | Copyright (C) 2018 OpenCFD Ltd. + \\/ M anipulation | Copyright (C) 2018-2019 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -164,17 +164,22 @@ int main(int argc, char *argv[]) functionObjects::fileFieldSelection fields(mesh); if (args.found("fields")) { - fields.insert(args.getList("fields")); + fields.resetFieldFilters + ( + HashSet(args.getList("fields")) + ); } if (args.found("field")) { - fields.insert(args.opt("field")); + fields.resetFieldFilters(args.opt("field")); } // Externally stored dictionary for functionObjectList // if not constructed from runTime dictionary functionsDict; + HashSet fieldFilters(fields.filters()); + // Construct functionObjectList autoPtr functionsPtr ( @@ -183,7 +188,7 @@ int main(int argc, char *argv[]) args, runTime, functionsDict, - fields + fieldFilters // include any additional command-line fields ) ); @@ -193,8 +198,6 @@ int main(int argc, char *argv[]) Info<< "Time = " << runTime.timeName() << endl; - fields.updateSelection(); - if (mesh.readUpdate() != polyMesh::UNCHANGED) { // Update functionObjectList if mesh changes @@ -205,10 +208,14 @@ int main(int argc, char *argv[]) args, runTime, functionsDict, - fields + fieldFilters ); } + fields.resetFieldFilters(fieldFilters); + + fields.updateSelection(); + const bool throwingIOErr = FatalIOError.throwExceptions(); try @@ -218,7 +225,7 @@ int main(int argc, char *argv[]) args, runTime, mesh, - fields.selection(), + fields.selectionNames(), functionsPtr(), timei == timeDirs.size()-1 ); diff --git a/src/functionObjects/field/columnAverage/columnAverage.C b/src/functionObjects/field/columnAverage/columnAverage.C index c0b00cfdab..68fafdfe27 100644 --- a/src/functionObjects/field/columnAverage/columnAverage.C +++ b/src/functionObjects/field/columnAverage/columnAverage.C @@ -151,7 +151,7 @@ bool Foam::functionObjects::columnAverage::execute() // Make fields up to date with current selection fieldSet_.updateSelection(); - for (const word& fieldName : fieldSet_.selection()) + for (const word& fieldName : fieldSet_.selectionNames()) { columnAverageField(fieldName); columnAverageField(fieldName); @@ -166,7 +166,7 @@ bool Foam::functionObjects::columnAverage::execute() bool Foam::functionObjects::columnAverage::write() { - for (const word& fieldName : fieldSet_.selection()) + for (const word& fieldName : fieldSet_.selectionNames()) { const word resultName("columnAverage(" + fieldName + ")"); const regIOobject* obj = diff --git a/src/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C b/src/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C index 7259d24ca8..1b2193450e 100644 --- a/src/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C +++ b/src/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation - \\/ M anipulation | Copyright (C) 2017-2018 OpenCFD Ltd. + \\/ M anipulation | Copyright (C) 2017-2019 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -191,7 +191,7 @@ bool Foam::functionObjects::fieldCoordinateSystemTransform::execute() { fieldSet_.updateSelection(); - for (const word& fieldName : fieldSet_.selection()) + for (const word& fieldName : fieldSet_.selectionNames()) { transform(fieldName); transform(fieldName); @@ -210,9 +210,9 @@ bool Foam::functionObjects::fieldCoordinateSystemTransform::execute() bool Foam::functionObjects::fieldCoordinateSystemTransform::write() { - forAllConstIters(fieldSet_, iter) + for (const word& fieldName : fieldSet_.selectionNames()) { - writeObject(transformFieldName(iter())); + writeObject(transformFieldName(fieldName)); } return true; diff --git a/src/functionObjects/field/fieldExtents/fieldExtents.C b/src/functionObjects/field/fieldExtents/fieldExtents.C index 8e65a802eb..dac26340f4 100644 --- a/src/functionObjects/field/fieldExtents/fieldExtents.C +++ b/src/functionObjects/field/fieldExtents/fieldExtents.C @@ -60,9 +60,8 @@ void Foam::functionObjects::fieldExtents::writeFileHeader(Ostream& os) writeCommented(os, "Time"); - forAllConstIters(fieldSet_.selection(), iter) + for (const word& fieldName : fieldSet_.selectionNames()) { - const word& fieldName = iter(); if (internalField_) { writeTabbed(os, fieldName + "_internal"); @@ -183,7 +182,7 @@ bool Foam::functionObjects::fieldExtents::write() Log << type() << " " << name() << " write:" << nl; - for (const word& fieldName : fieldSet_.selection()) + for (const word& fieldName : fieldSet_.selectionNames()) { calcFieldExtents(fieldName, true); calcFieldExtents(fieldName); diff --git a/src/functionObjects/field/fieldMinMax/fieldMinMax.C b/src/functionObjects/field/fieldMinMax/fieldMinMax.C index e217e58b7f..d82b655fad 100644 --- a/src/functionObjects/field/fieldMinMax/fieldMinMax.C +++ b/src/functionObjects/field/fieldMinMax/fieldMinMax.C @@ -90,9 +90,8 @@ void Foam::functionObjects::fieldMinMax::writeFileHeader(Ostream& os) } else { - forAllConstIters(fieldSet_.selection(), iter) + for (const word& fieldName : fieldSet_.selectionNames()) { - const word& fieldName = iter(); writeTabbed(os, "min(" + fieldName + ')'); writeTabbed(os, "max(" + fieldName + ')'); } @@ -153,7 +152,7 @@ bool Foam::functionObjects::fieldMinMax::write() if (!location_) writeTime(file()); Log << type() << " " << name() << " write:" << nl; - for (const word& fieldName : fieldSet_.selection()) + for (const word& fieldName : fieldSet_.selectionNames()) { calcMinMaxFields(fieldName, mdCmpt); calcMinMaxFields(fieldName, mode_); diff --git a/src/functionObjects/utilities/residuals/residuals.C b/src/functionObjects/utilities/residuals/residuals.C index bc435c2a41..c06a00837e 100644 --- a/src/functionObjects/utilities/residuals/residuals.C +++ b/src/functionObjects/utilities/residuals/residuals.C @@ -64,7 +64,7 @@ void Foam::functionObjects::residuals::writeFileHeader(Ostream& os) writeCommented(os, "Time"); - for (const word& fieldName : fieldSet_.selection()) + for (const word& fieldName : fieldSet_.selectionNames()) { writeFileHeader(os, fieldName); writeFileHeader(os, fieldName); @@ -193,7 +193,7 @@ bool Foam::functionObjects::residuals::execute() if (writeFields_) { - for (const word& fieldName : fieldSet_.selection()) + for (const word& fieldName : fieldSet_.selectionNames()) { initialiseField(fieldName); initialiseField(fieldName); @@ -214,7 +214,7 @@ bool Foam::functionObjects::residuals::write() { writeTime(file()); - for (const word& fieldName : fieldSet_.selection()) + for (const word& fieldName : fieldSet_.selectionNames()) { writeResidual(fieldName); writeResidual(fieldName);