From 79a14c4b7c2b8b03e2e64653fb687cb5c35b3863 Mon Sep 17 00:00:00 2001
From: graham <g.macpherson@opencfd.co.uk>
Date: Thu, 28 Jan 2010 16:35:19 +0000
Subject: [PATCH] BUG: sixDoFRigidBodyMotion, calling boolean function along
 with boolean test was not actually calling the function.  Probably optimised
 out.

---
 .../sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C      | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C
index 76b376d3b5a..cdfe5ffc226 100644
--- a/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C
+++ b/src/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotion.C
@@ -61,7 +61,7 @@ void Foam::sixDoFRigidBodyMotion::applyConstraints(scalar deltaT)
     {
         label iter = 0;
 
-        bool converged = true;
+        bool allConverged = true;
 
         // constraint force accumulator
         vector cFA = vector::zero;
@@ -86,7 +86,7 @@ void Foam::sixDoFRigidBodyMotion::applyConstraints(scalar deltaT)
 
             }
 
-            converged = true;
+            allConverged = true;
 
             forAll(constraints_, cI)
             {
@@ -101,7 +101,7 @@ void Foam::sixDoFRigidBodyMotion::applyConstraints(scalar deltaT)
                 // constraint moment
                 vector cM = vector::zero;
 
-                converged = converged && constraints_[cI].constrain
+                bool constraintConverged = constraints_[cI].constrain
                 (
                     *this,
                     cFA,
@@ -112,6 +112,8 @@ void Foam::sixDoFRigidBodyMotion::applyConstraints(scalar deltaT)
                     cM
                 );
 
+                allConverged = allConverged && constraintConverged;
+
                 // Accumulate constraint force
                 cFA += cF;
 
@@ -119,7 +121,7 @@ void Foam::sixDoFRigidBodyMotion::applyConstraints(scalar deltaT)
                 cMA += cM + ((cP - centreOfMass()) ^ cF);
             }
 
-        } while(!converged);
+        } while(!allConverged);
 
         Info<< "Constraints converged in " << iter << " iterations" << nl
             << "Constraint force: " << cFA << nl
-- 
GitLab