diff --git a/applications/solvers/combustion/XiFoam/bEqn.H b/applications/solvers/combustion/XiFoam/bEqn.H index 91d211ae2a..7843b331ab 100644 --- a/applications/solvers/combustion/XiFoam/bEqn.H +++ b/applications/solvers/combustion/XiFoam/bEqn.H @@ -223,7 +223,7 @@ if (ign.ignited()) volScalarField R(Gstar*XiEqStar/(XiEqStar - scalar(1))); volScalarField G(R*(XiEq - scalar(1.001))/XiEq); - //R *= (Gstar + 2*mag(dev(symm(fvc::grad(U)))))/Gstar; + //R *= (Gstar + 2*mag(devSymm(fvc::grad(U))))/Gstar; // Solve for the flame wrinkling // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C b/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C index 06b6275fa8..f685cf7128 100644 --- a/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C +++ b/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation - Copyright (C) 2015-2021 OpenCFD Ltd. + Copyright (C) 2015-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -326,7 +326,7 @@ int main(int argc, char *argv[]) volScalarField nut(calcNut(mesh, U)); // Blend nut using boundary layer profile - volScalarField S("S", mag(dev(symm(fvc::grad(U))))); + volScalarField S("S", mag(devSymm(fvc::grad(U)))); nut = (1 - mask)*nut + mask*sqr(kappa*min(y, ybl))*::sqrt(2)*S; // Do not correct BC - wall functions will 'undo' manipulation above diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedSymmTensorField/DimensionedSymmTensorField.C b/src/OpenFOAM/fields/DimensionedFields/DimensionedSymmTensorField/DimensionedSymmTensorField.C index bf608858f1..37f8e2dfdc 100644 --- a/src/OpenFOAM/fields/DimensionedFields/DimensionedSymmTensorField/DimensionedSymmTensorField.C +++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedSymmTensorField/DimensionedSymmTensorField.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2015 OpenFOAM Foundation + Copyright (C) 2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -45,6 +46,8 @@ UNARY_FUNCTION(scalar, symmTensor, tr, transform) UNARY_FUNCTION(sphericalTensor, symmTensor, sph, transform) UNARY_FUNCTION(symmTensor, symmTensor, symm, transform) UNARY_FUNCTION(symmTensor, symmTensor, twoSymm, transform) +UNARY_FUNCTION(symmTensor, symmTensor, devSymm, transform) +UNARY_FUNCTION(symmTensor, symmTensor, devTwoSymm, transform) UNARY_FUNCTION(symmTensor, symmTensor, dev, transform) UNARY_FUNCTION(symmTensor, symmTensor, dev2, transform) UNARY_FUNCTION(scalar, symmTensor, det, pow3) diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedSymmTensorField/DimensionedSymmTensorField.H b/src/OpenFOAM/fields/DimensionedFields/DimensionedSymmTensorField/DimensionedSymmTensorField.H index e66715427b..00908841cc 100644 --- a/src/OpenFOAM/fields/DimensionedFields/DimensionedSymmTensorField/DimensionedSymmTensorField.H +++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedSymmTensorField/DimensionedSymmTensorField.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation + Copyright (C) 2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -57,6 +58,8 @@ UNARY_FUNCTION(scalar, symmTensor, tr, transform) UNARY_FUNCTION(sphericalTensor, symmTensor, sph, transform) UNARY_FUNCTION(symmTensor, symmTensor, symm, transform) UNARY_FUNCTION(symmTensor, symmTensor, twoSymm, transform) +UNARY_FUNCTION(symmTensor, symmTensor, devSymm, transform) +UNARY_FUNCTION(symmTensor, symmTensor, devTwoSymm, transform) UNARY_FUNCTION(symmTensor, symmTensor, dev, transform) UNARY_FUNCTION(symmTensor, symmTensor, dev2, transform) UNARY_FUNCTION(scalar, symmTensor, det, transform) diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedTensorField/DimensionedTensorField.C b/src/OpenFOAM/fields/DimensionedFields/DimensionedTensorField/DimensionedTensorField.C index 015b61fafe..6f85cf3031 100644 --- a/src/OpenFOAM/fields/DimensionedFields/DimensionedTensorField/DimensionedTensorField.C +++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedTensorField/DimensionedTensorField.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2013 OpenFOAM Foundation - Copyright (C) 2020-2021 OpenCFD Ltd. + Copyright (C) 2020-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -43,6 +43,8 @@ UNARY_FUNCTION(scalar, tensor, tr, transform) UNARY_FUNCTION(sphericalTensor, tensor, sph, transform) UNARY_FUNCTION(symmTensor, tensor, symm, transform) UNARY_FUNCTION(symmTensor, tensor, twoSymm, transform) +UNARY_FUNCTION(symmTensor, tensor, devSymm, transform) +UNARY_FUNCTION(symmTensor, tensor, devTwoSymm, transform) UNARY_FUNCTION(tensor, tensor, skew, transform) UNARY_FUNCTION(tensor, tensor, dev, transform) UNARY_FUNCTION(tensor, tensor, dev2, transform) diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedTensorField/DimensionedTensorField.H b/src/OpenFOAM/fields/DimensionedFields/DimensionedTensorField/DimensionedTensorField.H index 4ed25cefa0..2f5e2c69f0 100644 --- a/src/OpenFOAM/fields/DimensionedFields/DimensionedTensorField/DimensionedTensorField.H +++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedTensorField/DimensionedTensorField.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation - Copyright (C) 2020-2021 OpenCFD Ltd. + Copyright (C) 2020-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -56,6 +56,8 @@ UNARY_FUNCTION(scalar, tensor, tr, transform) UNARY_FUNCTION(sphericalTensor, tensor, sph, transform) UNARY_FUNCTION(symmTensor, tensor, symm, transform) UNARY_FUNCTION(symmTensor, tensor, twoSymm, transform) +UNARY_FUNCTION(symmTensor, tensor, devSymm, transform) +UNARY_FUNCTION(symmTensor, tensor, devTwoSymm, transform) UNARY_FUNCTION(tensor, tensor, skew, transform) UNARY_FUNCTION(tensor, tensor, dev, transform) UNARY_FUNCTION(tensor, tensor, dev2, transform) diff --git a/src/OpenFOAM/fields/FieldFields/symmTensorFieldField/symmTensorFieldField.C b/src/OpenFOAM/fields/FieldFields/symmTensorFieldField/symmTensorFieldField.C index 9692042a69..d6845c978a 100644 --- a/src/OpenFOAM/fields/FieldFields/symmTensorFieldField/symmTensorFieldField.C +++ b/src/OpenFOAM/fields/FieldFields/symmTensorFieldField/symmTensorFieldField.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2015 OpenFOAM Foundation - Copyright (C) 2019-2022 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -205,6 +205,8 @@ UNARY_FUNCTION(scalar, symmTensor, tr) UNARY_FUNCTION(sphericalTensor, symmTensor, sph) UNARY_FUNCTION(symmTensor, symmTensor, symm) UNARY_FUNCTION(symmTensor, symmTensor, twoSymm) +UNARY_FUNCTION(symmTensor, symmTensor, devSymm) +UNARY_FUNCTION(symmTensor, symmTensor, devTwoSymm) UNARY_FUNCTION(symmTensor, symmTensor, dev) UNARY_FUNCTION(symmTensor, symmTensor, dev2) UNARY_FUNCTION(scalar, symmTensor, det) diff --git a/src/OpenFOAM/fields/FieldFields/symmTensorFieldField/symmTensorFieldField.H b/src/OpenFOAM/fields/FieldFields/symmTensorFieldField/symmTensorFieldField.H index 37cb8f67de..f1341ba414 100644 --- a/src/OpenFOAM/fields/FieldFields/symmTensorFieldField/symmTensorFieldField.H +++ b/src/OpenFOAM/fields/FieldFields/symmTensorFieldField/symmTensorFieldField.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation - Copyright (C) 2019-2022 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -155,6 +155,8 @@ UNARY_FUNCTION(scalar, symmTensor, tr) UNARY_FUNCTION(sphericalTensor, symmTensor, sph) UNARY_FUNCTION(symmTensor, symmTensor, symm) UNARY_FUNCTION(symmTensor, symmTensor, twoSymm) +UNARY_FUNCTION(symmTensor, symmTensor, devSymm) +UNARY_FUNCTION(symmTensor, symmTensor, devTwoSymm) UNARY_FUNCTION(symmTensor, symmTensor, dev) UNARY_FUNCTION(symmTensor, symmTensor, dev2) UNARY_FUNCTION(scalar, symmTensor, det) diff --git a/src/OpenFOAM/fields/FieldFields/tensorFieldField/tensorFieldField.C b/src/OpenFOAM/fields/FieldFields/tensorFieldField/tensorFieldField.C index f6e5c647f5..bfb7153d11 100644 --- a/src/OpenFOAM/fields/FieldFields/tensorFieldField/tensorFieldField.C +++ b/src/OpenFOAM/fields/FieldFields/tensorFieldField/tensorFieldField.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011 OpenFOAM Foundation - Copyright (C) 2019-2022 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -208,6 +208,8 @@ UNARY_FUNCTION(scalar, tensor, tr) UNARY_FUNCTION(sphericalTensor, tensor, sph) UNARY_FUNCTION(symmTensor, tensor, symm) UNARY_FUNCTION(symmTensor, tensor, twoSymm) +UNARY_FUNCTION(symmTensor, tensor, devSymm) +UNARY_FUNCTION(symmTensor, tensor, devTwoSymm) UNARY_FUNCTION(tensor, tensor, skew) UNARY_FUNCTION(tensor, tensor, dev) UNARY_FUNCTION(tensor, tensor, dev2) diff --git a/src/OpenFOAM/fields/FieldFields/tensorFieldField/tensorFieldField.H b/src/OpenFOAM/fields/FieldFields/tensorFieldField/tensorFieldField.H index ac20dffdda..11b60e5334 100644 --- a/src/OpenFOAM/fields/FieldFields/tensorFieldField/tensorFieldField.H +++ b/src/OpenFOAM/fields/FieldFields/tensorFieldField/tensorFieldField.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation - Copyright (C) 2019-2022 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -160,6 +160,8 @@ UNARY_FUNCTION(scalar, tensor, tr) UNARY_FUNCTION(sphericalTensor, tensor, sph) UNARY_FUNCTION(symmTensor, tensor, symm) UNARY_FUNCTION(symmTensor, tensor, twoSymm) +UNARY_FUNCTION(symmTensor, tensor, devSymm) +UNARY_FUNCTION(symmTensor, tensor, devTwoSymm) UNARY_FUNCTION(tensor, tensor, skew) UNARY_FUNCTION(tensor, tensor, dev) UNARY_FUNCTION(tensor, tensor, dev2) diff --git a/src/OpenFOAM/fields/Fields/symmTensorField/symmTensorField.H b/src/OpenFOAM/fields/Fields/symmTensorField/symmTensorField.H index 342b483d18..55378a9b0f 100644 --- a/src/OpenFOAM/fields/Fields/symmTensorField/symmTensorField.H +++ b/src/OpenFOAM/fields/Fields/symmTensorField/symmTensorField.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2015 OpenFOAM Foundation - Copyright (C) 2019-2022 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -200,6 +200,8 @@ UNARY_FUNCTION(scalar, symmTensor, tr) UNARY_FUNCTION(sphericalTensor, symmTensor, sph) UNARY_FUNCTION(symmTensor, symmTensor, symm) UNARY_FUNCTION(symmTensor, symmTensor, twoSymm) +UNARY_FUNCTION(symmTensor, symmTensor, devSymm) +UNARY_FUNCTION(symmTensor, symmTensor, devTwoSymm) UNARY_FUNCTION(symmTensor, symmTensor, dev) UNARY_FUNCTION(symmTensor, symmTensor, dev2) UNARY_FUNCTION(scalar, symmTensor, det) diff --git a/src/OpenFOAM/fields/Fields/tensorField/tensorField.C b/src/OpenFOAM/fields/Fields/tensorField/tensorField.C index 9b343fa5a0..261f2c563e 100644 --- a/src/OpenFOAM/fields/Fields/tensorField/tensorField.C +++ b/src/OpenFOAM/fields/Fields/tensorField/tensorField.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation - Copyright (C) 2019-2022 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -44,6 +44,8 @@ UNARY_FUNCTION(scalar, tensor, tr) UNARY_FUNCTION(sphericalTensor, tensor, sph) UNARY_FUNCTION(symmTensor, tensor, symm) UNARY_FUNCTION(symmTensor, tensor, twoSymm) +UNARY_FUNCTION(symmTensor, tensor, devSymm) +UNARY_FUNCTION(symmTensor, tensor, devTwoSymm) UNARY_FUNCTION(tensor, tensor, skew) UNARY_FUNCTION(tensor, tensor, dev) UNARY_FUNCTION(tensor, tensor, dev2) diff --git a/src/OpenFOAM/fields/Fields/tensorField/tensorField.H b/src/OpenFOAM/fields/Fields/tensorField/tensorField.H index 607f01f683..1d8404462b 100644 --- a/src/OpenFOAM/fields/Fields/tensorField/tensorField.H +++ b/src/OpenFOAM/fields/Fields/tensorField/tensorField.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011 OpenFOAM Foundation - Copyright (C) 2019-2022 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -184,6 +184,8 @@ UNARY_FUNCTION(scalar, tensor, tr) UNARY_FUNCTION(sphericalTensor, tensor, sph) UNARY_FUNCTION(symmTensor, tensor, symm) UNARY_FUNCTION(symmTensor, tensor, twoSymm) +UNARY_FUNCTION(symmTensor, tensor, devSymm) +UNARY_FUNCTION(symmTensor, tensor, devTwoSymm) UNARY_FUNCTION(tensor, tensor, skew) UNARY_FUNCTION(tensor, tensor, dev) UNARY_FUNCTION(tensor, tensor, dev2) diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricSymmTensorField/GeometricSymmTensorField.C b/src/OpenFOAM/fields/GeometricFields/GeometricSymmTensorField/GeometricSymmTensorField.C index 162987ef8f..e180372ff1 100644 --- a/src/OpenFOAM/fields/GeometricFields/GeometricSymmTensorField/GeometricSymmTensorField.C +++ b/src/OpenFOAM/fields/GeometricFields/GeometricSymmTensorField/GeometricSymmTensorField.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2015 OpenFOAM Foundation - Copyright (C) 2019-2022 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -257,6 +257,8 @@ UNARY_FUNCTION(scalar, symmTensor, tr, transform) UNARY_FUNCTION(sphericalTensor, symmTensor, sph, transform) UNARY_FUNCTION(symmTensor, symmTensor, symm, transform) UNARY_FUNCTION(symmTensor, symmTensor, twoSymm, transform) +UNARY_FUNCTION(symmTensor, symmTensor, devSymm, transform) +UNARY_FUNCTION(symmTensor, symmTensor, devTwoSymm, transform) UNARY_FUNCTION(symmTensor, symmTensor, dev, transform) UNARY_FUNCTION(symmTensor, symmTensor, dev2, transform) UNARY_FUNCTION(scalar, symmTensor, det, pow3) diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricSymmTensorField/GeometricSymmTensorField.H b/src/OpenFOAM/fields/GeometricFields/GeometricSymmTensorField/GeometricSymmTensorField.H index 402eeadd90..2cb406b370 100644 --- a/src/OpenFOAM/fields/GeometricFields/GeometricSymmTensorField/GeometricSymmTensorField.H +++ b/src/OpenFOAM/fields/GeometricFields/GeometricSymmTensorField/GeometricSymmTensorField.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation - Copyright (C) 2019-2022 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -156,6 +156,8 @@ UNARY_FUNCTION(scalar, symmTensor, tr, transform) UNARY_FUNCTION(sphericalTensor, symmTensor, sph, transform) UNARY_FUNCTION(symmTensor, symmTensor, symm, transform) UNARY_FUNCTION(symmTensor, symmTensor, twoSymm, transform) +UNARY_FUNCTION(symmTensor, symmTensor, devSymm, transform) +UNARY_FUNCTION(symmTensor, symmTensor, devTwoSymm, transform) UNARY_FUNCTION(symmTensor, symmTensor, dev, transform) UNARY_FUNCTION(symmTensor, symmTensor, dev2, transform) UNARY_FUNCTION(scalar, symmTensor, det, transform) diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricTensorField/GeometricTensorField.C b/src/OpenFOAM/fields/GeometricFields/GeometricTensorField/GeometricTensorField.C index 9bbda4c3f2..dc49e7609e 100644 --- a/src/OpenFOAM/fields/GeometricFields/GeometricTensorField/GeometricTensorField.C +++ b/src/OpenFOAM/fields/GeometricFields/GeometricTensorField/GeometricTensorField.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2013 OpenFOAM Foundation - Copyright (C) 2019-2022 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -261,6 +261,8 @@ UNARY_FUNCTION(scalar, tensor, tr, transform) UNARY_FUNCTION(sphericalTensor, tensor, sph, transform) UNARY_FUNCTION(symmTensor, tensor, symm, transform) UNARY_FUNCTION(symmTensor, tensor, twoSymm, transform) +UNARY_FUNCTION(symmTensor, tensor, devSymm, transform) +UNARY_FUNCTION(symmTensor, tensor, devTwoSymm, transform) UNARY_FUNCTION(tensor, tensor, skew, transform) UNARY_FUNCTION(tensor, tensor, dev, transform) UNARY_FUNCTION(tensor, tensor, dev2, transform) diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricTensorField/GeometricTensorField.H b/src/OpenFOAM/fields/GeometricFields/GeometricTensorField/GeometricTensorField.H index 345919de23..6589661334 100644 --- a/src/OpenFOAM/fields/GeometricFields/GeometricTensorField/GeometricTensorField.H +++ b/src/OpenFOAM/fields/GeometricFields/GeometricTensorField/GeometricTensorField.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation - Copyright (C) 2019-2022 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -160,6 +160,8 @@ UNARY_FUNCTION(scalar, tensor, tr, transform) UNARY_FUNCTION(sphericalTensor, tensor, sph, transform) UNARY_FUNCTION(symmTensor, tensor, symm, transform) UNARY_FUNCTION(symmTensor, tensor, twoSymm, transform) +UNARY_FUNCTION(symmTensor, tensor, devSymm, transform) +UNARY_FUNCTION(symmTensor, tensor, devTwoSymm, transform) UNARY_FUNCTION(tensor, tensor, skew, transform) UNARY_FUNCTION(tensor, tensor, dev, transform) UNARY_FUNCTION(tensor, tensor, dev2, transform) diff --git a/src/OpenFOAM/primitives/SymmTensor/SymmTensorI.H b/src/OpenFOAM/primitives/SymmTensor/SymmTensorI.H index 5c28c6c2bc..3b654f175f 100644 --- a/src/OpenFOAM/primitives/SymmTensor/SymmTensorI.H +++ b/src/OpenFOAM/primitives/SymmTensor/SymmTensorI.H @@ -473,6 +473,22 @@ inline SymmTensor twoSymm(const SymmTensor& st) } +//- Return the deviatoric part of the symmetric part of a SymmTensor +template +inline SymmTensor devSymm(const SymmTensor& st) +{ + return dev(st); +} + + +//- Return the deviatoric part of twice the symmetric part of a SymmTensor +template +inline SymmTensor devTwoSymm(const SymmTensor& st) +{ + return dev2(st); +} + + //- Return the deviatoric part of a SymmTensor template inline SymmTensor dev(const SymmTensor& st) diff --git a/src/OpenFOAM/primitives/Tensor/TensorI.H b/src/OpenFOAM/primitives/Tensor/TensorI.H index b389f12ee1..a2b47628e6 100644 --- a/src/OpenFOAM/primitives/Tensor/TensorI.H +++ b/src/OpenFOAM/primitives/Tensor/TensorI.H @@ -760,6 +760,36 @@ inline SymmTensor twoSymm(const Tensor& t) } +//- Return the deviatoric part of the symmetric part of a Tensor +template +inline SymmTensor devSymm(const Tensor& t) +{ + const Cmpt sph(tr(t)/3.0); + + return SymmTensor + ( + t.xx() - sph, 0.5*(t.xy() + t.yx()), 0.5*(t.xz() + t.zx()), + t.yy() - sph, 0.5*(t.yz() + t.zy()), + t.zz() - sph + ); +} + + +//- Return the deviatoric part of twice the symmetric part of a Tensor +template +inline SymmTensor devTwoSymm(const Tensor& t) +{ + const Cmpt sph((2.0/3.0)*tr(t)); + + return SymmTensor + ( + 2*t.xx() - sph, (t.xy() + t.yx()), (t.xz() + t.zx()), + 2*t.yy() - sph, (t.yz() + t.zy()), + 2*t.zz() - sph + ); +} + + //- Return the skew-symmetric part of a Tensor template inline Tensor skew(const Tensor& t) diff --git a/src/TurbulenceModels/incompressible/turbulentTransportModels/RAS/LienCubicKE/LienCubicKE.C b/src/TurbulenceModels/incompressible/turbulentTransportModels/RAS/LienCubicKE/LienCubicKE.C index b1c9393255..cc03139c53 100644 --- a/src/TurbulenceModels/incompressible/turbulentTransportModels/RAS/LienCubicKE/LienCubicKE.C +++ b/src/TurbulenceModels/incompressible/turbulentTransportModels/RAS/LienCubicKE/LienCubicKE.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -107,7 +107,7 @@ void LienCubicKE::correctNonlinearStress(const volTensorField& gradU) *( Cbeta1_*dev(innerSqr(S)) + Cbeta2_*twoSymm(S&W) - + Cbeta3_*dev(symm(W&W)) + + Cbeta3_*devSymm(W&W) ) // Cubic terms diff --git a/src/TurbulenceModels/incompressible/turbulentTransportModels/RAS/ShihQuadraticKE/ShihQuadraticKE.C b/src/TurbulenceModels/incompressible/turbulentTransportModels/RAS/ShihQuadraticKE/ShihQuadraticKE.C index 53cebf634b..727ee0ddef 100644 --- a/src/TurbulenceModels/incompressible/turbulentTransportModels/RAS/ShihQuadraticKE/ShihQuadraticKE.C +++ b/src/TurbulenceModels/incompressible/turbulentTransportModels/RAS/ShihQuadraticKE/ShihQuadraticKE.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2019-2021 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -71,7 +71,7 @@ void ShihQuadraticKE::correctNonlinearStress(const volTensorField& gradU) *( Cbeta1_*dev(innerSqr(S)) + Cbeta2_*twoSymm(S&W) - + Cbeta3_*dev(symm(W&W)) + + Cbeta3_*devSymm(W&W) ); } diff --git a/src/TurbulenceModels/incompressible/turbulentTransportModels/RAS/kkLOmega/kkLOmega.C b/src/TurbulenceModels/incompressible/turbulentTransportModels/RAS/kkLOmega/kkLOmega.C index 7cb08f8398..149940e33c 100644 --- a/src/TurbulenceModels/incompressible/turbulentTransportModels/RAS/kkLOmega/kkLOmega.C +++ b/src/TurbulenceModels/incompressible/turbulentTransportModels/RAS/kkLOmega/kkLOmega.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -626,7 +626,7 @@ void kkLOmega::correct() const volScalarField Omega(sqrt(2.0)*mag(skew(gradU))); - const volScalarField S2(2.0*magSqr(dev(symm(gradU)))); + const volScalarField S2(2.0*magSqr(devSymm(gradU))); const volScalarField ktS(fSS(Omega)*fw*kt_); diff --git a/src/TurbulenceModels/phaseCompressible/RAS/continuousGasKEpsilon/continuousGasKEpsilon.C b/src/TurbulenceModels/phaseCompressible/RAS/continuousGasKEpsilon/continuousGasKEpsilon.C index 8b049d3ec1..a7360fb71f 100644 --- a/src/TurbulenceModels/phaseCompressible/RAS/continuousGasKEpsilon/continuousGasKEpsilon.C +++ b/src/TurbulenceModels/phaseCompressible/RAS/continuousGasKEpsilon/continuousGasKEpsilon.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2013-2017 OpenFOAM Foundation - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -292,7 +292,7 @@ continuousGasKEpsilon::R() const IOobject::NO_READ, IOobject::NO_WRITE ), - ((2.0/3.0)*I)*tk() - (nutEff_)*dev(twoSymm(fvc::grad(this->U_))), + ((2.0/3.0)*I)*tk() - (nutEff_)*devTwoSymm(fvc::grad(this->U_)), tk().boundaryField().types() ) ); diff --git a/src/TurbulenceModels/phaseCompressible/RAS/mixtureKEpsilon/mixtureKEpsilon.C b/src/TurbulenceModels/phaseCompressible/RAS/mixtureKEpsilon/mixtureKEpsilon.C index ab153b6641..b2c743253c 100644 --- a/src/TurbulenceModels/phaseCompressible/RAS/mixtureKEpsilon/mixtureKEpsilon.C +++ b/src/TurbulenceModels/phaseCompressible/RAS/mixtureKEpsilon/mixtureKEpsilon.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2013-2017 OpenFOAM Foundation - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -612,7 +612,7 @@ void mixtureKEpsilon::correct() new volScalarField ( this->GName(), - nutl*(tgradUl() && dev(twoSymm(tgradUl()))) + nutl*(tgradUl() && devTwoSymm(tgradUl())) ) ); tgradUl.clear(); @@ -632,7 +632,7 @@ void mixtureKEpsilon::correct() new volScalarField ( this->GName(), - nutg*(tgradUg() && dev(twoSymm(tgradUg()))) + nutg*(tgradUg() && devTwoSymm(tgradUg())) ) ); tgradUg.clear(); diff --git a/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.C b/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.C index ea031c6769..80f5bfa87a 100644 --- a/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.C +++ b/src/TurbulenceModels/turbulenceModels/Base/kOmegaSST/kOmegaSSTBase.C @@ -7,7 +7,7 @@ ------------------------------------------------------------------------------- Copyright (C) 2011-2015 OpenFOAM Foundation Copyright (C) 2022 Upstream CFD GmbH - Copyright (C) 2016-2022 OpenCFD Ltd. + Copyright (C) 2016-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -174,7 +174,7 @@ tmp kOmegaSSTBase::GbyNu0 return tmp::New ( IOobject::scopedName(this->type(), "GbyNu"), - gradU() && dev(twoSymm(gradU())) + gradU() && devTwoSymm(gradU()) ); } diff --git a/src/TurbulenceModels/turbulenceModels/LES/WALE/WALE.C b/src/TurbulenceModels/turbulenceModels/LES/WALE/WALE.C index 655057bfe8..b80431c189 100644 --- a/src/TurbulenceModels/turbulenceModels/LES/WALE/WALE.C +++ b/src/TurbulenceModels/turbulenceModels/LES/WALE/WALE.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2015-2017 OpenFOAM Foundation - Copyright (C) 2019-2021 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -44,7 +44,7 @@ tmp WALE::Sd const volTensorField& gradU ) const { - return dev(symm(gradU & gradU)); + return devSymm(gradU & gradU); } diff --git a/src/TurbulenceModels/turbulenceModels/LES/dynamicKEqn/dynamicKEqn.C b/src/TurbulenceModels/turbulenceModels/LES/dynamicKEqn/dynamicKEqn.C index bdfc9ef03a..8a25b36b68 100644 --- a/src/TurbulenceModels/turbulenceModels/LES/dynamicKEqn/dynamicKEqn.C +++ b/src/TurbulenceModels/turbulenceModels/LES/dynamicKEqn/dynamicKEqn.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2019-2021 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -96,7 +96,7 @@ volScalarField dynamicKEqn::Ce template volScalarField dynamicKEqn::Ce() const { - const volSymmTensorField D(dev(symm(fvc::grad(this->U_)))); + const volSymmTensorField D(devSymm(fvc::grad(this->U_))); volScalarField KK ( @@ -240,7 +240,7 @@ void dynamicKEqn::correct() volScalarField divU(fvc::div(fvc::absolute(this->phi(), U))); tmp tgradU(fvc::grad(U)); - const volSymmTensorField D(dev(symm(tgradU()))); + const volSymmTensorField D(devSymm(tgradU())); const volScalarField G(this->GName(), 2.0*nut*(tgradU() && D)); tgradU.clear(); diff --git a/src/TurbulenceModels/turbulenceModels/LES/dynamicLagrangian/dynamicLagrangian.C b/src/TurbulenceModels/turbulenceModels/LES/dynamicLagrangian/dynamicLagrangian.C index 09a292f300..1fe8fe751f 100644 --- a/src/TurbulenceModels/turbulenceModels/LES/dynamicLagrangian/dynamicLagrangian.C +++ b/src/TurbulenceModels/turbulenceModels/LES/dynamicLagrangian/dynamicLagrangian.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -44,7 +44,7 @@ void dynamicLagrangian::correctNut const tmp& gradU ) { - this->nut_ = (flm_/fmm_)*sqr(this->delta())*mag(dev(symm(gradU))); + this->nut_ = (flm_/fmm_)*sqr(this->delta())*mag(devSymm(gradU)); this->nut_.correctBoundaryConditions(); fv::options::New(this->mesh_).correct(this->nut_); @@ -171,11 +171,11 @@ void dynamicLagrangian::correct() tmp tgradU(fvc::grad(U)); const volTensorField& gradU = tgradU(); - volSymmTensorField S(dev(symm(gradU))); + volSymmTensorField S(devSymm(gradU)); volScalarField magS(mag(S)); volVectorField Uf(filter_(U)); - volSymmTensorField Sf(dev(symm(fvc::grad(Uf)))); + volSymmTensorField Sf(devSymm(fvc::grad(Uf))); volScalarField magSf(mag(Sf)); volSymmTensorField L(dev(filter_(sqr(U)) - (sqr(filter_(U))))); diff --git a/src/TurbulenceModels/turbulenceModels/LES/kEqn/kEqn.C b/src/TurbulenceModels/turbulenceModels/LES/kEqn/kEqn.C index 72517115a5..50fb5f029f 100644 --- a/src/TurbulenceModels/turbulenceModels/LES/kEqn/kEqn.C +++ b/src/TurbulenceModels/turbulenceModels/LES/kEqn/kEqn.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2020-2021 OpenCFD Ltd. + Copyright (C) 2020-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -160,7 +160,7 @@ void kEqn::correct() volScalarField divU(fvc::div(fvc::absolute(this->phi(), U))); tmp tgradU(fvc::grad(U)); - volScalarField G(this->GName(), nut*(tgradU() && dev(twoSymm(tgradU())))); + volScalarField G(this->GName(), nut*(tgradU() && devTwoSymm(tgradU()))); tgradU.clear(); tmp kEqn diff --git a/src/TurbulenceModels/turbulenceModels/LES/sigma/sigma.C b/src/TurbulenceModels/turbulenceModels/LES/sigma/sigma.C index b806ab0719..7e00c1f589 100644 --- a/src/TurbulenceModels/turbulenceModels/LES/sigma/sigma.C +++ b/src/TurbulenceModels/turbulenceModels/LES/sigma/sigma.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2022 Upstream CFD GmbH - Copyright (C) 2022 OpenCFD Ltd. + Copyright (C) 2022-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -141,7 +141,7 @@ tmp sigma::k() const IOobject::groupName("k", this->U_.group()), (2.0*Ck_/this->Ce_) *sqr(this->delta()) - *magSqr(dev(symm(fvc::grad(this->U_)))) + *magSqr(devSymm(fvc::grad(this->U_))) ); } diff --git a/src/TurbulenceModels/turbulenceModels/RAS/EBRSM/EBRSM.C b/src/TurbulenceModels/turbulenceModels/RAS/EBRSM/EBRSM.C index fa969b6e97..db19a5deff 100644 --- a/src/TurbulenceModels/turbulenceModels/RAS/EBRSM/EBRSM.C +++ b/src/TurbulenceModels/turbulenceModels/RAS/EBRSM/EBRSM.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2022 OpenCFD Ltd. + Copyright (C) 2022-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -524,7 +524,7 @@ void EBRSM::correct() k_ *( (g3_ - g3star_*mag(B))*S - + g4_*dev(twoSymm(B & S)) + + g4_*devTwoSymm(B & S) + g5_*twoSymm(B & W.T()) ); } diff --git a/src/TurbulenceModels/turbulenceModels/RAS/LRR/LRR.C b/src/TurbulenceModels/turbulenceModels/RAS/LRR/LRR.C index ec75293aa1..cb20f989b8 100644 --- a/src/TurbulenceModels/turbulenceModels/RAS/LRR/LRR.C +++ b/src/TurbulenceModels/turbulenceModels/RAS/LRR/LRR.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -365,7 +365,7 @@ void LRR::correct() REqn.ref() += ((3*pow(Cmu_, 0.75)/kappa_)*(alpha*rho*sqrt(k_)/y_)) - *dev(symm((n_ & reflect)*n_)); + *devSymm((n_ & reflect)*n_); } REqn.ref().relax(); diff --git a/src/TurbulenceModels/turbulenceModels/RAS/LaunderSharmaKE/LaunderSharmaKE.C b/src/TurbulenceModels/turbulenceModels/RAS/LaunderSharmaKE/LaunderSharmaKE.C index 92c53833de..f0a84979f4 100644 --- a/src/TurbulenceModels/turbulenceModels/RAS/LaunderSharmaKE/LaunderSharmaKE.C +++ b/src/TurbulenceModels/turbulenceModels/RAS/LaunderSharmaKE/LaunderSharmaKE.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -262,7 +262,7 @@ void LaunderSharmaKE::correct() volScalarField D(2.0*this->nu()*magSqr(fvc::grad(sqrt(k_)))); tmp tgradU = fvc::grad(U); - volScalarField G(this->GName(), nut*(tgradU() && dev(twoSymm(tgradU())))); + volScalarField G(this->GName(), nut*(tgradU() && devTwoSymm(tgradU()))); tgradU.clear(); diff --git a/src/TurbulenceModels/turbulenceModels/RAS/RNGkEpsilon/RNGkEpsilon.C b/src/TurbulenceModels/turbulenceModels/RAS/RNGkEpsilon/RNGkEpsilon.C index a3f8a1ecdd..c70797140b 100644 --- a/src/TurbulenceModels/turbulenceModels/RAS/RNGkEpsilon/RNGkEpsilon.C +++ b/src/TurbulenceModels/turbulenceModels/RAS/RNGkEpsilon/RNGkEpsilon.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -265,7 +265,7 @@ void RNGkEpsilon::correct() const volScalarField::Internal GbyNu ( IOobject::scopedName(this->type(), "GbyNu"), - tgradU().v() && dev(twoSymm(tgradU().v())) + tgradU().v() && devTwoSymm(tgradU().v()) ); tgradU.clear(); diff --git a/src/TurbulenceModels/turbulenceModels/RAS/SSG/SSG.C b/src/TurbulenceModels/turbulenceModels/RAS/SSG/SSG.C index 4b0f5f5b3f..721d7b86b5 100644 --- a/src/TurbulenceModels/turbulenceModels/RAS/SSG/SSG.C +++ b/src/TurbulenceModels/turbulenceModels/RAS/SSG/SSG.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2015-2016 OpenFOAM Foundation - Copyright (C) 2018-2020 OpenCFD Ltd + Copyright (C) 2018-2023 OpenCFD Ltd ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -366,7 +366,7 @@ void SSG::correct() + alpha*rho*k_ *( (C3_ - C3s_*mag(b))*dev(S) - + C4_*dev(twoSymm(b&S)) + + C4_*devTwoSymm(b&S) + C5_*twoSymm(b&Omega) ) + fvOptions(alpha, rho, R) diff --git a/src/TurbulenceModels/turbulenceModels/RAS/kEpsilon/kEpsilon.C b/src/TurbulenceModels/turbulenceModels/RAS/kEpsilon/kEpsilon.C index 4fc4215d2d..62e3aa813b 100644 --- a/src/TurbulenceModels/turbulenceModels/RAS/kEpsilon/kEpsilon.C +++ b/src/TurbulenceModels/turbulenceModels/RAS/kEpsilon/kEpsilon.C @@ -246,7 +246,7 @@ void kEpsilon::correct() const volScalarField::Internal GbyNu ( IOobject::scopedName(this->type(), "GbyNu"), - tgradU().v() && dev(twoSymm(tgradU().v())) + tgradU().v() && devTwoSymm(tgradU().v()) ); const volScalarField::Internal G(this->GName(), nut()*GbyNu); tgradU.clear(); diff --git a/src/TurbulenceModels/turbulenceModels/RAS/kOmega/kOmega.C b/src/TurbulenceModels/turbulenceModels/RAS/kOmega/kOmega.C index a70d2c59e6..0035d5c666 100644 --- a/src/TurbulenceModels/turbulenceModels/RAS/kOmega/kOmega.C +++ b/src/TurbulenceModels/turbulenceModels/RAS/kOmega/kOmega.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -204,7 +204,7 @@ void kOmega::correct() tmp tgradU = fvc::grad(U); const volScalarField::Internal GbyNu ( - tgradU().v() && dev(twoSymm(tgradU().v())) + tgradU().v() && devTwoSymm(tgradU().v()) ); const volScalarField::Internal G(this->GName(), nut()*GbyNu); tgradU.clear(); diff --git a/src/TurbulenceModels/turbulenceModels/RAS/realizableKE/realizableKE.C b/src/TurbulenceModels/turbulenceModels/RAS/realizableKE/realizableKE.C index f519ce37f0..633ec4e00b 100644 --- a/src/TurbulenceModels/turbulenceModels/RAS/realizableKE/realizableKE.C +++ b/src/TurbulenceModels/turbulenceModels/RAS/realizableKE/realizableKE.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -47,7 +47,7 @@ tmp realizableKE::rCmu const volScalarField& magS ) { - tmp tS = dev(symm(gradU)); + tmp tS = devSymm(gradU); const volSymmTensorField& S = tS(); volScalarField W @@ -92,7 +92,7 @@ template void realizableKE::correctNut() { tmp tgradU = fvc::grad(this->U_); - volScalarField S2(2*magSqr(dev(symm(tgradU())))); + volScalarField S2(2*magSqr(devSymm(tgradU()))); volScalarField magS(sqrt(S2)); correctNut(tgradU(), S2, magS); } @@ -266,13 +266,13 @@ void realizableKE::correct() volScalarField divU(fvc::div(fvc::absolute(this->phi(), U))); tmp tgradU = fvc::grad(U); - volScalarField S2(2*magSqr(dev(symm(tgradU())))); + volScalarField S2(2*magSqr(devSymm(tgradU()))); volScalarField magS(sqrt(S2)); volScalarField eta(magS*k_/epsilon_); volScalarField C1(max(eta/(scalar(5) + eta), scalar(0.43))); - volScalarField G(this->GName(), nut*(tgradU() && dev(twoSymm(tgradU())))); + volScalarField G(this->GName(), nut*(tgradU() && devTwoSymm(tgradU()))); // Update epsilon and G at the wall epsilon_.boundaryFieldRef().updateCoeffs(); diff --git a/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.C b/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.C index b71be0e31f..39db48b8ea 100644 --- a/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.C +++ b/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2015-2017 OpenFOAM Foundation - Copyright (C) 2020-2022 OpenCFD Ltd. + Copyright (C) 2020-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -93,7 +93,7 @@ void Foam::ReynoldsStress::correctWallShearStress // Set the wall Reynolds-stress to the near-wall shear-stress // Note: the spherical part of the normal stress is included in // the pressure - Rw[facei] = -nutw[facei]*2*dev(symm(gradUw)); + Rw[facei] = -nutw[facei]*2*devSymm(gradUw); } } } @@ -288,7 +288,7 @@ Foam::ReynoldsStress::devRhoReff ), this->alpha_*this->rho_*R_ - (this->alpha_*this->rho_*this->nu()) - *dev(twoSymm(fvc::grad(U))) + *devTwoSymm(fvc::grad(U)) ) ); } diff --git a/src/TurbulenceModels/turbulenceModels/eddyViscosity/eddyViscosity.C b/src/TurbulenceModels/turbulenceModels/eddyViscosity/eddyViscosity.C index 0a6a0b5d11..47a4e601b6 100644 --- a/src/TurbulenceModels/turbulenceModels/eddyViscosity/eddyViscosity.C +++ b/src/TurbulenceModels/turbulenceModels/eddyViscosity/eddyViscosity.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2013-2017 OpenFOAM Foundation + Copyright (C) 2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -116,7 +117,7 @@ Foam::eddyViscosity::R() const IOobject::NO_WRITE, IOobject::NO_REGISTER ), - ((2.0/3.0)*I)*tk() - (nut_)*dev(twoSymm(fvc::grad(this->U_))), + ((2.0/3.0)*I)*tk() - (nut_)*devTwoSymm(fvc::grad(this->U_)), patchFieldTypes ) ); diff --git a/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.C b/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.C index 6c03e0eb00..adb68b0cb6 100644 --- a/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.C +++ b/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2016-2017 OpenFOAM Foundation - Copyright (C) 2019 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -139,7 +139,7 @@ Maxwell::devRhoReff(const volVectorField& U) const ), this->alpha_*this->rho_*sigma_ - (this->alpha_*this->rho_*this->nu()) - *dev(twoSymm(fvc::grad(U))) + *devTwoSymm(fvc::grad(U)) ) ); } diff --git a/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.C b/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.C index b71797502b..057720d682 100644 --- a/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.C +++ b/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2013-2017 OpenFOAM Foundation + Copyright (C) 2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -95,7 +96,7 @@ Foam::linearViscousStress::devRhoReff IOobject::NO_WRITE ), (-(this->alpha_*this->rho_*this->nuEff())) - *dev(twoSymm(fvc::grad(U))) + *devTwoSymm(fvc::grad(U)) ) ); } diff --git a/src/atmosphericModels/turbulenceModels/RAS/kEpsilonLopesdaCosta/kEpsilonLopesdaCosta.C b/src/atmosphericModels/turbulenceModels/RAS/kEpsilonLopesdaCosta/kEpsilonLopesdaCosta.C index 0506ee878b..ffda9c451e 100644 --- a/src/atmosphericModels/turbulenceModels/RAS/kEpsilonLopesdaCosta/kEpsilonLopesdaCosta.C +++ b/src/atmosphericModels/turbulenceModels/RAS/kEpsilonLopesdaCosta/kEpsilonLopesdaCosta.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2018 OpenFOAM Foundation - Copyright (C) 2018-2020 OpenCFD Ltd. + Copyright (C) 2018-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -415,7 +415,7 @@ void kEpsilonLopesdaCosta::correct() volScalarField::Internal G ( this->GName(), - nut.v()*(dev(twoSymm(tgradU().v())) && tgradU().v()) + nut.v()*(devTwoSymm(tgradU().v()) && tgradU().v()) ); tgradU.clear(); diff --git a/src/atmosphericModels/turbulenceModels/RAS/kL/kL.C b/src/atmosphericModels/turbulenceModels/RAS/kL/kL.C index 5f9222a233..982e3cc705 100644 --- a/src/atmosphericModels/turbulenceModels/RAS/kL/kL.C +++ b/src/atmosphericModels/turbulenceModels/RAS/kL/kL.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2021 OpenCFD Ltd. + Copyright (C) 2021-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -430,7 +430,7 @@ void kL::correct() const volScalarField::Internal G ( this->GName(), - nut.v()*2*magSqr(dev(symm(tgradU.cref().v()))) + nut.v()*2*magSqr(devSymm(tgradU.cref().v())) ); tgradU.clear(); diff --git a/src/functionObjects/field/heatTransferCoeff/heatTransferCoeffModels/ReynoldsAnalogy/ReynoldsAnalogy.C b/src/functionObjects/field/heatTransferCoeff/heatTransferCoeffModels/ReynoldsAnalogy/ReynoldsAnalogy.C index 237cff487f..a0e5a63b67 100644 --- a/src/functionObjects/field/heatTransferCoeff/heatTransferCoeffModels/ReynoldsAnalogy/ReynoldsAnalogy.C +++ b/src/functionObjects/field/heatTransferCoeff/heatTransferCoeffModels/ReynoldsAnalogy/ReynoldsAnalogy.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2017-2022 OpenCFD Ltd. + Copyright (C) 2017-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -126,7 +126,7 @@ Foam::heatTransferCoeffModels::ReynoldsAnalogy::devReff() const const auto& U = mesh_.lookupObject(UName_); - return -thermo.nu()*dev(twoSymm(fvc::grad(U))); + return -thermo.nu()*devTwoSymm(fvc::grad(U)); } else if (mesh_.foundObject("transportProperties")) { @@ -135,7 +135,7 @@ Foam::heatTransferCoeffModels::ReynoldsAnalogy::devReff() const const auto& U = mesh_.lookupObject(UName_); - return -laminarT.nu()*dev(twoSymm(fvc::grad(U))); + return -laminarT.nu()*devTwoSymm(fvc::grad(U)); } else if (mesh_.foundObject("transportProperties")) { @@ -146,7 +146,7 @@ Foam::heatTransferCoeffModels::ReynoldsAnalogy::devReff() const const auto& U = mesh_.lookupObject(UName_); - return -nu*dev(twoSymm(fvc::grad(U))); + return -nu*devTwoSymm(fvc::grad(U)); } FatalErrorInFunction diff --git a/src/functionObjects/forces/forces/forces.C b/src/functionObjects/forces/forces/forces.C index 7b420685da..4870f5a50c 100644 --- a/src/functionObjects/forces/forces/forces.C +++ b/src/functionObjects/forces/forces/forces.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation - Copyright (C) 2015-2022 OpenCFD Ltd. + Copyright (C) 2015-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -197,47 +197,60 @@ void Foam::functionObjects::forces::reset() auto& force = this->force(); auto& moment = this->moment(); - force == dimensionedVector(force.dimensions(), Zero); - moment == dimensionedVector(moment.dimensions(), Zero); + + if (porosity_) + { + force == dimensionedVector(force.dimensions(), Zero); + moment == dimensionedVector(moment.dimensions(), Zero); + } + else + { + constexpr bool updateAccessTime = false; + for (const label patchi : patchSet_) + { + force.boundaryFieldRef(updateAccessTime)[patchi] = Zero; + moment.boundaryFieldRef(updateAccessTime)[patchi] = Zero; + } + } } -Foam::tmp -Foam::functionObjects::forces::devRhoReff() const +Foam::tmp +Foam::functionObjects::forces::devRhoReff +( + const tensorField& gradUp, + const label patchi +) const { - typedef compressible::turbulenceModel cmpTurbModel; typedef incompressible::turbulenceModel icoTurbModel; + typedef compressible::turbulenceModel cmpTurbModel; - if (foundObject(cmpTurbModel::propertiesName)) - { - const auto& turb = - lookupObject(cmpTurbModel::propertiesName); - - return turb.devRhoReff(); - } - else if (foundObject(icoTurbModel::propertiesName)) + if (foundObject(icoTurbModel::propertiesName)) { const auto& turb = lookupObject(icoTurbModel::propertiesName); - return rho()*turb.devReff(); + return -rho(patchi)*turb.nuEff(patchi)*devTwoSymm(gradUp); + } + else if (foundObject(cmpTurbModel::propertiesName)) + { + const auto& turb = + lookupObject(cmpTurbModel::propertiesName); + + return -turb.muEff(patchi)*devTwoSymm(gradUp); } else if (foundObject(fluidThermo::dictName)) { const auto& thermo = lookupObject(fluidThermo::dictName); - const auto& U = lookupObject(UName_); - - return -thermo.mu()*dev(twoSymm(fvc::grad(U))); + return -thermo.mu(patchi)*devTwoSymm(gradUp); } else if (foundObject("transportProperties")) { const auto& laminarT = lookupObject("transportProperties"); - const auto& U = lookupObject(UName_); - - return -rho()*laminarT.nu()*dev(twoSymm(fvc::grad(U))); + return -rho(patchi)*laminarT.nu(patchi)*devTwoSymm(gradUp); } else if (foundObject("transportProperties")) { @@ -246,9 +259,7 @@ Foam::functionObjects::forces::devRhoReff() const const dimensionedScalar nu("nu", dimViscosity, transportProperties); - const auto& U = lookupObject(UName_); - - return -rho()*nu*dev(twoSymm(fvc::grad(U))); + return -rho(patchi)*nu.value()*devTwoSymm(gradUp); } else { @@ -317,6 +328,23 @@ Foam::tmp Foam::functionObjects::forces::rho() const } +Foam::tmp +Foam::functionObjects::forces::rho(const label patchi) const +{ + if (rhoName_ == "rhoInf") + { + return tmp::New + ( + mesh_.boundary()[patchi].size(), + rhoRef_ + ); + } + + const auto& rho = lookupObject(rhoName_); + return rho.boundaryField()[patchi]; +} + + Foam::scalar Foam::functionObjects::forces::rho(const volScalarField& p) const { if (p.dimensions() == dimPressure) @@ -343,16 +371,18 @@ void Foam::functionObjects::forces::addToPatchFields const vectorField& fV ) { + constexpr bool updateAccessTime = false; + sumPatchForcesP_ += sum(fP); sumPatchForcesV_ += sum(fV); - force().boundaryFieldRef()[patchi] += fP + fV; + force().boundaryFieldRef(updateAccessTime)[patchi] += fP + fV; const vectorField mP(Md^fP); const vectorField mV(Md^fV); sumPatchMomentsP_ += sum(mP); sumPatchMomentsV_ += sum(mV); - moment().boundaryFieldRef()[patchi] += mP + mV; + moment().boundaryFieldRef(updateAccessTime)[patchi] += mP + mV; } @@ -666,28 +696,27 @@ void Foam::functionObjects::forces::calcForcesMoments() if (directForceDensity_) { const auto& fD = lookupObject(fDName_); + const auto& fDb = fD.boundaryField(); const auto& Sfb = mesh_.Sf().boundaryField(); + const auto& magSfb = mesh_.magSf().boundaryField(); + const auto& Cb = mesh_.C().boundaryField(); for (const label patchi : patchSet_) { - const vectorField& d = mesh_.C().boundaryField()[patchi]; - - const vectorField Md(d - origin); - - const scalarField sA(mag(Sfb[patchi])); + const vectorField Md(Cb[patchi] - origin); // Pressure force = surfaceUnitNormal*(surfaceNormal & forceDensity) const vectorField fP ( - Sfb[patchi]/sA + Sfb[patchi]/magSfb[patchi] *( - Sfb[patchi] & fD.boundaryField()[patchi] + Sfb[patchi] & fDb[patchi] ) ); // Viscous force (total force minus pressure fP) - const vectorField fV(sA*fD.boundaryField()[patchi] - fP); + const vectorField fV(magSfb[patchi]*fDb[patchi] - fP); addToPatchFields(patchi, Md, fP, fV); } @@ -695,11 +724,15 @@ void Foam::functionObjects::forces::calcForcesMoments() else { const auto& p = lookupObject(pName_); + const auto& pb = p.boundaryField(); const auto& Sfb = mesh_.Sf().boundaryField(); + const auto& Cb = mesh_.C().boundaryField(); - tmp tdevRhoReff = devRhoReff(); - const auto& devRhoReffb = tdevRhoReff().boundaryField(); + const auto& U = lookupObject(UName_); + tmp tgradU = fvc::grad(U); + const volTensorField& gradU = tgradU(); + const auto& gradUb = gradU.boundaryField(); // Scale pRef by density for incompressible simulations const scalar rhoRef = rho(p); @@ -707,17 +740,15 @@ void Foam::functionObjects::forces::calcForcesMoments() for (const label patchi : patchSet_) { - const vectorField& d = mesh_.C().boundaryField()[patchi]; + const vectorField Md(Cb[patchi] - origin); - const vectorField Md(d - origin); + const vectorField fP(rhoRef*Sfb[patchi]*(pb[patchi] - pRef)); - const vectorField fP + const vectorField fV ( - rhoRef*Sfb[patchi]*(p.boundaryField()[patchi] - pRef) + Sfb[patchi] & devRhoReff(gradUb[patchi], patchi) ); - const vectorField fV(Sfb[patchi] & devRhoReffb[patchi]); - addToPatchFields(patchi, Md, fP, fV); } } diff --git a/src/functionObjects/forces/forces/forces.H b/src/functionObjects/forces/forces/forces.H index 257b01f5cd..0611bf33d6 100644 --- a/src/functionObjects/forces/forces/forces.H +++ b/src/functionObjects/forces/forces/forces.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation - Copyright (C) 2015-2022 OpenCFD Ltd. + Copyright (C) 2015-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -287,10 +287,15 @@ protected: //- Reset containers and fields void reset(); + // Evaluation - //- Return the effective stress (viscous + turbulent) - tmp devRhoReff() const; + //- Return the effective stress (viscous + turbulent) for patch + tmp devRhoReff + ( + const tensorField& gradUp, + const label patchi + ) const; //- Return dynamic viscosity field tmp mu() const; @@ -298,6 +303,9 @@ protected: //- Return rho if specified otherwise rhoRef tmp rho() const; + //- Return rho if specified otherwise rhoRef for patch + tmp rho(const label patchi) const; + //- Return rhoRef if the pressure field is //- dynamic (i.e. p/rho), otherwise return 1 scalar rho(const volScalarField& p) const; diff --git a/src/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveForce/objectiveForce.C b/src/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveForce/objectiveForce.C index 74cdec6b1f..393f792ca1 100644 --- a/src/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveForce/objectiveForce.C +++ b/src/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveForce/objectiveForce.C @@ -7,7 +7,7 @@ ------------------------------------------------------------------------------- Copyright (C) 2007-2019, 2022 PCOpt/NTUA Copyright (C) 2013-2019, 2022 FOSS GP - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -242,7 +242,7 @@ void objectiveForce::update_dxdbMultiplier() void objectiveForce::update_boundarydJdnut() { const volVectorField& U = vars_.U(); - volSymmTensorField devGradU(dev(twoSymm(fvc::grad(U)))); + volSymmTensorField devGradU(devTwoSymm(fvc::grad(U))); for (const label patchI : forcePatches_) { diff --git a/src/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveMoment/objectiveMoment.C b/src/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveMoment/objectiveMoment.C index f89e72203c..52765b47e1 100644 --- a/src/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveMoment/objectiveMoment.C +++ b/src/optimisation/adjointOptimisation/adjoint/objectives/incompressible/objectiveMoment/objectiveMoment.C @@ -7,7 +7,7 @@ ------------------------------------------------------------------------------- Copyright (C) 2007-2019, 2022 PCOpt/NTUA Copyright (C) 2013-2019, 2022 FOSS GP - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -294,7 +294,7 @@ void objectiveMoment::update_dxdbDirectMultiplier() void objectiveMoment::update_boundarydJdnut() { const volVectorField& U = vars_.U(); - volSymmTensorField devGradU(dev(twoSymm(fvc::grad(U)))); + volSymmTensorField devGradU(devTwoSymm(fvc::grad(U))); for (const label patchI : momentPatches_) { diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.C b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.C index d79320f848..e2430dfeef 100644 --- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.C +++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.C @@ -7,7 +7,7 @@ ------------------------------------------------------------------------------- Copyright (C) 2007-2019 PCOpt/NTUA Copyright (C) 2013-2019 FOSS GP - Copyright (C) 2019 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -92,7 +92,7 @@ tmp adjointLaminar::devReff IOobject::NO_READ, IOobject::NO_WRITE ), - -nu()*dev(twoSymm(fvc::grad(U))) + -nu()*devTwoSymm(fvc::grad(U)) ) ); } diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.C b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.C index 1dfef0240d..3ea09efc90 100644 --- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.C +++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.C @@ -7,7 +7,7 @@ ------------------------------------------------------------------------------- Copyright (C) 2007-2021 PCOpt/NTUA Copyright (C) 2013-2021 FOSS GP - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -723,7 +723,7 @@ tmp adjointSpalartAllmaras::devReff IOobject::NO_READ, IOobject::NO_WRITE ), - -nuEff()*dev(twoSymm(fvc::grad(U))) + -nuEff()*devTwoSymm(fvc::grad(U)) ); } diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointkOmegaSST/adjointkOmegaSST.C b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointkOmegaSST/adjointkOmegaSST.C index 0a8a370015..67ef142d34 100644 --- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointkOmegaSST/adjointkOmegaSST.C +++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointkOmegaSST/adjointkOmegaSST.C @@ -1052,7 +1052,7 @@ void adjointkOmegaSST::updatePrimalRelatedFields() S2_ = 2*magSqr(symm(gradU_)) + dimensionedScalar(dimless/sqr(dimTime), 1.e-21); S_ = sqrt(S2_); - GbyNu0_ = gradU_ && dev(twoSymm(gradU_)); + GbyNu0_ = gradU_ && devTwoSymm(gradU_); // Instead of computing G directly here, delegate to RASModelVariables // to make sure G is computed consistently when the primal fields are @@ -1808,7 +1808,7 @@ tmp adjointkOmegaSST::devReff IOobject::NO_READ, IOobject::NO_WRITE ), - -nuEff()*dev(twoSymm(fvc::grad(U))) + -nuEff()*devTwoSymm(fvc::grad(U)) ); } @@ -2320,7 +2320,7 @@ tmp adjointkOmegaSST::FISensitivityTerm() + ( case_1_GPrime_*wa()*gamma_ + case_1_Pk_*ka()*nutRef() - )*2.*T(gradU_ & dev(twoSymm(gradU_)))*zeroFirstCell_ + )*2.*T(gradU_ & devTwoSymm(gradU_))*zeroFirstCell_ // S2 (includes contribution from nut in UEqn as well) + ( dR_dnut()*a1_*k()/(b1_*S_*S_*S_*F2_) diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/RASModelVariables/RASModelVariables.C b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/RASModelVariables/RASModelVariables.C index 5816590841..e74372f425 100644 --- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/RASModelVariables/RASModelVariables.C +++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/RASModelVariables/RASModelVariables.C @@ -7,7 +7,7 @@ ------------------------------------------------------------------------------- Copyright (C) 2007-2019 PCOpt/NTUA Copyright (C) 2013-2019 FOSS GP - Copyright (C) 2019-2021 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -436,7 +436,7 @@ tmp RASModelVariables::devReff IOobject::NO_READ, IOobject::NO_WRITE ), - - (laminarTransport.nu() + nutRef())*dev(twoSymm(fvc::grad(U))) + - (laminarTransport.nu() + nutRef())*devTwoSymm(fvc::grad(U)) ); } diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/kOmegaSST/kOmegaSST.C b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/kOmegaSST/kOmegaSST.C index 12c386a526..b4ba121b47 100644 --- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/kOmegaSST/kOmegaSST.C +++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/turbulenceModelVariables/RAS/kOmegaSST/kOmegaSST.C @@ -7,7 +7,7 @@ ------------------------------------------------------------------------------- Copyright (C) 2007-2019 PCOpt/NTUA Copyright (C) 2013-2019 FOSS GP - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -114,7 +114,7 @@ tmp kOmegaSST::computeG() volScalarField::Internal GbyNu0 ( IOobject::scopedName(this->type(), "GbyNu"), - (tgradU() && dev(twoSymm(tgradU()))) + (tgradU() && devTwoSymm(tgradU())) ); // NB: leave tmp registered (for correctBoundaryConditions) diff --git a/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C b/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C index cab9367831..9ac98b1c21 100644 --- a/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C +++ b/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2018 OpenFOAM Foundation - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -256,7 +256,7 @@ Foam::RASModels::kineticTheoryModel::R() const IOobject::NO_READ, IOobject::NO_WRITE ), - - (nut_)*dev(twoSymm(fvc::grad(U_))) + - (nut_)*devTwoSymm(fvc::grad(U_)) - (lambda_*fvc::div(phi_))*symmTensor::I ) ); @@ -335,7 +335,7 @@ Foam::RASModels::kineticTheoryModel::devRhoReff IOobject::NO_WRITE ), - (rho_*nut_) - *dev(twoSymm(fvc::grad(U))) + *devTwoSymm(fvc::grad(U)) - ((rho_*lambda_)*fvc::div(phi_))*symmTensor::I ) ); diff --git a/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C b/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C index 010322104d..53f76222a6 100644 --- a/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C +++ b/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation - Copyright (C) 2019-2020 OpenCFD Ltd. + Copyright (C) 2019-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -256,7 +256,7 @@ Foam::RASModels::kineticTheoryModel::R() const IOobject::NO_READ, IOobject::NO_WRITE ), - - (nut_)*dev(twoSymm(fvc::grad(U_))) + - (nut_)*devTwoSymm(fvc::grad(U_)) - (lambda_*fvc::div(phi_))*symmTensor::I ) ); @@ -335,7 +335,7 @@ Foam::RASModels::kineticTheoryModel::devRhoReff IOobject::NO_WRITE ), - (rho_*nut_) - *dev(twoSymm(fvc::grad(U))) + *devTwoSymm(fvc::grad(U)) - ((rho_*lambda_)*fvc::div(phi_))*symmTensor::I ) ); diff --git a/src/regionFaModels/liquidFilm/subModels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.C b/src/regionFaModels/liquidFilm/subModels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.C index 486ab4767c..f89cb18063 100644 --- a/src/regionFaModels/liquidFilm/subModels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.C +++ b/src/regionFaModels/liquidFilm/subModels/kinematic/filmTurbulenceModel/filmTurbulenceModel/filmTurbulenceModel.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2020-2021 OpenCFD Ltd. + Copyright (C) 2020-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -328,14 +328,14 @@ tmp filmTurbulenceModel::devRhoReff() const const auto& thermo = m.lookupObject(fluidThermo::dictName); - return -thermo.mu()*dev(twoSymm(fvc::grad(U))); + return -thermo.mu()*devTwoSymm(fvc::grad(U)); } else if (m.foundObject("transportProperties")) { const auto& laminarT = m.lookupObject("transportProperties"); - return -rho()*laminarT.nu()*dev(twoSymm(fvc::grad(U))); + return -rho()*laminarT.nu()*devTwoSymm(fvc::grad(U)); } else if (m.foundObject("transportProperties")) { @@ -344,7 +344,7 @@ tmp filmTurbulenceModel::devRhoReff() const const dimensionedScalar nu("nu", dimViscosity, transportProperties); - return -rho()*nu*dev(twoSymm(fvc::grad(U))); + return -rho()*nu*devTwoSymm(fvc::grad(U)); } else {