From 8a2857e730eadb4d1f1ae30b46009014e0130417 Mon Sep 17 00:00:00 2001
From: sergio <s.ferraris@opencfd.co.uk>
Date: Mon, 13 Jul 2020 08:51:41 -0700
Subject: [PATCH] BUG: dynamicMotionSolverListFvMesh uses same points0 as
 reference. Fixes #1702

points0 based motion solvers now registers the initial points named
'points0' which can be looked by solvers which need a reference.
---
 .../dynamicMotionSolverListFvMesh.C                       | 8 +++++---
 .../displacement/points0/points0MotionSolver.C            | 6 +++---
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/dynamicFvMesh/dynamicMotionSolverListFvMesh/dynamicMotionSolverListFvMesh.C b/src/dynamicFvMesh/dynamicMotionSolverListFvMesh/dynamicMotionSolverListFvMesh.C
index f9b0c7ba67c..4a45a165668 100644
--- a/src/dynamicFvMesh/dynamicMotionSolverListFvMesh/dynamicMotionSolverListFvMesh.C
+++ b/src/dynamicFvMesh/dynamicMotionSolverListFvMesh/dynamicMotionSolverListFvMesh.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2016 OpenFOAM Foundation
-    Copyright (C) 2019 OpenCFD Ltd.
+    Copyright (C) 2020 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -119,12 +119,14 @@ bool Foam::dynamicMotionSolverListFvMesh::update()
 {
     if (motionSolvers_.size())
     {
+        const pointField& initPoints = lookupObjectRef<pointField>("points0");
+
         // Accumulated displacement
-        pointField disp(motionSolvers_[0].newPoints() - fvMesh::points());
+        pointField disp(motionSolvers_[0].newPoints() - initPoints);
 
         for (label i = 1; i < motionSolvers_.size(); i++)
         {
-            disp += motionSolvers_[i].newPoints() - fvMesh::points();
+            disp += motionSolvers_[i].newPoints() - initPoints;
         }
 
         fvMesh::movePoints(points() + disp);
diff --git a/src/dynamicMesh/motionSolvers/displacement/points0/points0MotionSolver.C b/src/dynamicMesh/motionSolvers/displacement/points0/points0MotionSolver.C
index 9f57740a8e3..a4e3f8c2dae 100644
--- a/src/dynamicMesh/motionSolvers/displacement/points0/points0MotionSolver.C
+++ b/src/dynamicMesh/motionSolvers/displacement/points0/points0MotionSolver.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2012-2017 OpenFOAM Foundation
-    Copyright (C) 2015-2019 OpenCFD Ltd.
+    Copyright (C) 2015-2020 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -56,8 +56,7 @@ Foam::IOobject Foam::points0MotionSolver::points0IO(const polyMesh& mesh)
         polyMesh::meshSubDir,
         mesh,
         IOobject::MUST_READ,
-        IOobject::NO_WRITE,
-        false
+        IOobject::NO_WRITE
     );
 
     // If points0 are located in constant directory, verify their existence
@@ -117,6 +116,7 @@ Foam::points0MotionSolver::points0MotionSolver
                 )
             << exit(FatalError);
     }
+    points0_.rename("points0");
 }
 
 
-- 
GitLab