diff --git a/src/OpenFOAM/primitives/Scalar/Scalar.H b/src/OpenFOAM/primitives/Scalar/Scalar.H
index 4d8f29ff54b8bffc2b9dbec835de118bd570bdab..d3cf2beca4e22e9b78890787ba9a2f2f9deb0665 100644
--- a/src/OpenFOAM/primitives/Scalar/Scalar.H
+++ b/src/OpenFOAM/primitives/Scalar/Scalar.H
@@ -302,11 +302,18 @@ inline Scalar cmptAv(const Scalar s)
 }
 
 
+inline Scalar cmptSqr(const Scalar s)
+{
+    return sqr(s);
+}
+
+
 inline Scalar cmptMag(const Scalar s)
 {
     return mag(s);
 }
 
+
 inline Scalar sqrtSumSqr(const Scalar a, const Scalar b)
 {
     Scalar maga = mag(a);
@@ -323,7 +330,7 @@ inline Scalar sqrtSumSqr(const Scalar a, const Scalar b)
 }
 
 
-// Stabilisation around zero for division
+//- Stabilisation around zero for division
 inline Scalar stabilise(const Scalar s, const Scalar small)
 {
     if (s >= 0)
diff --git a/src/OpenFOAM/primitives/VectorSpace/VectorSpaceI.H b/src/OpenFOAM/primitives/VectorSpace/VectorSpaceI.H
index f90adbb0ff27888fa99f97e17a17d2a249123918..1a9f5de226dbb5397474836533b16bbad8bef98f 100644
--- a/src/OpenFOAM/primitives/VectorSpace/VectorSpaceI.H
+++ b/src/OpenFOAM/primitives/VectorSpace/VectorSpaceI.H
@@ -537,6 +537,18 @@ inline Cmpt cmptProduct
 }
 
 
+template<class Form, class Cmpt, direction Ncmpts>
+inline Form cmptSqr
+(
+    const VectorSpace<Form, Cmpt, Ncmpts>& vs
+)
+{
+    Form v;
+    VectorSpaceOps<Ncmpts,0>::eqOp(v, vs, eqSqrOp<Cmpt>());
+    return v;
+}
+
+
 template<class Form, class Cmpt, direction Ncmpts>
 inline Form cmptMag
 (
diff --git a/src/OpenFOAM/primitives/ops/ops.H b/src/OpenFOAM/primitives/ops/ops.H
index 0db26d0026109fe49f2e008d85aa96de1c3c88a8..664947870ec9efdaa9244734ac9d440c5cec2e7f 100644
--- a/src/OpenFOAM/primitives/ops/ops.H
+++ b/src/OpenFOAM/primitives/ops/ops.H
@@ -72,6 +72,7 @@ EqOp(plusEq, x += y)
 EqOp(minusEq, x -= y)
 EqOp(multiplyEq, x *= y)
 EqOp(divideEq, x /= y)
+EqOp(eqSqr, x = sqr(y))
 EqOp(eqMag, x = mag(y))
 EqOp(plusEqMagSqr, x += magSqr(y))
 EqOp(maxEq, x = max(x, y))