From 1b9ae82909734178a71ce8762a206412ba121ffa Mon Sep 17 00:00:00 2001 From: andy <a.heather@opencfd.co.uk> Date: Wed, 4 Mar 2009 11:36:07 +0000 Subject: [PATCH] streamlined input for DataEntry --- .../IO/DataEntry/Constant/Constant.C | 30 ++++++------------- .../IO/DataEntry/Constant/Constant.H | 21 +++++-------- .../IO/DataEntry/DataEntry/DataEntry.C | 14 +++------ .../IO/DataEntry/DataEntry/DataEntry.H | 24 +++++---------- .../IO/DataEntry/DataEntry/NewDataEntry.C | 15 ++++------ .../submodels/IO/DataEntry/Table/Table.C | 22 ++++---------- .../submodels/IO/DataEntry/Table/Table.H | 22 ++++++-------- 7 files changed, 49 insertions(+), 99 deletions(-) diff --git a/src/lagrangian/intermediate/submodels/IO/DataEntry/Constant/Constant.C b/src/lagrangian/intermediate/submodels/IO/DataEntry/Constant/Constant.C index a2df7792aa1..cc1676805b2 100644 --- a/src/lagrangian/intermediate/submodels/IO/DataEntry/Constant/Constant.C +++ b/src/lagrangian/intermediate/submodels/IO/DataEntry/Constant/Constant.C @@ -29,38 +29,26 @@ License // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // template<class Type> -Foam::Constant<Type>::Constant -( - const word& entryName, - const dictionary& dict -) +Foam::Constant<Type>::Constant(const word& entryName, Istream& is) : - DataEntry<Type>(typeName, entryName, dict), - value_(this->dict_.lookup("value")) + DataEntry<Type>(entryName), + value_(is) {} template<> -Foam::Constant<Foam::label>::Constant -( - const word& entryName, - const dictionary& dict -) +Foam::Constant<Foam::label>::Constant(const word& entryName, Istream& is) : - DataEntry<label>(typeName, entryName, dict), - value_(readLabel(this->dict_.lookup("value"))) + DataEntry<label>(entryName), + value_(readLabel(is)) {} template<> -Foam::Constant<Foam::scalar>::Constant -( - const word& entryName, - const dictionary& dict -) +Foam::Constant<Foam::scalar>::Constant(const word& entryName, Istream& is) : - DataEntry<scalar>(typeName, entryName, dict), - value_(readScalar(this->dict_.lookup("value"))) + DataEntry<scalar>(entryName), + value_(readScalar(is)) {} diff --git a/src/lagrangian/intermediate/submodels/IO/DataEntry/Constant/Constant.H b/src/lagrangian/intermediate/submodels/IO/DataEntry/Constant/Constant.H index b4af73e2475..6183f3a2ab9 100644 --- a/src/lagrangian/intermediate/submodels/IO/DataEntry/Constant/Constant.H +++ b/src/lagrangian/intermediate/submodels/IO/DataEntry/Constant/Constant.H @@ -28,12 +28,9 @@ Class Description Templated basic entry that holds a constant value. + Usage - for entry <entryName> having the value <value>: @verbatim - entry Constant - entryCoeffs - { - value 100.0; // Constant value - } + <entryName> constant <value> @endverbatim SourceFiles @@ -78,17 +75,13 @@ class Constant public: // Runtime type information - TypeName("Constant"); + TypeName("constant"); // Constructors - //- Construct from dictionary - Constant - ( - const word& entryName, - const dictionary& dict - ); + //- Construct from entry name and Istream + Constant(const word& entryName, Istream& is); //- Destructor @@ -108,10 +101,10 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // template<> -Constant<label>::Constant(const word& entryName, const dictionary& dict); +Constant<label>::Constant(const word& entryName, Istream& is); template<> -Constant<scalar>::Constant(const word& entryName, const dictionary& dict); +Constant<scalar>::Constant(const word& entryName, Istream& is); } // End namespace Foam diff --git a/src/lagrangian/intermediate/submodels/IO/DataEntry/DataEntry/DataEntry.C b/src/lagrangian/intermediate/submodels/IO/DataEntry/DataEntry/DataEntry.C index f6a99c2758a..d4bcbc03735 100644 --- a/src/lagrangian/intermediate/submodels/IO/DataEntry/DataEntry/DataEntry.C +++ b/src/lagrangian/intermediate/submodels/IO/DataEntry/DataEntry/DataEntry.C @@ -29,15 +29,9 @@ License // * * * * * * * * * * * * * * * * Constructor * * * * * * * * * * * * * * * // template<class Type> -Foam::DataEntry<Type>::DataEntry -( - const word& typeName, - const word& entryName, - const dictionary& dict -) +Foam::DataEntry<Type>::DataEntry(const word& entryName) : - dict_(dict.subDict(entryName + "Coeffs")), - entry_(entryName) + name_(entryName) {} @@ -51,9 +45,9 @@ Foam::DataEntry<Type>::~DataEntry() // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class Type> -const Foam::dictionary& Foam::DataEntry<Type>::dict() const +const Foam::word& Foam::DataEntry<Type>::name() const { - return dict_; + return name_; } diff --git a/src/lagrangian/intermediate/submodels/IO/DataEntry/DataEntry/DataEntry.H b/src/lagrangian/intermediate/submodels/IO/DataEntry/DataEntry/DataEntry.H index f9a5cd6396f..965b7afdf70 100644 --- a/src/lagrangian/intermediate/submodels/IO/DataEntry/DataEntry/DataEntry.H +++ b/src/lagrangian/intermediate/submodels/IO/DataEntry/DataEntry/DataEntry.H @@ -48,7 +48,7 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class DataEntry Declaration + Class DataEntry Declaration \*---------------------------------------------------------------------------*/ template<class Type> @@ -67,11 +67,8 @@ protected: // Protected data - //- Coefficients dictionary - const dictionary dict_; - //- Name of entry - const word entry_; + const word name_; public: @@ -87,21 +84,16 @@ public: dictionary, ( const word& entryName, - const dictionary& dict + Istream& is ), - (entryName, dict) + (entryName, is) ); // Constructor - //- Construct from type name and dictionary - DataEntry - ( - const word& TypeName, - const word& entryName, - const dictionary& dict - ); + //- Construct from entry name + DataEntry(const word& entryName); //- Selector @@ -120,8 +112,8 @@ public: // Access - //- Return the dictionary - const dictionary& dict() const; + //- Return the name of the entry + const word& name() const; // Evaluation diff --git a/src/lagrangian/intermediate/submodels/IO/DataEntry/DataEntry/NewDataEntry.C b/src/lagrangian/intermediate/submodels/IO/DataEntry/DataEntry/NewDataEntry.C index ac8f7c68609..425dcfe6f77 100644 --- a/src/lagrangian/intermediate/submodels/IO/DataEntry/DataEntry/NewDataEntry.C +++ b/src/lagrangian/intermediate/submodels/IO/DataEntry/DataEntry/NewDataEntry.C @@ -35,27 +35,24 @@ Foam::autoPtr<Foam::DataEntry<Type> > Foam::DataEntry<Type>::New const dictionary& dict ) { - word DataEntryType(dict.lookup(entryName)); + Istream& is(dict.lookup(entryName)); - // Info<< "Selecting DataEntry " << DataEntryType << endl; + word DataEntryType(is); typename dictionaryConstructorTable::iterator cstrIter = dictionaryConstructorTablePtr_->find(DataEntryType); if (cstrIter == dictionaryConstructorTablePtr_->end()) { - FatalErrorIn - ( - "DataEntry<Type>::New(const dictionary&" - ) << "Unknown DataEntry type " - << DataEntryType << " for " << entryName - << ", constructor not in hash table" << nl << nl + FatalErrorIn("DataEntry<Type>::New(Istream&)") + << "Unknown DataEntry type " << DataEntryType << " for DataEntry " + << entryName << ". Constructor not in hash table" << nl << nl << " Valid DataEntry types are :" << nl << dictionaryConstructorTablePtr_->toc() << nl << exit(FatalError); } - return autoPtr<DataEntry<Type> >(cstrIter()(entryName, dict)); + return autoPtr<DataEntry<Type> >(cstrIter()(entryName, is)); } diff --git a/src/lagrangian/intermediate/submodels/IO/DataEntry/Table/Table.C b/src/lagrangian/intermediate/submodels/IO/DataEntry/Table/Table.C index 3897049722d..fd08858157a 100644 --- a/src/lagrangian/intermediate/submodels/IO/DataEntry/Table/Table.C +++ b/src/lagrangian/intermediate/submodels/IO/DataEntry/Table/Table.C @@ -29,26 +29,16 @@ License // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // template<class Type> -Foam::Table<Type>::Table -( - const word& entryName, - const dictionary& dict -) +Foam::Table<Type>::Table(const word& entryName, Istream& is) : - DataEntry<Type>(typeName, entryName, dict), - table_(this->dict_.lookup("table")) + DataEntry<Type>(entryName), + table_(is) { if (!table_.size()) { - FatalErrorIn - ( - "Foam::Table<Type>::Table\n" - "(\n" - " const word& entryName,\n" - " const dictionary& dict\n" - ")\n" - ) << "Table is invalid (empty)" << nl - << exit(FatalError); + FatalErrorIn("Foam::Table<Type>::Table(const Istream&)") + << "Table for entry " << this->name_ << " is invalid (empty)" + << nl << exit(FatalError); } } diff --git a/src/lagrangian/intermediate/submodels/IO/DataEntry/Table/Table.H b/src/lagrangian/intermediate/submodels/IO/DataEntry/Table/Table.H index c30ba5e937f..97bd77f1717 100644 --- a/src/lagrangian/intermediate/submodels/IO/DataEntry/Table/Table.H +++ b/src/lagrangian/intermediate/submodels/IO/DataEntry/Table/Table.H @@ -28,18 +28,14 @@ Class Description Templated table container data entry. Items are stored in a list of Tuple2's. First column is always stored as scalar entries. Data is read - in the form, e.g. for (scalar, vector): + in the form, e.g. for an entry <entryName> that is (scalar, vector): @verbatim - entry Table - entryCoeffs - { - table - ( - 0.0 (1 2 3) - 1.0 (4 5 6) - ) - } + <entryName> table + ( + 0.0 (1 2 3) + 1.0 (4 5 6) + ); @endverbatim SourceFiles @@ -85,13 +81,13 @@ class Table public: //- Runtime type information - TypeName("Table"); + TypeName("table"); // Constructors - //- Construct from dictionary - Table(const word& entryName, const dictionary& dict); + //- Construct from entry name and Istream + Table(const word& entryName, Istream& is); //- Destructor -- GitLab