diff --git a/MathLib/LinAlg/MatrixProviderUser.h b/MathLib/LinAlg/MatrixProviderUser.h
index 72145372c9d56fa6e4a9281310c5c260dbef603c..7cde1efbae5cfbe6772f9f949683e7f205689ecd 100644
--- a/MathLib/LinAlg/MatrixProviderUser.h
+++ b/MathLib/LinAlg/MatrixProviderUser.h
@@ -12,13 +12,26 @@
 
 #include <cstddef>
 
+#include "AssemblerLib/ComputeSparsityPattern.h"
+
 namespace MathLib
 {
 
 struct MatrixSpecifications
 {
+    MatrixSpecifications(std::size_t const nrows_, std::size_t const ncols_,
+                         AssemblerLib::SparsityPattern const*const sparsity_pattern_,
+                         AssemblerLib::LocalToGlobalIndexMap const*const dof_table_,
+                         MeshLib::Mesh const*const mesh_)
+        : nrows(nrows_), ncols(ncols_), sparsity_pattern(sparsity_pattern_)
+        , dof_table(dof_table_), mesh(mesh_)
+    {}
+
     std::size_t const nrows;
     std::size_t const ncols;
+    AssemblerLib::SparsityPattern const*const sparsity_pattern;
+    AssemblerLib::LocalToGlobalIndexMap const*const dof_table;
+    MeshLib::Mesh const*const mesh;
 };
 
 class MatrixSpecificationsProvider