From f5874937ebaf10d5bc845823e3c923aac9cb4b63 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Mon, 8 Jun 2020 20:48:23 +0200
Subject: [PATCH] ENH: copy assignment, bool comparison for polynomialFunction

---
 .../functions/Polynomial/polynomialFunction.C         | 11 +++++++++++
 .../functions/Polynomial/polynomialFunction.H         | 11 ++++++++---
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/src/OpenFOAM/primitives/functions/Polynomial/polynomialFunction.C b/src/OpenFOAM/primitives/functions/Polynomial/polynomialFunction.C
index a6a979e8abc..215675a8a2d 100644
--- a/src/OpenFOAM/primitives/functions/Polynomial/polynomialFunction.C
+++ b/src/OpenFOAM/primitives/functions/Polynomial/polynomialFunction.C
@@ -230,6 +230,17 @@ Foam::polynomialFunction::integralMinus1(const scalar intConstant) const
 
 // * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * * //
 
+bool Foam::polynomialFunction::operator==(const polynomialFunction& rhs) const
+{
+    return
+    (
+        scalarList::operator==(static_cast<const scalarList&>(rhs))
+     && logActive_ == rhs.logActive_
+     && (!logActive_ || (logCoeff_ == rhs.logCoeff_))
+    );
+}
+
+
 Foam::polynomialFunction&
 Foam::polynomialFunction::operator+=(const polynomialFunction& poly)
 {
diff --git a/src/OpenFOAM/primitives/functions/Polynomial/polynomialFunction.H b/src/OpenFOAM/primitives/functions/Polynomial/polynomialFunction.H
index 411260f4be8..6f3757be336 100644
--- a/src/OpenFOAM/primitives/functions/Polynomial/polynomialFunction.H
+++ b/src/OpenFOAM/primitives/functions/Polynomial/polynomialFunction.H
@@ -108,9 +108,6 @@ class polynomialFunction
         //- Check size is non-zero or trigger FatalErrot
         void checkSize() const;
 
-        //- No copy assignment
-        void operator=(const polynomialFunction&) = delete;
-
 
 public:
 
@@ -190,6 +187,14 @@ public:
 
     // Member Operators
 
+        //- Equality of coefficients, and logCoeff (if active)
+        bool operator==(const polynomialFunction& rhs) const;
+
+        bool operator!=(const polynomialFunction& rhs) const
+        {
+            return !operator==(rhs);
+        }
+
         polynomialFunction& operator+=(const polynomialFunction&);
         polynomialFunction& operator-=(const polynomialFunction&);
 
-- 
GitLab