diff --git a/src/OpenFOAM/primitives/transform/transform.H b/src/OpenFOAM/primitives/transform/transform.H
index 646ba7734f811fafa5795707dcc8837ede46f89c..9fd1318acc76db78e02592ebe11305867b6448b9 100644
--- a/src/OpenFOAM/primitives/transform/transform.H
+++ b/src/OpenFOAM/primitives/transform/transform.H
@@ -119,6 +119,29 @@ inline tensor Rz(const scalar& omega)
 }
 
 
+//- Rotational transformation tensor about axis a by omega radians
+inline tensor Ra(const vector& a, const scalar omega)
+{
+    const scalar s = sin(omega);
+    const scalar c = cos(omega);
+
+    return tensor
+    (
+        sqr(a.x())*(1 - c)  + c,
+        a.y()*a.x()*(1 - c) + a.z()*s,
+        a.x()*a.z()*(1 - c) - a.y()*s,
+
+        a.x()*a.y()*(1 - c) - a.z()*s,
+        sqr(a.y())*(1 - c)  + c,
+        a.y()*a.z()*(1 - c) + a.x()*s,
+
+        a.x()*a.z()*(1 - c) + a.y()*s,
+        a.y()*a.z()*(1 - c) - a.x()*s,
+        sqr(a.z())*(1 - c)  + c
+    );
+}
+
+
 inline label transform(const tensor&, const bool i)
 {
     return i;