diff --git a/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C b/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C index e2f1f92e7775e837a9822f475258a001a9305332..bfb0ce9f128d21032c08b5bb3f73163bc73bf500 100644 --- a/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C +++ b/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C @@ -26,40 +26,14 @@ License #include "interpolationTable.H" #include "IFstream.H" -#include "objectRegistry.H" -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // +// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * // template<class Type> -Foam::interpolationTable<Type>::interpolationTable() -: - List<Tuple2<scalar, Type> >(), - dict_(dictionary::null), - boundAction_(interpolationTable::WARN), - fileName_("undefined_fileName") -{} - - -template<class Type> -Foam::interpolationTable<Type>::interpolationTable -( - const objectRegistry& obr, - const dictionary& dict -) -: - List<Tuple2<scalar, Type> >(), - dict_(dict), - boundAction_(wordToBoundAction(dict.lookup("boundAction"))), - fileName_(dict.lookup("fileName")) +void Foam::interpolationTable<Type>::readTable() { fileName_.expand(); - // Correct for relative path - if (fileName_[0] != '/') - { - fileName_ = obr.db().path()/fileName_; - } - // Read data from file IFstream(fileName_)() >> *this; @@ -78,6 +52,39 @@ Foam::interpolationTable<Type>::interpolationTable } +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +template<class Type> +Foam::interpolationTable<Type>::interpolationTable() +: + List<Tuple2<scalar, Type> >(), + boundAction_(interpolationTable::WARN), + fileName_("undefined_fileName") +{} + + +template<class Type> +Foam::interpolationTable<Type>::interpolationTable(const fileName& fn) +: + List<Tuple2<scalar, Type> >(), + boundAction_(interpolationTable::WARN), + fileName_(fn) +{ + readTable(); +} + + +template<class Type> +Foam::interpolationTable<Type>::interpolationTable(const dictionary& dict) +: + List<Tuple2<scalar, Type> >(), + boundAction_(wordToBoundAction(dict.lookup("boundAction"))), + fileName_(dict.lookup("fileName")) +{ + readTable(); +} + + template<class Type> Foam::interpolationTable<Type>::interpolationTable ( @@ -85,18 +92,11 @@ Foam::interpolationTable<Type>::interpolationTable ) : List<Tuple2<scalar, Type> >(interpTable), - dict_(interpTable.dict_), boundAction_(interpTable.boundAction_), fileName_(interpTable.fileName_) {} -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class Type> -Foam::interpolationTable<Type>::~interpolationTable() -{} - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // @@ -174,7 +174,7 @@ Foam::interpolationTable<Type>::wordToBoundAction template<class Type> void Foam::interpolationTable<Type>::check() const { - label n = size(); + label n = this->size(); scalar prevValue = List<Tuple2<scalar, Type> >::operator[](0).first(); for (label i=1; i<n; ++i) @@ -227,7 +227,7 @@ const Foam::Tuple2<Foam::scalar, Type>& Foam::interpolationTable<Type>::operator[](const label i) const { label ii = i; - label n = size(); + label n = this->size(); if (n <= 1) { @@ -321,7 +321,7 @@ Foam::interpolationTable<Type>::operator[](const label i) const template<class Type> Type Foam::interpolationTable<Type>::operator()(const scalar value) const { - label n = size(); + label n = this->size(); if (n <= 1) { diff --git a/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.H b/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.H index 207e19f91cc34ac8abebadac796e36492069e2a2..77b944cda083f420ef5ff8ccf7b68080aae02345 100644 --- a/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.H +++ b/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.H @@ -84,9 +84,6 @@ private: // Private data - //- Parent dictionary - const dictionary& dict_; - //- Enumeration for handling out-of-bound values boundActions boundAction_; @@ -94,6 +91,12 @@ private: fileName fileName_; + // Private Member Functions + + //- Read the table of data from file + void readTable(); + + public: // Constructors @@ -101,61 +104,45 @@ public: //- Construct null interpolationTable(); - //- Construct from objectRegistry and dictionary - interpolationTable(const objectRegistry& obr, const dictionary& dict); + //- Construct given the name of the file containing the table of data + interpolationTable(const fileName& fn); + + //- Construct by reading the fileName and boundAction from dictionary + // and read the table from that file. + // This is a specialised constructor used by patchFields + interpolationTable(const dictionary& dict); //- Construct copy interpolationTable(const interpolationTable& interpTable); - //- Destructor - ~interpolationTable(); - - // Member Functions - // Access - - //- Return the size - label size() const - { - return List<Tuple2<scalar, Type> >::size(); - } - - //- Return the out-of-bounds treatment as a word - word boundActionToWord(const boundActions& bound) const; + //- Return the out-of-bounds treatment as a word + word boundActionToWord(const boundActions& bound) const; - //- Return the out-of-bounds treatment as an enumeration - boundActions wordToBoundAction(const word& bound) const; + //- Return the out-of-bounds treatment as an enumeration + boundActions wordToBoundAction(const word& bound) const; + //- Check that list is monotonically increasing + // Exit with a FatalError if there is a problem + void check() const; - // Check + //- Set the out-of-bounds treatment from enum, return previous + // setting + boundActions boundAction(const boundActions& bound); - //- Check that list is monotonically increasing - // Exit with a FatalError if there is a problem - void check() const; + //- Write + void write(Ostream& os) const; - // Edit + // Member Operators - //- Set the out-of-bounds treatment from enum, return previous - // setting - boundActions boundAction(const boundActions& bound); + //- Return an element of constant Tuple2<scalar, Type> + const Tuple2<scalar, Type>& operator[](const label) const; - - // Member Operators - - //- Return an element of constant Tuple2<scalar, Type> - const Tuple2<scalar, Type>& operator[](const label) const; - - //- Return an interpolated value - Type operator()(const scalar) const; - - - // I-O - - //- Write - void write(Ostream& os) const; + //- Return an interpolated value + Type operator()(const scalar) const; }; @@ -169,6 +156,8 @@ public: # include "interpolationTable.C" #endif +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + #endif // ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.C index f492d86c7769ee68c63572ab43e2de15b62d7ec7..ba27bdd6fadb8d40665a8ccbd2a7bb5ed4142afb 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.C @@ -30,12 +30,10 @@ License #include "fvPatchFieldMapper.H" #include "surfaceFields.H" #include "Time.H" -#include "IFstream.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam:: -timeVaryingFlowRateInletVelocityFvPatchVectorField:: +Foam::timeVaryingFlowRateInletVelocityFvPatchVectorField:: timeVaryingFlowRateInletVelocityFvPatchVectorField ( const fvPatch& p, @@ -47,8 +45,7 @@ timeVaryingFlowRateInletVelocityFvPatchVectorField {} -Foam:: -timeVaryingFlowRateInletVelocityFvPatchVectorField:: +Foam::timeVaryingFlowRateInletVelocityFvPatchVectorField:: timeVaryingFlowRateInletVelocityFvPatchVectorField ( const timeVaryingFlowRateInletVelocityFvPatchVectorField& ptf, @@ -62,8 +59,7 @@ timeVaryingFlowRateInletVelocityFvPatchVectorField {} -Foam:: -timeVaryingFlowRateInletVelocityFvPatchVectorField:: +Foam::timeVaryingFlowRateInletVelocityFvPatchVectorField:: timeVaryingFlowRateInletVelocityFvPatchVectorField ( const fvPatch& p, @@ -72,12 +68,11 @@ timeVaryingFlowRateInletVelocityFvPatchVectorField ) : flowRateInletVelocityFvPatchVectorField(p, iF, dict), - timeSeries_(this->db(), dict) + timeSeries_(dict) {} -Foam:: -timeVaryingFlowRateInletVelocityFvPatchVectorField:: +Foam::timeVaryingFlowRateInletVelocityFvPatchVectorField:: timeVaryingFlowRateInletVelocityFvPatchVectorField ( const timeVaryingFlowRateInletVelocityFvPatchVectorField& ptf @@ -88,8 +83,7 @@ timeVaryingFlowRateInletVelocityFvPatchVectorField {} -Foam:: -timeVaryingFlowRateInletVelocityFvPatchVectorField:: +Foam::timeVaryingFlowRateInletVelocityFvPatchVectorField:: timeVaryingFlowRateInletVelocityFvPatchVectorField ( const timeVaryingFlowRateInletVelocityFvPatchVectorField& ptf, @@ -103,8 +97,7 @@ timeVaryingFlowRateInletVelocityFvPatchVectorField // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -void Foam:: -timeVaryingFlowRateInletVelocityFvPatchVectorField:: +void Foam::timeVaryingFlowRateInletVelocityFvPatchVectorField:: updateCoeffs() { if (updated()) @@ -117,8 +110,7 @@ updateCoeffs() } -void Foam:: -timeVaryingFlowRateInletVelocityFvPatchVectorField:: +void Foam::timeVaryingFlowRateInletVelocityFvPatchVectorField:: write(Ostream& os) const { flowRateInletVelocityFvPatchVectorField::write(os); diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.C index dc09d678b2257f5b5151228a9614e62833ffbe2a..28b13832a4c8f85c612dc621833cbc15a3631008 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.C @@ -26,7 +26,6 @@ License #include "timeVaryingUniformFixedValueFvPatchField.H" #include "Time.H" -#include "IFstream.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // @@ -53,7 +52,7 @@ timeVaryingUniformFixedValueFvPatchField ) : fixedValueFvPatchField<Type>(p, iF), - timeSeries_(this->db(), dict) + timeSeries_(dict) { if (dict.found("value")) { diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.C index 711fccdbc629b4ccdfa26f552bbd938e6e571286..897514ced587e33b14aca40a95e96cfd5be9be00 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.C @@ -29,7 +29,6 @@ License #include "fvPatchFieldMapper.H" #include "volFields.H" #include "surfaceFields.H" -#include "IFstream.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // @@ -66,7 +65,7 @@ timeVaryingUniformTotalPressureFvPatchScalarField psiName_(dict.lookup("psi")), gamma_(readScalar(dict.lookup("gamma"))), p0_(readScalar(dict.lookup("p0"))), - totalPressureTimeSeries_(this->db(), dict) + totalPressureTimeSeries_(dict) { if (dict.found("value")) { @@ -215,7 +214,8 @@ void Foam::timeVaryingUniformTotalPressureFvPatchScalarField::updateCoeffs() } -void Foam::timeVaryingUniformTotalPressureFvPatchScalarField::write(Ostream& os) const +void Foam::timeVaryingUniformTotalPressureFvPatchScalarField:: +write(Ostream& os) const { fvPatchScalarField::write(os); os.writeKeyword("U") << UName_ << token::END_STATEMENT << nl;