From a803516b16608fb262b7db686dbd4ba7b7633cde Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Thu, 11 Apr 2024 13:02:15 +0200
Subject: [PATCH] ENH: use typedef for MeshObject within derived classes

- use an internal 'typedef MeshObject<...> MeshObject_type' within
  derived classes. Reduces clutter and eases any updates.
---
 .../GAMGAgglomeration/GAMGAgglomeration.C     |  2 +-
 .../GAMGAgglomeration/GAMGAgglomeration.H     | 12 ++++++-
 src/OpenFOAM/meshes/pointMesh/pointMesh.C     |  5 +--
 src/OpenFOAM/meshes/pointMesh/pointMesh.H     | 10 ++++++
 .../common/manifoldCellsMeshObject.C          |  2 +-
 .../common/manifoldCellsMeshObject.H          | 12 ++++++-
 .../leastSquaresFaVectors.C                   |  3 +-
 .../leastSquaresFaVectors.H                   | 12 ++++++-
 .../meshObjects/gravity/gravityMeshObject.C   |  4 +--
 .../meshObjects/gravity/gravityMeshObject.H   | 28 +++++++--------
 .../LeastSquaresGrad/LeastSquaresVectors.C    |  2 +-
 .../LeastSquaresGrad/LeastSquaresVectors.H    | 17 ++++++---
 .../invDistLeastSquaresVectors.C              |  2 +-
 .../leastSquaresGrad/leastSquaresVectors.C    |  2 +-
 .../leastSquaresGrad/leastSquaresVectors.H    | 10 ++++++
 .../unweightedLeastSquaresVectors.C           |  2 +-
 .../centredCECCellToCellStencilObject.H       | 15 ++++----
 .../centredCFCCellToCellStencilObject.H       | 15 ++++----
 .../centredCPCCellToCellStencilObject.H       | 16 +++++----
 .../centredCECCellToFaceStencilObject.H       | 16 +++++----
 .../centredCFCCellToFaceStencilObject.H       | 16 +++++----
 .../centredCPCCellToFaceStencilObject.H       | 16 +++++----
 .../centredFECCellToFaceStencilObject.H       | 16 +++++----
 .../pureUpwindCFCCellToFaceStencilObject.H    | 16 +++++----
 .../upwindCECCellToFaceStencilObject.H        | 16 +++++----
 .../upwindCFCCellToFaceStencilObject.H        | 17 +++++----
 .../upwindCPCCellToFaceStencilObject.H        | 16 +++++----
 .../upwindFECCellToFaceStencilObject.H        | 15 ++++----
 .../centredCFCFaceToCellStencilObject.H       | 16 +++++----
 .../highAspectRatio/cellAspectRatio.C         |  2 +-
 .../highAspectRatio/cellAspectRatio.H         | 10 ++++++
 .../fvMesh/wallDist/wallDist/wallDist.C       | 18 +++++++++-
 .../fvMesh/wallDist/wallDist/wallDist.H       | 19 +++++++++-
 .../wallDistAddressing/wallDistAddressing.C   |  8 ++---
 .../wallDistAddressing/wallDistAddressing.H   | 13 ++++++-
 .../fvMesh/zoneDistribute/zoneDistribute.C    |  2 +-
 .../fvMesh/zoneDistribute/zoneDistribute.H    | 10 ++++++
 .../zoneStencils/zoneCPCStencil.C             |  2 +-
 .../zoneStencils/zoneCPCStencil.H             | 11 ++++++
 .../schemes/FitData/FitData.C                 |  2 +-
 .../schemes/FitData/FitData.H                 | 12 ++++++-
 .../skewCorrected/skewCorrectionVectors.C     |  2 +-
 .../skewCorrected/skewCorrectionVectors.H     | 16 +++++++--
 .../volPointInterpolation/pointConstraints.C  |  2 +-
 .../volPointInterpolation/pointConstraints.H  | 13 ++++++-
 .../volPointInterpolation.C                   |  2 +-
 .../volPointInterpolation.H                   | 15 ++++++--
 .../processorColour.C                         |  2 +-
 .../processorColour.H                         | 31 ++++++++++------
 .../meshSearchFACE_CENTRE_TRISMeshObject.C    | 17 ---------
 .../meshSearchFACE_CENTRE_TRISMeshObject.H    | 17 +++++++--
 .../meshSearch/meshSearchMeshObject.C         |  9 -----
 .../meshSearch/meshSearchMeshObject.H         | 17 +++++++--
 .../multiWorld/multiWorldConnectionsObject.C  | 10 ++----
 .../multiWorld/multiWorldConnectionsObject.H  |  4 +--
 src/meshTools/regionSplit/regionSplit.C       |  4 +--
 src/meshTools/regionSplit/regionSplit.H       | 11 +++++-
 .../twoDPointCorrector/twoDPointCorrector.C   |  3 +-
 .../twoDPointCorrector/twoDPointCorrector.H   | 14 ++++++--
 .../pointVolInterpolation.H                   | 10 +++---
 .../volPointInterpolationAdjoint.C            |  5 +--
 .../volPointInterpolationAdjoint.H            | 20 +++++++++--
 .../levelSet/levelSetDesignVariables.C        |  7 ++--
 .../topODesignVariables/topODesignVariables.C | 10 +++---
 .../volBSplinesBase/volBSplinesBase.C         |  4 +--
 .../volBSplinesBase/volBSplinesBase.H         | 32 ++++++++++-------
 .../cellCellStencil/cellCellStencilObject.H   | 36 ++++++++++---------
 .../decompose/decompose/decompositionModel.C  | 16 ++-------
 .../decompose/decompose/decompositionModel.H  | 10 ++++++
 .../boundaryRadiationProperties.C             |  8 ++---
 .../boundaryRadiationProperties.H             | 19 +++++++---
 71 files changed, 538 insertions(+), 268 deletions(-)

diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.C b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.C
index 1ced04106f4..304e524ecd8 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.C
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.C
@@ -243,7 +243,7 @@ Foam::GAMGAgglomeration::GAMGAgglomeration
     const dictionary& controlDict
 )
 :
-    MeshObject<lduMesh, Foam::GeometricMeshObject, GAMGAgglomeration>(mesh),
+    MeshObject_type(mesh),
 
     maxLevels_(50),
 
diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.H b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.H
index 65112a50d99..8fdd75235f3 100644
--- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.H
+++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGAgglomerations/GAMGAgglomeration/GAMGAgglomeration.H
@@ -67,9 +67,19 @@ class GAMGAgglomeration
 :
     public MeshObject<lduMesh, GeometricMeshObject, GAMGAgglomeration>
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            lduMesh,
+            GeometricMeshObject,
+            GAMGAgglomeration
+        > MeshObject_type;
+
+
 protected:
 
-    // Protected data
+    // Protected Data
 
         //- Max number of levels
         const label maxLevels_;
diff --git a/src/OpenFOAM/meshes/pointMesh/pointMesh.C b/src/OpenFOAM/meshes/pointMesh/pointMesh.C
index fec7502d4bd..3f36c56332a 100644
--- a/src/OpenFOAM/meshes/pointMesh/pointMesh.C
+++ b/src/OpenFOAM/meshes/pointMesh/pointMesh.C
@@ -37,9 +37,10 @@ License
 
 namespace Foam
 {
-defineTypeNameAndDebug(pointMesh, 0);
+    defineTypeNameAndDebug(pointMesh, 0);
 }
 
+
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
 void Foam::pointMesh::mapFields(const mapPolyMesh& mpm)
@@ -72,7 +73,7 @@ void Foam::pointMesh::mapFields(const mapPolyMesh& mpm)
 
 Foam::pointMesh::pointMesh(const polyMesh& pMesh)
 :
-    MeshObject<polyMesh, Foam::UpdateableMeshObject, pointMesh>(pMesh),
+    MeshObject_type(pMesh),
     GeoMesh<polyMesh>(pMesh),
     boundary_(*this, pMesh.boundaryMesh())
 {
diff --git a/src/OpenFOAM/meshes/pointMesh/pointMesh.H b/src/OpenFOAM/meshes/pointMesh/pointMesh.H
index e28905ea80e..58462132078 100644
--- a/src/OpenFOAM/meshes/pointMesh/pointMesh.H
+++ b/src/OpenFOAM/meshes/pointMesh/pointMesh.H
@@ -54,6 +54,16 @@ class pointMesh
     public MeshObject<polyMesh, UpdateableMeshObject, pointMesh>,
     public GeoMesh<polyMesh>
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            polyMesh,
+            UpdateableMeshObject,
+            pointMesh
+        > MeshObject_type;
+
+
     // Permanent Data
 
         //- Boundary mesh
diff --git a/src/fileFormats/common/manifoldCellsMeshObject.C b/src/fileFormats/common/manifoldCellsMeshObject.C
index 38103341299..8bc6714bffa 100644
--- a/src/fileFormats/common/manifoldCellsMeshObject.C
+++ b/src/fileFormats/common/manifoldCellsMeshObject.C
@@ -166,7 +166,7 @@ Foam::refPtr<Foam::cellList> Foam::manifoldCellsMeshObject::filter
 
 Foam::manifoldCellsMeshObject::manifoldCellsMeshObject(const polyMesh& mesh)
 :
-    MeshObject<polyMesh, UpdateableMeshObject, manifoldCellsMeshObject>(mesh),
+    MeshObject_type(mesh),
     cellsPtr_(nullptr),
     nCorrected_(-1)
 {}
diff --git a/src/fileFormats/common/manifoldCellsMeshObject.H b/src/fileFormats/common/manifoldCellsMeshObject.H
index b063576102d..57aebd52b24 100644
--- a/src/fileFormats/common/manifoldCellsMeshObject.H
+++ b/src/fileFormats/common/manifoldCellsMeshObject.H
@@ -55,6 +55,16 @@ class manifoldCellsMeshObject
 :
     public MeshObject<polyMesh, UpdateableMeshObject, manifoldCellsMeshObject>
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            polyMesh,
+            UpdateableMeshObject,
+            manifoldCellsMeshObject
+        > MeshObject_type;
+
+
     // Private Data
 
         //- The adjusted cells list
@@ -90,7 +100,7 @@ public:
     // Constructors
 
         //- Construct from mesh
-        manifoldCellsMeshObject(const polyMesh& mesh);
+        explicit manifoldCellsMeshObject(const polyMesh& mesh);
 
 
     //- Destructor
diff --git a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.C b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.C
index f0718e17e18..44288ccf84b 100644
--- a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.C
+++ b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.C
@@ -29,7 +29,6 @@ License
 #include "leastSquaresFaVectors.H"
 #include "edgeFields.H"
 #include "areaFields.H"
-#include "demandDrivenData.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
@@ -43,7 +42,7 @@ namespace Foam
 
 Foam::leastSquaresFaVectors::leastSquaresFaVectors(const faMesh& mesh)
 :
-    MeshObject<faMesh, Foam::MoveableMeshObject, leastSquaresFaVectors>(mesh)
+    MeshObject_type(mesh)
 {}
 
 
diff --git a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.H b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.H
index 701dcf29aea..2e24f7d6aa6 100644
--- a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.H
+++ b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.H
@@ -55,8 +55,18 @@ namespace Foam
 
 class leastSquaresFaVectors
 :
-    public MeshObject<faMesh, Foam::MoveableMeshObject, leastSquaresFaVectors>
+    public MeshObject<faMesh, MoveableMeshObject, leastSquaresFaVectors>
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            faMesh,
+            MoveableMeshObject,
+            leastSquaresFaVectors
+        > MeshObject_type;
+
+
     // Private Data
 
         //- Least-squares gradient vectors
diff --git a/src/finiteVolume/cfdTools/general/meshObjects/gravity/gravityMeshObject.C b/src/finiteVolume/cfdTools/general/meshObjects/gravity/gravityMeshObject.C
index d0de1e97ec2..e33603a1d36 100644
--- a/src/finiteVolume/cfdTools/general/meshObjects/gravity/gravityMeshObject.C
+++ b/src/finiteVolume/cfdTools/general/meshObjects/gravity/gravityMeshObject.C
@@ -42,7 +42,7 @@ namespace meshObjects
 
 Foam::meshObjects::gravity::gravity(const word& name, const Time& runTime)
 :
-    MeshObject<Time, TopologicalMeshObject, gravity>(name, runTime),
+    MeshObject_type(name, runTime),
     uniformDimensionedVectorField
     (
         IOobject
@@ -50,7 +50,7 @@ Foam::meshObjects::gravity::gravity(const word& name, const Time& runTime)
             name,
             runTime.constant(),
             runTime,
-            IOobject::MUST_READ_IF_MODIFIED,
+            IOobject::READ_MODIFIED,
             IOobject::NO_WRITE,
             IOobject::NO_REGISTER  // Already registered by MeshObject
         )
diff --git a/src/finiteVolume/cfdTools/general/meshObjects/gravity/gravityMeshObject.H b/src/finiteVolume/cfdTools/general/meshObjects/gravity/gravityMeshObject.H
index fc84e49a628..87784ab73b3 100644
--- a/src/finiteVolume/cfdTools/general/meshObjects/gravity/gravityMeshObject.H
+++ b/src/finiteVolume/cfdTools/general/meshObjects/gravity/gravityMeshObject.H
@@ -60,10 +60,19 @@ class gravity
     <
         Time,
         TopologicalMeshObject,
-        gravity
+        meshObjects::gravity
     >,
     public uniformDimensionedVectorField
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            Time,
+            TopologicalMeshObject,
+            meshObjects::gravity
+        > MeshObject_type;
+
 public:
 
     //- Run-time type information
@@ -72,12 +81,10 @@ public:
 
     // Constructors
 
-        //- Construct with given name on Time from \c constant
-        //- (MUST_READ_IF_MODIFIED)
+        //- Construct with given name on Time from \c constant (READ_MODIFIED)
         gravity(const word& name, const Time& runTime);
 
-        //- Construct "g" field on Time from \c constant
-        //- (MUST_READ_IF_MODIFIED)
+        //- Construct "g" field on Time from \c constant (READ_MODIFIED)
         explicit gravity(const Time& runTime)
         :
             gravity("g", runTime)
@@ -86,20 +93,13 @@ public:
         //- Return named gravity field cached or construct on Time
         static const gravity& New(const word& name, const Time& runTime)
         {
-            return MeshObject<Time, TopologicalMeshObject, gravity>::New
-            (
-                name,
-                runTime
-            );
+            return MeshObject_type::New(name, runTime);
         }
 
         //- Return gravity "g" field cached or construct on Time
         static const gravity& New(const Time& runTime)
         {
-            return MeshObject<Time, TopologicalMeshObject, gravity>::New
-            (
-                runTime
-            );
+            return MeshObject_type::New(runTime);
         }
 
 
diff --git a/src/finiteVolume/finiteVolume/gradSchemes/LeastSquaresGrad/LeastSquaresVectors.C b/src/finiteVolume/finiteVolume/gradSchemes/LeastSquaresGrad/LeastSquaresVectors.C
index f050487a2ce..ca6edf267e5 100644
--- a/src/finiteVolume/finiteVolume/gradSchemes/LeastSquaresGrad/LeastSquaresVectors.C
+++ b/src/finiteVolume/finiteVolume/gradSchemes/LeastSquaresGrad/LeastSquaresVectors.C
@@ -36,7 +36,7 @@ Foam::fv::LeastSquaresVectors<Stencil>::LeastSquaresVectors
     const fvMesh& mesh
 )
 :
-    MeshObject<fvMesh, Foam::MoveableMeshObject, LeastSquaresVectors>(mesh),
+    MeshObject_type(mesh),
     vectors_(mesh.nCells())
 {
     calcLeastSquaresVectors();
diff --git a/src/finiteVolume/finiteVolume/gradSchemes/LeastSquaresGrad/LeastSquaresVectors.H b/src/finiteVolume/finiteVolume/gradSchemes/LeastSquaresGrad/LeastSquaresVectors.H
index 50127f2919a..c6d9309c0a4 100644
--- a/src/finiteVolume/finiteVolume/gradSchemes/LeastSquaresGrad/LeastSquaresVectors.H
+++ b/src/finiteVolume/finiteVolume/gradSchemes/LeastSquaresGrad/LeastSquaresVectors.H
@@ -63,6 +63,16 @@ class LeastSquaresVectors
 :
     public MeshObject<fvMesh, MoveableMeshObject, LeastSquaresVectors<Stencil>>
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            MoveableMeshObject,
+            LeastSquaresVectors<Stencil>
+        > MeshObject_type;
+
+
     // Private Data
 
         //- Least-squares gradient vectors
@@ -84,17 +94,14 @@ public:
     // Constructors
 
         //- Construct given an fvMesh and the minimum determinant criterion
-        LeastSquaresVectors
-        (
-            const fvMesh&
-        );
+        explicit LeastSquaresVectors(const fvMesh& mesh);
 
 
     //- Destructor
     virtual ~LeastSquaresVectors();
 
 
-    // Member functions
+    // Member Functions
 
         //- Return const reference to the stencil
         const extendedCentredCellToCellStencil& stencil() const
diff --git a/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/invDistLeastSquaresVectors.C b/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/invDistLeastSquaresVectors.C
index 584968db7d3..a86dfe7d728 100644
--- a/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/invDistLeastSquaresVectors.C
+++ b/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/invDistLeastSquaresVectors.C
@@ -41,7 +41,7 @@ namespace Foam
 
 Foam::leastSquaresVectors::leastSquaresVectors(const fvMesh& mesh)
 :
-    MeshObject<fvMesh, Foam::MoveableMeshObject, leastSquaresVectors>(mesh),
+    MeshObject_type(mesh),
     pVectors_
     (
         IOobject
diff --git a/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresVectors.C b/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresVectors.C
index c8f5b010511..5085e0c5431 100644
--- a/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresVectors.C
+++ b/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresVectors.C
@@ -41,7 +41,7 @@ namespace Foam
 
 Foam::leastSquaresVectors::leastSquaresVectors(const fvMesh& mesh)
 :
-    MeshObject<fvMesh, Foam::MoveableMeshObject, leastSquaresVectors>(mesh),
+    MeshObject_type(mesh),
     pVectors_
     (
         IOobject
diff --git a/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresVectors.H b/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresVectors.H
index 858d6f337e3..bc394099c59 100644
--- a/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresVectors.H
+++ b/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresVectors.H
@@ -55,6 +55,16 @@ class leastSquaresVectors
 :
     public MeshObject<fvMesh, MoveableMeshObject, leastSquaresVectors>
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            MoveableMeshObject,
+            leastSquaresVectors
+        > MeshObject_type;
+
+
     // Private Data
 
         //- Owner least-squares gradient vectors
diff --git a/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/unweightedLeastSquaresVectors.C b/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/unweightedLeastSquaresVectors.C
index c19c1ba86b2..3ff39ce10c8 100644
--- a/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/unweightedLeastSquaresVectors.C
+++ b/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/unweightedLeastSquaresVectors.C
@@ -41,7 +41,7 @@ namespace Foam
 
 Foam::leastSquaresVectors::leastSquaresVectors(const fvMesh& mesh)
 :
-    MeshObject<fvMesh, Foam::MoveableMeshObject, leastSquaresVectors>(mesh),
+    MeshObject_type(mesh),
     pVectors_
     (
         IOobject
diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToCell/MeshObjects/centredCECCellToCellStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/cellToCell/MeshObjects/centredCECCellToCellStencilObject.H
index fa7ca9300ac..a2d3e95c364 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/cellToCell/MeshObjects/centredCECCellToCellStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/cellToCell/MeshObjects/centredCECCellToCellStencilObject.H
@@ -59,6 +59,14 @@ class centredCECCellToCellStencilObject
     >,
     public extendedCentredCellToCellStencil
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            TopologicalMeshObject,
+            centredCECCellToCellStencilObject
+        > MeshObject_type;
 
 public:
 
@@ -72,12 +80,7 @@ public:
             const fvMesh& mesh
         )
         :
-            MeshObject
-            <
-                fvMesh,
-                Foam::TopologicalMeshObject,
-                centredCECCellToCellStencilObject
-            >(mesh),
+            MeshObject_type(mesh),
             extendedCentredCellToCellStencil(CECCellToCellStencil(mesh))
         {}
 
diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToCell/MeshObjects/centredCFCCellToCellStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/cellToCell/MeshObjects/centredCFCCellToCellStencilObject.H
index 2f40ed966c2..714aa57ad1b 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/cellToCell/MeshObjects/centredCFCCellToCellStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/cellToCell/MeshObjects/centredCFCCellToCellStencilObject.H
@@ -59,6 +59,14 @@ class centredCFCCellToCellStencilObject
     >,
     public extendedCentredCellToCellStencil
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            TopologicalMeshObject,
+            centredCFCCellToCellStencilObject
+        > MeshObject_type;
 
 public:
 
@@ -72,12 +80,7 @@ public:
             const fvMesh& mesh
         )
         :
-            MeshObject
-            <
-                fvMesh,
-                Foam::TopologicalMeshObject,
-                centredCFCCellToCellStencilObject
-            >(mesh),
+            MeshObject_type(mesh),
             extendedCentredCellToCellStencil(CFCCellToCellStencil(mesh))
         {}
 
diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToCell/MeshObjects/centredCPCCellToCellStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/cellToCell/MeshObjects/centredCPCCellToCellStencilObject.H
index 4ce941cd889..3bb38e4b566 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/cellToCell/MeshObjects/centredCPCCellToCellStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/cellToCell/MeshObjects/centredCPCCellToCellStencilObject.H
@@ -59,11 +59,20 @@ class centredCPCCellToCellStencilObject
     >,
     public extendedCentredCellToCellStencil
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            TopologicalMeshObject,
+            centredCPCCellToCellStencilObject
+        > MeshObject_type;
 
 public:
 
     TypeName("centredCPCCellToCellStencil");
 
+
     // Constructors
 
         //- Construct from uncompacted cell stencil
@@ -72,12 +81,7 @@ public:
             const fvMesh& mesh
         )
         :
-            MeshObject
-            <
-                fvMesh,
-                Foam::TopologicalMeshObject,
-                centredCPCCellToCellStencilObject
-            >(mesh),
+            MeshObject_type(mesh),
             extendedCentredCellToCellStencil(CPCCellToCellStencil(mesh))
         {}
 
diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/centredCECCellToFaceStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/centredCECCellToFaceStencilObject.H
index ab7190817d2..b3d89d29d93 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/centredCECCellToFaceStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/centredCECCellToFaceStencilObject.H
@@ -59,11 +59,20 @@ class centredCECCellToFaceStencilObject
     >,
     public extendedCentredCellToFaceStencil
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            TopologicalMeshObject,
+            centredCECCellToFaceStencilObject
+        > MeshObject_type;
 
 public:
 
     TypeName("centredCECCellToFaceStencil");
 
+
     // Constructors
 
         //- Construct from uncompacted face stencil
@@ -72,12 +81,7 @@ public:
             const fvMesh& mesh
         )
         :
-            MeshObject
-            <
-                fvMesh,
-                Foam::TopologicalMeshObject,
-                centredCECCellToFaceStencilObject
-            >(mesh),
+            MeshObject_type(mesh),
             extendedCentredCellToFaceStencil(CECCellToFaceStencil(mesh))
         {
             if (extendedCellToFaceStencil::debug)
diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/centredCFCCellToFaceStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/centredCFCCellToFaceStencilObject.H
index d370746fb17..121f618aaf8 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/centredCFCCellToFaceStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/centredCFCCellToFaceStencilObject.H
@@ -59,11 +59,20 @@ class centredCFCCellToFaceStencilObject
     >,
     public extendedCentredCellToFaceStencil
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            TopologicalMeshObject,
+            centredCFCCellToFaceStencilObject
+        > MeshObject_type;
 
 public:
 
     TypeName("centredCFCCellToFaceStencil");
 
+
     // Constructors
 
         //- Construct from uncompacted face stencil
@@ -72,12 +81,7 @@ public:
             const fvMesh& mesh
         )
         :
-            MeshObject
-            <
-                fvMesh,
-                Foam::TopologicalMeshObject,
-                centredCFCCellToFaceStencilObject
-            >(mesh),
+            MeshObject_type(mesh),
             extendedCentredCellToFaceStencil(CFCCellToFaceStencil(mesh))
         {
             if (extendedCellToFaceStencil::debug)
diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/centredCPCCellToFaceStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/centredCPCCellToFaceStencilObject.H
index 97dc251d17b..2c5b869bedc 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/centredCPCCellToFaceStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/centredCPCCellToFaceStencilObject.H
@@ -59,11 +59,20 @@ class centredCPCCellToFaceStencilObject
     >,
     public extendedCentredCellToFaceStencil
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            TopologicalMeshObject,
+            centredCPCCellToFaceStencilObject
+        > MeshObject_type;
 
 public:
 
     TypeName("centredCPCCellToFaceStencil");
 
+
     // Constructors
 
         //- Construct from uncompacted face stencil
@@ -72,12 +81,7 @@ public:
             const fvMesh& mesh
         )
         :
-            MeshObject
-            <
-                fvMesh,
-                Foam::TopologicalMeshObject,
-                centredCPCCellToFaceStencilObject
-            >(mesh),
+            MeshObject_type(mesh),
             extendedCentredCellToFaceStencil(CPCCellToFaceStencil(mesh))
         {
             if (extendedCellToFaceStencil::debug)
diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/centredFECCellToFaceStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/centredFECCellToFaceStencilObject.H
index 417c38026ca..05e68c6b3e2 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/centredFECCellToFaceStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/centredFECCellToFaceStencilObject.H
@@ -59,11 +59,20 @@ class centredFECCellToFaceStencilObject
     >,
     public extendedCentredCellToFaceStencil
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            TopologicalMeshObject,
+            centredFECCellToFaceStencilObject
+        > MeshObject_type;
 
 public:
 
     TypeName("centredFECCellToFaceStencil");
 
+
     // Constructors
 
         //- Construct from uncompacted face stencil
@@ -72,12 +81,7 @@ public:
             const fvMesh& mesh
         )
         :
-            MeshObject
-            <
-                fvMesh,
-                Foam::TopologicalMeshObject,
-                centredFECCellToFaceStencilObject
-            >(mesh),
+            MeshObject_type(mesh),
             extendedCentredCellToFaceStencil(FECCellToFaceStencil(mesh))
         {
             if (extendedCellToFaceStencil::debug)
diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/pureUpwindCFCCellToFaceStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/pureUpwindCFCCellToFaceStencilObject.H
index 878c77b476b..0cc9542fb58 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/pureUpwindCFCCellToFaceStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/pureUpwindCFCCellToFaceStencilObject.H
@@ -59,11 +59,20 @@ class pureUpwindCFCCellToFaceStencilObject
     >,
     public extendedUpwindCellToFaceStencil
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            TopologicalMeshObject,
+            pureUpwindCFCCellToFaceStencilObject
+        > MeshObject_type;
 
 public:
 
     TypeName("pureUpwindCFCCellToFaceStencil");
 
+
     // Constructors
 
         //- Construct from uncompacted face stencil
@@ -72,12 +81,7 @@ public:
             const fvMesh& mesh
         )
         :
-            MeshObject
-            <
-                fvMesh,
-                Foam::TopologicalMeshObject,
-                pureUpwindCFCCellToFaceStencilObject
-            >(mesh),
+            MeshObject_type(mesh),
             extendedUpwindCellToFaceStencil(CFCCellToFaceStencil(mesh))
         {
             if (extendedCellToFaceStencil::debug)
diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCECCellToFaceStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCECCellToFaceStencilObject.H
index 0eb9db494ba..701d1698f69 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCECCellToFaceStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCECCellToFaceStencilObject.H
@@ -59,11 +59,20 @@ class upwindCECCellToFaceStencilObject
     >,
     public extendedUpwindCellToFaceStencil
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            TopologicalMeshObject,
+            upwindCECCellToFaceStencilObject
+        > MeshObject_type;
 
 public:
 
     TypeName("upwindCECCellToFaceStencil");
 
+
     // Constructors
 
         //- Construct from uncompacted face stencil
@@ -74,12 +83,7 @@ public:
             const scalar minOpposedness
         )
         :
-            MeshObject
-            <
-                fvMesh,
-                Foam::TopologicalMeshObject,
-                upwindCECCellToFaceStencilObject
-            >(mesh),
+            MeshObject_type(mesh),
             extendedUpwindCellToFaceStencil
             (
                 CECCellToFaceStencil(mesh),
diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCFCCellToFaceStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCFCCellToFaceStencilObject.H
index c3505df95ae..a3cea19277c 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCFCCellToFaceStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCFCCellToFaceStencilObject.H
@@ -59,11 +59,21 @@ class upwindCFCCellToFaceStencilObject
     >,
     public extendedUpwindCellToFaceStencil
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            TopologicalMeshObject,
+            upwindCFCCellToFaceStencilObject
+        > MeshObject_type;
+
 
 public:
 
     TypeName("upwindCFCCellToFaceStencil");
 
+
     // Constructors
 
         //- Construct from uncompacted face stencil
@@ -74,12 +84,7 @@ public:
             const scalar minOpposedness
         )
         :
-            MeshObject
-            <
-                fvMesh,
-                Foam::TopologicalMeshObject,
-                upwindCFCCellToFaceStencilObject
-            >(mesh),
+            MeshObject_type(mesh),
             extendedUpwindCellToFaceStencil
             (
                 CFCCellToFaceStencil(mesh),
diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCPCCellToFaceStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCPCCellToFaceStencilObject.H
index f2757a76627..985ae899561 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCPCCellToFaceStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindCPCCellToFaceStencilObject.H
@@ -59,11 +59,20 @@ class upwindCPCCellToFaceStencilObject
     >,
     public extendedUpwindCellToFaceStencil
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            TopologicalMeshObject,
+            upwindCPCCellToFaceStencilObject
+        > MeshObject_type;
 
 public:
 
     TypeName("upwindCPCCellToFaceStencil");
 
+
     // Constructors
 
         //- Construct from uncompacted face stencil
@@ -74,12 +83,7 @@ public:
             const scalar minOpposedness
         )
         :
-            MeshObject
-            <
-                fvMesh,
-                Foam::TopologicalMeshObject,
-                upwindCPCCellToFaceStencilObject
-            >(mesh),
+            MeshObject_type(mesh),
             extendedUpwindCellToFaceStencil
             (
                 CPCCellToFaceStencil(mesh),
diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindFECCellToFaceStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindFECCellToFaceStencilObject.H
index 8468e763080..97f69a18126 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindFECCellToFaceStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/MeshObjects/upwindFECCellToFaceStencilObject.H
@@ -59,6 +59,14 @@ class upwindFECCellToFaceStencilObject
     >,
     public extendedUpwindCellToFaceStencil
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            TopologicalMeshObject,
+            upwindFECCellToFaceStencilObject
+        > MeshObject_type;
 
 public:
 
@@ -74,12 +82,7 @@ public:
             const scalar minOpposedness
         )
         :
-            MeshObject
-            <
-                fvMesh,
-                Foam::TopologicalMeshObject,
-                upwindFECCellToFaceStencilObject
-            >(mesh),
+            MeshObject_type(mesh),
             extendedUpwindCellToFaceStencil
             (
                 FECCellToFaceStencil(mesh),
diff --git a/src/finiteVolume/fvMesh/extendedStencil/faceToCell/MeshObjects/centredCFCFaceToCellStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/faceToCell/MeshObjects/centredCFCFaceToCellStencilObject.H
index 4250e2e73e2..8b04035ed11 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/faceToCell/MeshObjects/centredCFCFaceToCellStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/faceToCell/MeshObjects/centredCFCFaceToCellStencilObject.H
@@ -59,11 +59,20 @@ class centredCFCFaceToCellStencilObject
     >,
     public extendedCentredFaceToCellStencil
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            TopologicalMeshObject,
+            centredCFCFaceToCellStencilObject
+        > MeshObject_type;
 
 public:
 
     TypeName("centredCFCFaceToCellStencil");
 
+
     // Constructors
 
         //- Construct from uncompacted face stencil
@@ -72,12 +81,7 @@ public:
             const fvMesh& mesh
         )
         :
-            MeshObject
-            <
-                fvMesh,
-                Foam::TopologicalMeshObject,
-                centredCFCFaceToCellStencilObject
-            >(mesh),
+            MeshObject_type(mesh),
             extendedCentredFaceToCellStencil(CFCFaceToCellStencil(mesh))
         {}
 
diff --git a/src/finiteVolume/fvMesh/fvGeometryScheme/highAspectRatio/cellAspectRatio.C b/src/finiteVolume/fvMesh/fvGeometryScheme/highAspectRatio/cellAspectRatio.C
index bfb3ebe215d..efa5a01fd9e 100644
--- a/src/finiteVolume/fvMesh/fvGeometryScheme/highAspectRatio/cellAspectRatio.C
+++ b/src/finiteVolume/fvMesh/fvGeometryScheme/highAspectRatio/cellAspectRatio.C
@@ -39,7 +39,7 @@ namespace Foam
 
 Foam::cellAspectRatio::cellAspectRatio(const polyMesh& mesh)
 :
-    MeshObject<polyMesh, Foam::MoveableMeshObject, cellAspectRatio>(mesh)
+    MeshObject_type(mesh)
 {
     calcAspectRatio();
 }
diff --git a/src/finiteVolume/fvMesh/fvGeometryScheme/highAspectRatio/cellAspectRatio.H b/src/finiteVolume/fvMesh/fvGeometryScheme/highAspectRatio/cellAspectRatio.H
index ed0dd9ab3e5..071ac186cf8 100644
--- a/src/finiteVolume/fvMesh/fvGeometryScheme/highAspectRatio/cellAspectRatio.H
+++ b/src/finiteVolume/fvMesh/fvGeometryScheme/highAspectRatio/cellAspectRatio.H
@@ -54,6 +54,16 @@ class cellAspectRatio
     public MeshObject<polyMesh, MoveableMeshObject, cellAspectRatio>,
     public scalarField
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            polyMesh,
+            MoveableMeshObject,
+            cellAspectRatio
+        > MeshObject_type;
+
+
     // Private Member Functions
 
         //- Construct aspect ratio
diff --git a/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C b/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C
index 458efc2e2df..5e960a8489f 100644
--- a/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C
+++ b/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C
@@ -90,7 +90,7 @@ Foam::wallDist::wallDist
     const word& patchTypeName
 )
 :
-    MeshObject<fvMesh, Foam::UpdateableMeshObject, wallDist>(mesh),
+    MeshObject_type(mesh),
     patchIDs_(patchIDs),
     patchTypeName_(patchTypeName),
     dict_
@@ -154,6 +154,22 @@ Foam::wallDist::~wallDist()
 {}
 
 
+// * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * //
+
+bool Foam::wallDist::try_movePoints(const fvMesh& mesh)
+{
+    auto* ptr =
+        mesh.getObjectPtr<UpdateableMeshObject<fvMesh>>("wallDist");
+
+    if (ptr)
+    {
+        return ptr->movePoints();
+    }
+
+    return false;
+}
+
+
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 const Foam::volVectorField& Foam::wallDist::n() const
diff --git a/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.H b/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.H
index d2dfa391b60..b1938be2bcf 100644
--- a/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.H
+++ b/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.H
@@ -77,7 +77,17 @@ class wallDist
 :
     public MeshObject<fvMesh, UpdateableMeshObject, wallDist>
 {
-    // Private data
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            UpdateableMeshObject,
+            wallDist
+        > MeshObject_type;
+
+
+    // Private Data
 
         //- Set of patch IDs
         const labelHashSet patchIDs_;
@@ -157,6 +167,13 @@ public:
     virtual ~wallDist();
 
 
+    // Static Member Functions
+
+        //- Trigger update of y-field for the "wallDist" MeshObject on the
+        //- given mesh. A no-op if the wallDist is not found.
+        static bool try_movePoints(const fvMesh& mesh);
+
+
     // Member Functions
 
         //- Return the patchIDs
diff --git a/src/finiteVolume/fvMesh/wallDist/wallDistAddressing/wallDistAddressing.C b/src/finiteVolume/fvMesh/wallDist/wallDistAddressing/wallDistAddressing.C
index e7f21e66b2c..653079e98e3 100644
--- a/src/finiteVolume/fvMesh/wallDist/wallDistAddressing/wallDistAddressing.C
+++ b/src/finiteVolume/fvMesh/wallDist/wallDistAddressing/wallDistAddressing.C
@@ -387,7 +387,7 @@ Foam::wallDistAddressing::wallDistAddressing
 )
 :
     // Register as "wallDistAddressing"
-    MeshObject<fvMesh, Foam::UpdateableMeshObject, wallDistAddressing>(mesh),
+    MeshObject_type(mesh),
     cellDistFuncs(mesh),
     patchIDs_(mesh.boundaryMesh().findPatchIDs<wallPolyPatch>().sortedToc()),
     patchTypeName_("wall"),
@@ -420,11 +420,7 @@ Foam::wallDistAddressing::wallDistAddressing
     const label updateInterval
 )
 :
-    MeshObject<fvMesh, Foam::UpdateableMeshObject, wallDistAddressing>
-    (
-        patchTypeName,
-        mesh
-    ),
+    MeshObject_type(patchTypeName, mesh),
     cellDistFuncs(mesh),
     patchIDs_(patchIDs),
     patchTypeName_(patchTypeName),
diff --git a/src/finiteVolume/fvMesh/wallDist/wallDistAddressing/wallDistAddressing.H b/src/finiteVolume/fvMesh/wallDist/wallDistAddressing/wallDistAddressing.H
index 4bc5855b19b..a1e20342971 100644
--- a/src/finiteVolume/fvMesh/wallDist/wallDistAddressing/wallDistAddressing.H
+++ b/src/finiteVolume/fvMesh/wallDist/wallDistAddressing/wallDistAddressing.H
@@ -114,8 +114,19 @@ class wallDistAddressing
     public MeshObject<fvMesh, UpdateableMeshObject, wallDistAddressing>,
     public cellDistFuncs
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            UpdateableMeshObject,
+            wallDistAddressing
+        > MeshObject_type;
+
+
     //- Use fvMesh& instead of cellDistFuncs polyMesh&
-    using MeshObject<fvMesh, UpdateableMeshObject, wallDistAddressing>::mesh_;
+    using MeshObject_type::mesh_;
+
 
 protected:
 
diff --git a/src/finiteVolume/fvMesh/zoneDistribute/zoneDistribute.C b/src/finiteVolume/fvMesh/zoneDistribute/zoneDistribute.C
index aae092a6d0d..0aa301237de 100644
--- a/src/finiteVolume/fvMesh/zoneDistribute/zoneDistribute.C
+++ b/src/finiteVolume/fvMesh/zoneDistribute/zoneDistribute.C
@@ -40,7 +40,7 @@ namespace Foam
 
 Foam::zoneDistribute::zoneDistribute(const fvMesh& mesh)
 :
-    MeshObject<fvMesh, Foam::TopologicalMeshObject, zoneDistribute>(mesh),
+    MeshObject_type(mesh),
     stencil_(zoneCPCStencil::New(mesh)),
     globalNumbering_(stencil_.globalNumbering()),
     send_(UPstream::nProcs()),
diff --git a/src/finiteVolume/fvMesh/zoneDistribute/zoneDistribute.H b/src/finiteVolume/fvMesh/zoneDistribute/zoneDistribute.H
index 3b0e182a582..dce29d9f868 100644
--- a/src/finiteVolume/fvMesh/zoneDistribute/zoneDistribute.H
+++ b/src/finiteVolume/fvMesh/zoneDistribute/zoneDistribute.H
@@ -82,6 +82,16 @@ class zoneDistribute
 :
     public MeshObject<fvMesh, TopologicalMeshObject, zoneDistribute>
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            TopologicalMeshObject,
+            zoneDistribute
+        > MeshObject_type;
+
+
     // Private Data
 
         //- Reference to the zone stencil
diff --git a/src/finiteVolume/fvMesh/zoneDistribute/zoneStencils/zoneCPCStencil.C b/src/finiteVolume/fvMesh/zoneDistribute/zoneStencils/zoneCPCStencil.C
index 8f6ae13f098..1fb210d0b32 100644
--- a/src/finiteVolume/fvMesh/zoneDistribute/zoneStencils/zoneCPCStencil.C
+++ b/src/finiteVolume/fvMesh/zoneDistribute/zoneStencils/zoneCPCStencil.C
@@ -123,7 +123,7 @@ void Foam::zoneCPCStencil::calcPointBoundaryData
 
 Foam::zoneCPCStencil::zoneCPCStencil(const fvMesh& mesh)
 :
-    MeshObject<fvMesh, Foam::TopologicalMeshObject, zoneCPCStencil>(mesh),
+    MeshObject_type(mesh),
     zoneCellStencils(mesh),
     nonEmptyBoundaryPoints_(nonEmptyFacesPatch()().meshPoints()),
     uptodate_(mesh.nCells(), false)
diff --git a/src/finiteVolume/fvMesh/zoneDistribute/zoneStencils/zoneCPCStencil.H b/src/finiteVolume/fvMesh/zoneDistribute/zoneStencils/zoneCPCStencil.H
index 23fcb624c4a..37437a00694 100644
--- a/src/finiteVolume/fvMesh/zoneDistribute/zoneStencils/zoneCPCStencil.H
+++ b/src/finiteVolume/fvMesh/zoneDistribute/zoneStencils/zoneCPCStencil.H
@@ -66,6 +66,16 @@ class zoneCPCStencil
     >,
     public zoneCellStencils
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            TopologicalMeshObject,
+            zoneCPCStencil
+        > MeshObject_type;
+
+
     // Private Data
 
         labelList nonEmptyBoundaryPoints_;
@@ -120,6 +130,7 @@ public:
         //- Construct from all cells and boundary faces
         explicit zoneCPCStencil(const fvMesh&);
 
+
     // Selectors
 
         static zoneCPCStencil& New(const fvMesh&);
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.C
index 5c7b100d839..ac471eddce0 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.C
@@ -42,7 +42,7 @@ Foam::FitData<Form, ExtendedStencil, Polynomial>::FitData
     const scalar centralWeight
 )
 :
-    MeshObject<fvMesh, Foam::MoveableMeshObject, Form>(mesh),
+    MeshObject_type(mesh),
     stencil_(stencil),
     linearCorrection_(linearCorrection),
     linearLimitFactor_(linearLimitFactor),
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.H
index d30ff69179c..05bfed4f6e1 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.H
@@ -59,7 +59,17 @@ class FitData
 :
     public MeshObject<fvMesh, MoveableMeshObject, FitDataType>
 {
-    // Private data
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            MoveableMeshObject,
+            FitDataType
+        > MeshObject_type;
+
+
+    // Private Data
 
         //- The stencil the fit is based on
         const ExtendedStencil& stencil_;
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/skewCorrected/skewCorrectionVectors.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/skewCorrected/skewCorrectionVectors.C
index 673f7d9e972..83719a79315 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/skewCorrected/skewCorrectionVectors.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/skewCorrected/skewCorrectionVectors.C
@@ -41,7 +41,7 @@ namespace Foam
 
 Foam::skewCorrectionVectors::skewCorrectionVectors(const fvMesh& mesh)
 :
-    MeshObject<fvMesh, Foam::MoveableMeshObject, skewCorrectionVectors>(mesh),
+    MeshObject_type(mesh),
     skew_(false),
     skewCorrectionVectors_
     (
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/skewCorrected/skewCorrectionVectors.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/skewCorrected/skewCorrectionVectors.H
index 0c621b10dcf..aebf0ddfd48 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/skewCorrected/skewCorrectionVectors.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/skewCorrected/skewCorrectionVectors.H
@@ -46,6 +46,7 @@ SourceFiles
 namespace Foam
 {
 
+// Forward Declarations
 class fvMesh;
 
 /*---------------------------------------------------------------------------*\
@@ -56,7 +57,17 @@ class skewCorrectionVectors
 :
     public MeshObject<fvMesh, MoveableMeshObject, skewCorrectionVectors>
 {
-    // Private data
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            MoveableMeshObject,
+            skewCorrectionVectors
+        > MeshObject_type;
+
+
+    // Private Data
 
         //- Is mesh skew
         bool skew_;
@@ -75,6 +86,7 @@ public:
 
     // Constructors
 
+        //- Construct given fvMesh
         explicit skewCorrectionVectors(const fvMesh& mesh);
 
 
@@ -82,7 +94,7 @@ public:
     virtual ~skewCorrectionVectors();
 
 
-    // Member functions
+    // Member Functions
 
         //- Return whether mesh is skew or not
         bool skew() const
diff --git a/src/finiteVolume/interpolation/volPointInterpolation/pointConstraints.C b/src/finiteVolume/interpolation/volPointInterpolation/pointConstraints.C
index efbbaa7140f..f5bcdc8abdc 100644
--- a/src/finiteVolume/interpolation/volPointInterpolation/pointConstraints.C
+++ b/src/finiteVolume/interpolation/volPointInterpolation/pointConstraints.C
@@ -354,7 +354,7 @@ void Foam::pointConstraints::makePatchPatchAddressing()
 
 Foam::pointConstraints::pointConstraints(const pointMesh& pm)
 :
-    MeshObject<pointMesh, Foam::UpdateableMeshObject, pointConstraints>(pm)
+    MeshObject_type(pm)
 {
     if (debug)
     {
diff --git a/src/finiteVolume/interpolation/volPointInterpolation/pointConstraints.H b/src/finiteVolume/interpolation/volPointInterpolation/pointConstraints.H
index 1bf5005fac3..bcd904598e9 100644
--- a/src/finiteVolume/interpolation/volPointInterpolation/pointConstraints.H
+++ b/src/finiteVolume/interpolation/volPointInterpolation/pointConstraints.H
@@ -55,6 +55,7 @@ SourceFiles
 namespace Foam
 {
 
+// Forward Declarations
 class pointMesh;
 class polyMesh;
 
@@ -66,7 +67,17 @@ class pointConstraints
 :
     public MeshObject<pointMesh, UpdateableMeshObject, pointConstraints>
 {
-    // Private data
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            pointMesh,
+            UpdateableMeshObject,
+            pointConstraints
+        > MeshObject_type;
+
+
+    // Private Data
 
         // Patch-patch constraints
 
diff --git a/src/finiteVolume/interpolation/volPointInterpolation/volPointInterpolation.C b/src/finiteVolume/interpolation/volPointInterpolation/volPointInterpolation.C
index 9b2dd90aadf..31f4f9f0a47 100644
--- a/src/finiteVolume/interpolation/volPointInterpolation/volPointInterpolation.C
+++ b/src/finiteVolume/interpolation/volPointInterpolation/volPointInterpolation.C
@@ -473,7 +473,7 @@ void Foam::volPointInterpolation::makeWeights()
 
 Foam::volPointInterpolation::volPointInterpolation(const fvMesh& vm)
 :
-    MeshObject<fvMesh, Foam::UpdateableMeshObject, volPointInterpolation>(vm),
+    MeshObject_type(vm),
     hasSeparated_(hasSeparated(pointMesh::New(vm)))
 {
     makeWeights();
diff --git a/src/finiteVolume/interpolation/volPointInterpolation/volPointInterpolation.H b/src/finiteVolume/interpolation/volPointInterpolation/volPointInterpolation.H
index 724a838673e..a51725b3829 100644
--- a/src/finiteVolume/interpolation/volPointInterpolation/volPointInterpolation.H
+++ b/src/finiteVolume/interpolation/volPointInterpolation/volPointInterpolation.H
@@ -50,6 +50,7 @@ SourceFiles
 namespace Foam
 {
 
+// Forward Declarations
 class fvMesh;
 class pointMesh;
 
@@ -61,7 +62,17 @@ class volPointInterpolation
 :
     public MeshObject<fvMesh, UpdateableMeshObject, volPointInterpolation>
 {
-    // Private data
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            UpdateableMeshObject,
+            volPointInterpolation
+        > MeshObject_type;
+
+
+    // Private Data
 
         //- Interpolation scheme weighting factor array.
         scalarListList pointWeights_;
@@ -150,7 +161,7 @@ public:
 
     // Constructors
 
-        //- Constructor given fvMesh and pointMesh.
+        //- Construct given fvMesh
         explicit volPointInterpolation(const fvMesh&);
 
 
diff --git a/src/meshTools/matrices/lduMatrix/preconditioners/distributedDILUPreconditioner/processorColour.C b/src/meshTools/matrices/lduMatrix/preconditioners/distributedDILUPreconditioner/processorColour.C
index c1a3888b2b7..9406b83b0f7 100644
--- a/src/meshTools/matrices/lduMatrix/preconditioners/distributedDILUPreconditioner/processorColour.C
+++ b/src/meshTools/matrices/lduMatrix/preconditioners/distributedDILUPreconditioner/processorColour.C
@@ -330,7 +330,7 @@ Foam::label Foam::processorColour::cellColour
 
 Foam::processorColour::processorColour(const lduMesh& mesh)
 :
-    MeshObject<lduMesh, Foam::MoveableMeshObject, processorColour>(mesh)
+    MeshObject_type(mesh)
 {
     nColours_ = colour(mesh, *this);
 }
diff --git a/src/meshTools/matrices/lduMatrix/preconditioners/distributedDILUPreconditioner/processorColour.H b/src/meshTools/matrices/lduMatrix/preconditioners/distributedDILUPreconditioner/processorColour.H
index e4fe4857cae..b7b85d70af1 100644
--- a/src/meshTools/matrices/lduMatrix/preconditioners/distributedDILUPreconditioner/processorColour.H
+++ b/src/meshTools/matrices/lduMatrix/preconditioners/distributedDILUPreconditioner/processorColour.H
@@ -58,6 +58,25 @@ class processorColour
     public MeshObject<lduMesh, MoveableMeshObject, processorColour>,
     public labelList
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            lduMesh,
+            MoveableMeshObject,
+            processorColour
+        > MeshObject_type;
+
+
+    // Private Member Functions
+
+        //- No copy construct
+        processorColour(const processorColour&) = delete;
+
+        //- No copy assignment
+        void operator=(const processorColour&) = delete;
+
+
 protected:
 
     // Protected data
@@ -75,16 +94,6 @@ protected:
             labelList& cellColour
         );
 
-
-private:
-
-        //- No copy construct
-        processorColour(const processorColour&) = delete;
-
-        //- No copy assignment
-        void operator=(const processorColour&) = delete;
-
-
 public:
 
     //- Runtime type information
@@ -94,7 +103,7 @@ public:
     // Constructors
 
         //- Construct given mesh
-        processorColour(const lduMesh& mesh);
+        explicit processorColour(const lduMesh& mesh);
 
 
     // Selectors
diff --git a/src/meshTools/meshSearch/meshSearchFACE_CENTRE_TRISMeshObject.C b/src/meshTools/meshSearch/meshSearchFACE_CENTRE_TRISMeshObject.C
index fe6fe7502ed..22b1bffc6b6 100644
--- a/src/meshTools/meshSearch/meshSearchFACE_CENTRE_TRISMeshObject.C
+++ b/src/meshTools/meshSearch/meshSearchFACE_CENTRE_TRISMeshObject.C
@@ -35,21 +35,4 @@ namespace Foam
 }
 
 
-// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
-
-Foam::meshSearchFACE_CENTRE_TRISMeshObject::meshSearchFACE_CENTRE_TRISMeshObject
-(
-    const polyMesh& mesh
-)
-:
-    MeshObject
-    <
-        polyMesh,
-        Foam::GeometricMeshObject,
-        meshSearchFACE_CENTRE_TRISMeshObject
-    >(mesh),
-    meshSearch(mesh, polyMesh::FACE_CENTRE_TRIS)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/meshTools/meshSearch/meshSearchFACE_CENTRE_TRISMeshObject.H b/src/meshTools/meshSearch/meshSearchFACE_CENTRE_TRISMeshObject.H
index 1b80305ba8f..bdeb3e46374 100644
--- a/src/meshTools/meshSearch/meshSearchFACE_CENTRE_TRISMeshObject.H
+++ b/src/meshTools/meshSearch/meshSearchFACE_CENTRE_TRISMeshObject.H
@@ -59,6 +59,14 @@ class meshSearchFACE_CENTRE_TRISMeshObject
     >,
     public meshSearch
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            polyMesh,
+            GeometricMeshObject,
+            meshSearchFACE_CENTRE_TRISMeshObject
+        > MeshObject_type;
 
 public:
 
@@ -68,8 +76,13 @@ public:
 
     // Constructors
 
-        //- Constructor given polyMesh
-        explicit meshSearchFACE_CENTRE_TRISMeshObject(const polyMesh& mesh);
+        //- Construct given polyMesh
+        explicit meshSearchFACE_CENTRE_TRISMeshObject(const polyMesh& mesh)
+        :
+            MeshObject_type(mesh),
+            meshSearch(mesh, polyMesh::FACE_CENTRE_TRIS)
+        {}
+
 
     //- Destructor
     virtual ~meshSearchFACE_CENTRE_TRISMeshObject() = default;
diff --git a/src/meshTools/meshSearch/meshSearchMeshObject.C b/src/meshTools/meshSearch/meshSearchMeshObject.C
index 0782d9aaa0b..e979ffc1426 100644
--- a/src/meshTools/meshSearch/meshSearchMeshObject.C
+++ b/src/meshTools/meshSearch/meshSearchMeshObject.C
@@ -35,13 +35,4 @@ namespace Foam
 }
 
 
-// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
-
-Foam::meshSearchMeshObject::meshSearchMeshObject(const polyMesh& mesh)
-:
-    MeshObject<polyMesh, Foam::GeometricMeshObject, meshSearchMeshObject>(mesh),
-    meshSearch(mesh)
-{}
-
-
 // ************************************************************************* //
diff --git a/src/meshTools/meshSearch/meshSearchMeshObject.H b/src/meshTools/meshSearch/meshSearchMeshObject.H
index 81e3359ea95..65b31a4ce24 100644
--- a/src/meshTools/meshSearch/meshSearchMeshObject.H
+++ b/src/meshTools/meshSearch/meshSearchMeshObject.H
@@ -54,6 +54,14 @@ class meshSearchMeshObject
     public MeshObject<polyMesh, GeometricMeshObject, meshSearchMeshObject>,
     public meshSearch
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            polyMesh,
+            GeometricMeshObject,
+            meshSearchMeshObject
+        > MeshObject_type;
 
 public:
 
@@ -63,8 +71,13 @@ public:
 
     // Constructors
 
-        //- Constructor given polyMesh
-        explicit meshSearchMeshObject(const polyMesh& mesh);
+        //- Construct given polyMesh
+        explicit meshSearchMeshObject(const polyMesh& mesh)
+        :
+            MeshObject_type(mesh),
+            meshSearch(mesh)
+        {}
+
 
     //- Destructor
     virtual ~meshSearchMeshObject() = default;
diff --git a/src/meshTools/multiWorld/multiWorldConnectionsObject.C b/src/meshTools/multiWorld/multiWorldConnectionsObject.C
index 0e5c9e14b3d..caa05034311 100644
--- a/src/meshTools/multiWorld/multiWorldConnectionsObject.C
+++ b/src/meshTools/multiWorld/multiWorldConnectionsObject.C
@@ -181,7 +181,7 @@ Foam::label Foam::multiWorldConnections::createCommunicator(const edge& worlds)
 
 Foam::multiWorldConnections::multiWorldConnections(const Time& runTime)
 :
-    MeshObjectType(runTime)
+    MeshObject_type(runTime)
 {}
 
 
@@ -190,16 +190,10 @@ Foam::multiWorldConnections::multiWorldConnections(const Time& runTime)
 const Foam::multiWorldConnections&
 Foam::multiWorldConnections::New(const Time& runTime)
 {
-    return MeshObjectType::New(runTime);
+    return MeshObject_type::New(runTime);
 }
 
 
-// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
-
-Foam::multiWorldConnections::~multiWorldConnections()
-{}
-
-
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 bool Foam::multiWorldConnections::empty() const noexcept
diff --git a/src/meshTools/multiWorld/multiWorldConnectionsObject.H b/src/meshTools/multiWorld/multiWorldConnectionsObject.H
index d0c0bb7616c..5f69f2398e2 100644
--- a/src/meshTools/multiWorld/multiWorldConnectionsObject.H
+++ b/src/meshTools/multiWorld/multiWorldConnectionsObject.H
@@ -69,7 +69,7 @@ class multiWorldConnections
             Time,
             TopologicalMeshObject,
             multiWorldConnections
-        > MeshObjectType;
+        > MeshObject_type;
 
 
     // Private Data
@@ -111,7 +111,7 @@ public:
 
 
     //- Destructor
-    ~multiWorldConnections();
+    ~multiWorldConnections() = default;
 
 
     // Member Functions
diff --git a/src/meshTools/regionSplit/regionSplit.C b/src/meshTools/regionSplit/regionSplit.C
index 9e02486ed53..7c0005a5820 100644
--- a/src/meshTools/regionSplit/regionSplit.C
+++ b/src/meshTools/regionSplit/regionSplit.C
@@ -385,7 +385,7 @@ Foam::regionSplit::regionSplit
     const bool doGlobalRegions
 )
 :
-    MeshObject<polyMesh, Foam::TopologicalMeshObject, regionSplit>(mesh),
+    MeshObject_type(mesh),
     labelList(mesh.nCells(), UNASSIGNED),
     globalNumbering_()
 {
@@ -432,7 +432,7 @@ Foam::regionSplit::regionSplit
     const bool doGlobalRegions
 )
 :
-    MeshObject<polyMesh, Foam::TopologicalMeshObject, regionSplit>(mesh),
+    MeshObject_type(mesh),
     labelList(mesh.nCells(), UNASSIGNED),
     globalNumbering_()
 {
diff --git a/src/meshTools/regionSplit/regionSplit.H b/src/meshTools/regionSplit/regionSplit.H
index 8e0d28e348d..9ad158fc356 100644
--- a/src/meshTools/regionSplit/regionSplit.H
+++ b/src/meshTools/regionSplit/regionSplit.H
@@ -143,6 +143,16 @@ class regionSplit
     public MeshObject<polyMesh, TopologicalMeshObject, regionSplit>,
     public labelList
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            polyMesh,
+            TopologicalMeshObject,
+            regionSplit
+        > MeshObject_type;
+
+
     // Private Data
 
         //- Indexing into the regions
@@ -157,7 +167,6 @@ class regionSplit
 
     // Private Class
 
-
         //- Simple wrapper for handling test() on bitSet or boolList
         //- without a templating layer or lambda expresssion.
         class bitSetOrBoolList
diff --git a/src/meshTools/twoDPointCorrector/twoDPointCorrector.C b/src/meshTools/twoDPointCorrector/twoDPointCorrector.C
index 29fcae294fa..827faa279cb 100644
--- a/src/meshTools/twoDPointCorrector/twoDPointCorrector.C
+++ b/src/meshTools/twoDPointCorrector/twoDPointCorrector.C
@@ -199,7 +199,7 @@ void Foam::twoDPointCorrector::snapToWedge
 
 Foam::twoDPointCorrector::twoDPointCorrector(const polyMesh& mesh)
 :
-    MeshObject<polyMesh, Foam::UpdateableMeshObject, twoDPointCorrector>(mesh),
+    MeshObject_type(mesh),
     required_(mesh_.nGeometricD() == 2),
     planeNormalPtr_(nullptr),
     normalEdgeIndicesPtr_(nullptr),
@@ -209,7 +209,6 @@ Foam::twoDPointCorrector::twoDPointCorrector(const polyMesh& mesh)
 {}
 
 
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::twoDPointCorrector::~twoDPointCorrector()
diff --git a/src/meshTools/twoDPointCorrector/twoDPointCorrector.H b/src/meshTools/twoDPointCorrector/twoDPointCorrector.H
index b7c7d831ffb..ff9c6195f05 100644
--- a/src/meshTools/twoDPointCorrector/twoDPointCorrector.H
+++ b/src/meshTools/twoDPointCorrector/twoDPointCorrector.H
@@ -54,7 +54,7 @@ SourceFiles
 namespace Foam
 {
 
-// Forward class declarations
+// Forward Declarations
 class polyMesh;
 
 /*---------------------------------------------------------------------------*\
@@ -65,7 +65,17 @@ class twoDPointCorrector
 :
     public MeshObject<polyMesh, UpdateableMeshObject, twoDPointCorrector>
 {
-    // Private data
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            polyMesh,
+            UpdateableMeshObject,
+            twoDPointCorrector
+        > MeshObject_type;
+
+
+    // Private Data
 
         //- Is 2D correction required, i.e. is the mesh
         bool required_;
diff --git a/src/optimisation/adjointOptimisation/adjoint/interpolation/pointVolInterpolation/pointVolInterpolation.H b/src/optimisation/adjointOptimisation/adjoint/interpolation/pointVolInterpolation/pointVolInterpolation.H
index 642b3062e10..b3372d82baa 100644
--- a/src/optimisation/adjointOptimisation/adjoint/interpolation/pointVolInterpolation/pointVolInterpolation.H
+++ b/src/optimisation/adjointOptimisation/adjoint/interpolation/pointVolInterpolation/pointVolInterpolation.H
@@ -53,6 +53,7 @@ SourceFiles
 namespace Foam
 {
 
+// Forward Declarations
 class fvMesh;
 class pointMesh;
 
@@ -62,7 +63,7 @@ class pointMesh;
 
 class pointVolInterpolation
 {
-    // Private data
+    // Private Data
 
         const pointMesh& pointMesh_;
         const fvMesh& fvMesh_;
@@ -110,13 +111,12 @@ public:
 
     // Constructors
 
-        //- Constructor given pointMesh and fvMesh.
+        //- Construct given pointMesh and fvMesh.
         pointVolInterpolation(const pointMesh&, const fvMesh&);
 
 
-    // Destructor
-
-        ~pointVolInterpolation();
+    //- Destructor
+    ~pointVolInterpolation();
 
 
     // Member functions
diff --git a/src/optimisation/adjointOptimisation/adjoint/interpolation/volPointInterpolation/volPointInterpolationAdjoint.C b/src/optimisation/adjointOptimisation/adjoint/interpolation/volPointInterpolation/volPointInterpolationAdjoint.C
index 63e07ae5266..0d63d8cff34 100644
--- a/src/optimisation/adjointOptimisation/adjoint/interpolation/volPointInterpolation/volPointInterpolationAdjoint.C
+++ b/src/optimisation/adjointOptimisation/adjoint/interpolation/volPointInterpolation/volPointInterpolationAdjoint.C
@@ -297,10 +297,7 @@ void Foam::volPointInterpolationAdjoint::makeWeights()
 
 Foam::volPointInterpolationAdjoint::volPointInterpolationAdjoint(const fvMesh& vm)
 :
-    MeshObject<fvMesh, Foam::UpdateableMeshObject, volPointInterpolationAdjoint>
-    (
-        vm
-    )
+    MeshObject_type(vm)
 {
     makeWeights();
 }
diff --git a/src/optimisation/adjointOptimisation/adjoint/interpolation/volPointInterpolation/volPointInterpolationAdjoint.H b/src/optimisation/adjointOptimisation/adjoint/interpolation/volPointInterpolation/volPointInterpolationAdjoint.H
index 78225457b8b..7d6c7339790 100644
--- a/src/optimisation/adjointOptimisation/adjoint/interpolation/volPointInterpolation/volPointInterpolationAdjoint.H
+++ b/src/optimisation/adjointOptimisation/adjoint/interpolation/volPointInterpolation/volPointInterpolationAdjoint.H
@@ -50,6 +50,7 @@ SourceFiles
 namespace Foam
 {
 
+// Forward Declarations
 class fvMesh;
 class pointMesh;
 
@@ -59,8 +60,23 @@ class pointMesh;
 
 class volPointInterpolationAdjoint
 :
-    public MeshObject<fvMesh, UpdateableMeshObject, volPointInterpolationAdjoint>
+    public MeshObject
+    <
+        fvMesh,
+        UpdateableMeshObject,
+        volPointInterpolationAdjoint
+    >
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            UpdateableMeshObject,
+            volPointInterpolationAdjoint
+        > MeshObject_type;
+
+
 protected:
 
     // Protected data
@@ -128,7 +144,7 @@ public:
 
     // Constructors
 
-        //- Constructor given fvMesh and pointMesh.
+        //- Construct given fvMesh
         explicit volPointInterpolationAdjoint(const fvMesh&);
 
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/levelSet/levelSetDesignVariables.C b/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/levelSet/levelSetDesignVariables.C
index 3d9d41c561f..ea00083fed9 100644
--- a/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/levelSet/levelSetDesignVariables.C
+++ b/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/levelSet/levelSetDesignVariables.C
@@ -417,11 +417,8 @@ void levelSetDesignVariables::update(scalarField& correction)
 
     // Though the mesh is kept constant, the distance from wall may change
     // due to fvOptions depending on beta. Trick wallDist into updating it
-    if (mesh_.foundObject<UpdateableMeshObject<fvMesh>>("wallDist"))
-    {
-        mesh_.lookupObjectRef<UpdateableMeshObject<fvMesh>>("wallDist").
-            movePoints();
-    }
+
+    wallDist::try_movePoints(mesh_);
 }
 
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/topODesignVariables.C b/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/topODesignVariables.C
index 9b7b1416289..5aa934df68d 100644
--- a/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/topODesignVariables.C
+++ b/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/topODesignVariables.C
@@ -28,7 +28,7 @@ License
 
 #include "localIOdictionary.H"
 #include "topODesignVariables.H"
-#include "MeshObject.H"
+#include "wallDist.H"
 #include "wallFvPatch.H"
 #include "cutFaceIso.H"
 #include "cutCellIso.H"
@@ -452,11 +452,9 @@ void Foam::topODesignVariables::update(scalarField& correction)
     // if the method computing it includes fvOptions that depend on the
     // indicator field.
     // Trick wallDist into updating it
-    if (mesh_.foundObject<UpdateableMeshObject<fvMesh>>("wallDist"))
-    {
-        mesh_.lookupObjectRef<UpdateableMeshObject<fvMesh>>("wallDist").
-            movePoints();
-    }
+
+    wallDist::try_movePoints(mesh_);
+
 
     // Write the 0.5 beta iso-line to files, as an indication of the
     // fluid-solid interface
diff --git a/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.C b/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.C
index 4ff3278479b..2e38bb25a91 100644
--- a/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.C
+++ b/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.C
@@ -45,7 +45,7 @@ volBSplinesBase::volBSplinesBase
     const fvMesh& mesh
 )
 :
-    MeshObject<fvMesh, UpdateableMeshObject, volBSplinesBase>(mesh),
+    MeshObject_type(mesh),
     volume_(0),
     activeDesignVariables_(0)
 {
@@ -58,7 +58,7 @@ volBSplinesBase::volBSplinesBase
                 "dynamicMeshDict",
                 mesh.time().constant(),
                 mesh,
-                IOobject::MUST_READ_IF_MODIFIED,
+                IOobject::MUST_READ,
                 IOobject::NO_WRITE,
                 IOobject::NO_REGISTER
             )
diff --git a/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.H b/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.H
index 93e03929f00..01a0244b11c 100644
--- a/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.H
+++ b/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/volBSplinesBase/volBSplinesBase.H
@@ -61,20 +61,16 @@ class volBSplinesBase
 :
     public MeshObject<fvMesh, UpdateableMeshObject, volBSplinesBase>
 {
-protected:
-
-    // Protected data
-
-        //- List with volumetric B-splines boxes.
-        //  No overlapping is supported
-        PtrList<NURBS3DVolume> volume_;
+    // Private Typedefs
 
-        //- Active design variables numbering for all boxes
-        labelList activeDesignVariables_;
+        typedef MeshObject
+        <
+            fvMesh,
+            UpdateableMeshObject,
+            volBSplinesBase
+        > MeshObject_type;
 
 
-private:
-
     // Private Member Functions
 
         //- No copy construct
@@ -84,6 +80,18 @@ private:
         void operator=(const volBSplinesBase&) = delete;
 
 
+protected:
+
+    // Protected Data
+
+        //- List with volumetric B-splines boxes.
+        //  No overlapping is supported
+        PtrList<NURBS3DVolume> volume_;
+
+        //- Active design variables numbering for all boxes
+        labelList activeDesignVariables_;
+
+
 public:
 
     //- Runtime type information
@@ -93,7 +101,7 @@ public:
     // Constructors
 
         //- Construct from components
-        volBSplinesBase(const fvMesh& mesh);
+        explicit volBSplinesBase(const fvMesh& mesh);
 
 
     //- Destructor
diff --git a/src/overset/cellCellStencil/cellCellStencil/cellCellStencilObject.H b/src/overset/cellCellStencil/cellCellStencil/cellCellStencilObject.H
index 4ecd06006f3..911cb661021 100644
--- a/src/overset/cellCellStencil/cellCellStencil/cellCellStencilObject.H
+++ b/src/overset/cellCellStencil/cellCellStencil/cellCellStencilObject.H
@@ -32,8 +32,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef cellCellStencilObject_H
-#define cellCellStencilObject_H
+#ifndef Foam_cellCellStencilObject_H
+#define Foam_cellCellStencilObject_H
 
 #include "cellCellStencil.H"
 #include "MeshObject.H"
@@ -43,13 +43,10 @@ SourceFiles
 namespace Foam
 {
 
+// Typedefs
 class cellCellStencilObject;
-typedef MeshObject
-<
-    fvMesh,
-    Foam::MoveableMeshObject,
-    cellCellStencilObject
-> Stencil;
+typedef MeshObject<fvMesh, MoveableMeshObject, cellCellStencilObject> Stencil;
+
 
 /*---------------------------------------------------------------------------*\
                   Class cellCellStencilObject Declaration
@@ -57,10 +54,20 @@ typedef MeshObject
 
 class cellCellStencilObject
 :
-    public Stencil,
+    public MeshObject<fvMesh, MoveableMeshObject, cellCellStencilObject>,
     public cellCellStencil
 {
-    // Private data
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            MoveableMeshObject,
+            cellCellStencilObject
+        > MeshObject_type;
+
+
+    // Private Data
 
         autoPtr<cellCellStencil> stencilPtr_;
 
@@ -69,6 +76,7 @@ public:
 
     TypeName("cellCellStencilObject");
 
+
     // Constructors
 
         //- Construct with mesh
@@ -78,12 +86,8 @@ public:
             const bool update = true
         )
         :
-            MeshObject
-            <
-                fvMesh,
-                Foam::MoveableMeshObject,
-                cellCellStencilObject
-            >(mesh),
+            MeshObject_type(mesh),
+
             cellCellStencil(mesh),
             stencilPtr_
             (
diff --git a/src/parallel/decompose/decompose/decompositionModel.C b/src/parallel/decompose/decompose/decompositionModel.C
index 074e83c6f2e..63d7d0902d7 100644
--- a/src/parallel/decompose/decompose/decompositionModel.C
+++ b/src/parallel/decompose/decompose/decompositionModel.C
@@ -49,12 +49,8 @@ Foam::decompositionModel::decompositionModel
     const dictionary* fallback
 )
 :
-    MeshObject
-    <
-        polyMesh,
-        Foam::UpdateableMeshObject,
-        decompositionModel
-    >(mesh),
+    MeshObject_type(mesh),
+
     IOdictionary
     (
         IOobject::selectIO
@@ -86,13 +82,7 @@ const Foam::decompositionModel& Foam::decompositionModel::New
     const dictionary* content
 )
 {
-    return
-        MeshObject
-        <
-            polyMesh,
-            Foam::UpdateableMeshObject,
-            decompositionModel
-        >::New(mesh, decompDictFile, content);
+    return MeshObject_type::New(mesh, decompDictFile, content);
 }
 
 
diff --git a/src/parallel/decompose/decompose/decompositionModel.H b/src/parallel/decompose/decompose/decompositionModel.H
index 2624219caf1..2068bcd978e 100644
--- a/src/parallel/decompose/decompose/decompositionModel.H
+++ b/src/parallel/decompose/decompose/decompositionModel.H
@@ -65,6 +65,16 @@ class decompositionModel
     >,
     public IOdictionary
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            polyMesh,
+            UpdateableMeshObject,
+            decompositionModel
+        > MeshObject_type;
+
+
     // Private Data
 
         mutable autoPtr<decompositionMethod> decomposerPtr_;
diff --git a/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationProperties.C b/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationProperties.C
index 7092f15b49f..5b0b68f18a1 100644
--- a/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationProperties.C
+++ b/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationProperties.C
@@ -46,12 +46,8 @@ Foam::radiation::boundaryRadiationProperties::boundaryRadiationProperties
     const fvMesh& mesh
 )
 :
-    MeshObject
-    <
-        fvMesh,
-        Foam::GeometricMeshObject,
-        boundaryRadiationProperties
-    >(mesh),
+    MeshObject_type(mesh),
+
     radBoundaryPropertiesPtrList_(mesh.boundary().size()),
     radZonePropertiesPtrList_(mesh.faceZones().size())
 {
diff --git a/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationProperties.H b/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationProperties.H
index 69dd3973d5b..ef88f79d6fe 100644
--- a/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationProperties.H
+++ b/src/thermophysicalModels/radiation/submodels/boundaryRadiationProperties/boundaryRadiationProperties.H
@@ -34,8 +34,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef boundaryRadiationProperties_H
-#define boundaryRadiationProperties_H
+#ifndef Foam_boundaryRadiationProperties_H
+#define Foam_boundaryRadiationProperties_H
 
 #include "MeshObject.H"
 #include "boundaryRadiationPropertiesPatch.H"
@@ -45,6 +45,7 @@ SourceFiles
 namespace Foam
 {
 
+// Forward Declarations
 class fvMesh;
 
 namespace radiation
@@ -59,10 +60,20 @@ class boundaryRadiationProperties
     public MeshObject
     <
         fvMesh,
-        Foam::GeometricMeshObject,
+        GeometricMeshObject,
         boundaryRadiationProperties
     >
 {
+    // Private Typedefs
+
+        typedef MeshObject
+        <
+            fvMesh,
+            GeometricMeshObject,
+            boundaryRadiationProperties
+        > MeshObject_type;
+
+
     // Private Data
 
         //- Per patch the boundaryRadiationProperties
@@ -83,7 +94,7 @@ public:
     // Constructors
 
         //- Construct given fvMesh
-        explicit boundaryRadiationProperties(const fvMesh&);
+        explicit boundaryRadiationProperties(const fvMesh& mesh);
 
 
     // Member Functions
-- 
GitLab