diff --git a/src/functionObjects/field/momentum/momentum.C b/src/functionObjects/field/momentum/momentum.C
index 0162732793bbb69c4cdf8a17b8267bd96f4a7fe1..414dee04d8308a3cdbf8f81016938a15e2c59471 100644
--- a/src/functionObjects/field/momentum/momentum.C
+++ b/src/functionObjects/field/momentum/momentum.C
@@ -177,11 +177,22 @@ void Foam::functionObjects::momentum::calc()
 
 
         // Global to local
+        {
+            const auto& C = mesh_.C();
+            angularVel.primitiveFieldRef() =
+                csys_.invTransform(C, U.internalField());
 
-        angularVel.primitiveFieldRef() =
-            csys_.invTransform(mesh_.cellCentres(), U.internalField());
-
-        angularVel.correctBoundaryConditions();
+            auto& bfld = angularVel.boundaryFieldRef();
+            forAll(bfld, patchi)
+            {
+                bfld[patchi] = csys_.invTransform
+                (
+                    C.boundaryField()[patchi],
+                    U.boundaryField()[patchi]
+                );
+            }
+            angularVel.correctBoundaryConditions();
+        }
 
         if (rhoPtr)
         {