diff --git a/src/functionObjects/field/MachNo/MachNo.C b/src/functionObjects/field/MachNo/MachNo.C index b3fbccee6f..190496e071 100644 --- a/src/functionObjects/field/MachNo/MachNo.C +++ b/src/functionObjects/field/MachNo/MachNo.C @@ -52,11 +52,11 @@ bool Foam::functionObjects::MachNo::calc() if ( foundObject(fieldName_) - && mesh_.foundObject(fluidThermo::dictName) + && foundObject(fluidThermo::dictName) ) { const fluidThermo& thermo = - mesh_.lookupObject(fluidThermo::dictName); + lookupObject(fluidThermo::dictName); const volVectorField& U = lookupObject(fieldName_); diff --git a/src/functionObjects/field/fieldExpression/fieldExpression.C b/src/functionObjects/field/fieldExpression/fieldExpression.C index 42f308cd20..6bb432ca3d 100644 --- a/src/functionObjects/field/fieldExpression/fieldExpression.C +++ b/src/functionObjects/field/fieldExpression/fieldExpression.C @@ -115,7 +115,7 @@ bool Foam::functionObjects::fieldExpression::execute() { Warning << " functionObjects::" << type() << " " << name() - << " cannot find required field " << fieldName_ << endl; + << " failed to execute." << endl; // Clear the result field from the objectRegistry if present clear(); diff --git a/src/functionObjects/field/fieldExpression/fieldExpression.H b/src/functionObjects/field/fieldExpression/fieldExpression.H index fa84ade8bf..04c44419b6 100644 --- a/src/functionObjects/field/fieldExpression/fieldExpression.H +++ b/src/functionObjects/field/fieldExpression/fieldExpression.H @@ -75,6 +75,9 @@ protected: void setResultName(const word& typeName, const word& defaultArg); + template + bool foundObject(const word& name); + private: @@ -133,6 +136,12 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#ifdef NoRepository + #include "fieldExpressionTemplates.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + #endif // ************************************************************************* // diff --git a/src/functionObjects/field/fieldExpression/fieldExpressionTemplates.C b/src/functionObjects/field/fieldExpression/fieldExpressionTemplates.C new file mode 100644 index 0000000000..442834b6e5 --- /dev/null +++ b/src/functionObjects/field/fieldExpression/fieldExpressionTemplates.C @@ -0,0 +1,52 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2016 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "fieldExpression.H" + +// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * // + +template +bool Foam::functionObjects::fieldExpression::foundObject +( + const word& name +) +{ + if (fvMeshFunctionObject::foundObject(name)) + { + return true; + } + else + { + Warning + << " functionObjects::" << type() << " " << this->name() + << " cannot find required object " << name << " of type " + << Type::typeName << endl; + + return false; + } +} + + +// ************************************************************************* //