From 2728a96b9cf816ae5987bcd6fc67511e2ad83e97 Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Mon, 18 Dec 2017 10:50:37 +0000
Subject: [PATCH] ENH: finiteArea - faMesh now derived from faSolution,
 faSchemes and data classes

---
 .../liquidFilmFoam/createFaFields.H           |  2 +-
 src/finiteArea/faMatrices/faMatrix/faMatrix.C |  6 +-
 .../faMatrices/faMatrix/faMatrixSolve.C       | 18 ++----
 .../faScalarMatrix/faScalarMatrix.C           |  2 +
 src/finiteArea/faMesh/faMesh.C                | 56 ++++++++-----------
 src/finiteArea/faMesh/faMesh.H                | 17 +++++-
 src/finiteArea/finiteArea/fac/facDdt.C        |  8 +--
 src/finiteArea/finiteArea/fac/facDiv.C        |  4 +-
 src/finiteArea/finiteArea/fac/facGrad.C       |  2 +-
 src/finiteArea/finiteArea/fac/facLaplacian.C  |  6 +-
 src/finiteArea/finiteArea/fac/facLnGrad.C     |  2 +-
 src/finiteArea/finiteArea/fac/facNDiv.C       |  4 +-
 src/finiteArea/finiteArea/fac/facNGrad.C      |  2 +-
 src/finiteArea/finiteArea/fam/famDdt.C        |  6 +-
 src/finiteArea/finiteArea/fam/famDiv.C        |  4 +-
 src/finiteArea/finiteArea/fam/famLaplacian.C  |  4 +-
 src/finiteArea/finiteArea/fam/famNDiv.C       |  2 +-
 src/finiteArea/finiteArea/fam/vectorFamDiv.C  |  2 +-
 .../leastSquaresFaVectors.H                   |  2 -
 .../gaussFaLaplacianScheme.C                  | 10 ++--
 .../correctedLnGrad/correctedLnGrad.C         |  2 +-
 .../edgeInterpolation/edgeInterpolate.C       |  4 +-
 .../edgeInterpolation/edgeInterpolation.C     |  4 +-
 .../edgeInterpolation/edgeInterpolation.H     | 32 -----------
 24 files changed, 79 insertions(+), 122 deletions(-)

diff --git a/applications/solvers/finiteArea/liquidFilmFoam/createFaFields.H b/applications/solvers/finiteArea/liquidFilmFoam/createFaFields.H
index bb5ef104192..5c760788c94 100644
--- a/applications/solvers/finiteArea/liquidFilmFoam/createFaFields.H
+++ b/applications/solvers/finiteArea/liquidFilmFoam/createFaFields.H
@@ -155,4 +155,4 @@
         dimensionedScalar("one", dimless, 0.01)
     );
 
-    aMesh.schemesDict().setFluxRequired("h");
+    aMesh.setFluxRequired("h");
diff --git a/src/finiteArea/faMatrices/faMatrix/faMatrix.C b/src/finiteArea/faMatrices/faMatrix/faMatrix.C
index b6b6a114408..af6493cce32 100644
--- a/src/finiteArea/faMatrices/faMatrix/faMatrix.C
+++ b/src/finiteArea/faMatrices/faMatrix/faMatrix.C
@@ -532,9 +532,9 @@ void Foam::faMatrix<Type>::relax(const scalar alpha)
 template<class Type>
 void Foam::faMatrix<Type>::relax()
 {
-    if (psi_.mesh().solutionDict().relaxEquation(psi_.name()))
+    if (psi_.mesh().relaxEquation(psi_.name()))
     {
-        relax(psi_.mesh().solutionDict().equationRelaxationFactor(psi_.name()));
+        relax(psi_.mesh().equationRelaxationFactor(psi_.name()));
     }
     else
     {
@@ -628,7 +628,7 @@ template<class Type>
 Foam::tmp<Foam::GeometricField<Type, Foam::faePatchField, Foam::edgeMesh>>
 Foam::faMatrix<Type>::flux() const
 {
-    if (!psi_.mesh().schemesDict().fluxRequired(psi_.name()))
+    if (!psi_.mesh().fluxRequired(psi_.name()))
     {
         FatalErrorInFunction
             << "flux requested but " << psi_.name()
diff --git a/src/finiteArea/faMatrices/faMatrix/faMatrixSolve.C b/src/finiteArea/faMatrices/faMatrix/faMatrixSolve.C
index 726f9c15006..1a1e0f69791 100644
--- a/src/finiteArea/faMatrices/faMatrix/faMatrixSolve.C
+++ b/src/finiteArea/faMatrices/faMatrix/faMatrixSolve.C
@@ -143,6 +143,8 @@ Foam::SolverPerformance<Type> Foam::faMatrix<Type>::solve
 
     psi.correctBoundaryConditions();
 
+    psi.mesh().setSolverPerformance(psi.name(), solverPerfVec);
+
     return solverPerfVec;
 }
 
@@ -150,26 +152,14 @@ Foam::SolverPerformance<Type> Foam::faMatrix<Type>::solve
 template<class Type>
 Foam::SolverPerformance<Type> Foam::faMatrix<Type>::faSolver::solve()
 {
-    return solvei
-    (
-        faMat_.psi().mesh().solutionDict().solverDict
-        (
-            faMat_.psi().name()
-        )
-    );
+    return solve(faMat_.psi().mesh().solverDict(faMat_.psi().name()));
 }
 
 
 template<class Type>
 Foam::SolverPerformance<Type> Foam::faMatrix<Type>::solve()
 {
-    return solve
-    (
-        this->psi().mesh().solutionDict().solverDict
-        (
-            this->psi().name()
-        )
-    );
+    return solve(this->psi().mesh().solverDict(this->psi().name()));
 }
 
 
diff --git a/src/finiteArea/faMatrices/faScalarMatrix/faScalarMatrix.C b/src/finiteArea/faMatrices/faScalarMatrix/faScalarMatrix.C
index 122d178e8e6..8b30c3a5d29 100644
--- a/src/finiteArea/faMatrices/faScalarMatrix/faScalarMatrix.C
+++ b/src/finiteArea/faMatrices/faScalarMatrix/faScalarMatrix.C
@@ -89,6 +89,8 @@ Foam::solverPerformance Foam::faMatrix<Foam::scalar>::solve
 
     psi.correctBoundaryConditions();
 
+    psi.mesh().setSolverPerformance(psi.name(), solverPerf);
+
     return solverPerf;
 }
 
diff --git a/src/finiteArea/faMesh/faMesh.C b/src/finiteArea/faMesh/faMesh.C
index 62a53dabdf4..9a560d33ff9 100644
--- a/src/finiteArea/faMesh/faMesh.C
+++ b/src/finiteArea/faMesh/faMesh.C
@@ -55,8 +55,7 @@ const int Foam::faMesh::quadricsFit_ = 0;
 
 void Foam::faMesh::setPrimitiveMeshData()
 {
-    DebugInFunction
-        << "Setting primitive data" << endl;
+    DebugInFunction << "Setting primitive data" << endl;
 
     const indirectPrimitivePatch& bp = patch();
 
@@ -121,11 +120,7 @@ void Foam::faMesh::setPrimitiveMeshData()
 
 void Foam::faMesh::clearGeomNotAreas() const
 {
-    if (debug)
-    {
-        Info<< "void faMesh::clearGeomNotAreas() const : "
-            << "Clearing geometry" << endl;
-    }
+    DebugInFunction << "Clearing geometry" << endl;
 
     deleteDemandDrivenData(SPtr_);
     deleteDemandDrivenData(patchPtr_);
@@ -144,11 +139,7 @@ void Foam::faMesh::clearGeomNotAreas() const
 
 void Foam::faMesh::clearGeom() const
 {
-    if (debug)
-    {
-        Info<< "void faMesh::clearGeom() const : "
-            << "Clearing geometry" << endl;
-    }
+    DebugInFunction << "Clearing geometry" << endl;
 
     clearGeomNotAreas();
     deleteDemandDrivenData(S0Ptr_);
@@ -159,11 +150,7 @@ void Foam::faMesh::clearGeom() const
 
 void Foam::faMesh::clearAddressing() const
 {
-    if (debug)
-    {
-        Info<< "void faMesh::clearAddressing() const : "
-            << "Clearing addressing" << endl;
-    }
+    DebugInFunction << "Clearing addressing" << endl;
 
     deleteDemandDrivenData(lduPtr_);
 }
@@ -184,6 +171,9 @@ Foam::faMesh::faMesh(const polyMesh& pMesh)
     GeoMesh<polyMesh>(pMesh),
     MeshObject<polyMesh, Foam::UpdateableMeshObject, faMesh>(pMesh),
     edgeInterpolation(*this),
+    faSchemes(mesh()),
+    faSolution(mesh()),
+    data(mesh()),
     faceLabels_
     (
         IOobject
@@ -229,11 +219,7 @@ Foam::faMesh::faMesh(const polyMesh& pMesh)
     correctPatchPointNormalsPtr_(nullptr),
     globalMeshDataPtr_(nullptr)
 {
-    if (debug)
-    {
-        Info<< "faMesh::faMesh(...) : "
-            << "Creating faMesh from IOobject" << endl;
-    }
+    DebugInFunction << "Creating faMesh from IOobject" << endl;
 
     setPrimitiveMeshData();
 
@@ -277,6 +263,9 @@ Foam::faMesh::faMesh
     GeoMesh<polyMesh>(pMesh),
     MeshObject<polyMesh, Foam::UpdateableMeshObject, faMesh>(pMesh),
     edgeInterpolation(*this),
+    faSchemes(mesh()),
+    faSolution(mesh()),
+    data(mesh()),
     faceLabels_
     (
         IOobject
@@ -324,11 +313,7 @@ Foam::faMesh::faMesh
     correctPatchPointNormalsPtr_(nullptr),
     globalMeshDataPtr_(nullptr)
 {
-    if (debug)
-    {
-        Info<< "faMesh::faMesh(...) : "
-            << "Creating faMesh from components" << endl;
-    }
+    DebugInFunction << "Creating faMesh from components" << endl;
 }
 
 
@@ -341,6 +326,9 @@ Foam::faMesh::faMesh
     GeoMesh<polyMesh>(pMesh),
     MeshObject<polyMesh, Foam::UpdateableMeshObject, faMesh>(pMesh),
     edgeInterpolation(*this),
+    faSchemes(mesh()),
+    faSolution(mesh()),
+    data(mesh()),
     faceLabels_
     (
         IOobject
@@ -388,8 +376,7 @@ Foam::faMesh::faMesh
     correctPatchPointNormalsPtr_(nullptr),
     globalMeshDataPtr_(nullptr)
 {
-    DebugInFunction
-        << "Creating faMesh from definition file" << endl;
+    DebugInFunction << "Creating faMesh from definition file" << endl;
 
     // Reading faMeshDefinition dictionary
     IOdictionary faMeshDefinition
@@ -791,6 +778,9 @@ Foam::faMesh::faMesh
     GeoMesh<polyMesh>(pMesh),
     MeshObject<polyMesh, Foam::UpdateableMeshObject, faMesh>(pMesh),
     edgeInterpolation(*this),
+    faSchemes(mesh()),
+    faSolution(mesh()),
+    data(mesh()),
     faceLabels_
     (
         IOobject
@@ -838,8 +828,7 @@ Foam::faMesh::faMesh
     correctPatchPointNormalsPtr_(nullptr),
     globalMeshDataPtr_(nullptr)
 {
-    DebugInFunction
-        << "Creating faMesh from polyPatch" << endl;
+    DebugInFunction << "Creating faMesh from polyPatch" << endl;
 
     const polyBoundaryMesh& pbm = pMesh.boundaryMesh();
 
@@ -977,8 +966,7 @@ const Foam::faceList& Foam::faMesh::faces() const
 
 void Foam::faMesh::addFaPatches(const List<faPatch*>& p)
 {
-    DebugInFunction
-        << "Adding patches to faMesh" << endl;
+    DebugInFunction << "Adding patches to faMesh" << endl;
 
     if (boundary().size() > 0)
     {
@@ -1304,7 +1292,7 @@ Foam::boolList& Foam::faMesh::correctPatchPointNormals() const
 }
 
 
-bool Foam::faMesh::write() const
+bool Foam::faMesh::write(const bool valid) const
 {
     faceLabels_.write();
     boundary_.write();
diff --git a/src/finiteArea/faMesh/faMesh.H b/src/finiteArea/faMesh/faMesh.H
index 14440b5e68c..ec2d3f0b23e 100644
--- a/src/finiteArea/faMesh/faMesh.H
+++ b/src/finiteArea/faMesh/faMesh.H
@@ -58,6 +58,9 @@ Author
 #include "labelIOList.H"
 #include "FieldFields.H"
 #include "faGlobalMeshData.H"
+#include "faSchemes.H"
+#include "faSolution.H"
+#include "data.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -77,7 +80,10 @@ class faMesh
     public GeoMesh<polyMesh>,
     public MeshObject<polyMesh, Foam::UpdateableMeshObject, faMesh>,
     public lduMesh,
-    public edgeInterpolation
+    public edgeInterpolation,
+    public faSchemes,
+    public faSolution,
+    public data
 {
     // Private data
 
@@ -402,6 +408,13 @@ public:
             //- Return reference to the mesh database
             virtual const objectRegistry& thisDb() const;
 
+            //- Name function is needed to disambiguate those inherited
+            //  from base classes
+            const word& name() const
+            {
+                return thisDb().name();
+            }
+
             //- Return constant reference to boundary mesh
             const faBoundaryMesh& boundary() const;
 
@@ -531,7 +544,7 @@ public:
             boolList& correctPatchPointNormals() const;
 
         //- Write mesh
-        virtual bool write() const;
+        virtual bool write(const bool valid = true) const;
 
 
     // Member Operators
diff --git a/src/finiteArea/finiteArea/fac/facDdt.C b/src/finiteArea/finiteArea/fac/facDdt.C
index fb5ea4cfb76..3e90bb939c8 100644
--- a/src/finiteArea/finiteArea/fac/facDdt.C
+++ b/src/finiteArea/finiteArea/fac/facDdt.C
@@ -52,7 +52,7 @@ ddt
     return fa::faDdtScheme<Type>::New
     (
         mesh,
-        mesh.schemesDict().ddtScheme("ddt(" + dt.name() + ')')
+        mesh.ddtScheme("ddt(" + dt.name() + ')')
     ).ref().facDdt(dt);
 }
 
@@ -67,7 +67,7 @@ ddt
     return fa::faDdtScheme<Type>::New
     (
         vf.mesh(),
-        vf.mesh().schemesDict().ddtScheme("ddt(" + vf.name() + ')')
+        vf.mesh().ddtScheme("ddt(" + vf.name() + ')')
     ).ref().facDdt(vf);
 }
 
@@ -83,7 +83,7 @@ ddt
     return fa::faDdtScheme<Type>::New
     (
         vf.mesh(),
-        vf.mesh().schemesDict().ddtScheme
+        vf.mesh().ddtScheme
         (
             "ddt(" + rho.name() + ',' + vf.name() + ')'
         )
@@ -102,7 +102,7 @@ ddt
     return fa::faDdtScheme<Type>::New
     (
         vf.mesh(),
-        vf.mesh().schemesDict().ddtScheme
+        vf.mesh().ddtScheme
         (
             "ddt(" + rho.name() + ',' + vf.name() + ')'
         )
diff --git a/src/finiteArea/finiteArea/fac/facDiv.C b/src/finiteArea/finiteArea/fac/facDiv.C
index 6d3a2530c8a..a0fb7122c81 100644
--- a/src/finiteArea/finiteArea/fac/facDiv.C
+++ b/src/finiteArea/finiteArea/fac/facDiv.C
@@ -107,7 +107,7 @@ div
     (
         fa::divScheme<Type>::New
         (
-            vf.mesh(), vf.mesh().schemesDict().divScheme(name)
+            vf.mesh(), vf.mesh().divScheme(name)
         ).ref().facDiv(vf)
     );
     GeometricField
@@ -207,7 +207,7 @@ div
         (
             vf.mesh(),
             flux,
-            vf.mesh().schemesDict().divScheme(name)
+            vf.mesh().divScheme(name)
         ).ref().facDiv(flux, vf)
     );
     GeometricField<Type, faPatchField, areaMesh>& Div = tDiv.ref();
diff --git a/src/finiteArea/finiteArea/fac/facGrad.C b/src/finiteArea/finiteArea/fac/facGrad.C
index 46133df0a83..d120c782c43 100644
--- a/src/finiteArea/finiteArea/fac/facGrad.C
+++ b/src/finiteArea/finiteArea/fac/facGrad.C
@@ -115,7 +115,7 @@ grad
         fa::gradScheme<Type>::New
         (
             vf.mesh(),
-            vf.mesh().schemesDict().gradScheme(name)
+            vf.mesh().gradScheme(name)
         ).ref().grad(vf);
 
     GeometricField<GradType, faPatchField, areaMesh>& gGrad = tgGrad.ref();
diff --git a/src/finiteArea/finiteArea/fac/facLaplacian.C b/src/finiteArea/finiteArea/fac/facLaplacian.C
index 1fbb7dcc13d..c3cd71a53d7 100644
--- a/src/finiteArea/finiteArea/fac/facLaplacian.C
+++ b/src/finiteArea/finiteArea/fac/facLaplacian.C
@@ -52,7 +52,7 @@ laplacian
     return fa::laplacianScheme<Type>::New
     (
         vf.mesh(),
-        vf.mesh().schemesDict().laplacianScheme(name)
+        vf.mesh().laplacianScheme(name)
     ).ref().facLaplacian(vf);
 }
 
@@ -172,7 +172,7 @@ laplacian
     return fa::laplacianScheme<Type>::New
     (
         vf.mesh(),
-        vf.mesh().schemesDict().laplacianScheme(name)
+        vf.mesh().laplacianScheme(name)
     ).ref().facLaplacian(gamma, vf);
 }
 
@@ -306,7 +306,7 @@ laplacian
     return fa::laplacianScheme<Type>::New
     (
         vf.mesh(),
-        vf.mesh().schemesDict().laplacianScheme(name)
+        vf.mesh().laplacianScheme(name)
     ).ref().facLaplacian(gamma, vf);
 }
 
diff --git a/src/finiteArea/finiteArea/fac/facLnGrad.C b/src/finiteArea/finiteArea/fac/facLnGrad.C
index 857c82e41d9..866a5eb846a 100644
--- a/src/finiteArea/finiteArea/fac/facLnGrad.C
+++ b/src/finiteArea/finiteArea/fac/facLnGrad.C
@@ -52,7 +52,7 @@ lnGrad
     return fa::lnGradScheme<Type>::New
     (
         vf.mesh(),
-        vf.mesh().schemesDict().lnGradScheme(name)
+        vf.mesh().lnGradScheme(name)
     ).ref().lnGrad(vf);
 }
 
diff --git a/src/finiteArea/finiteArea/fac/facNDiv.C b/src/finiteArea/finiteArea/fac/facNDiv.C
index b1861fe125c..e1975c886bc 100644
--- a/src/finiteArea/finiteArea/fac/facNDiv.C
+++ b/src/finiteArea/finiteArea/fac/facNDiv.C
@@ -98,7 +98,7 @@ ndiv
     (
         fa::divScheme<Type>::New
             (
-                vf.mesh(), vf.mesh().schemesDict().divScheme(name)
+                vf.mesh(), vf.mesh().divScheme(name)
             ).ref().facDiv(vf)
     );
     GeometricField<Type, faPatchField, areaMesh>& Div = tDiv.ref();
@@ -192,7 +192,7 @@ ndiv
         (
             vf.mesh(),
             flux,
-            vf.mesh().schemesDict().divScheme(name)
+            vf.mesh().divScheme(name)
         ).ref().facDiv(flux, vf)
     );
 
diff --git a/src/finiteArea/finiteArea/fac/facNGrad.C b/src/finiteArea/finiteArea/fac/facNGrad.C
index 17a5f9f9cb2..995f5d2cea9 100644
--- a/src/finiteArea/finiteArea/fac/facNGrad.C
+++ b/src/finiteArea/finiteArea/fac/facNGrad.C
@@ -118,7 +118,7 @@ ngrad
         fa::gradScheme<Type>::New
         (
             vf.mesh(),
-            vf.mesh().schemesDict().gradScheme(name)
+            vf.mesh().gradScheme(name)
         ).ref().grad(vf);
 
     GeometricField<GradType, faPatchField, areaMesh>& gGrad = tgGrad.ref();
diff --git a/src/finiteArea/finiteArea/fam/famDdt.C b/src/finiteArea/finiteArea/fam/famDdt.C
index 0f996d02585..d7a5f80b8ff 100644
--- a/src/finiteArea/finiteArea/fam/famDdt.C
+++ b/src/finiteArea/finiteArea/fam/famDdt.C
@@ -52,7 +52,7 @@ ddt
     return fa::faDdtScheme<Type>::New
     (
         vf.mesh(),
-        vf.mesh().schemesDict().ddtScheme("ddt(" + vf.name() + ')')
+        vf.mesh().ddtScheme("ddt(" + vf.name() + ')')
     ).ref().famDdt(vf);
 }
 
@@ -68,7 +68,7 @@ ddt
     return fa::faDdtScheme<Type>::New
     (
         vf.mesh(),
-        vf.mesh().schemesDict().ddtScheme
+        vf.mesh().ddtScheme
         (
             "ddt(" + rho.name() + ',' + vf.name() + ')'
         )
@@ -87,7 +87,7 @@ ddt
     return fa::faDdtScheme<Type>::New
     (
         vf.mesh(),
-        vf.mesh().schemesDict().ddtScheme
+        vf.mesh().ddtScheme
         (
             "ddt(" + rho.name() + ',' + vf.name() + ')'
         )
diff --git a/src/finiteArea/finiteArea/fam/famDiv.C b/src/finiteArea/finiteArea/fam/famDiv.C
index 9141c364e8c..c1c13d8b22f 100644
--- a/src/finiteArea/finiteArea/fam/famDiv.C
+++ b/src/finiteArea/finiteArea/fam/famDiv.C
@@ -59,7 +59,7 @@ div
         (
             vf.mesh(),
             flux,
-            vf.mesh().schemesDict().divScheme(name)
+            vf.mesh().divScheme(name)
         ).ref().famDiv(flux, vf)
     );
     faMatrix<Type>& M = tM.ref();
@@ -70,7 +70,7 @@ div
         (
             vf.mesh(),
             flux,
-            vf.mesh().schemesDict().divScheme(name)
+            vf.mesh().divScheme(name)
         ).ref().facDiv(flux, vf)
     );
 
diff --git a/src/finiteArea/finiteArea/fam/famLaplacian.C b/src/finiteArea/finiteArea/fam/famLaplacian.C
index 952aa5be076..7e82b80e72b 100644
--- a/src/finiteArea/finiteArea/fam/famLaplacian.C
+++ b/src/finiteArea/finiteArea/fam/famLaplacian.C
@@ -172,7 +172,7 @@ laplacian
     return fa::laplacianScheme<Type>::New
     (
         vf.mesh(),
-        vf.mesh().schemesDict().laplacianScheme(name)
+        vf.mesh().laplacianScheme(name)
     ).ref().famLaplacian(gamma, vf);
 }
 
@@ -218,7 +218,7 @@ laplacian
     return fa::laplacianScheme<Type>::New
     (
         vf.mesh(),
-        vf.mesh().schemesDict().laplacianScheme(name)
+        vf.mesh().laplacianScheme(name)
     ).ref().famLaplacian(gamma, vf);
 }
 
diff --git a/src/finiteArea/finiteArea/fam/famNDiv.C b/src/finiteArea/finiteArea/fam/famNDiv.C
index 4665df8d9dd..82f5cad08cb 100644
--- a/src/finiteArea/finiteArea/fam/famNDiv.C
+++ b/src/finiteArea/finiteArea/fam/famNDiv.C
@@ -55,7 +55,7 @@ ndiv
     (
         vf.mesh(),
         flux,
-        vf.mesh().schemesDict().divScheme(name)
+        vf.mesh().divScheme(name)
     ).ref().famDiv(flux, vf);//TODO calculate normal
 }
 
diff --git a/src/finiteArea/finiteArea/fam/vectorFamDiv.C b/src/finiteArea/finiteArea/fam/vectorFamDiv.C
index 601af28f606..017d349e6f6 100644
--- a/src/finiteArea/finiteArea/fam/vectorFamDiv.C
+++ b/src/finiteArea/finiteArea/fam/vectorFamDiv.C
@@ -55,7 +55,7 @@ div
     (
         vf.mesh(),
         flux,
-        vf.mesh().schemesDict().divScheme(name)
+        vf.mesh().divScheme(name)
     ).ref().famDiv(flux, vf);
 }
 
diff --git a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.H b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.H
index fdbd8f57608..f93ecdd8a31 100644
--- a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.H
+++ b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.H
@@ -50,8 +50,6 @@ SourceFiles
 namespace Foam
 {
 
-class mapPolyMesh;
-
 /*---------------------------------------------------------------------------*\
                      Class leastSquaresFaVectors Declaration
 \*---------------------------------------------------------------------------*/
diff --git a/src/finiteArea/finiteArea/laplacianSchemes/gaussFaLaplacianScheme/gaussFaLaplacianScheme.C b/src/finiteArea/finiteArea/laplacianSchemes/gaussFaLaplacianScheme/gaussFaLaplacianScheme.C
index 8726471c89d..af11dcb2fda 100644
--- a/src/finiteArea/finiteArea/laplacianSchemes/gaussFaLaplacianScheme/gaussFaLaplacianScheme.C
+++ b/src/finiteArea/finiteArea/laplacianSchemes/gaussFaLaplacianScheme/gaussFaLaplacianScheme.C
@@ -80,7 +80,7 @@ gaussLaplacianScheme<Type>::famLaplacian
 
     if (this->tlnGradScheme_().corrected())
     {
-        if (this->mesh().schemesDict().fluxRequired(vf.name()))
+        if (this->mesh().fluxRequired(vf.name()))
         {
             fam.faceFluxCorrectionPtr() = new
             GeometricField<Type, faePatchField, edgeMesh>
@@ -89,8 +89,8 @@ gaussLaplacianScheme<Type>::famLaplacian
             );
 
             fam.source() -=
-                this->mesh().S()*
-                fac::div
+                this->mesh().S()
+               *fac::div
                 (
                     *fam.faceFluxCorrectionPtr()
                 )().internalField();
@@ -98,8 +98,8 @@ gaussLaplacianScheme<Type>::famLaplacian
         else
         {
             fam.source() -=
-                this->mesh().S()*
-                fac::div
+                this->mesh().S()
+               *fac::div
                 (
                     gammaMagSf*this->tlnGradScheme_().correction(vf)
                 )().internalField();
diff --git a/src/finiteArea/finiteArea/lnGradSchemes/correctedLnGrad/correctedLnGrad.C b/src/finiteArea/finiteArea/lnGradSchemes/correctedLnGrad/correctedLnGrad.C
index 0e5af9427f6..e33d4a914ed 100644
--- a/src/finiteArea/finiteArea/lnGradSchemes/correctedLnGrad/correctedLnGrad.C
+++ b/src/finiteArea/finiteArea/lnGradSchemes/correctedLnGrad/correctedLnGrad.C
@@ -90,7 +90,7 @@ correctedLnGrad<Type>::correction
                 gradScheme<typename pTraits<Type>::cmptType>::New
                 (
                     mesh,
-                    mesh.schemesDict().gradScheme(ssf.name())
+                    mesh.gradScheme(ssf.name())
                 )()
                .grad(vf.component(cmpt))
             )
diff --git a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolate.C b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolate.C
index 93c09d8b44e..eff3fea041e 100644
--- a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolate.C
+++ b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolate.C
@@ -56,7 +56,7 @@ Foam::tmp<Foam::edgeInterpolationScheme<Type>> Foam::fac::scheme
     (
         faceFlux.mesh(),
         faceFlux,
-        faceFlux.mesh().schemesDict().interpolationScheme(name)
+        faceFlux.mesh().interpolationScheme(name)
     );
 }
 
@@ -86,7 +86,7 @@ Foam::tmp<Foam::edgeInterpolationScheme<Type>> Foam::fac::scheme
     return edgeInterpolationScheme<Type>::New
     (
         mesh,
-        mesh.schemesDict().interpolationScheme(name)
+        mesh.interpolationScheme(name)
     );
 }
 
diff --git a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolation.C b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolation.C
index 6d08ba24b28..47292d13774 100644
--- a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolation.C
+++ b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolation.C
@@ -57,8 +57,6 @@ void Foam::edgeInterpolation::clearOut()
 Foam::edgeInterpolation::edgeInterpolation(const faMesh& fam)
 :
     faMesh_(fam),
-    schemesDict_(fam()),
-    solutionDict_(fam()),
     lPN_(nullptr),
     weightingFactors_(nullptr),
     differenceFactors_(nullptr),
@@ -219,7 +217,7 @@ void Foam::edgeInterpolation::makeLPN() const
         (
             "lPN",
             faMesh_.time().constant(),
-            faMesh_.db(),
+            faMesh_(),
             IOobject::NO_READ,
             IOobject::NO_WRITE,
             false
diff --git a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolation.H b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolation.H
index 9d51e40fdda..408cfbd7078 100644
--- a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolation.H
+++ b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolation.H
@@ -43,8 +43,6 @@ SourceFiles
 
 #include "tmp.H"
 #include "scalar.H"
-#include "faSchemes.H"
-#include "faSolution.H"
 #include "areaFieldsFwd.H"
 #include "edgeFieldsFwd.H"
 #include "className.H"
@@ -67,12 +65,6 @@ class edgeInterpolation
         // Reference to faMesh
         const faMesh& faMesh_;
 
-        //- Discretisation schemes
-        faSchemes schemesDict_;
-
-        //- Solver settings
-        faSolution solutionDict_;
-
 
         // Demand-driven data
 
@@ -153,30 +145,6 @@ public:
             return faMesh_;
         }
 
-        //- Return schemes
-        const faSchemes& schemesDict() const
-        {
-            return schemesDict_;
-        }
-
-        //- Return access to schemes
-        faSchemes& schemesDict()
-        {
-            return schemesDict_;
-        }
-
-        //- Return solver settings
-        const faSolution& solutionDict() const
-        {
-            return solutionDict_;
-        }
-
-        //- Return access to solver settings
-        faSolution& solutionDict()
-        {
-            return solutionDict_;
-        }
-
         //- Return reference to PN geodesic distance
         const edgeScalarField& lPN() const;
 
-- 
GitLab