diff --git a/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C b/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C index e2f1f92e77..bfb0ce9f12 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 -Foam::interpolationTable::interpolationTable() -: - List >(), - dict_(dictionary::null), - boundAction_(interpolationTable::WARN), - fileName_("undefined_fileName") -{} - - -template -Foam::interpolationTable::interpolationTable -( - const objectRegistry& obr, - const dictionary& dict -) -: - List >(), - dict_(dict), - boundAction_(wordToBoundAction(dict.lookup("boundAction"))), - fileName_(dict.lookup("fileName")) +void Foam::interpolationTable::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::interpolationTable } +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +template +Foam::interpolationTable::interpolationTable() +: + List >(), + boundAction_(interpolationTable::WARN), + fileName_("undefined_fileName") +{} + + +template +Foam::interpolationTable::interpolationTable(const fileName& fn) +: + List >(), + boundAction_(interpolationTable::WARN), + fileName_(fn) +{ + readTable(); +} + + +template +Foam::interpolationTable::interpolationTable(const dictionary& dict) +: + List >(), + boundAction_(wordToBoundAction(dict.lookup("boundAction"))), + fileName_(dict.lookup("fileName")) +{ + readTable(); +} + + template Foam::interpolationTable::interpolationTable ( @@ -85,18 +92,11 @@ Foam::interpolationTable::interpolationTable ) : List >(interpTable), - dict_(interpTable.dict_), boundAction_(interpTable.boundAction_), fileName_(interpTable.fileName_) {} -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template -Foam::interpolationTable::~interpolationTable() -{} - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // @@ -174,7 +174,7 @@ Foam::interpolationTable::wordToBoundAction template void Foam::interpolationTable::check() const { - label n = size(); + label n = this->size(); scalar prevValue = List >::operator[](0).first(); for (label i=1; i& Foam::interpolationTable::operator[](const label i) const { label ii = i; - label n = size(); + label n = this->size(); if (n <= 1) { @@ -321,7 +321,7 @@ Foam::interpolationTable::operator[](const label i) const template Type Foam::interpolationTable::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 207e19f91c..77b944cda0 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 out-of-bounds treatment as a word + word boundActionToWord(const boundActions& bound) const; - //- Return the size - label size() const - { - return List >::size(); - } + //- Return the out-of-bounds treatment as an enumeration + boundActions wordToBoundAction(const word& bound) const; - //- Return the out-of-bounds treatment as a word - word boundActionToWord(const boundActions& bound) const; + //- Check that list is monotonically increasing + // Exit with a FatalError if there is a problem + void check() const; - //- Return the out-of-bounds treatment as an enumeration - boundActions wordToBoundAction(const word& bound) const; + //- Set the out-of-bounds treatment from enum, return previous + // setting + boundActions boundAction(const boundActions& bound); + + //- Write + void write(Ostream& os) const; - // Check + // Member Operators - //- Check that list is monotonically increasing - // Exit with a FatalError if there is a problem - void check() const; + //- Return an element of constant Tuple2 + const Tuple2& operator[](const label) const; - - // Edit - - //- Set the out-of-bounds treatment from enum, return previous - // setting - boundActions boundAction(const boundActions& bound); - - - // Member Operators - - //- Return an element of constant Tuple2 - const Tuple2& 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 f492d86c77..ba27bdd6fa 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 dc09d678b2..28b13832a4 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(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 711fccdbc6..897514ced5 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;