diff --git a/MathLib/LinAlg/MatrixVectorTraits.cpp b/MathLib/LinAlg/MatrixVectorTraits.cpp
index cac6b4f51f18ee50b03b0831c7a9b5f91eff64e7..e2f1ce8a17e462fc5b1409ee68a925222d57b1e1 100644
--- a/MathLib/LinAlg/MatrixVectorTraits.cpp
+++ b/MathLib/LinAlg/MatrixVectorTraits.cpp
@@ -139,6 +139,11 @@ newInstance(MatrixSpecifications const& spec)
     return std::make_unique<EigenVector>(spec.nrows);
 }
 
+std::unique_ptr<EigenVector> MatrixVectorTraits<EigenVector>::newInstance(
+    Eigen::SparseMatrix<double>::Index const length)
+{
+    return std::make_unique<EigenVector>(length);
+}
 } // namespace MathLib
 
 #endif // defined(OGS_USE_EIGEN)
diff --git a/MathLib/LinAlg/MatrixVectorTraits.h b/MathLib/LinAlg/MatrixVectorTraits.h
index 608dce16719c087e939468866faafeb978e1c224..4e6f2737b5a01f8e68ad2371f8d16c6b8e6433ec 100644
--- a/MathLib/LinAlg/MatrixVectorTraits.h
+++ b/MathLib/LinAlg/MatrixVectorTraits.h
@@ -19,15 +19,18 @@ template<typename Matrix>
 struct MatrixVectorTraits;
 }
 
-#define SPECIALIZE_MATRIX_VECTOR_TRAITS(MATVEC, IDX) \
-    template<> struct MatrixVectorTraits<MATVEC> { \
-        using Index = IDX; \
-        static std::unique_ptr<MATVEC> newInstance(); \
-        static std::unique_ptr<MATVEC> newInstance(MATVEC const& A); \
-        static std::unique_ptr<MATVEC> newInstance(MatrixSpecifications const& spec); \
+#define SPECIALIZE_MATRIX_VECTOR_TRAITS(MATVEC, IDX)                    \
+    template <>                                                         \
+    struct MatrixVectorTraits<MATVEC>                                   \
+    {                                                                   \
+        using Index = IDX;                                              \
+        static std::unique_ptr<MATVEC> newInstance();                   \
+        static std::unique_ptr<MATVEC> newInstance(MATVEC const& A);    \
+        static std::unique_ptr<MATVEC> newInstance(                     \
+            MatrixSpecifications const& spec);                          \
+        static std::unique_ptr<MATVEC> newInstance(Index const length); \
     };
 
-
 #ifdef USE_PETSC
 
 #include "MathLib/LinAlg/PETSc/PETScMatrix.h"