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