diff --git a/MathLib/LinAlg/BLAS.cpp b/MathLib/LinAlg/BLAS.cpp
index 87550f22621bb9cf1493ab22f42e2a52eba642a6..51f2add2370cb4fd1169c593476234958b4013f8 100644
--- a/MathLib/LinAlg/BLAS.cpp
+++ b/MathLib/LinAlg/BLAS.cpp
@@ -323,6 +323,11 @@ void matMultAdd(EigenMatrix const& A, EigenVector const& v1, EigenVector const&
     v3.getRawVector() = v2.getRawVector() + A.getRawMatrix()*v1.getRawVector();
 }
 
+void finalizeAssembly(EigenMatrix& x)
+{
+    x.getRawMatrix().makeCompressed();
+}
+
 } // namespace BLAS
 
 } // namespace MathLib
diff --git a/MathLib/LinAlg/BLAS.h b/MathLib/LinAlg/BLAS.h
index a042b045446fb65f9bc7a48c3c5b896f8fa3cd94..5d4fae356e8ecb72fae0311a02c7bf84fc0e14e4 100644
--- a/MathLib/LinAlg/BLAS.h
+++ b/MathLib/LinAlg/BLAS.h
@@ -226,6 +226,8 @@ void matMult(EigenMatrix const& A, EigenVector const& x, EigenVector& y);
 void matMultAdd(EigenMatrix const& A, EigenVector const& v1,
                 EigenVector const& v2, EigenVector& v3);
 
+void finalizeAssembly(EigenMatrix& A);
+
 } // namespace BLAS
 
 } // namespace MathLib