From 3b62098b11e4861cf385fadaeb587e31f48a2168 Mon Sep 17 00:00:00 2001 From: andy <andy> Date: Wed, 1 Aug 2012 15:14:11 +0100 Subject: [PATCH] ENH: Updated polynomial DataEntry - related to mantis bug #607 --- .../DataEntry/DataEntry/DataEntryFwd.H | 52 +++++++++++++++++++ .../DataEntry/polynomial/polynomial.C | 32 +++++++----- .../DataEntry/polynomial/polynomial.H | 7 +-- 3 files changed, 75 insertions(+), 16 deletions(-) create mode 100644 src/OpenFOAM/primitives/functions/DataEntry/DataEntry/DataEntryFwd.H diff --git a/src/OpenFOAM/primitives/functions/DataEntry/DataEntry/DataEntryFwd.H b/src/OpenFOAM/primitives/functions/DataEntry/DataEntry/DataEntryFwd.H new file mode 100644 index 00000000000..326a2a42590 --- /dev/null +++ b/src/OpenFOAM/primitives/functions/DataEntry/DataEntry/DataEntryFwd.H @@ -0,0 +1,52 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 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 <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#ifndef DataEntryFws_H +#define DataEntryFws_H + +#include "DataEntry.H" +#include "vector.H" +#include "symmTensor.H" +#include "sphericalTensor.H" +#include "tensor.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + typedef DataEntry<label> labelDataEntry; + typedef DataEntry<scalar> scalarDataEntry; + typedef DataEntry<vector> vectorDataEntry; + typedef DataEntry<symmTensor> symmTensorDataEntry; + typedef DataEntry<sphericalTensor> sphericalTensorDataEntry; + typedef DataEntry<tensor> tensorDataEntry; +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/OpenFOAM/primitives/functions/DataEntry/polynomial/polynomial.C b/src/OpenFOAM/primitives/functions/DataEntry/polynomial/polynomial.C index d015aede938..cfbaec74247 100644 --- a/src/OpenFOAM/primitives/functions/DataEntry/polynomial/polynomial.C +++ b/src/OpenFOAM/primitives/functions/DataEntry/polynomial/polynomial.C @@ -25,14 +25,14 @@ License #include "polynomial.H" #include "Time.H" +#include "addToRunTimeSelectionTable.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // namespace Foam { defineTypeNameAndDebug(polynomial, 0); - DataEntry<scalar>::adddictionaryConstructorToTable<polynomial> - addpolynomialConstructorToTable_; + addToRunTimeSelectionTable(scalarDataEntry, polynomial, dictionary); } @@ -40,7 +40,7 @@ namespace Foam Foam::polynomial::polynomial(const word& entryName, const dictionary& dict) : - DataEntry<scalar>(entryName), + scalarDataEntry(entryName), coeffs_(), canIntegrate_(true), dimensions_(dimless) @@ -52,15 +52,17 @@ Foam::polynomial::polynomial(const word& entryName, const dictionary& dict) is.putBack(firstToken); if (firstToken == token::BEGIN_SQR) { - is >> this->dimensions_; + is >> this->dimensions_; } is >> coeffs_; if (!coeffs_.size()) { - FatalErrorIn("Foam::polynomial::polynomial(const word&, dictionary&)") - << "polynomial coefficients for entry " << this->name_ + FatalErrorIn + ( + "Foam::polynomial::polynomial(const word&, const dictionary&)" + ) << "polynomial coefficients for entry " << this->name_ << " are invalid (empty)" << nl << exit(FatalError); } @@ -77,8 +79,10 @@ Foam::polynomial::polynomial(const word& entryName, const dictionary& dict) { if (!canIntegrate_) { - WarningIn("Foam::polynomial::polynomial(const word&, dictionary&)") - << "Polynomial " << this->name_ << " cannot be integrated" + WarningIn + ( + "Foam::polynomial::polynomial(const word&, const dictionary&)" + ) << "Polynomial " << this->name_ << " cannot be integrated" << endl; } } @@ -91,7 +95,7 @@ Foam::polynomial::polynomial const List<Tuple2<scalar, scalar> >& coeffs ) : - DataEntry<scalar>(entryName), + scalarDataEntry(entryName), coeffs_(coeffs), canIntegrate_(true), dimensions_(dimless) @@ -101,7 +105,7 @@ Foam::polynomial::polynomial FatalErrorIn ( "Foam::polynomial::polynomial" - "(const word&, const List<Tuple2<scalar, scalar> >&&)" + "(const word&, const List<Tuple2<scalar, scalar> >&)" ) << "polynomial coefficients for entry " << this->name_ << " are invalid (empty)" << nl << exit(FatalError); } @@ -122,7 +126,7 @@ Foam::polynomial::polynomial WarningIn ( "Foam::polynomial::polynomial" - "(const word&, const List<Tuple2<scalar, scalar> >&&)" + "(const word&, const List<Tuple2<scalar, scalar> >&)" ) << "Polynomial " << this->name_ << " cannot be integrated" << endl; } @@ -132,7 +136,7 @@ Foam::polynomial::polynomial Foam::polynomial::polynomial(const polynomial& poly) : - DataEntry<scalar>(poly), + scalarDataEntry(poly), coeffs_(poly.coeffs_), canIntegrate_(poly.canIntegrate_), dimensions_(poly.dimensions_) @@ -201,7 +205,8 @@ Foam::dimensioned<Foam::scalar> Foam::polynomial::dimValue Foam::dimensioned<Foam::scalar> Foam::polynomial::dimIntegrate ( - const scalar x1, const scalar x2 + const scalar x1, + const scalar x2 ) const { return dimensioned<scalar> @@ -212,4 +217,5 @@ Foam::dimensioned<Foam::scalar> Foam::polynomial::dimIntegrate ); } + // ************************************************************************* // diff --git a/src/OpenFOAM/primitives/functions/DataEntry/polynomial/polynomial.H b/src/OpenFOAM/primitives/functions/DataEntry/polynomial/polynomial.H index dc4fc7986b5..3e181c07875 100644 --- a/src/OpenFOAM/primitives/functions/DataEntry/polynomial/polynomial.H +++ b/src/OpenFOAM/primitives/functions/DataEntry/polynomial/polynomial.H @@ -48,6 +48,7 @@ SourceFiles #include "DataEntry.H" #include "Tuple2.H" #include "dimensionSet.H" +#include "DataEntryFwd.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -70,7 +71,7 @@ Ostream& operator<< class polynomial : - public DataEntry<scalar> + public scalarDataEntry { // Private data @@ -107,9 +108,9 @@ public: polynomial(const polynomial& poly); //- Construct and return a clone - virtual tmp<DataEntry<scalar> > clone() const + virtual tmp<scalarDataEntry> clone() const { - return tmp<DataEntry<scalar> >(new polynomial(*this)); + return tmp<scalarDataEntry>(new polynomial(*this)); } -- GitLab