From 3e70154ff1db07a2a320760c171949bd1f2d0439 Mon Sep 17 00:00:00 2001
From: sergio <s.ferraris@opencfd.co.uk>
Date: Mon, 26 Jul 2021 11:03:30 -0700
Subject: [PATCH] BUG: Fixing movingWall BC mesh flux

---
 .../movingWallVelocityFvPatchVectorField.C         | 14 +++++++++-----
 .../movingWallVelocityFvPatchVectorField.H         |  2 +-
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.C
index 7a9c170d7a3..65704e0b1a8 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.C
@@ -94,7 +94,7 @@ movingWallVelocityFvPatchVectorField
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 Foam::tmp<Foam::vectorField>
-Foam::movingWallVelocityFvPatchVectorField::Uwall() const
+Foam::movingWallVelocityFvPatchVectorField::Uwall()
 {
     const fvMesh& mesh = internalField().mesh();
     const fvPatch& p = patch();
@@ -112,10 +112,13 @@ Foam::movingWallVelocityFvPatchVectorField::Uwall() const
 
     const vectorField Up((pp.faceCentres() - oldFc)/deltaT);
 
-    const auto& U = static_cast<const volVectorField&>(internalField());
+    const volVectorField& U =
+        static_cast<const volVectorField&>(internalField());
 
-    tmp<scalarField> phip =
-        p.patchField<surfaceScalarField, scalar>(fvc::meshPhi(U));
+    scalarField phip
+    (
+        p.patchField<surfaceScalarField, scalar>(fvc::meshPhi(U))
+    );
 
     const vectorField n(p.nf());
     const scalarField& magSf = p.magSf();
@@ -136,7 +139,8 @@ void Foam::movingWallVelocityFvPatchVectorField::updateCoeffs()
 
     if (mesh.moving())
     {
-        vectorField::operator=(Uwall()());
+        const vectorField uwall(Uwall());
+        vectorField::operator=(uwall);
     }
 
     fixedValueFvPatchVectorField::updateCoeffs();
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.H
index 9b5b05cd7ec..f6a9ff26896 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.H
@@ -142,7 +142,7 @@ public:
     // Member Functions
 
         //- Return wall velocity field
-        tmp<vectorField> Uwall() const;
+        tmp<vectorField> Uwall();
 
         //- Update the coefficients associated with the patch field
         virtual void updateCoeffs();
-- 
GitLab