diff --git a/src/functionObjects/field/fieldValues/fieldValue/fieldValueTemplates.C b/src/functionObjects/field/fieldValues/fieldValue/fieldValueTemplates.C index 3414c2a40bbb0bdedb3aaf15f5962221d75cce37..4353ce35632950761e5916b4b419dac81ffcdc42 100644 --- a/src/functionObjects/field/fieldValues/fieldValue/fieldValueTemplates.C +++ b/src/functionObjects/field/fieldValues/fieldValue/fieldValueTemplates.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation - \\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. + \\/ M anipulation | Copyright (C) 2015-2017 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -32,26 +32,28 @@ License template<class Type> void Foam::functionObjects::fieldValue::combineFields(Field<Type>& field) { - List<Field<Type>> allValues(Pstream::nProcs()); - - allValues[Pstream::myProcNo()] = field; - - Pstream::gatherList(allValues); - Pstream::scatterList(allValues); - - field = - ListListOps::combine<Field<Type>> - ( - allValues, - accessOp<Field<Type>>() - ); + if (Pstream::parRun()) + { + List<Field<Type>> allValues(Pstream::nProcs()); + allValues[Pstream::myProcNo()] = field; + + Pstream::gatherList(allValues); + Pstream::scatterList(allValues); + + field = + ListListOps::combine<Field<Type>> + ( + allValues, + accessOp<Field<Type>>() + ); + } } template<class Type> void Foam::functionObjects::fieldValue::combineFields(tmp<Field<Type>>& field) { - combineFields(field()); + combineFields(field.ref()); }