diff --git a/src/functionObjects/field/DMD/DMD.C b/src/functionObjects/field/DMD/DMD.C index e225d31cb4..52291dc57d 100644 --- a/src/functionObjects/field/DMD/DMD.C +++ b/src/functionObjects/field/DMD/DMD.C @@ -65,9 +65,31 @@ void Foam::functionObjects::DMD::snapshot() } +Foam::label Foam::functionObjects::DMD::nComponents(const word& fieldName) const +{ + label nComps = 0; + bool processed = false; + processed = processed || nComponents(fieldName, nComps); + processed = processed || nComponents(fieldName, nComps); + processed = processed || nComponents(fieldName, nComps); + processed = processed || nComponents(fieldName, nComps); + processed = processed || nComponents(fieldName, nComps); + + if (!processed) + { + FatalErrorInFunction + << "Unknown type of input field during initialisation: " + << fieldName << nl + << exit(FatalError); + } + + return nComps; +} + + void Foam::functionObjects::DMD::initialise() { - const label nComps = DMDModelPtr_->nComponents(fieldName_); + const label nComps = nComponents(fieldName_); if (patch_.empty()) { diff --git a/src/functionObjects/field/DMD/DMD.H b/src/functionObjects/field/DMD/DMD.H index b468e85f86..3f19bb734e 100644 --- a/src/functionObjects/field/DMD/DMD.H +++ b/src/functionObjects/field/DMD/DMD.H @@ -217,6 +217,16 @@ class DMD bool getSnapshotField(); + // Access + + //- Return number of components of the base type of a given field + label nComponents(const word& fieldName) const; + + //- Get the number of components of the base type of a given field + template + bool nComponents(const word& fieldName, label& nComps) const; + + public: //- Runtime type information diff --git a/src/functionObjects/field/DMD/DMDModels/DMDModel/DMDModel.C b/src/functionObjects/field/DMD/DMDModels/DMDModel/DMDModel.C index c43727548c..f25c0057d0 100644 --- a/src/functionObjects/field/DMD/DMDModels/DMDModel/DMDModel.C +++ b/src/functionObjects/field/DMD/DMDModels/DMDModel/DMDModel.C @@ -51,28 +51,4 @@ Foam::DMDModel::DMDModel {} -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::label Foam::DMDModel::nComponents(const word& fieldName) const -{ - label nComps = 0; - bool processed = false; - processed = processed || nComponents(fieldName, nComps); - processed = processed || nComponents(fieldName, nComps); - processed = processed || nComponents(fieldName, nComps); - processed = processed || nComponents(fieldName, nComps); - processed = processed || nComponents(fieldName, nComps); - - if (!processed) - { - FatalErrorInFunction - << " # Unknown type of input field during initialisation = " - << fieldName << " #" << nl - << exit(FatalError); - } - - return nComps; -} - - // ************************************************************************* // diff --git a/src/functionObjects/field/DMD/DMDModels/DMDModel/DMDModel.H b/src/functionObjects/field/DMD/DMDModels/DMDModel/DMDModel.H index 8081db5a01..2b9f61ace9 100644 --- a/src/functionObjects/field/DMD/DMDModels/DMDModel/DMDModel.H +++ b/src/functionObjects/field/DMD/DMDModels/DMDModel/DMDModel.H @@ -169,16 +169,6 @@ public: } - // Access - - //- Return number of components of the base type of a given field - label nComponents(const word& fieldName) const; - - //- Get the number of components of the base type of a given field - template - bool nComponents(const word& fieldName, label& nComps) const; - - // IO //- Read model settings @@ -192,12 +182,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -#ifdef NoRepository - #include "DMDModelTemplates.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - #endif // ************************************************************************* // diff --git a/src/functionObjects/field/DMD/DMDModels/DMDModel/DMDModelTemplates.C b/src/functionObjects/field/DMD/DMDModels/DMDModel/DMDModelTemplates.C deleted file mode 100644 index 9281dd2385..0000000000 --- a/src/functionObjects/field/DMD/DMDModels/DMDModel/DMDModelTemplates.C +++ /dev/null @@ -1,54 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | www.openfoam.com - \\/ M anipulation | -------------------------------------------------------------------------------- - Copyright (C) 2021 OpenCFD Ltd. -------------------------------------------------------------------------------- -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 "volFields.H" -#include "surfaceFields.H" - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -template -bool Foam::DMDModel::nComponents(const word& fieldName, label& nComps) const -{ - typedef GeometricField VolFieldType; - typedef GeometricField SurfaceFieldType; - - if (mesh_.foundObject(fieldName)) - { - nComps = pTraits::nComponents; - return true; - } - else if (mesh_.foundObject(fieldName)) - { - nComps = pTraits::nComponents; - return true; - } - - return false; -} - - -// ************************************************************************* // diff --git a/src/functionObjects/field/DMD/DMDTemplates.C b/src/functionObjects/field/DMD/DMDTemplates.C index a08fc5c02e..c9b6948c5e 100644 --- a/src/functionObjects/field/DMD/DMDTemplates.C +++ b/src/functionObjects/field/DMD/DMDTemplates.C @@ -109,4 +109,29 @@ bool Foam::functionObjects::DMD::getSnapshotField() } +template +bool Foam::functionObjects::DMD::nComponents +( + const word& fieldName, + label& nComps +) const +{ + typedef GeometricField VolFieldType; + typedef GeometricField SurfaceFieldType; + + if (mesh_.foundObject(fieldName)) + { + nComps = pTraits::nComponents; + return true; + } + else if (mesh_.foundObject(fieldName)) + { + nComps = pTraits::nComponents; + return true; + } + + return false; +} + + // ************************************************************************* //