From d3938a79f47b2c90f5b527cc1585ed4dc07f2b1f Mon Sep 17 00:00:00 2001
From: Vaggelis Papoutsis <vaggelisp@gmail.com>
Date: Fri, 10 Jan 2020 18:34:12 +0200
Subject: [PATCH] ENH: made adjointBoundaryCondition templated

Main reason was the insertion of a templated virtual function
returning the contribution of the differentiation of the primal
boundary condition, in the case the latter directly depends on a
a geometric quantity (e.g. rotatingWallVelocity).
---
 .../adjointOptimisation/adjoint/Make/files    |   2 +-
 .../adjointBoundaryCondition.C                | 172 ++++++++++++++++--
 .../adjointBoundaryCondition.H                |  33 +++-
 .../adjointBoundaryConditions.C               |  45 +++++
 .../adjointBoundaryConditions.H               |  39 ++++
 .../adjointBoundaryConditionsFwd.H            |  54 ++++++
 ...djointFarFieldPressureFvPatchScalarField.C |  12 +-
 ...djointFarFieldPressureFvPatchScalarField.H |   8 +-
 ...djointFarFieldVelocityFvPatchVectorField.C |  12 +-
 ...djointFarFieldVelocityFvPatchVectorField.H |   8 +-
 .../adjointInletVelocityFvPatchVectorField.C  |  12 +-
 .../adjointInletVelocityFvPatchVectorField.H  |   8 +-
 .../adjointOutletPressureFvPatchScalarField.C |  12 +-
 .../adjointOutletPressureFvPatchScalarField.H |   8 +-
 .../adjointOutletVelocityFvPatchVectorField.C |  12 +-
 .../adjointOutletVelocityFvPatchVectorField.H |   8 +-
 ...ointOutletVelocityFluxFvPatchVectorField.C |  12 +-
 ...ointOutletVelocityFluxFvPatchVectorField.H |   8 +-
 .../adjointWallVelocityFvPatchVectorField.C   |  12 +-
 .../adjointWallVelocityFvPatchVectorField.H   |   8 +-
 ...jointWallVelocityLowReFvPatchVectorField.C |  12 +-
 ...jointWallVelocityLowReFvPatchVectorField.H |   8 +-
 ...djointFarFieldNuaTildaFvPatchScalarField.C |  12 +-
 ...djointFarFieldNuaTildaFvPatchScalarField.H |   8 +-
 .../adjointInletNuaTildaFvPatchScalarField.C  |  12 +-
 .../adjointInletNuaTildaFvPatchScalarField.H  |   8 +-
 .../adjointOutletFluxFvPatchScalarField.H     |   6 +-
 .../adjointOutletNuaTildaFvPatchScalarField.C |  12 +-
 .../adjointOutletNuaTildaFvPatchScalarField.H |   8 +-
 ...ointOutletNuaTildaFluxFvPatchScalarField.C |  12 +-
 ...ointOutletNuaTildaFluxFvPatchScalarField.H |   8 +-
 31 files changed, 444 insertions(+), 147 deletions(-)
 create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryConditions.C
 create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryConditions.H
 create mode 100644 src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryConditionsFwd.H

diff --git a/src/optimisation/adjointOptimisation/adjoint/Make/files b/src/optimisation/adjointOptimisation/adjoint/Make/files
index 0c72b563269..17297eaf987 100644
--- a/src/optimisation/adjointOptimisation/adjoint/Make/files
+++ b/src/optimisation/adjointOptimisation/adjoint/Make/files
@@ -76,7 +76,7 @@ turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOu
 turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletFlux/adjointOutletFluxFvPatchScalarField.C
 
 /* ADJOINT BOUNDARY CONDITIONS */
-adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryCondition.C
+adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryConditions.C
 adjointBoundaryConditions/adjointInletVelocity/adjointInletVelocityFvPatchVectorField.C
 adjointBoundaryConditions/adjointOutletVelocity/adjointOutletVelocityFvPatchVectorField.C
 adjointBoundaryConditions/adjointWallVelocity/adjointWallVelocityFvPatchVectorField.C
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryCondition.C b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryCondition.C
index 735b9387a47..b0177fbeb82 100644
--- a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryCondition.C
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryCondition.C
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -28,6 +28,10 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "adjointBoundaryCondition.H"
+#include "emptyFvPatch.H"
+#include "adjointSolverManager.H"
+#include "HashTable.H"
+#include "surfaceInterpolationScheme.H"
 #include "ATCUaGradU.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -35,14 +39,109 @@ License
 namespace Foam
 {
 
-// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+// * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
+
+template<class Type>
+template<class Type2>
+tmp
+<
+    Field<typename Foam::outerProduct<Foam::vector, Type2>::type>
+>
+adjointBoundaryCondition<Type>::computePatchGrad(word name)
+{
+    // Return field
+    typedef typename outerProduct<vector, Type2>::type GradType;
+    auto tresGrad = tmp<Field<GradType>>::New(patch_.size(), Zero);
+    auto& resGrad = tresGrad.ref();
+
+    const labelList& faceCells = patch_.faceCells();
+    const fvMesh& mesh = patch_.boundaryMesh().mesh();
+    const cellList& cells = mesh.cells();
+
+    // Go through the surfaceInterpolation scheme defined in gradSchemes for
+    // consistency
+    const GeometricField<Type2, fvPatchField, volMesh>& field =
+        mesh.lookupObject<volVectorField>(name);
+
+    // Gives problems when grad(AdjointVar) is computed using a limited scheme,
+    // since it is not possible to know a priori how many words to expect in the
+    // stream.
+    // Interpolation scheme is now read through interpolation schemes.
+    /*
+    word  gradSchemeName       ("grad(" + name + ')');
+    Istream& is = mesh.gradScheme(gradSchemeName);
+    word schemeData(is);
+    */
+
+    tmp<surfaceInterpolationScheme<Type2>> tinterpScheme
+    (
+        surfaceInterpolationScheme<Type2>::New
+        (
+            mesh,
+            mesh.interpolationScheme("interpolate(" + name + ")")
+        )
+    );
+
+    GeometricField<Type2, fvsPatchField, surfaceMesh> surfField
+    (
+        tinterpScheme().interpolate(field)
+    );
+
+    // Auxiliary fields
+    const surfaceVectorField& Sf = mesh.Sf();
+    tmp<vectorField> tnf = patch_.nf();
+    const vectorField& nf = tnf();
+    const scalarField& V = mesh.V();
+    const labelUList& owner = mesh.owner();
+
+    // Compute grad value of cell adjacent to the boundary
+    forAll(faceCells, fI)
+    {
+        const label cI = faceCells[fI];
+        const cell& cellI = cells[cI];
+        for (const label faceI : cellI) // global face numbering
+        {
+            label patchID = mesh.boundaryMesh().whichPatch(faceI);
+            if (patchID == -1) //face is internal
+            {
+                const label own = owner[faceI];
+                tensor flux = Sf[faceI]*surfField[faceI];
+                if (cI == own)
+                {
+                    resGrad[fI] += flux;
+                }
+                else
+                {
+                    resGrad[fI] -= flux;
+                }
+            }
+            else  // Face is boundary. Covers coupled patches as well
+            {
+                if (!isA<emptyFvPatch>(mesh.boundary()[patchID]))
+                {
+                    const fvPatch& patchForFlux = mesh.boundary()[patchID];
+                    const label boundaryFaceI = faceI - patchForFlux.start();
+                    const vectorField& Sfb = Sf.boundaryField()[patchID];
+                    resGrad[fI] +=
+                        Sfb[boundaryFaceI]
+                       *surfField.boundaryField()[patchID][boundaryFaceI];
+                }
+            }
+        }
+        resGrad[fI] /= V[cI];
+    }
 
-defineTypeNameAndDebug(adjointBoundaryCondition, 0);
+    // This has concluded the computation of the grad at the cell next to the
+    // boundary. We now need to compute the grad at the boundary face
+    const fvPatchField<Type2>& bField = field.boundaryField()[patch_.index()];
+    resGrad = nf*bField.snGrad() + (resGrad - nf*(nf & resGrad));
 
+    return tresGrad;
+}
 
-// * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
 
-bool adjointBoundaryCondition::addATCUaGradUTerm()
+template<class Type>
+bool adjointBoundaryCondition<Type>::addATCUaGradUTerm()
 {
     if (addATCUaGradUTerm_.empty())
     {
@@ -54,9 +153,10 @@ bool adjointBoundaryCondition::addATCUaGradUTerm()
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-adjointBoundaryCondition::adjointBoundaryCondition
+template<class Type>
+adjointBoundaryCondition<Type>::adjointBoundaryCondition
 (
-    const adjointBoundaryCondition& adjointBC
+    const adjointBoundaryCondition<Type>& adjointBC
 )
 :
     patch_(adjointBC.patch_),
@@ -77,27 +177,53 @@ adjointBoundaryCondition::adjointBoundaryCondition
 {}
 
 
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class Type>
+adjointBoundaryCondition<Type>::adjointBoundaryCondition
+(
+    const fvPatch& p,
+    const DimensionedField<Type, volMesh>& iF,
+    const word& solverName
+)
+:
+    patch_(p),
+    managerName_("objectiveManager" + solverName),
+    adjointSolverName_(solverName),
+    simulationType_("incompressible"),
+    boundaryContrPtr_(nullptr),
+    addATCUaGradUTerm_(nullptr)
+{
+    // Set the boundaryContribution pointer
+    setBoundaryContributionPtr();
+}
+
+
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-const word& adjointBoundaryCondition::objectiveManagerName() const
+template<class Type>
+const word& adjointBoundaryCondition<Type>::objectiveManagerName() const
 {
     return managerName_;
 }
 
 
-const word& adjointBoundaryCondition::adjointSolverName() const
+template<class Type>
+const word& adjointBoundaryCondition<Type>::adjointSolverName() const
 {
     return adjointSolverName_;
 }
 
 
-const word& adjointBoundaryCondition::simulationType() const
+template<class Type>
+const word& adjointBoundaryCondition<Type>::simulationType() const
 {
     return simulationType_;
 }
 
 
-void adjointBoundaryCondition::setBoundaryContributionPtr()
+template<class Type>
+void adjointBoundaryCondition<Type>::setBoundaryContributionPtr()
 {
     // Note:
     // Check whether there is an objectiveFunctionManager object in the registry
@@ -128,14 +254,16 @@ void adjointBoundaryCondition::setBoundaryContributionPtr()
 }
 
 
+template<class Type>
 boundaryAdjointContribution&
-adjointBoundaryCondition::getBoundaryAdjContribution()
+adjointBoundaryCondition<Type>::getBoundaryAdjContribution()
 {
     return boundaryContrPtr_();
 }
 
 
-const ATCModel& adjointBoundaryCondition::getATC() const
+template<class Type>
+const ATCModel& adjointBoundaryCondition<Type>::getATC() const
 {
     return
         patch_.boundaryMesh().mesh().lookupObject<ATCModel>
@@ -145,6 +273,22 @@ const ATCModel& adjointBoundaryCondition::getATC() const
 }
 
 
+template<class Type>
+tmp
+<
+    Field<typename Foam::outerProduct<Foam::vector, Type>::type>
+>
+adjointBoundaryCondition<Type>::dxdbMult() const
+{
+    return
+        tmp<Field<typename Foam::outerProduct<Foam::vector, Type>::type>>::New
+        (
+            patch_.size(),
+            Zero
+        );
+}
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryCondition.H b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryCondition.H
index 415a770b068..4ec46c64c96 100644
--- a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryCondition.H
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryCondition.H
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -46,9 +46,10 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                  Class adjointBoundaryCondition Declaration
+                   Class adjointBoundaryCondition Declaration
 \*---------------------------------------------------------------------------*/
 
+template<class Type>
 class adjointBoundaryCondition
 {
 protected:
@@ -82,10 +83,10 @@ protected:
     // Protected Member Functions
 
         //- Get gradient of field on a specific boundary
-        template<class Type>
+        template<class Type2>
         tmp
         <
-            Field<typename Foam::outerProduct<Foam::vector, Type>::type>
+            Field<typename Foam::outerProduct<Foam::vector, Type2>::type>
         > computePatchGrad(word name);
 
         //- Whether to add the extra term from the UaGradU formulation
@@ -103,7 +104,6 @@ public:
     // Constructors
 
         //- Construct from field and base name
-        template<class Type>
         adjointBoundaryCondition
         (
             const fvPatch& p,
@@ -112,11 +112,11 @@ public:
         );
 
         //- Construct as copy
-        adjointBoundaryCondition(const adjointBoundaryCondition&);
+        adjointBoundaryCondition(const adjointBoundaryCondition<Type>&);
 
 
     //- Destructor
-    virtual ~adjointBoundaryCondition() = default;
+    virtual ~adjointBoundaryCondition<Type>() = default;
 
 
     // Member Functions
@@ -140,6 +140,18 @@ public:
 
             //- ATC type might be useful for a number of BCs. Return here
             const ATCModel& getATC() const;
+
+
+        // Contribution to sensitivity derivatives
+
+            //- Return contribution to sensitivity derivatives
+            //  For adjoint boundary conditions corresponding to primal
+            //  boundary conditions that include geometric components
+            //  (e.g. rotatingWallVelocity)
+            virtual tmp
+            <
+                Field<typename Foam::outerProduct<Foam::vector, Type>::type>
+            > dxdbMult() const;
 };
 
 
@@ -150,11 +162,14 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #ifdef NoRepository
-    #include "adjointBoundaryConditionTemplates.C"
+    #include "adjointBoundaryCondition.C"
 #endif
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #endif
 
+#define makeAdjointBoundaryCondition(adjointTypeBoundaryCondition)             \
+defineNamedTemplateTypeNameAndDebug(adjointTypeBoundaryCondition, 0);
+
 // ************************************************************************* //
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryConditions.C b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryConditions.C
new file mode 100644
index 00000000000..3b6da10de1e
--- /dev/null
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryConditions.C
@@ -0,0 +1,45 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | www.openfoam.com
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+    Copyright (C) 2020 PCOpt/NTUA
+    Copyright (C) 2020 FOSS GP
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "adjointBoundaryConditions.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+makeAdjointBoundaryCondition(adjointScalarBoundaryCondition)
+makeAdjointBoundaryCondition(adjointVectorBoundaryCondition)
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryConditions.H b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryConditions.H
new file mode 100644
index 00000000000..9551722dad1
--- /dev/null
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryConditions.H
@@ -0,0 +1,39 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | www.openfoam.com
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+    Copyright (C) 2020 PCOpt/NTUA
+    Copyright (C) 2020 FOSS GP
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef adjointBoundaryConditions_H
+#define adjointBoundaryConditions_H
+
+#include "adjointBoundaryCondition.H"
+#include "adjointBoundaryConditionsFwd.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryConditionsFwd.H b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryConditionsFwd.H
new file mode 100644
index 00000000000..88a093c2c2d
--- /dev/null
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointBoundaryCondition/adjointBoundaryConditionsFwd.H
@@ -0,0 +1,54 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | www.openfoam.com
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+    Copyright (C) 2020 PCOpt/NTUA
+    Copyright (C) 2020 FOSS GP
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef adjointBoundaryConditionsFwd_H
+#define adjointBoundaryConditionsFwd_H
+
+#include "fieldTypes.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+template<class Type> class adjointBoundaryCondition;
+
+typedef adjointBoundaryCondition<scalar> adjointScalarBoundaryCondition;
+typedef adjointBoundaryCondition<vector> adjointVectorBoundaryCondition;
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldPressure/adjointFarFieldPressureFvPatchScalarField.C b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldPressure/adjointFarFieldPressureFvPatchScalarField.C
index 09dd5ea5c7c..695f1e4c459 100644
--- a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldPressure/adjointFarFieldPressureFvPatchScalarField.C
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldPressure/adjointFarFieldPressureFvPatchScalarField.C
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -44,7 +44,7 @@ adjointFarFieldPressureFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF),
-    adjointBoundaryCondition(p, iF, word::null)
+    adjointScalarBoundaryCondition(p, iF, word::null)
 {}
 
 
@@ -58,7 +58,7 @@ adjointFarFieldPressureFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(ptf, p, iF, mapper),
-    adjointBoundaryCondition(p, iF, ptf.adjointSolverName_)
+    adjointScalarBoundaryCondition(p, iF, ptf.adjointSolverName_)
 {}
 
 
@@ -71,7 +71,7 @@ adjointFarFieldPressureFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF),
-    adjointBoundaryCondition(p, iF, dict.get<word>("solverName"))
+    adjointScalarBoundaryCondition(p, iF, dict.get<word>("solverName"))
 {
     fvPatchField<scalar>::operator=
     (
@@ -88,7 +88,7 @@ adjointFarFieldPressureFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(tppsf, iF),
-    adjointBoundaryCondition(tppsf)
+    adjointScalarBoundaryCondition(tppsf)
 {}
 
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldPressure/adjointFarFieldPressureFvPatchScalarField.H b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldPressure/adjointFarFieldPressureFvPatchScalarField.H
index 0e69a91d5a7..97406ef979a 100644
--- a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldPressure/adjointFarFieldPressureFvPatchScalarField.H
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldPressure/adjointFarFieldPressureFvPatchScalarField.H
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -41,7 +41,7 @@ SourceFiles
 
 #include "fvPatchFields.H"
 #include "fixedValueFvPatchFields.H"
-#include "adjointBoundaryCondition.H"
+#include "adjointBoundaryConditions.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -55,7 +55,7 @@ namespace Foam
 class adjointFarFieldPressureFvPatchScalarField
 :
     public fixedValueFvPatchScalarField,
-    public adjointBoundaryCondition
+    public adjointScalarBoundaryCondition
 {
 public:
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldVelocity/adjointFarFieldVelocityFvPatchVectorField.C b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldVelocity/adjointFarFieldVelocityFvPatchVectorField.C
index 1646cbe0a10..88de315419b 100644
--- a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldVelocity/adjointFarFieldVelocityFvPatchVectorField.C
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldVelocity/adjointFarFieldVelocityFvPatchVectorField.C
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -40,7 +40,7 @@ adjointFarFieldVelocityFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(p, iF),
-    adjointBoundaryCondition(p, iF, word::null)
+    adjointVectorBoundaryCondition(p, iF, word::null)
 {}
 
 
@@ -54,7 +54,7 @@ adjointFarFieldVelocityFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(ptf, p, iF, mapper),
-    adjointBoundaryCondition(p, iF, ptf.adjointSolverName_)
+    adjointVectorBoundaryCondition(p, iF, ptf.adjointSolverName_)
 {}
 
 
@@ -67,7 +67,7 @@ adjointFarFieldVelocityFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(p, iF),
-    adjointBoundaryCondition(p, iF, dict.get<word>("solverName"))
+    adjointVectorBoundaryCondition(p, iF, dict.get<word>("solverName"))
 {
     fvPatchField<vector>::operator=
     (
@@ -84,7 +84,7 @@ adjointFarFieldVelocityFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(pivpvf, iF),
-    adjointBoundaryCondition(pivpvf)
+    adjointVectorBoundaryCondition(pivpvf)
 {}
 
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldVelocity/adjointFarFieldVelocityFvPatchVectorField.H b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldVelocity/adjointFarFieldVelocityFvPatchVectorField.H
index 13638347e6c..1f61a89d7a1 100644
--- a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldVelocity/adjointFarFieldVelocityFvPatchVectorField.H
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointFarFieldVelocity/adjointFarFieldVelocityFvPatchVectorField.H
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -41,7 +41,7 @@ SourceFiles
 
 #include "fvPatchFields.H"
 #include "fixedValueFvPatchFields.H"
-#include "adjointBoundaryCondition.H"
+#include "adjointBoundaryConditions.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -55,7 +55,7 @@ namespace Foam
 class adjointFarFieldVelocityFvPatchVectorField
 :
     public fixedValueFvPatchVectorField,
-    public adjointBoundaryCondition
+    public adjointVectorBoundaryCondition
 {
 public:
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointInletVelocity/adjointInletVelocityFvPatchVectorField.C b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointInletVelocity/adjointInletVelocityFvPatchVectorField.C
index 6350f30d637..a5e71cb4c33 100644
--- a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointInletVelocity/adjointInletVelocityFvPatchVectorField.C
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointInletVelocity/adjointInletVelocityFvPatchVectorField.C
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -42,7 +42,7 @@ adjointInletVelocityFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(p, iF),
-    adjointBoundaryCondition(p, iF, word::null)
+    adjointVectorBoundaryCondition(p, iF, word::null)
 {}
 
 
@@ -56,7 +56,7 @@ adjointInletVelocityFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(ptf, p, iF, mapper),
-    adjointBoundaryCondition(p, iF, ptf.adjointSolverName_)
+    adjointVectorBoundaryCondition(p, iF, ptf.adjointSolverName_)
 {}
 
 
@@ -69,7 +69,7 @@ adjointInletVelocityFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(p, iF),
-    adjointBoundaryCondition(p, iF, dict.get<word>("solverName"))
+    adjointVectorBoundaryCondition(p, iF, dict.get<word>("solverName"))
 {
     fvPatchField<vector>::operator=
     (
@@ -86,7 +86,7 @@ adjointInletVelocityFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(pivpvf, iF),
-    adjointBoundaryCondition(pivpvf)
+    adjointVectorBoundaryCondition(pivpvf)
 {}
 
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointInletVelocity/adjointInletVelocityFvPatchVectorField.H b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointInletVelocity/adjointInletVelocityFvPatchVectorField.H
index e9c688bdbde..04d4891f096 100644
--- a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointInletVelocity/adjointInletVelocityFvPatchVectorField.H
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointInletVelocity/adjointInletVelocityFvPatchVectorField.H
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -41,7 +41,7 @@ SourceFiles
 
 #include "fvPatchFields.H"
 #include "fixedValueFvPatchFields.H"
-#include "adjointBoundaryCondition.H"
+#include "adjointBoundaryConditions.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -55,7 +55,7 @@ namespace Foam
 class adjointInletVelocityFvPatchVectorField
 :
     public fixedValueFvPatchVectorField,
-    public adjointBoundaryCondition
+    public adjointVectorBoundaryCondition
 {
 public:
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletPressure/adjointOutletPressureFvPatchScalarField.C b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletPressure/adjointOutletPressureFvPatchScalarField.C
index 5c76bc26716..b4f50154939 100644
--- a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletPressure/adjointOutletPressureFvPatchScalarField.C
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletPressure/adjointOutletPressureFvPatchScalarField.C
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -45,7 +45,7 @@ adjointOutletPressureFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF),
-    adjointBoundaryCondition(p, iF, word::null)
+    adjointScalarBoundaryCondition(p, iF, word::null)
 {}
 
 
@@ -59,7 +59,7 @@ adjointOutletPressureFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(ptf, p, iF, mapper),
-    adjointBoundaryCondition(p, iF, ptf.adjointSolverName_)
+    adjointScalarBoundaryCondition(p, iF, ptf.adjointSolverName_)
 {}
 
 
@@ -72,7 +72,7 @@ adjointOutletPressureFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF),
-    adjointBoundaryCondition(p, iF, dict.get<word>("solverName"))
+    adjointScalarBoundaryCondition(p, iF, dict.get<word>("solverName"))
 {
     fvPatchField<scalar>::operator=
     (
@@ -89,7 +89,7 @@ adjointOutletPressureFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(tppsf, iF),
-    adjointBoundaryCondition(tppsf)
+    adjointScalarBoundaryCondition(tppsf)
 {}
 
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletPressure/adjointOutletPressureFvPatchScalarField.H b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletPressure/adjointOutletPressureFvPatchScalarField.H
index 7e12c17cb70..ad035cc6ff7 100644
--- a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletPressure/adjointOutletPressureFvPatchScalarField.H
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletPressure/adjointOutletPressureFvPatchScalarField.H
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -41,7 +41,7 @@ SourceFiles
 
 #include "fvPatchFields.H"
 #include "fixedValueFvPatchFields.H"
-#include "adjointBoundaryCondition.H"
+#include "adjointBoundaryConditions.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -55,7 +55,7 @@ namespace Foam
 class adjointOutletPressureFvPatchScalarField
 :
     public fixedValueFvPatchScalarField,
-    public adjointBoundaryCondition
+    public adjointScalarBoundaryCondition
 {
 public:
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocity/adjointOutletVelocityFvPatchVectorField.C b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocity/adjointOutletVelocityFvPatchVectorField.C
index adc25347523..4d3f2fce75d 100644
--- a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocity/adjointOutletVelocityFvPatchVectorField.C
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocity/adjointOutletVelocityFvPatchVectorField.C
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -102,7 +102,7 @@ adjointOutletVelocityFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(p, iF),
-    adjointBoundaryCondition(p, iF, word::null)
+    adjointVectorBoundaryCondition(p, iF, word::null)
 {}
 
 
@@ -116,7 +116,7 @@ adjointOutletVelocityFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(ptf, p, iF, mapper),
-    adjointBoundaryCondition(p, iF, ptf.adjointSolverName_)
+    adjointVectorBoundaryCondition(p, iF, ptf.adjointSolverName_)
 {}
 
 
@@ -129,7 +129,7 @@ adjointOutletVelocityFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(p, iF),
-    adjointBoundaryCondition(p, iF, dict.get<word>("solverName"))
+    adjointVectorBoundaryCondition(p, iF, dict.get<word>("solverName"))
 {
     fvPatchField<vector>::operator=
     (
@@ -146,7 +146,7 @@ adjointOutletVelocityFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(pivpvf, iF),
-    adjointBoundaryCondition(pivpvf)
+    adjointVectorBoundaryCondition(pivpvf)
 {}
 
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocity/adjointOutletVelocityFvPatchVectorField.H b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocity/adjointOutletVelocityFvPatchVectorField.H
index b0ae32e3eac..95c57078aa6 100644
--- a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocity/adjointOutletVelocityFvPatchVectorField.H
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocity/adjointOutletVelocityFvPatchVectorField.H
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -46,7 +46,7 @@ SourceFiles
 
 #include "fvPatchFields.H"
 #include "fixedValueFvPatchFields.H"
-#include "adjointBoundaryCondition.H"
+#include "adjointBoundaryConditions.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -60,7 +60,7 @@ namespace Foam
 class adjointOutletVelocityFvPatchVectorField
 :
     public fixedValueFvPatchVectorField,
-    public adjointBoundaryCondition
+    public adjointVectorBoundaryCondition
 {
     // Private Member Functions
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocityFlux/adjointOutletVelocityFluxFvPatchVectorField.C b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocityFlux/adjointOutletVelocityFluxFvPatchVectorField.C
index 871db0a7861..8abaf44d00c 100644
--- a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocityFlux/adjointOutletVelocityFluxFvPatchVectorField.C
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocityFlux/adjointOutletVelocityFluxFvPatchVectorField.C
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -42,7 +42,7 @@ adjointOutletVelocityFluxFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(p, iF),
-    adjointBoundaryCondition(p, iF, word::null)
+    adjointVectorBoundaryCondition(p, iF, word::null)
 {}
 
 
@@ -56,7 +56,7 @@ adjointOutletVelocityFluxFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(ptf, p, iF, mapper),
-    adjointBoundaryCondition(p, iF, ptf.adjointSolverName_)
+    adjointVectorBoundaryCondition(p, iF, ptf.adjointSolverName_)
 {}
 
 
@@ -69,7 +69,7 @@ adjointOutletVelocityFluxFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(p, iF),
-    adjointBoundaryCondition(p, iF, dict.get<word>("solverName"))
+    adjointVectorBoundaryCondition(p, iF, dict.get<word>("solverName"))
 {
     fvPatchField<vector>::operator=
     (
@@ -86,7 +86,7 @@ adjointOutletVelocityFluxFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(pivpvf, iF),
-    adjointBoundaryCondition(pivpvf)
+    adjointVectorBoundaryCondition(pivpvf)
 {}
 
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocityFlux/adjointOutletVelocityFluxFvPatchVectorField.H b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocityFlux/adjointOutletVelocityFluxFvPatchVectorField.H
index 854443b3507..3201b245ab7 100644
--- a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocityFlux/adjointOutletVelocityFluxFvPatchVectorField.H
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointOutletVelocityFlux/adjointOutletVelocityFluxFvPatchVectorField.H
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -47,7 +47,7 @@ SourceFiles
 
 #include "fvPatchFields.H"
 #include "fixedValueFvPatchFields.H"
-#include "adjointBoundaryCondition.H"
+#include "adjointBoundaryConditions.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -61,7 +61,7 @@ namespace Foam
 class adjointOutletVelocityFluxFvPatchVectorField
 :
     public fixedValueFvPatchVectorField,
-    public adjointBoundaryCondition
+    public adjointVectorBoundaryCondition
 {
     // Private Member Functions
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocity/adjointWallVelocityFvPatchVectorField.C b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocity/adjointWallVelocityFvPatchVectorField.C
index 00db8159e80..32372f99aff 100644
--- a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocity/adjointWallVelocityFvPatchVectorField.C
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocity/adjointWallVelocityFvPatchVectorField.C
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019-2020 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -42,7 +42,7 @@ adjointWallVelocityFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(p, iF),
-    adjointBoundaryCondition(p, iF, word::null),
+    adjointVectorBoundaryCondition(p, iF, word::null),
     kappa_(0.41),
     E_(9.8)
 {}
@@ -58,7 +58,7 @@ adjointWallVelocityFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(ptf, p, iF, mapper),
-    adjointBoundaryCondition(p, iF, ptf.adjointSolverName_),
+    adjointVectorBoundaryCondition(p, iF, ptf.adjointSolverName_),
     kappa_(ptf.kappa_),
     E_(ptf.E_)
 {}
@@ -73,7 +73,7 @@ adjointWallVelocityFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(p, iF),
-    adjointBoundaryCondition(p, iF, dict.get<word>("solverName")),
+    adjointVectorBoundaryCondition(p, iF, dict.get<word>("solverName")),
     kappa_(dict.getOrDefault<scalar>("kappa", 0.41)),
     E_(dict.getOrDefault<scalar>("E", 9.8))
 {
@@ -92,7 +92,7 @@ adjointWallVelocityFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(pivpvf, iF),
-    adjointBoundaryCondition(pivpvf),
+    adjointVectorBoundaryCondition(pivpvf),
     kappa_(pivpvf.kappa_),
     E_(pivpvf.E_)
 {}
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocity/adjointWallVelocityFvPatchVectorField.H b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocity/adjointWallVelocityFvPatchVectorField.H
index f2b5ed4bc3a..7ead8328d5b 100644
--- a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocity/adjointWallVelocityFvPatchVectorField.H
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocity/adjointWallVelocityFvPatchVectorField.H
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -55,7 +55,7 @@ SourceFiles
 
 #include "fvPatchFields.H"
 #include "fixedValueFvPatchFields.H"
-#include "adjointBoundaryCondition.H"
+#include "adjointBoundaryConditions.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -69,7 +69,7 @@ namespace Foam
 class adjointWallVelocityFvPatchVectorField
 :
     public fixedValueFvPatchVectorField,
-    public adjointBoundaryCondition
+    public adjointVectorBoundaryCondition
 {
 private:
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocityLowRe/adjointWallVelocityLowReFvPatchVectorField.C b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocityLowRe/adjointWallVelocityLowReFvPatchVectorField.C
index aacded67f8b..606eb246250 100644
--- a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocityLowRe/adjointWallVelocityLowReFvPatchVectorField.C
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocityLowRe/adjointWallVelocityLowReFvPatchVectorField.C
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -41,7 +41,7 @@ adjointWallVelocityLowReFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(p, iF),
-    adjointBoundaryCondition(p, iF, word::null)
+    adjointVectorBoundaryCondition(p, iF, word::null)
 {}
 
 
@@ -55,7 +55,7 @@ adjointWallVelocityLowReFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(ptf, p, iF, mapper),
-    adjointBoundaryCondition(p, iF, ptf.adjointSolverName_)
+    adjointVectorBoundaryCondition(p, iF, ptf.adjointSolverName_)
 {}
 
 
@@ -68,7 +68,7 @@ adjointWallVelocityLowReFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(p, iF),
-    adjointBoundaryCondition(p, iF, dict.get<word>("solverName"))
+    adjointVectorBoundaryCondition(p, iF, dict.get<word>("solverName"))
 {
     fvPatchField<vector>::operator=
     (
@@ -85,7 +85,7 @@ adjointWallVelocityLowReFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(pivpvf, iF),
-    adjointBoundaryCondition(pivpvf)
+    adjointVectorBoundaryCondition(pivpvf)
 {}
 
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocityLowRe/adjointWallVelocityLowReFvPatchVectorField.H b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocityLowRe/adjointWallVelocityLowReFvPatchVectorField.H
index 5d4980c89d6..30a1752191d 100644
--- a/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocityLowRe/adjointWallVelocityLowReFvPatchVectorField.H
+++ b/src/optimisation/adjointOptimisation/adjoint/adjointBoundaryConditions/adjointWallVelocityLowRe/adjointWallVelocityLowReFvPatchVectorField.H
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -41,7 +41,7 @@ SourceFiles
 
 #include "fvPatchFields.H"
 #include "fixedValueFvPatchFields.H"
-#include "adjointBoundaryCondition.H"
+#include "adjointBoundaryConditions.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -55,7 +55,7 @@ namespace Foam
 class adjointWallVelocityLowReFvPatchVectorField
 :
     public fixedValueFvPatchVectorField,
-    public adjointBoundaryCondition
+    public adjointVectorBoundaryCondition
 {
 public:
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointFarFieldNuaTilda/adjointFarFieldNuaTildaFvPatchScalarField.C b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointFarFieldNuaTilda/adjointFarFieldNuaTildaFvPatchScalarField.C
index e289098d4b9..edbdc4b09ca 100644
--- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointFarFieldNuaTilda/adjointFarFieldNuaTildaFvPatchScalarField.C
+++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointFarFieldNuaTilda/adjointFarFieldNuaTildaFvPatchScalarField.C
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -48,7 +48,7 @@ adjointFarFieldNuaTildaFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF),
-    adjointBoundaryCondition(p, iF, word::null)
+    adjointScalarBoundaryCondition(p, iF, word::null)
 {}
 
 
@@ -62,7 +62,7 @@ adjointFarFieldNuaTildaFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(ptf, p, iF, mapper),
-    adjointBoundaryCondition(p, iF, ptf.adjointSolverName_)
+    adjointScalarBoundaryCondition(p, iF, ptf.adjointSolverName_)
 {}
 
 
@@ -75,7 +75,7 @@ adjointFarFieldNuaTildaFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF),
-    adjointBoundaryCondition(p, iF, dict.get<word>("solverName"))
+    adjointScalarBoundaryCondition(p, iF, dict.get<word>("solverName"))
 {
     fvPatchField<scalar>::operator=
     (
@@ -92,7 +92,7 @@ adjointFarFieldNuaTildaFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(tppsf, iF),
-    adjointBoundaryCondition(tppsf)
+    adjointScalarBoundaryCondition(tppsf)
 {}
 
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointFarFieldNuaTilda/adjointFarFieldNuaTildaFvPatchScalarField.H b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointFarFieldNuaTilda/adjointFarFieldNuaTildaFvPatchScalarField.H
index ece262211f3..65d801600cf 100644
--- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointFarFieldNuaTilda/adjointFarFieldNuaTildaFvPatchScalarField.H
+++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointFarFieldNuaTilda/adjointFarFieldNuaTildaFvPatchScalarField.H
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -40,7 +40,7 @@ SourceFiles
 #define adjointFarFieldNuaTildaFvPatchScalarField_H
 
 #include "fixedValueFvPatchFields.H"
-#include "adjointBoundaryCondition.H"
+#include "adjointBoundaryConditions.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -54,7 +54,7 @@ namespace Foam
 class adjointFarFieldNuaTildaFvPatchScalarField
 :
     public fixedValueFvPatchScalarField,
-    public adjointBoundaryCondition
+    public adjointScalarBoundaryCondition
 {
 public:
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointInletNuaTilda/adjointInletNuaTildaFvPatchScalarField.C b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointInletNuaTilda/adjointInletNuaTildaFvPatchScalarField.C
index ef3eee6b769..a3d75d2fccb 100644
--- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointInletNuaTilda/adjointInletNuaTildaFvPatchScalarField.C
+++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointInletNuaTilda/adjointInletNuaTildaFvPatchScalarField.C
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -44,7 +44,7 @@ adjointInletNuaTildaFvPatchScalarField::adjointInletNuaTildaFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF),
-    adjointBoundaryCondition(p, iF, word::null)
+    adjointScalarBoundaryCondition(p, iF, word::null)
 {}
 
 
@@ -57,7 +57,7 @@ adjointInletNuaTildaFvPatchScalarField::adjointInletNuaTildaFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(ptf, p, iF, mapper),
-    adjointBoundaryCondition(p, iF, ptf.adjointSolverName_)
+    adjointScalarBoundaryCondition(p, iF, ptf.adjointSolverName_)
 {}
 
 
@@ -69,7 +69,7 @@ adjointInletNuaTildaFvPatchScalarField::adjointInletNuaTildaFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF, dict),
-    adjointBoundaryCondition(p, iF, dict.get<word>("solverName"))
+    adjointScalarBoundaryCondition(p, iF, dict.get<word>("solverName"))
 {}
 
 
@@ -80,7 +80,7 @@ adjointInletNuaTildaFvPatchScalarField::adjointInletNuaTildaFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(ptf, iF),
-    adjointBoundaryCondition(ptf)
+    adjointScalarBoundaryCondition(ptf)
 {}
 
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointInletNuaTilda/adjointInletNuaTildaFvPatchScalarField.H b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointInletNuaTilda/adjointInletNuaTildaFvPatchScalarField.H
index 2920ad07420..5cf3d8cb522 100644
--- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointInletNuaTilda/adjointInletNuaTildaFvPatchScalarField.H
+++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointInletNuaTilda/adjointInletNuaTildaFvPatchScalarField.H
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -42,7 +42,7 @@ SourceFiles
 
 #include "fvPatchFields.H"
 #include "fixedValueFvPatchFields.H"
-#include "adjointBoundaryCondition.H"
+#include "adjointBoundaryConditions.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -56,7 +56,7 @@ namespace Foam
 class adjointInletNuaTildaFvPatchScalarField
 :
     public fixedValueFvPatchScalarField,
-    public adjointBoundaryCondition
+    public adjointScalarBoundaryCondition
 {
 
 public:
diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletFlux/adjointOutletFluxFvPatchScalarField.H b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletFlux/adjointOutletFluxFvPatchScalarField.H
index ad7bbce8bad..4efe56af5a9 100644
--- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletFlux/adjointOutletFluxFvPatchScalarField.H
+++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletFlux/adjointOutletFluxFvPatchScalarField.H
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -40,7 +40,7 @@ SourceFiles
 #define adjointOutletFluxFvPatchScalarField_H
 
 #include "fixedValueFvPatchFields.H"
-#include "adjointBoundaryCondition.H"
+#include "adjointBoundaryConditions.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTilda/adjointOutletNuaTildaFvPatchScalarField.C b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTilda/adjointOutletNuaTildaFvPatchScalarField.C
index fc50925a99b..ef16a37865c 100644
--- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTilda/adjointOutletNuaTildaFvPatchScalarField.C
+++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTilda/adjointOutletNuaTildaFvPatchScalarField.C
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -46,7 +46,7 @@ adjointOutletNuaTildaFvPatchScalarField::adjointOutletNuaTildaFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF),
-    adjointBoundaryCondition(p, iF, word::null)
+    adjointScalarBoundaryCondition(p, iF, word::null)
 {}
 
 
@@ -59,7 +59,7 @@ adjointOutletNuaTildaFvPatchScalarField::adjointOutletNuaTildaFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(ptf, p, iF, mapper),
-    adjointBoundaryCondition(p, iF, ptf.adjointSolverName_)
+    adjointScalarBoundaryCondition(p, iF, ptf.adjointSolverName_)
 {}
 
 
@@ -71,7 +71,7 @@ adjointOutletNuaTildaFvPatchScalarField::adjointOutletNuaTildaFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF),
-    adjointBoundaryCondition(p, iF, dict.get<word>("solverName"))
+    adjointScalarBoundaryCondition(p, iF, dict.get<word>("solverName"))
 {
     fvPatchField<scalar>::operator=
     (
@@ -87,7 +87,7 @@ adjointOutletNuaTildaFvPatchScalarField::adjointOutletNuaTildaFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(tppsf, iF),
-    adjointBoundaryCondition(tppsf)
+    adjointScalarBoundaryCondition(tppsf)
 {}
 
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTilda/adjointOutletNuaTildaFvPatchScalarField.H b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTilda/adjointOutletNuaTildaFvPatchScalarField.H
index b2f5ee87871..8f20dcb0ea3 100644
--- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTilda/adjointOutletNuaTildaFvPatchScalarField.H
+++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTilda/adjointOutletNuaTildaFvPatchScalarField.H
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -40,7 +40,7 @@ SourceFiles
 #define adjointOutletNuaTildaFvPatchScalarField_H
 
 #include "fixedValueFvPatchFields.H"
-#include "adjointBoundaryCondition.H"
+#include "adjointBoundaryConditions.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -54,7 +54,7 @@ namespace Foam
 class adjointOutletNuaTildaFvPatchScalarField
 :
     public fixedValueFvPatchScalarField,
-    public adjointBoundaryCondition
+    public adjointScalarBoundaryCondition
 {
 public:
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTildaFlux/adjointOutletNuaTildaFluxFvPatchScalarField.C b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTildaFlux/adjointOutletNuaTildaFluxFvPatchScalarField.C
index b78448441a2..f66e1972e79 100644
--- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTildaFlux/adjointOutletNuaTildaFluxFvPatchScalarField.C
+++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTildaFlux/adjointOutletNuaTildaFluxFvPatchScalarField.C
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -47,7 +47,7 @@ adjointOutletNuaTildaFluxFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF),
-    adjointBoundaryCondition(p, iF, word::null)
+    adjointScalarBoundaryCondition(p, iF, word::null)
 {}
 
 
@@ -61,7 +61,7 @@ adjointOutletNuaTildaFluxFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(ptf, p, iF, mapper),
-    adjointBoundaryCondition(p, iF, ptf.adjointSolverName_)
+    adjointScalarBoundaryCondition(p, iF, ptf.adjointSolverName_)
 {}
 
 
@@ -74,7 +74,7 @@ adjointOutletNuaTildaFluxFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF),
-    adjointBoundaryCondition(p, iF, dict.get<word>("solverName"))
+    adjointScalarBoundaryCondition(p, iF, dict.get<word>("solverName"))
 {
     fvPatchField<scalar>::operator=
     (
@@ -91,7 +91,7 @@ adjointOutletNuaTildaFluxFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(tppsf, iF),
-    adjointBoundaryCondition(tppsf)
+    adjointScalarBoundaryCondition(tppsf)
 {}
 
 
diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTildaFlux/adjointOutletNuaTildaFluxFvPatchScalarField.H b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTildaFlux/adjointOutletNuaTildaFluxFvPatchScalarField.H
index cdea8dea95f..246a33a557b 100644
--- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTildaFlux/adjointOutletNuaTildaFluxFvPatchScalarField.H
+++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/derivedFvPatchFields/adjointOutletNuaTildaFlux/adjointOutletNuaTildaFluxFvPatchScalarField.H
@@ -5,8 +5,8 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2007-2019 PCOpt/NTUA
-    Copyright (C) 2013-2019 FOSS GP
+    Copyright (C) 2007-2020 PCOpt/NTUA
+    Copyright (C) 2013-2020 FOSS GP
     Copyright (C) 2019 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
@@ -40,7 +40,7 @@ SourceFiles
 #define adjointOutletNuaTildaFluxFvPatchScalarField_H
 
 #include "fixedValueFvPatchFields.H"
-#include "adjointBoundaryCondition.H"
+#include "adjointBoundaryConditions.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -54,7 +54,7 @@ namespace Foam
 class adjointOutletNuaTildaFluxFvPatchScalarField
 :
     public fixedValueFvPatchScalarField,
-    public adjointBoundaryCondition
+    public adjointScalarBoundaryCondition
 {
 
 public:
-- 
GitLab