From 2afd2320ce5e2ac09e489ce9c485049ac920c55f Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Fri, 23 Jun 2023 13:05:27 +0200
Subject: [PATCH] ENH: yPlus: support disable of field writing (#2813)

- for simulations where the yPlus is needed for other purposes or
  just for obtaining information on the patches it can be useful
  to disable field writing and save disk space.

  The 'writeFields' flag (as per some other function objects)
  has been added control writing the yPlus volume field.

  If unspecified, the default value is 'true' so that the yPlus
  function object continues to work as before.
  However, this default may change to 'false' in the future to align
  with other function objects.

ENH: wallShearStress: support disable of field writing

- similar to yPlus, the write() method combines writing information
  and writing the fields. The 'writeFields' flag allows some
  separation of that logic.
---
 .../postProcessing/fields/wallShearStress     |  3 +-
 etc/caseDicts/postProcessing/fields/yPlus     |  3 +-
 .../field/wallShearStress/wallShearStress.C   | 22 +++++----
 .../field/wallShearStress/wallShearStress.H   | 26 ++++++++---
 src/functionObjects/field/yPlus/yPlus.C       | 46 ++++++++++---------
 src/functionObjects/field/yPlus/yPlus.H       | 25 +++++++---
 .../BFGS-continuation/system/controlDict      |  3 +-
 .../opt/losses/BFGS-oneGo/system/controlDict  |  3 +-
 .../SA/opt/losses/BFGS/op1/system/controlDict |  3 +-
 .../SA/opt/nutSqr/system/controlDict          |  3 +-
 .../opt/powerDissipation/system/controlDict   |  3 +-
 .../kOmegaSST/opt/system/controlDict          |  3 +-
 .../setups.orig/common/system/controlDict     |  5 +-
 .../fullCase/system/controlDict               |  3 +-
 .../setups.orig/common/system/wallFields      |  6 +--
 .../laminar/cylinder2D/system/controlDict     |  3 +-
 .../RAS/cavity/system/FOs/FOwallShearStress   |  5 +-
 .../pisoFoam/RAS/cavity/system/FOs/FOyPlus    |  4 +-
 .../setups.orig/common/system/controlDict     |  5 +-
 .../setups.orig/common/system/controlDict     |  3 +-
 .../setups.orig/common/system/controlDict     |  4 +-
 .../setups.orig/common/system/controlDict     |  4 +-
 22 files changed, 119 insertions(+), 66 deletions(-)

diff --git a/etc/caseDicts/postProcessing/fields/wallShearStress b/etc/caseDicts/postProcessing/fields/wallShearStress
index 8eafd7db2d9..414f29a42dd 100644
--- a/etc/caseDicts/postProcessing/fields/wallShearStress
+++ b/etc/caseDicts/postProcessing/fields/wallShearStress
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     | Version:  v2212
+   \\    /   O peration     | Version:  v2306
     \\  /    A nd           | Website:  www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
@@ -14,6 +14,7 @@ Description
 type            wallShearStress;
 libs            (fieldFunctionObjects);
 
+writeFields     yes;
 executeControl  writeTime;
 writeControl    writeTime;
 
diff --git a/etc/caseDicts/postProcessing/fields/yPlus b/etc/caseDicts/postProcessing/fields/yPlus
index d7ee28137b9..d3e463db75d 100644
--- a/etc/caseDicts/postProcessing/fields/yPlus
+++ b/etc/caseDicts/postProcessing/fields/yPlus
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     | Version:  v2212
+   \\    /   O peration     | Version:  v2306
     \\  /    A nd           | Website:  www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
@@ -13,6 +13,7 @@ Description
 type            yPlus;
 libs            (fieldFunctionObjects);
 
+writeFields     yes;
 executeControl  writeTime;
 writeControl    writeTime;
 
diff --git a/src/functionObjects/field/wallShearStress/wallShearStress.C b/src/functionObjects/field/wallShearStress/wallShearStress.C
index 43feefd219b..0f27187334e 100644
--- a/src/functionObjects/field/wallShearStress/wallShearStress.C
+++ b/src/functionObjects/field/wallShearStress/wallShearStress.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2013-2016 OpenFOAM Foundation
-    Copyright (C) 2017-2020 OpenCFD Ltd.
+    Copyright (C) 2017-2023 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -90,7 +90,7 @@ Foam::functionObjects::wallShearStress::wallShearStress
 :
     fvMeshFunctionObject(name, runTime, dict),
     writeFile(mesh_, name, typeName, dict),
-    patchSet_()
+    writeFields_(true)  // May change in the future
 {
     read(dict);
 
@@ -125,6 +125,9 @@ bool Foam::functionObjects::wallShearStress::read(const dictionary& dict)
     fvMeshFunctionObject::read(dict);
     writeFile::read(dict);
 
+    writeFields_ = true;   // May change in the future
+    dict.readIfPresent("writeFields", writeFields_);
+
     const polyBoundaryMesh& pbm = mesh_.boundaryMesh();
 
     patchSet_ =
@@ -221,10 +224,13 @@ bool Foam::functionObjects::wallShearStress::write()
     const auto& wallShearStress =
         obr_.lookupObject<volVectorField>(scopedName(typeName));
 
-    Log << type() << " " << name() << " write:" << nl
-        << "    writing field " << wallShearStress.name() << endl;
+    Log << type() << ' ' << name() << " write:" << nl;
 
-    wallShearStress.write();
+    if (writeFields_)
+    {
+        Log << "    writing field " << wallShearStress.name() << endl;
+        wallShearStress.write();
+    }
 
     const fvPatchList& patches = mesh_.boundary();
 
@@ -234,10 +240,10 @@ bool Foam::functionObjects::wallShearStress::write()
 
         const vectorField& ssp = wallShearStress.boundaryField()[patchi];
 
-        vector minSsp = gMin(ssp);
-        vector maxSsp = gMax(ssp);
+        const vector minSsp = gMin(ssp);
+        const vector maxSsp = gMax(ssp);
 
-        if (Pstream::master())
+        if (UPstream::master())
         {
             writeCurrentTime(file());
 
diff --git a/src/functionObjects/field/wallShearStress/wallShearStress.H b/src/functionObjects/field/wallShearStress/wallShearStress.H
index f0c119a8b8d..c0908f12764 100644
--- a/src/functionObjects/field/wallShearStress/wallShearStress.H
+++ b/src/functionObjects/field/wallShearStress/wallShearStress.H
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2013-2016 OpenFOAM Foundation
-    Copyright (C) 2015-2020 OpenCFD Ltd.
+    Copyright (C) 2015-2023 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -65,8 +65,8 @@ Usage
         // Optional entries (runtime modifiable)
         patches     (<patch1> ... <patchN>); // (wall1 "(wall2|wall3)");
 
-        // Optional (inherited) entries
-        ...
+        // Optional entries
+        writeFields     true;
     }
     \endverbatim
 
@@ -76,6 +76,7 @@ Usage
       type         | Type name: wallShearStress            | word |  yes  | -
       libs         | Library name: fieldFunctionObjects    | word |  yes  | -
       patches    | Names of operand patches   | wordList | no | all wall patches
+      writeFields | Flag to write shear stress field       | bool |  no   | true
     \endtable
 
     The inherited entries are elaborated in:
@@ -87,6 +88,12 @@ Usage
         <solver> -postProcess -func wallShearStress
     \endverbatim
 
+Note
+    The \c writeFields flag currently defaults to \c true
+    (for consistency with previous versions that did not have that flag)
+    but this is subject to change in the near future for consistency
+    with other function objects.
+
 See also
     - Foam::functionObject
     - Foam::functionObjects::fvMeshFunctionObject
@@ -98,8 +105,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef functionObjects_wallShearStress_H
-#define functionObjects_wallShearStress_H
+#ifndef Foam_functionObjects_wallShearStress_H
+#define Foam_functionObjects_wallShearStress_H
 
 #include "fvMeshFunctionObject.H"
 #include "writeFile.H"
@@ -122,6 +129,12 @@ class wallShearStress
     public fvMeshFunctionObject,
     public writeFile
 {
+    // Private Data
+
+        //- Write the shear stress field ?
+        bool writeFields_;
+
+
 protected:
 
     // Protected Data
@@ -178,7 +191,8 @@ public:
         //- Calculate the wall shear-stress
         virtual bool execute();
 
-        //- Write the wall shear-stress
+        //- Report min/max and log to file,
+        //- write the wall shear-stress volume field.
         virtual bool write();
 };
 
diff --git a/src/functionObjects/field/yPlus/yPlus.C b/src/functionObjects/field/yPlus/yPlus.C
index 4296484fd37..b175a154bf6 100644
--- a/src/functionObjects/field/yPlus/yPlus.C
+++ b/src/functionObjects/field/yPlus/yPlus.C
@@ -71,7 +71,8 @@ Foam::functionObjects::yPlus::yPlus
 :
     fvMeshFunctionObject(name, runTime, dict),
     writeFile(obr_, name, typeName, dict),
-    useWallFunction_(true)
+    useWallFunction_(true),
+    writeFields_(true)  // May change in the future
 {
     read(dict);
 
@@ -105,7 +106,11 @@ bool Foam::functionObjects::yPlus::read(const dictionary& dict)
 {
     if (fvMeshFunctionObject::read(dict) && writeFile::read(dict))
     {
-        useWallFunction_ = dict.getOrDefault("useWallFunction", true);
+        useWallFunction_ = true;
+        writeFields_ = true;   // May change in the future
+
+        dict.readIfPresent("useWallFunction", useWallFunction_);
+        dict.readIfPresent("writeFields", writeFields_);
 
         return true;
     }
@@ -144,19 +149,12 @@ bool Foam::functionObjects::yPlus::execute()
         {
             const fvPatch& patch = patches[patchi];
 
-            if
-            (
-                isA<nutWallFunctionFvPatchScalarField>(nutBf[patchi])
-             && useWallFunction_
-            )
-            {
-                const nutWallFunctionFvPatchScalarField& nutPf =
-                    dynamic_cast<const nutWallFunctionFvPatchScalarField&>
-                    (
-                        nutBf[patchi]
-                    );
+            const auto* nutWallPatch =
+                isA<nutWallFunctionFvPatchScalarField>(nutBf[patchi]);
 
-                yPlusBf[patchi] = nutPf.yPlus();
+            if (useWallFunction_ && nutWallPatch)
+            {
+                yPlusBf[patchi] = nutWallPatch->yPlus();
             }
             else if (isA<wallFvPatch>(patch))
             {
@@ -194,10 +192,13 @@ bool Foam::functionObjects::yPlus::write()
 {
     const auto& yPlus = obr_.lookupObject<volScalarField>(scopedName(typeName));
 
-    Log << type() << " " << name() << " write:" << nl
-        << "    writing field " << yPlus.name() << endl;
+    Log << type() << ' ' << name() << " write:" << nl;
 
-    yPlus.write();
+    if (writeFields_)
+    {
+        Log << "    writing field " << yPlus.name() << endl;
+        yPlus.write();
+    }
 
     const volScalarField::Boundary& yPlusBf = yPlus.boundaryField();
     const fvPatchList& patches = mesh_.boundary();
@@ -214,12 +215,8 @@ bool Foam::functionObjects::yPlus::write()
             const scalar maxYplus = gMax(yPlusp);
             const scalar avgYplus = gAverage(yPlusp);
 
-            if (Pstream::master())
+            if (UPstream::master())
             {
-                Log << "    patch " << patch.name()
-                    << " y+ : min = " << minYplus << ", max = " << maxYplus
-                    << ", average = " << avgYplus << nl;
-
                 writeCurrentTime(file());
                 file()
                     << token::TAB << patch.name()
@@ -228,6 +225,11 @@ bool Foam::functionObjects::yPlus::write()
                     << token::TAB << avgYplus
                     << endl;
             }
+
+            Log << "    patch " << patch.name()
+                << " y+ : min = " << minYplus
+                << ", max = " << maxYplus
+                << ", average = " << avgYplus << endl;
         }
     }
 
diff --git a/src/functionObjects/field/yPlus/yPlus.H b/src/functionObjects/field/yPlus/yPlus.H
index 1e70952e535..4bb5cf922bc 100644
--- a/src/functionObjects/field/yPlus/yPlus.H
+++ b/src/functionObjects/field/yPlus/yPlus.H
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2013-2016 OpenFOAM Foundation
-    Copyright (C) 2015-2021 OpenCFD Ltd.
+    Copyright (C) 2015-2023 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -51,7 +51,8 @@ Usage
         libs        (fieldFunctionObjects);
 
         // Optional entries
-        useWallFunction    true;
+        useWallFunction true;
+        writeFields     true;
 
         // Optional (inherited) entries
         ...
@@ -67,6 +68,7 @@ Usage
                       --> the selected nut wall function to compute yPlus, <!--
                       --> otherwise directly compute yPlus from flow field <!--
                       -->                             | bool | no    | true
+      writeFields | Flag to write yPlus field         | bool |  no   | true
     \endtable
 
     The inherited entries are elaborated in:
@@ -78,6 +80,12 @@ Usage
         <solver> -postProcess -func yPlus
     \endverbatim
 
+Note
+    The \c writeFields flag currently defaults to \c true
+    (for consistency with previous versions that did not have that flag)
+    but this is subject to change in the near future for consistency
+    with other function objects.
+
 See also
     - Foam::functionObject
     - Foam::functionObjects::fvMeshFunctionObject
@@ -89,8 +97,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef functionObjects_yPlus_H
-#define functionObjects_yPlus_H
+#ifndef Foam_functionObjects_yPlus_H
+#define Foam_functionObjects_yPlus_H
 
 #include "fvMeshFunctionObject.H"
 #include "writeFile.H"
@@ -100,7 +108,6 @@ SourceFiles
 
 namespace Foam
 {
-
 namespace functionObjects
 {
 
@@ -115,9 +122,12 @@ class yPlus
 {
     // Private Data
 
-        //- Flag to use the wall function expressions to compute yPlus
+        //- Use the wall function expressions to compute yPlus ?
         bool useWallFunction_;
 
+        //- Write the yPlus field ?
+        bool writeFields_;
+
 
     // Private Member Functions
 
@@ -160,7 +170,8 @@ public:
         //- Calculate the yPlus field
         virtual bool execute();
 
-        //- Write the yPlus field
+        //- Report min/max/avg (per patch) and log to file,
+        //- write the yPlus volume field.
         virtual bool write();
 };
 
diff --git a/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/losses/BFGS-continuation/system/controlDict b/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/losses/BFGS-continuation/system/controlDict
index bd3afebdbde..d9ac5b98f9d 100644
--- a/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/losses/BFGS-continuation/system/controlDict
+++ b/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/losses/BFGS-continuation/system/controlDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  v2212                                 |
+|  \\    /   O peration     | Version:  v2306                                 |
 |   \\  /    A nd           | Website:  www.openfoam.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -50,6 +50,7 @@ functions
     {
         type            yPlus;
         libs            ( fieldFunctionObjects );
+        writeFields     yes;
         writeControl    writeTime;
     }
 }
diff --git a/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/losses/BFGS-oneGo/system/controlDict b/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/losses/BFGS-oneGo/system/controlDict
index ae926e76bee..a3ffc30a3f1 100644
--- a/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/losses/BFGS-oneGo/system/controlDict
+++ b/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/losses/BFGS-oneGo/system/controlDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  v2212                                 |
+|  \\    /   O peration     | Version:  v2306                                 |
 |   \\  /    A nd           | Website:  www.openfoam.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -50,6 +50,7 @@ functions
     {
         type            yPlus;
         libs            (fieldFunctionObjects);
+        writeFields     yes;
         writeControl    writeTime;
     }
 }
diff --git a/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/losses/BFGS/op1/system/controlDict b/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/losses/BFGS/op1/system/controlDict
index 864d2f3e046..0fbae566f25 100644
--- a/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/losses/BFGS/op1/system/controlDict
+++ b/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/losses/BFGS/op1/system/controlDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  v2212                                 |
+|  \\    /   O peration     | Version:  v2306                                 |
 |   \\  /    A nd           | Website:  www.openfoam.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -50,6 +50,7 @@ functions
     {
         type            yPlus;
         libs            (fieldFunctionObjects);
+        writeFields     yes;
         writeControl    writeTime;
     }
 }
diff --git a/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/nutSqr/system/controlDict b/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/nutSqr/system/controlDict
index c0facbdebca..eb85fbff54c 100644
--- a/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/nutSqr/system/controlDict
+++ b/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/nutSqr/system/controlDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  v2212                                 |
+|  \\    /   O peration     | Version:  v2306                                 |
 |   \\  /    A nd           | Website:  www.openfoam.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -50,6 +50,7 @@ functions
     {
         type            yPlus;
         libs            (fieldFunctionObjects);
+        writeFields     yes;
         writeControl    writeTime;
     }
 }
diff --git a/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/powerDissipation/system/controlDict b/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/powerDissipation/system/controlDict
index c0facbdebca..eb85fbff54c 100644
--- a/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/powerDissipation/system/controlDict
+++ b/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/SA/opt/powerDissipation/system/controlDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  v2212                                 |
+|  \\    /   O peration     | Version:  v2306                                 |
 |   \\  /    A nd           | Website:  www.openfoam.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -50,6 +50,7 @@ functions
     {
         type            yPlus;
         libs            (fieldFunctionObjects);
+        writeFields     yes;
         writeControl    writeTime;
     }
 }
diff --git a/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/kOmegaSST/opt/system/controlDict b/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/kOmegaSST/opt/system/controlDict
index 062df0c51fa..6969c98c942 100644
--- a/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/kOmegaSST/opt/system/controlDict
+++ b/tutorials/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/turbulent/kOmegaSST/opt/system/controlDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  v2212                                 |
+|  \\    /   O peration     | Version:  v2306                                 |
 |   \\  /    A nd           | Website:  www.openfoam.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -50,6 +50,7 @@ functions
 //  {
 //      type            yPlus;
 //      libs            ("libfieldFunctionObjects.so");
+//      writeFields     yes;
 //      writeControl    writeTime;
 //  }
 }
diff --git a/tutorials/incompressible/pimpleFoam/LES/planeChannel/setups.orig/common/system/controlDict b/tutorials/incompressible/pimpleFoam/LES/planeChannel/setups.orig/common/system/controlDict
index 929b6b6e834..4f989675b3e 100644
--- a/tutorials/incompressible/pimpleFoam/LES/planeChannel/setups.orig/common/system/controlDict
+++ b/tutorials/incompressible/pimpleFoam/LES/planeChannel/setups.orig/common/system/controlDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  v2212                                 |
+|  \\    /   O peration     | Version:  v2306                                 |
 |   \\  /    A nd           | Website:  www.openfoam.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -55,10 +55,11 @@ functions
     {
         type                wallShearStress;
         libs                (fieldFunctionObjects);
+        log                 yes;
         patches             ( bottom top );
         writePrecision      10;
+        writeFields         yes;
         writeToFile         yes;
-        log                 yes;
         executeControl      timeStep;
         executeInterval     1;
         writeControl        writeTime;
diff --git a/tutorials/incompressible/pimpleFoam/LES/surfaceMountedCube/fullCase/system/controlDict b/tutorials/incompressible/pimpleFoam/LES/surfaceMountedCube/fullCase/system/controlDict
index ed1545581b9..4ee2b6e92e6 100644
--- a/tutorials/incompressible/pimpleFoam/LES/surfaceMountedCube/fullCase/system/controlDict
+++ b/tutorials/incompressible/pimpleFoam/LES/surfaceMountedCube/fullCase/system/controlDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  v2212                                 |
+|  \\    /   O peration     | Version:  v2306                                 |
 |   \\  /    A nd           | Website:  www.openfoam.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -95,6 +95,7 @@ functions
     {
         type            yPlus;
         libs            (fieldFunctionObjects);
+        writeFields     yes;
         writeControl    writeTime;
     }
     fieldAverage1
diff --git a/tutorials/incompressible/pimpleFoam/LES/wallMountedHump/setups.orig/common/system/wallFields b/tutorials/incompressible/pimpleFoam/LES/wallMountedHump/setups.orig/common/system/wallFields
index 96dd57ccc0c..4e2f5be5a31 100644
--- a/tutorials/incompressible/pimpleFoam/LES/wallMountedHump/setups.orig/common/system/wallFields
+++ b/tutorials/incompressible/pimpleFoam/LES/wallMountedHump/setups.orig/common/system/wallFields
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  v2212                                 |
+|  \\    /   O peration     | Version:  v2306                                 |
 |   \\  /    A nd           | Website:  www.openfoam.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -12,6 +12,7 @@ wallShearStress
     libs            (fieldFunctionObjects);
 
     enabled         true;
+    writeFields     yes;
     writeControl    writeTime;
 
     patches         ( bottomWall );
@@ -23,9 +24,8 @@ yPlus
     libs            (fieldFunctionObjects);
 
     enabled         true;
+    writeFields     yes;
     writeControl    writeTime;
-
-    patches         ( bottomWall );
 }
 
 
diff --git a/tutorials/incompressible/pimpleFoam/laminar/cylinder2D/system/controlDict b/tutorials/incompressible/pimpleFoam/laminar/cylinder2D/system/controlDict
index d3202884721..15e96d17207 100644
--- a/tutorials/incompressible/pimpleFoam/laminar/cylinder2D/system/controlDict
+++ b/tutorials/incompressible/pimpleFoam/laminar/cylinder2D/system/controlDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  v2212                                 |
+|  \\    /   O peration     | Version:  v2306                                 |
 |   \\  /    A nd           | Website:  www.openfoam.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -127,6 +127,7 @@ functions
         type            yPlus;
         libs            (fieldFunctionObjects);
         timeStart       10;
+        writeFields     yes;
         executeControl  timeStep;
         executeInterval 1;
         writeControl    writeTime;
diff --git a/tutorials/incompressible/pisoFoam/RAS/cavity/system/FOs/FOwallShearStress b/tutorials/incompressible/pisoFoam/RAS/cavity/system/FOs/FOwallShearStress
index cd1734adb76..fa4c519f168 100644
--- a/tutorials/incompressible/pisoFoam/RAS/cavity/system/FOs/FOwallShearStress
+++ b/tutorials/incompressible/pisoFoam/RAS/cavity/system/FOs/FOwallShearStress
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  v2212                                 |
+|  \\    /   O peration     | Version:  v2306                                 |
 |   \\  /    A nd           | Website:  www.openfoam.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -13,7 +13,8 @@ wallShearStress1
     libs            (fieldFunctionObjects);
 
     // Optional entries
-    patches          (fixedWalls);
+    patches         (fixedWalls);
+    writeFields     yes;
 
     // Optional (inherited) entries
     writePrecision  10;
diff --git a/tutorials/incompressible/pisoFoam/RAS/cavity/system/FOs/FOyPlus b/tutorials/incompressible/pisoFoam/RAS/cavity/system/FOs/FOyPlus
index 59daa21b93a..3a2703be6e9 100644
--- a/tutorials/incompressible/pisoFoam/RAS/cavity/system/FOs/FOyPlus
+++ b/tutorials/incompressible/pisoFoam/RAS/cavity/system/FOs/FOyPlus
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  v2212                                 |
+|  \\    /   O peration     | Version:  v2306                                 |
 |   \\  /    A nd           | Website:  www.openfoam.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -22,6 +22,8 @@ yPlus1
     log             true;
     timeStart       0;
     timeEnd         1000;
+
+    writeFields     yes;
     executeControl  timeStep;
     executeInterval 1;
     writeControl    writeTime;
diff --git a/tutorials/incompressible/simpleFoam/bump2D/setups.orig/common/system/controlDict b/tutorials/incompressible/simpleFoam/bump2D/setups.orig/common/system/controlDict
index 76108226194..216f8b088fe 100644
--- a/tutorials/incompressible/simpleFoam/bump2D/setups.orig/common/system/controlDict
+++ b/tutorials/incompressible/simpleFoam/bump2D/setups.orig/common/system/controlDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  v2212                                 |
+|  \\    /   O peration     | Version:  v2306                                 |
 |   \\  /    A nd           | Website:  www.openfoam.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -81,6 +81,7 @@ functions
     {
         type            wallShearStress;
         libs            (fieldFunctionObjects);
+        writeFields     yes;
         writeControl    writeTime;
         patches         (bump);
     }
@@ -89,8 +90,8 @@ functions
     {
         type            yPlus;
         libs            (fieldFunctionObjects);
+        writeFields     yes;
         writeControl    writeTime;
-        patches         (bump);
     }
 
     cellCentres
diff --git a/tutorials/incompressible/simpleFoam/turbulentFlatPlate/setups.orig/common/system/controlDict b/tutorials/incompressible/simpleFoam/turbulentFlatPlate/setups.orig/common/system/controlDict
index 75cd7443f49..b7c163a5148 100644
--- a/tutorials/incompressible/simpleFoam/turbulentFlatPlate/setups.orig/common/system/controlDict
+++ b/tutorials/incompressible/simpleFoam/turbulentFlatPlate/setups.orig/common/system/controlDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  v2212                                 |
+|  \\    /   O peration     | Version:  v2306                                 |
 |   \\  /    A nd           | Website:  www.openfoam.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -59,6 +59,7 @@ functions
         type            yPlus;
         libs            (fieldFunctionObjects);
         patches         (fixedWall);
+        writeFields     yes;
         writeControl    writeTime;
     }
 
diff --git a/tutorials/verificationAndValidation/schemes/nonOrthogonalChannel/setups.orig/common/system/controlDict b/tutorials/verificationAndValidation/schemes/nonOrthogonalChannel/setups.orig/common/system/controlDict
index 98f9267e3a3..df51edf6b69 100644
--- a/tutorials/verificationAndValidation/schemes/nonOrthogonalChannel/setups.orig/common/system/controlDict
+++ b/tutorials/verificationAndValidation/schemes/nonOrthogonalChannel/setups.orig/common/system/controlDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  v2212                                 |
+|  \\    /   O peration     | Version:  v2306                                 |
 |   \\  /    A nd           | Website:  www.openfoam.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -61,6 +61,7 @@ functions
     {
         type            wallShearStress;
         libs            (fieldFunctionObjects);
+        writeFields     yes;
         patches         ( bottom );
         executeControl  writeTime;
         writeControl    writeTime;
@@ -70,6 +71,7 @@ functions
     {
         type            yPlus;
         libs            (fieldFunctionObjects);
+        writeFields     yes;
         executeControl  writeTime;
         writeControl    writeTime;
     }
diff --git a/tutorials/verificationAndValidation/turbulenceModels/planeChannel/setups.orig/common/system/controlDict b/tutorials/verificationAndValidation/turbulenceModels/planeChannel/setups.orig/common/system/controlDict
index 3411cc17b7b..8bc3f484011 100644
--- a/tutorials/verificationAndValidation/turbulenceModels/planeChannel/setups.orig/common/system/controlDict
+++ b/tutorials/verificationAndValidation/turbulenceModels/planeChannel/setups.orig/common/system/controlDict
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  v2212                                 |
+|  \\    /   O peration     | Version:  v2306                                 |
 |   \\  /    A nd           | Website:  www.openfoam.com                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -61,6 +61,7 @@ functions
     {
         type            wallShearStress;
         libs            (fieldFunctionObjects);
+        writeFields     yes;
         patches         ( bottom );
         executeControl  writeTime;
         writeControl    writeTime;
@@ -70,6 +71,7 @@ functions
     {
         type            yPlus;
         libs            (fieldFunctionObjects);
+        writeFields     yes;
         executeControl  writeTime;
         writeControl    writeTime;
     }
-- 
GitLab