diff --git a/src/OpenFOAM/primitives/RowVector/RowVector.H b/src/OpenFOAM/primitives/RowVector/RowVector.H
new file mode 100644
index 0000000000000000000000000000000000000000..1c2005cb353f93cb0971b1bebab96f06c0dad85f
--- /dev/null
+++ b/src/OpenFOAM/primitives/RowVector/RowVector.H
@@ -0,0 +1,135 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+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/>.
+
+Class
+    Foam::RowVector
+
+Description
+    Templated 3D row-vector derived from MatrixSpace adding construction from
+    3 components and element access using x(), y() and z().
+
+SourceFiles
+    RowVectorI.H
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef RowVector_H
+#define RowVector_H
+
+#include "MatrixSpace.H"
+#include "Vector.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class RowVector Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class Cmpt>
+class RowVector
+:
+    public MatrixSpace<RowVector<Cmpt>, Cmpt, 1, 3>
+{
+
+public:
+
+    //- Equivalent type of labels used for valid component indexing
+    typedef RowVector<label> labelType;
+
+
+    //- Component labeling enumeration
+    enum components { X, Y, Z };
+
+
+    // Constructors
+
+        //- Construct null
+        inline RowVector();
+
+        //- Construct initialized to zero
+        inline explicit RowVector(const Foam::zero);
+
+        //- Construct given VectorSpace of the same rank
+        template<class Cmpt2>
+        inline RowVector(const MatrixSpace<RowVector<Cmpt2>, Cmpt2, 1, 3>&);
+
+        //- Construct given three components
+        inline RowVector(const Cmpt& rvx, const Cmpt& rvy, const Cmpt& rvz);
+
+        //- Construct from Istream
+        inline RowVector(Istream&);
+
+
+    // Member Functions
+
+        // Access
+
+            inline const Cmpt& x() const;
+            inline const Cmpt& y() const;
+            inline const Cmpt& z() const;
+
+            inline Cmpt& x();
+            inline Cmpt& y();
+            inline Cmpt& z();
+
+
+    // Member Operators
+
+        inline void operator=(const Foam::zero);
+};
+
+
+template<class Cmpt>
+class typeOfTranspose<Cmpt, Vector<Cmpt>>
+{
+public:
+
+    typedef RowVector<Cmpt> type;
+};
+
+
+template<class Cmpt>
+class typeOfTranspose<Cmpt, RowVector<Cmpt>>
+{
+public:
+
+    typedef Vector<Cmpt> type;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "RowVectorI.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/RowVector/RowVectorI.H b/src/OpenFOAM/primitives/RowVector/RowVectorI.H
new file mode 100644
index 0000000000000000000000000000000000000000..dec007166f61adb16d65943e45cd7f8f0017e381
--- /dev/null
+++ b/src/OpenFOAM/primitives/RowVector/RowVectorI.H
@@ -0,0 +1,121 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2016 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+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/>.
+
+\*---------------------------------------------------------------------------*/
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class Cmpt>
+inline Foam::RowVector<Cmpt>::RowVector()
+{}
+
+
+template<class Cmpt>
+inline Foam::RowVector<Cmpt>::RowVector(const Foam::zero z)
+:
+    RowVector::msType(z)
+{}
+
+
+template<class Cmpt>
+template<class Cmpt2>
+inline Foam::RowVector<Cmpt>::RowVector
+(
+    const MatrixSpace<RowVector<Cmpt2>, Cmpt2, 1, 3>& ms
+)
+:
+    MatrixSpace<RowVector<Cmpt>, Cmpt, 1, 3>(ms)
+{}
+
+
+template<class Cmpt>
+inline Foam::RowVector<Cmpt>::RowVector
+(
+    const Cmpt& rvx,
+    const Cmpt& rvy,
+    const Cmpt& rvz
+)
+{
+    this->v_[X] = rvx;
+    this->v_[Y] = rvy;
+    this->v_[Z] = rvz;
+}
+
+
+template<class Cmpt>
+inline Foam::RowVector<Cmpt>::RowVector(Istream& is)
+:
+    MatrixSpace<RowVector<Cmpt>, Cmpt, 1, 3>(is)
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class Cmpt>
+inline const Cmpt& Foam::RowVector<Cmpt>::x() const
+{
+    return this->v_[X];
+}
+
+template<class Cmpt>
+inline const Cmpt& Foam::RowVector<Cmpt>::y() const
+{
+    return this->v_[Y];
+}
+
+template<class Cmpt>
+inline const Cmpt& Foam::RowVector<Cmpt>::z() const
+{
+    return this->v_[Z];
+}
+
+
+template<class Cmpt>
+inline Cmpt& Foam::RowVector<Cmpt>::x()
+{
+    return this->v_[X];
+}
+
+template<class Cmpt>
+inline Cmpt& Foam::RowVector<Cmpt>::y()
+{
+    return this->v_[Y];
+}
+
+template<class Cmpt>
+inline Cmpt& Foam::RowVector<Cmpt>::z()
+{
+    return this->v_[Z];
+}
+
+
+// * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
+
+template<class Cmpt>
+inline void Foam::RowVector<Cmpt>::operator=(const Foam::zero z)
+{
+    RowVector::msType::operator=(z);
+}
+
+
+// ************************************************************************* //