diff --git a/src/optimisation/adjointOptimisation/adjoint/Make/files b/src/optimisation/adjointOptimisation/adjoint/Make/files
index 0c72b563269ddcc67734e577710d00009b0db583..17297eaf98739d2b0392f8d6a18b990068a2190e 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 735b9387a471318702bff4da3fe7cc384ed42397..b0177fbeb828439137eece459b66c1cb66e76dba 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 415a770b06809cb5cca02b93cb722fd877904b7c..4ec46c64c96867bc520b24b39cbfe082eb8c8933 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 0000000000000000000000000000000000000000..3b6da10de1e732726cfbea1e0ed82aff76c2e930
--- /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 0000000000000000000000000000000000000000..9551722dad12b38a7fe79459c98d3a97c4aa7912
--- /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 0000000000000000000000000000000000000000..88a093c2c2d6850ca004b153c0314e872435f133
--- /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 09dd5ea5c7cd554ffbf5fadaff7f6ded1e8e4cbf..695f1e4c4595fcde9e4f49243cef31685838947c 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 0e69a91d5a79671756f37ac372ef98f8aa140f16..97406ef979ac3f0ea2c99b1e2f52279d8dc9b4b4 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 1646cbe0a10c53c0fb57b1b47da629833a0669e3..88de315419b4714102a1edbf23e48c6f33bbf724 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 13638347e6cacfc24e6d669312b32cd56ada7e8d..1f61a89d7a188e4a9cc23f9a8fd30f4369d7f678 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 6350f30d6374c36e2805fb935846c3293400c5ec..a5e71cb4c3373a54f2cb890a64db5b85d9f41743 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 e9c688bdbde99c2bf9374d4a8f6b9fea030a48b0..04d4891f0966af67446f1d69b9e9bb6cccc6c441 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 5c76bc26716fc7195563ca7a35bcc402c8df93f4..b4f5015493981585dcc962ca6c8129a66997d831 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 7e12c17cb704176871cc9488c50ff48fee349639..ad035cc6ff7f9eaac33884b80be1d6877ef15902 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 adc25347523361206961850f7ac2b8b7445ffd7d..4d3f2fce75d2acb8d6fe9ab9022c454c307b62a3 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 b0ae32e3eaca8570f05e8f1832940c47dccf8f65..95c57078aa6e78b21ea3a6f9a81c890b97eaa4fd 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 871db0a78616687b144671f19069847fc4ad2a7b..8abaf44d00c9eadc46ee9e0168c4620201974ef3 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 854443b350789c524ae0c127bc7ca3ce98b972d4..3201b245ab79d4d7c403ef690b1944635b0b4b1a 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 00db8159e8099bc9ed58801b1837395a666becee..32372f99affc5c919f480a9d14400b602efd258e 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 f2b5ed4bc3a050c2951079fc0c5d8e98e5e871bc..7ead8328d5b09f6d8221d49fbc2eec88614b4972 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 aacded67f8bf4820bb944d1bbe857ed1068b8102..606eb246250e0532ffd0565ebb61810120541df7 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 5d4980c89d68c4244556453b30785bb9042ef34e..30a1752191db6267a3a98a2854050aa398dee02c 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 e289098d4b907480734af1433b587f72ac49bf5a..edbdc4b09ca1ac869dd95097d50d4ffedd6ca895 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 ece262211f358c306b9c855069dd52965a4c3242..65d801600cf68b03080e4f8734bcd22e65c186da 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 ef3eee6b769d40bc5d746f08da5188c052c69b15..a3d75d2fccb6fa3972277cd3f3d923a7b08daf9f 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 2920ad074203c8d212beb10566d21db6ffe299ed..5cf3d8cb522860e13b94fd3366c3cf1c07891cfe 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 ad7bbce8badfd55483c89dffb1e3f7ed775e86bc..4efe56af5a9a3c1790428468b7df5029ffcbf96c 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 fc50925a99b5bbf4fb55c412039eb17a7b3bc45e..ef16a37865c667d389c753c052ffda5147d5acf6 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 b2f5ee87871ecfb538511f3f0f2f404944b994c0..8f20dcb0ea3425811818fc68cee414146dabea34 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 b78448441a2df209ba3d62e6071f33ec04d62543..f66e1972e79e8d9e1a70d9c77719a179f7c0a3ec 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 cdea8dea95f7023edb68fac10ec6e83c21a6c804..246a33a557bb6635bf0ebf55924fa7c19778f460 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: