diff --git a/src/OpenFOAM/primitives/Scalar/Scalar.H b/src/OpenFOAM/primitives/Scalar/Scalar.H index 4d8f29ff54..d3cf2beca4 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 f90adbb0ff..1a9f5de226 100644 --- a/src/OpenFOAM/primitives/VectorSpace/VectorSpaceI.H +++ b/src/OpenFOAM/primitives/VectorSpace/VectorSpaceI.H @@ -537,6 +537,18 @@ inline Cmpt cmptProduct } +template +inline Form cmptSqr +( + const VectorSpace& vs +) +{ + Form v; + VectorSpaceOps::eqOp(v, vs, eqSqrOp()); + return v; +} + + template inline Form cmptMag ( diff --git a/src/OpenFOAM/primitives/ops/ops.H b/src/OpenFOAM/primitives/ops/ops.H index 0db26d0026..664947870e 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))