diff --git a/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H b/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H index 121165fa05..33b10d3976 100644 --- a/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H +++ b/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H @@ -243,6 +243,9 @@ public: //- Is value constant (i.e. independent of x) virtual bool constant() const { return false; } + //- Can function be evaluated? + virtual bool good() const { return true; } + // Evaluation diff --git a/src/OpenFOAM/primitives/functions/Function1/None/NoneFunction1.H b/src/OpenFOAM/primitives/functions/Function1/None/NoneFunction1.H index 64ffd6e428..2faa535cfb 100644 --- a/src/OpenFOAM/primitives/functions/Function1/None/NoneFunction1.H +++ b/src/OpenFOAM/primitives/functions/Function1/None/NoneFunction1.H @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2021 OpenCFD Ltd. + Copyright (C) 2021-2022 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -34,8 +34,8 @@ Description \*---------------------------------------------------------------------------*/ -#ifndef Function1Types_None_H -#define Function1Types_None_H +#ifndef Foam_Function1Types_None_H +#define Foam_Function1Types_None_H #include "Function1.H" @@ -102,6 +102,9 @@ public: //- Value is independent of x virtual inline bool constant() const { return true; } + //- Function cannot be evaluated + virtual inline bool good() const { return false; } + //- Placeholder: generates an error if called virtual Type value(const scalar x) const; diff --git a/src/faOptions/faOption/faOption.C b/src/faOptions/faOption/faOption.C index 89632a88c0..e95fd30c44 100644 --- a/src/faOptions/faOption/faOption.C +++ b/src/faOptions/faOption/faOption.C @@ -44,7 +44,7 @@ namespace Foam void Foam::fa::option::resetApplied() { - applied_.resize(fieldNames_.size()); + applied_.resize_nocopy(fieldNames_.size()); applied_ = false; } @@ -91,7 +91,7 @@ Foam::autoPtr Foam::fa::option::New Info<< indent << "Selecting finite area options type " << modelType << endl; - const_cast(patch.boundaryMesh().mesh().time()).libs().open + patch.boundaryMesh().mesh().time().libs().open ( coeffs, "libs", @@ -102,15 +102,16 @@ Foam::autoPtr Foam::fa::option::New if (!ctorPtr) { - FatalErrorInFunction - << "Unknown faOption model type " - << modelType << nl << nl - << "Valid faOption types are:" << nl - << dictionaryConstructorTablePtr_->sortedToc() - << exit(FatalError); + FatalIOErrorInLookup + ( + coeffs, + "faOption", + modelType, + *dictionaryConstructorTablePtr_ + ) << exit(FatalIOError); } - return autoPtr