diff --git a/src/OpenFOAM/primitives/functions/Function1/Constant/Constant.C b/src/OpenFOAM/primitives/functions/Function1/Constant/Constant.C index 0d633a7788..2be8eb08c1 100644 --- a/src/OpenFOAM/primitives/functions/Function1/Constant/Constant.C +++ b/src/OpenFOAM/primitives/functions/Function1/Constant/Constant.C @@ -49,9 +49,23 @@ Foam::Function1s::Constant::Constant FieldFunction1>(entryName), value_(Zero) { - Istream& is(dict.lookup(entryName)); - word entryType(is); - is >> value_; + if (!dict.found(entryName)) + { + dict.lookup("value") >> value_; + } + else + { + Istream& is(dict.lookup(entryName)); + word entryType(is); + if (is.eof()) + { + dict.lookup("value") >> value_; + } + else + { + is >> value_; + } + } } diff --git a/src/OpenFOAM/primitives/functions/Function1/Table/Table.C b/src/OpenFOAM/primitives/functions/Function1/Table/Table.C index b3530a917d..2931c8ae5b 100644 --- a/src/OpenFOAM/primitives/functions/Function1/Table/Table.C +++ b/src/OpenFOAM/primitives/functions/Function1/Table/Table.C @@ -36,9 +36,24 @@ Foam::Function1s::Table::Table : TableBase>(entryName, dict) { - Istream& is(dict.lookup(entryName)); - word entryType(is); - is >> this->table_; + if (!dict.found(entryName)) + { + dict.lookup("values") >> this->table_; + } + else + { + Istream& is(dict.lookup(entryName)); + word entryType(is); + if (is.eof()) + { + dict.lookup("values") >> this->table_; + } + else + { + is >> this->table_; + } + } + TableBase>::check(); } @@ -79,11 +94,12 @@ Foam::Function1s::Table::~Table() // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template -void Foam::Function1s::Table::writeData(Ostream& os) const +void Foam::Function1s::Table::writeEntries(Ostream& os) const { - Function1::writeData(os); - os << nl << indent << this->table_ << token::END_STATEMENT << nl; - TableBase>::writeCoeffDict(os); + TableBase>::writeEntries(os); + + os << indent << "values" << this->table_ + << token::END_STATEMENT << endl; } diff --git a/src/OpenFOAM/primitives/functions/Function1/Table/Table.H b/src/OpenFOAM/primitives/functions/Function1/Table/Table.H index 0159f3a2b7..db783bb620 100644 --- a/src/OpenFOAM/primitives/functions/Function1/Table/Table.H +++ b/src/OpenFOAM/primitives/functions/Function1/Table/Table.H @@ -96,8 +96,8 @@ public: // Member Functions - //- Write all table data in dictionary format - virtual void writeData(Ostream& os) const; + //- Write entries only in dictionary format + virtual void writeEntries(Ostream& os) const; // Member Operators diff --git a/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.C b/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.C index bbb667e5a4..8b3725573b 100644 --- a/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.C +++ b/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.C @@ -323,25 +323,6 @@ void Foam::Function1s::TableBase::writeEntries } -template -void Foam::Function1s::TableBase::writeCoeffDict -( - Ostream& os -) const -{ - OStringStream oss; - writeEntries(oss); - - if (oss.str().size()) - { - os << indent << word(this->name() + "Coeffs") << nl; - os << indent << token::BEGIN_BLOCK << incrIndent << nl; - writeEntries(os); - os << decrIndent << indent << token::END_BLOCK << endl; - } -} - - template void Foam::Function1s::TableBase::writeData ( @@ -350,7 +331,11 @@ void Foam::Function1s::TableBase::writeData { Function1::writeData(os); os << token::END_STATEMENT << nl; - writeCoeffDict(os); + + os << indent << word(this->name() + "Coeffs") << nl; + os << indent << token::BEGIN_BLOCK << incrIndent << nl; + writeEntries(os); + os << decrIndent << indent << token::END_BLOCK << endl; } diff --git a/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.H b/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.H index 0d2e9b0c25..0008f58ab4 100644 --- a/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.H +++ b/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.H @@ -143,9 +143,6 @@ public: //- Write entries only in dictionary format virtual void writeEntries(Ostream& os) const; - //- Write the coeff dict in dictionary format - virtual void writeCoeffDict(Ostream& os) const; - //- Write all table data in dictionary format virtual void writeData(Ostream& os) const; diff --git a/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C b/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C index 8bc2afdc26..df8966dc05 100644 --- a/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C +++ b/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C @@ -77,6 +77,7 @@ template void Foam::Function1s::TableFile::writeEntries(Ostream& os) const { TableBase>::writeEntries(os); + writeEntry(os, "file", fName_); writeEntry(os, "format", reader_->type()); reader_->write(os);