diff --git a/src/OpenFOAM/expressions/Function1/Function1Expression.C b/src/OpenFOAM/expressions/Function1/Function1Expression.C index 2575e0cb01..a33c1f01a2 100644 --- a/src/OpenFOAM/expressions/Function1/Function1Expression.C +++ b/src/OpenFOAM/expressions/Function1/Function1Expression.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -33,10 +33,11 @@ template Foam::Function1Types::Function1Expression::Function1Expression ( const word& entryName, - const dictionary& dict + const dictionary& dict, + const objectRegistry* obrPtr ) : - Function1(entryName, dict), + Function1(entryName, dict, obrPtr), dict_(dict), valueExpr_(), driver_(1, dict_) @@ -88,6 +89,8 @@ Type Foam::Function1Types::Function1Expression::value driver_.setArgument(x); + driver_.resetDb(this->whichDb()); + driver_.parse(this->valueExpr_); expressions::exprResult result(driver_.result()); @@ -98,7 +101,9 @@ Type Foam::Function1Types::Function1Expression::value if (!result.hasValue() || !result.size() || !result.isType()) { FatalErrorInFunction - << "Could not evaluate: " << this->valueExpr_ + << "Could not evaluate: " << this->valueExpr_ << nl + << "Result size:" << result.size() + << " type:" << result.valueType() << nl << exit(FatalError); } @@ -124,7 +129,7 @@ void Foam::Function1Types::Function1Expression::writeData Ostream& os ) const { - // Function1-from-subdict so out dictionary contains + // Function1-from-subdict so output dictionary contains // only the relevant entries. dict_.writeEntry(this->name(), os); } diff --git a/src/OpenFOAM/expressions/Function1/Function1Expression.H b/src/OpenFOAM/expressions/Function1/Function1Expression.H index ccb91b9f6e..824f84312e 100644 --- a/src/OpenFOAM/expressions/Function1/Function1Expression.H +++ b/src/OpenFOAM/expressions/Function1/Function1Expression.H @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -113,8 +113,13 @@ public: // Constructors - //- Construct from entry name and dictionary - Function1Expression(const word& entryName, const dictionary& dict); + //- Construct from entry name, dictionary and optional registry + Function1Expression + ( + const word& entryName, + const dictionary& dict, + const objectRegistry* obrPtr = nullptr + ); //- Copy construct explicit Function1Expression(const Function1Expression& rhs); diff --git a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C index 03fb6b86c0..f3d4c064ad 100644 --- a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C +++ b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C @@ -210,10 +210,11 @@ Foam::Function1Types::CSV::CSV ( const word& entryName, const dictionary& dict, + const objectRegistry* obrPtr, const fileName& fName ) : - TableBase(entryName, dict), + TableBase(entryName, dict, obrPtr), nHeaderLine_(dict.get