diff --git a/src/OpenFOAM/Make/files b/src/OpenFOAM/Make/files index 5a21427be9..0307b1a53e 100644 --- a/src/OpenFOAM/Make/files +++ b/src/OpenFOAM/Make/files @@ -98,8 +98,6 @@ primitives/functions/Function1/quarterCosineRamp/quarterCosineRamp.C primitives/functions/Function1/halfCosineRamp/halfCosineRamp.C primitives/functions/Function1/Table/tableBase.C primitives/functions/Function1/Table/TableReader/makeTableReaders.C -primitives/functions/Function1/uniformTable1/uniformTable1.C -primitives/functions/Function1/nonUniformTable1/nonUniformTable1.C primitives/functions/Function2/makeFunction2s.C diff --git a/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H b/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H index 96d313d664..fc9415027f 100644 --- a/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H +++ b/src/OpenFOAM/primitives/functions/Function1/Function1/Function1.H @@ -243,6 +243,13 @@ public: #define makeFunction1s(Type) \ + \ + template<> \ + const char* const Foam::Tuple2::typeName \ + ( \ + "Tuple2" \ + ); \ + \ makeFunction1(Type); \ makeFunction1Type(None, Type); \ makeFunction1Type(Constant, Type); \ @@ -253,6 +260,8 @@ public: makeFunction1Type(Sine, Type); \ makeFunction1Type(Square, Type); \ makeFunction1Type(Table, Type); \ + makeFunction1Type(UniformTable, Type); \ + makeFunction1Type(NonUniformTable, Type); \ makeNamedFunction1Type(Table, Type, tableFile); \ makeFunction1Type(Scale, Type); \ makeFunction1Type(Coded, Type); diff --git a/src/OpenFOAM/primitives/functions/Function1/nonUniformTable1/nonUniformTable1.C b/src/OpenFOAM/primitives/functions/Function1/NonUniformTable1/NonUniformTable1.C similarity index 80% rename from src/OpenFOAM/primitives/functions/Function1/nonUniformTable1/nonUniformTable1.C rename to src/OpenFOAM/primitives/functions/Function1/NonUniformTable1/NonUniformTable1.C index 10855d60fc..1791588433 100644 --- a/src/OpenFOAM/primitives/functions/Function1/nonUniformTable1/nonUniformTable1.C +++ b/src/OpenFOAM/primitives/functions/Function1/NonUniformTable1/NonUniformTable1.C @@ -23,35 +23,18 @@ License \*---------------------------------------------------------------------------*/ -#include "nonUniformTable1.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace Function1s -{ - makeScalarFunction1(nonUniformTable) -} -} - -template<> -const char* const Foam::Tuple2::typeName -( - "Tuple2" -); - +#include "NonUniformTable1.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::Function1s::nonUniformTable::nonUniformTable +template +Foam::Function1s::NonUniformTable::NonUniformTable ( const word& name, const dictionary& dict ) : - FieldFunction1(name), + FieldFunction1>(name), low_(great), high_(-great), values_(dict.lookup("values")), @@ -97,7 +80,8 @@ Foam::Function1s::nonUniformTable::nonUniformTable // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -Foam::scalar Foam::Function1s::nonUniformTable::value +template +Type Foam::Function1s::NonUniformTable::value ( scalar x ) const @@ -112,18 +96,20 @@ Foam::scalar Foam::Function1s::nonUniformTable::value } -Foam::scalar Foam::Function1s::nonUniformTable::integral +template +Type Foam::Function1s::NonUniformTable::integral ( const scalar x1, const scalar x2 ) const { NotImplemented; - return 0; + return Zero; } -Foam::scalar Foam::Function1s::nonUniformTable::dfdT +template +Type Foam::Function1s::NonUniformTable::dfdT ( scalar T ) const @@ -136,7 +122,8 @@ Foam::scalar Foam::Function1s::nonUniformTable::dfdT } -void Foam::Function1s::nonUniformTable::write(Ostream& os) const +template +void Foam::Function1s::NonUniformTable::write(Ostream& os) const { writeEntry(os, "values", values_); } diff --git a/src/OpenFOAM/primitives/functions/Function1/nonUniformTable1/nonUniformTable1.H b/src/OpenFOAM/primitives/functions/Function1/NonUniformTable1/NonUniformTable1.H similarity index 80% rename from src/OpenFOAM/primitives/functions/Function1/nonUniformTable1/nonUniformTable1.H rename to src/OpenFOAM/primitives/functions/Function1/NonUniformTable1/NonUniformTable1.H index 3c1e5a33a0..3f0c9f7160 100644 --- a/src/OpenFOAM/primitives/functions/Function1/nonUniformTable1/nonUniformTable1.H +++ b/src/OpenFOAM/primitives/functions/Function1/NonUniformTable1/NonUniformTable1.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see . Class - Foam::Function1s::nonUniformTable + Foam::Function1s::NonUniformTable Description Non-uniform tabulated property function that linearly interpolates between @@ -33,16 +33,16 @@ Description the table. Usage - \nonUniformTable + \NonUniformTable Property | Description values | List of value pairs - \endnonUniformTable + \endNonUniformTable Example for the density of water between 280 and 350K \verbatim rho { - type nonUniformTable; + type NonUniformTable; values ( @@ -55,8 +55,8 @@ Usage \*---------------------------------------------------------------------------*/ -#ifndef nonUniformTable1_H -#define nonUniformTable1_H +#ifndef NonUniformTable1_H +#define NonUniformTable1_H #include "Function1.H" #include "Tuple2.H" @@ -69,23 +69,24 @@ namespace Function1s { /*---------------------------------------------------------------------------*\ - Class nonUniformTable Declaration + Class NonUniformTable Declaration \*---------------------------------------------------------------------------*/ -class nonUniformTable +template +class NonUniformTable : - public FieldFunction1 + public FieldFunction1> { // Private member data - //- Lowest value in the nonUniformTable + //- Lowest value in the NonUniformTable scalar low_; - //- Highest value in the nonUniformTable + //- Highest value in the NonUniformTable scalar high_; //- Table values - List> values_; + List> values_; //- Increment derived from low_, high_ and values_.size() scalar delta_; @@ -109,25 +110,25 @@ public: // Constructors //- Construct from name and dictionary - nonUniformTable(const word& name, const dictionary& dict); + NonUniformTable(const word& name, const dictionary& dict); // Member Functions //- Return the non-uniform table of values - const List>& values() const + const List>& values() const { return values_; } //- Evaluate the function and return the result - virtual scalar value(scalar x) const; + virtual Type value(scalar x) const; //- Integrate between two scalar values - virtual scalar integral(const scalar x1, const scalar x2) const; + virtual Type integral(const scalar x1, const scalar x2) const; //- Evaluate the derivative of the function and return the result - scalar dfdT(scalar T) const; + Type dfdT(scalar T) const; //- Write the function coefficients void write(Ostream& os) const; @@ -141,7 +142,11 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -#include "nonUniformTable1I.H" +#include "NonUniformTable1I.H" + +#ifdef NoRepository + #include "NonUniformTable1.C" +#endif // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/OpenFOAM/primitives/functions/Function1/nonUniformTable1/nonUniformTable1I.H b/src/OpenFOAM/primitives/functions/Function1/NonUniformTable1/NonUniformTable1I.H similarity index 92% rename from src/OpenFOAM/primitives/functions/Function1/nonUniformTable1/nonUniformTable1I.H rename to src/OpenFOAM/primitives/functions/Function1/NonUniformTable1/NonUniformTable1I.H index 446b2355dc..aa3f90d991 100644 --- a/src/OpenFOAM/primitives/functions/Function1/nonUniformTable1/nonUniformTable1I.H +++ b/src/OpenFOAM/primitives/functions/Function1/NonUniformTable1/NonUniformTable1I.H @@ -25,7 +25,8 @@ License // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -inline Foam::label Foam::Function1s::nonUniformTable::index +template +inline Foam::label Foam::Function1s::NonUniformTable::index ( scalar x ) const @@ -35,7 +36,7 @@ inline Foam::label Foam::Function1s::nonUniformTable::index FatalErrorInFunction << x << " out of range " << low_ << " to " << high_ << nl - << " of nonUniformTable " << name_ + << " of NonUniformTable " << this->name_ << exit(FatalError); } diff --git a/src/OpenFOAM/primitives/functions/Function1/Table/TableReader/Embedded/EmbeddedTableReader.C b/src/OpenFOAM/primitives/functions/Function1/Table/TableReader/Embedded/EmbeddedTableReader.C index e567041abb..18c6d0c655 100644 --- a/src/OpenFOAM/primitives/functions/Function1/Table/TableReader/Embedded/EmbeddedTableReader.C +++ b/src/OpenFOAM/primitives/functions/Function1/Table/TableReader/Embedded/EmbeddedTableReader.C @@ -73,8 +73,7 @@ void Foam::TableReaders::Embedded::write const List>& table ) const { - os << indent << "values" << table - << token::END_STATEMENT << endl; + writeEntry(os, "values", table); } diff --git a/src/OpenFOAM/primitives/functions/Function1/uniformTable1/uniformTable1.C b/src/OpenFOAM/primitives/functions/Function1/UniformTable1/UniformTable1.C similarity index 83% rename from src/OpenFOAM/primitives/functions/Function1/uniformTable1/uniformTable1.C rename to src/OpenFOAM/primitives/functions/Function1/UniformTable1/UniformTable1.C index df403dd542..fcca041c25 100644 --- a/src/OpenFOAM/primitives/functions/Function1/uniformTable1/uniformTable1.C +++ b/src/OpenFOAM/primitives/functions/Function1/UniformTable1/UniformTable1.C @@ -23,29 +23,18 @@ License \*---------------------------------------------------------------------------*/ -#include "uniformTable1.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace Function1s -{ - makeScalarFunction1(uniformTable) -} -} - +#include "UniformTable1.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::Function1s::uniformTable::uniformTable +template +Foam::Function1s::UniformTable::UniformTable ( const word& name, const dictionary& dict ) : - FieldFunction1(name), + FieldFunction1>(name), dictName_(dict.name()), low_(dict.lookup("low")), high_(dict.lookup("high")), @@ -68,7 +57,8 @@ Foam::Function1s::uniformTable::uniformTable // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -Foam::scalar Foam::Function1s::uniformTable::value(scalar x) const +template +Type Foam::Function1s::UniformTable::value(scalar x) const { const scalar nd = (x - low_)/delta_; const label i = nd; @@ -89,18 +79,20 @@ Foam::scalar Foam::Function1s::uniformTable::value(scalar x) const } -Foam::scalar Foam::Function1s::uniformTable::integral +template +Type Foam::Function1s::UniformTable::integral ( const scalar x1, const scalar x2 ) const { NotImplemented; - return 0; + return Zero; } -void Foam::Function1s::uniformTable::write(Ostream& os) const +template +void Foam::Function1s::UniformTable::write(Ostream& os) const { writeEntry(os, "low", low_); writeEntry(os, "high", high_); diff --git a/src/OpenFOAM/primitives/functions/Function1/uniformTable1/uniformTable1.H b/src/OpenFOAM/primitives/functions/Function1/UniformTable1/UniformTable1.H similarity index 82% rename from src/OpenFOAM/primitives/functions/Function1/uniformTable1/uniformTable1.H rename to src/OpenFOAM/primitives/functions/Function1/UniformTable1/UniformTable1.H index 32ea40743a..b3d767a83f 100644 --- a/src/OpenFOAM/primitives/functions/Function1/uniformTable1/uniformTable1.H +++ b/src/OpenFOAM/primitives/functions/Function1/UniformTable1/UniformTable1.H @@ -22,11 +22,11 @@ License along with OpenFOAM. If not, see . Class - Foam::Function1s::uniformTable + Foam::Function1s::UniformTable Description Tabulated property function that linearly interpolates between - the uniformTable values. + the UniformTable values. Usage \table @@ -40,7 +40,7 @@ Usage \verbatim rho { - type uniformTable; + type UniformTable; low 280; high 350; @@ -56,8 +56,8 @@ Usage \*---------------------------------------------------------------------------*/ -#ifndef uniformTable1_H -#define uniformTable1_H +#ifndef UniformTable1_H +#define UniformTable1_H #include "Function1.H" @@ -69,12 +69,13 @@ namespace Function1s { /*---------------------------------------------------------------------------*\ - Class uniformTable Declaration + Class UniformTable Declaration \*---------------------------------------------------------------------------*/ -class uniformTable +template +class UniformTable : - public FieldFunction1 + public FieldFunction1> { // Private member data @@ -88,7 +89,7 @@ class uniformTable scalar high_; //- Table values - List values_; + List values_; //- Increment derived from low_, high_ and values_.size() scalar delta_; @@ -103,16 +104,16 @@ public: // Constructors //- Construct from name and dictionary - uniformTable(const word& name, const dictionary& dict); + UniformTable(const word& name, const dictionary& dict); // Member Functions //- Evaluate the function and return the result - virtual scalar value(scalar x) const; + virtual Type value(scalar x) const; //- Integrate between two scalar values - virtual scalar integral(const scalar x1, const scalar x2) const; + virtual Type integral(const scalar x1, const scalar x2) const; //- Write the function coefficients void write(Ostream& os) const; @@ -126,6 +127,12 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#ifdef NoRepository + #include "UniformTable1.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + #endif // ************************************************************************* // diff --git a/src/OpenFOAM/primitives/functions/Function1/makeFunction1s.C b/src/OpenFOAM/primitives/functions/Function1/makeFunction1s.C index 08c6704791..2a021a3ce1 100644 --- a/src/OpenFOAM/primitives/functions/Function1/makeFunction1s.C +++ b/src/OpenFOAM/primitives/functions/Function1/makeFunction1s.C @@ -32,6 +32,8 @@ License #include "Sine.H" #include "Square.H" #include "Table.H" +#include "UniformTable1.H" +#include "NonUniformTable1.H" #include "Scale.H" #include "CodedFunction1.H" diff --git a/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/sixDoFMotion/sixDoFMotion.C b/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/sixDoFMotion/sixDoFMotion.C index a3fab0a04e..4fa3011cb6 100644 --- a/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/sixDoFMotion/sixDoFMotion.C +++ b/src/dynamicMesh/motionSolvers/displacement/solidBody/solidBodyMotionFunctions/sixDoFMotion/sixDoFMotion.C @@ -57,6 +57,8 @@ namespace solidBodyMotionFunctions #include "Sine.H" #include "Square.H" #include "Table.H" +#include "UniformTable1.H" +#include "NonUniformTable1.H" #include "EmbeddedTableReader.H" #include "FoamTableReader.H" #include "Scale.H" diff --git a/src/fvOptions/sources/derived/sixDoFAccelerationSource/sixDoFAccelerationSource.C b/src/fvOptions/sources/derived/sixDoFAccelerationSource/sixDoFAccelerationSource.C index 068533cea2..e0e4f49ede 100644 --- a/src/fvOptions/sources/derived/sixDoFAccelerationSource/sixDoFAccelerationSource.C +++ b/src/fvOptions/sources/derived/sixDoFAccelerationSource/sixDoFAccelerationSource.C @@ -56,6 +56,8 @@ namespace fv #include "Sine.H" #include "Square.H" #include "Table.H" +#include "UniformTable1.H" +#include "NonUniformTable1.H" #include "EmbeddedTableReader.H" #include "FoamTableReader.H" #include "Scale.H" diff --git a/src/thermophysicalModels/specie/equationOfState/icoTabulated/icoTabulated.H b/src/thermophysicalModels/specie/equationOfState/icoTabulated/icoTabulated.H index c4af78694d..c98dea848f 100644 --- a/src/thermophysicalModels/specie/equationOfState/icoTabulated/icoTabulated.H +++ b/src/thermophysicalModels/specie/equationOfState/icoTabulated/icoTabulated.H @@ -52,14 +52,14 @@ SourceFiles icoTabulated.C See also - Foam::Function1s::nonUniformTable + Foam::Function1s::NonUniformTable \*---------------------------------------------------------------------------*/ #ifndef icoTabulated_H #define icoTabulated_H -#include "nonUniformTable1.H" +#include "NonUniformTable1.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -88,7 +88,7 @@ class icoTabulated : public Specie { - typedef Function1s::nonUniformTable nonUniformTable; + typedef Function1s::NonUniformTable nonUniformTable; // Private Data diff --git a/src/thermophysicalModels/specie/equationOfState/rhoTabulated/rhoTabulated.H b/src/thermophysicalModels/specie/equationOfState/rhoTabulated/rhoTabulated.H index 78063b86b1..ed5c035cf7 100644 --- a/src/thermophysicalModels/specie/equationOfState/rhoTabulated/rhoTabulated.H +++ b/src/thermophysicalModels/specie/equationOfState/rhoTabulated/rhoTabulated.H @@ -71,7 +71,7 @@ SourceFiles rhoTabulated.C See also - Foam::Function1s::nonUniformTable + Foam::Function1s::NonUniformTable \*---------------------------------------------------------------------------*/ diff --git a/src/thermophysicalModels/specie/thermo/eIcoTabulated/eIcoTabulatedThermo.H b/src/thermophysicalModels/specie/thermo/eIcoTabulated/eIcoTabulatedThermo.H index d64bdb17ad..e22d142f88 100644 --- a/src/thermophysicalModels/specie/thermo/eIcoTabulated/eIcoTabulatedThermo.H +++ b/src/thermophysicalModels/specie/thermo/eIcoTabulated/eIcoTabulatedThermo.H @@ -57,7 +57,7 @@ SourceFiles eIcoTabulatedThermo.C See also - Foam::Function1s::nonUniformTable + Foam::Function1s::UniformTable \*---------------------------------------------------------------------------*/ diff --git a/src/thermophysicalModels/specie/thermo/hIcoTabulated/hIcoTabulatedThermo.H b/src/thermophysicalModels/specie/thermo/hIcoTabulated/hIcoTabulatedThermo.H index cf468adb73..d1d786228e 100644 --- a/src/thermophysicalModels/specie/thermo/hIcoTabulated/hIcoTabulatedThermo.H +++ b/src/thermophysicalModels/specie/thermo/hIcoTabulated/hIcoTabulatedThermo.H @@ -57,7 +57,7 @@ SourceFiles hIcoTabulatedThermo.C See also - Foam::Function1s::nonUniformTable + Foam::Function1s::UniformTable \*---------------------------------------------------------------------------*/ diff --git a/src/thermophysicalModels/specie/thermophysicalFunctions/integratedNonUniformTable1/integratedNonUniformTable1.C b/src/thermophysicalModels/specie/thermophysicalFunctions/integratedNonUniformTable1/integratedNonUniformTable1.C index 61583974a9..e9595e2bd1 100644 --- a/src/thermophysicalModels/specie/thermophysicalFunctions/integratedNonUniformTable1/integratedNonUniformTable1.C +++ b/src/thermophysicalModels/specie/thermophysicalFunctions/integratedNonUniformTable1/integratedNonUniformTable1.C @@ -46,7 +46,7 @@ Foam::Function1s::integratedNonUniformTable::integratedNonUniformTable const dictionary& dict ) : - nonUniformTable(name, dict), + NonUniformTable(name, dict), intf_(values().size()), intfByT_(values().size()) { @@ -110,7 +110,7 @@ void Foam::Function1s::integratedNonUniformTable::write Ostream& os ) const { - nonUniformTable::write(os); + NonUniformTable::write(os); } diff --git a/src/thermophysicalModels/specie/thermophysicalFunctions/integratedNonUniformTable1/integratedNonUniformTable1.H b/src/thermophysicalModels/specie/thermophysicalFunctions/integratedNonUniformTable1/integratedNonUniformTable1.H index b790e6307b..923f6eecfe 100644 --- a/src/thermophysicalModels/specie/thermophysicalFunctions/integratedNonUniformTable1/integratedNonUniformTable1.H +++ b/src/thermophysicalModels/specie/thermophysicalFunctions/integratedNonUniformTable1/integratedNonUniformTable1.H @@ -58,7 +58,7 @@ Usage #ifndef integratedNonUniformTable1_H #define integratedNonUniformTable1_H -#include "nonUniformTable1.H" +#include "NonUniformTable1.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -73,7 +73,7 @@ namespace Function1s class integratedNonUniformTable : - public nonUniformTable + public NonUniformTable { // Private member data diff --git a/src/thermophysicalModels/specie/transport/icoTabulated/icoTabulatedTransport.H b/src/thermophysicalModels/specie/transport/icoTabulated/icoTabulatedTransport.H index a0a5d9cecd..7a0a23586e 100644 --- a/src/thermophysicalModels/specie/transport/icoTabulated/icoTabulatedTransport.H +++ b/src/thermophysicalModels/specie/transport/icoTabulated/icoTabulatedTransport.H @@ -61,14 +61,14 @@ SourceFiles icoTabulatedTransport.C See also - Foam::Function1s::nonUniformTable + Foam::Function1s::NonUniformTable \*---------------------------------------------------------------------------*/ #ifndef icoTabulatedTransport_H #define icoTabulatedTransport_H -#include "nonUniformTable1.H" +#include "NonUniformTable1.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -92,7 +92,7 @@ class icoTabulatedTransport : public Thermo { - typedef Function1s::nonUniformTable nonUniformTable; + typedef Function1s::NonUniformTable nonUniformTable; // Private Data