From f29eb55cee84a509b94e0c6b4b96b866a54919c1 Mon Sep 17 00:00:00 2001 From: Andrew Heather <> Date: Wed, 13 Oct 2021 21:30:46 +0100 Subject: [PATCH] ENH: Refactored TimeFunction1 - now possible using Function1 directly --- src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C | 2 +- .../functions/Function1/Polynomial/PolynomialEntry.C | 5 +++++ src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C | 5 +++++ src/OpenFOAM/primitives/functions/Function1/Table/Table.C | 2 +- .../primitives/functions/Function1/Table/TableBase.C | 7 ++++++- .../primitives/functions/Function1/Table/TableBase.H | 2 +- .../primitives/functions/Function1/TableFile/TableFile.C | 2 +- src/OpenFOAM/primitives/functions/Function1/ramp/ramp.C | 5 +++++ .../primitives/functions/TimeFunction1/TimeFunction1.C | 3 ++- 9 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C index f3d4c064ad2..fc2a40f2578 100644 --- a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C +++ b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C @@ -224,7 +224,7 @@ Foam::Function1Types::CSV<Type>::CSV { read(); - TableBase<Type>::check(); + TableBase<Type>::initialise(); } diff --git a/src/OpenFOAM/primitives/functions/Function1/Polynomial/PolynomialEntry.C b/src/OpenFOAM/primitives/functions/Function1/Polynomial/PolynomialEntry.C index d72f9a7cf7d..7d363bb2fc1 100644 --- a/src/OpenFOAM/primitives/functions/Function1/Polynomial/PolynomialEntry.C +++ b/src/OpenFOAM/primitives/functions/Function1/Polynomial/PolynomialEntry.C @@ -56,6 +56,11 @@ void Foam::Function1Types::Polynomial<Type>::checkCoefficients() << "Polynomial " << this->name() << " cannot be integrated" << endl; } + + if (this->isTime()) + { + convertTimeBase(this->time()); + } } diff --git a/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C b/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C index 9b928c7e16b..0fee1197a10 100644 --- a/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C +++ b/src/OpenFOAM/primitives/functions/Function1/Sine/Sine.C @@ -50,6 +50,11 @@ Foam::Function1Types::Sine<Type>::Sine { frequency_ = Function1<scalar>::New("frequency", dict); } + + if (this->isTime()) + { + convertTimeBase(this->time()); + } } diff --git a/src/OpenFOAM/primitives/functions/Function1/Table/Table.C b/src/OpenFOAM/primitives/functions/Function1/Table/Table.C index 37146ea0195..566a547d8cd 100644 --- a/src/OpenFOAM/primitives/functions/Function1/Table/Table.C +++ b/src/OpenFOAM/primitives/functions/Function1/Table/Table.C @@ -85,7 +85,7 @@ Foam::Function1Types::Table<Type>::Table dict.readEntry("values", this->table_); } - TableBase<Type>::check(); + TableBase<Type>::initialise(); } diff --git a/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.C b/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.C index bb8decf69d7..45e7a6d6ee1 100644 --- a/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.C +++ b/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.C @@ -107,7 +107,7 @@ Foam::Function1Types::TableBase<Type>::TableBase(const TableBase<Type>& tbl) // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class Type> -void Foam::Function1Types::TableBase<Type>::check() const +void Foam::Function1Types::TableBase<Type>::initialise() { if (!table_.size()) { @@ -134,6 +134,11 @@ void Foam::Function1Types::TableBase<Type>::check() const prevValue = currValue; ++i; } + + if (this->isTime()) + { + convertTimeBase(this->time()); + } } diff --git a/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.H b/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.H index aed16b6919c..1b805a8c858 100644 --- a/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.H +++ b/src/OpenFOAM/primitives/functions/Function1/Table/TableBase.H @@ -119,7 +119,7 @@ public: // Member Functions //- Check the table for size and consistency - void check() const; + void initialise(); //- Check minimum table bounds bool checkMinBounds(const scalar x, scalar& xDash) const; diff --git a/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C b/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C index 0d8afbf43c8..a0a27c3ed11 100644 --- a/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C +++ b/src/OpenFOAM/primitives/functions/Function1/TableFile/TableFile.C @@ -57,7 +57,7 @@ Foam::Function1Types::TableFile<Type>::TableFile is >> this->table_; - TableBase<Type>::check(); + TableBase<Type>::initialise(); } diff --git a/src/OpenFOAM/primitives/functions/Function1/ramp/ramp.C b/src/OpenFOAM/primitives/functions/Function1/ramp/ramp.C index b66acd4f326..76b236141b2 100644 --- a/src/OpenFOAM/primitives/functions/Function1/ramp/ramp.C +++ b/src/OpenFOAM/primitives/functions/Function1/ramp/ramp.C @@ -34,6 +34,11 @@ void Foam::Function1Types::ramp::read(const dictionary& coeffs) { start_ = coeffs.getOrDefault<scalar>("start", 0); coeffs.readEntry("duration", duration_); + + if (isTime()) + { + convertTimeBase(time()); + } } diff --git a/src/OpenFOAM/primitives/functions/TimeFunction1/TimeFunction1.C b/src/OpenFOAM/primitives/functions/TimeFunction1/TimeFunction1.C index 9dd5f3caea8..60b95f2d8fa 100644 --- a/src/OpenFOAM/primitives/functions/TimeFunction1/TimeFunction1.C +++ b/src/OpenFOAM/primitives/functions/TimeFunction1/TimeFunction1.C @@ -42,7 +42,8 @@ Foam::TimeFunction1<Type>::TimeFunction1 name_(entryName), entry_(Function1<Type>::New(entryName, dict, &runTime)) { - entry_->convertTimeBase(runTime); + // Time conversion now handled by Function1 directly + // entry_->convertTimeBase(runTime); } -- GitLab