diff --git a/ProcessLib/LocalAssemblerInterface.h b/ProcessLib/LocalAssemblerInterface.h
index e4e74a0af9e8e05dd20cd0752fbc4c49486334ab..063002f80b34d0b29b17752e4aaa46f1a4957794 100644
--- a/ProcessLib/LocalAssemblerInterface.h
+++ b/ProcessLib/LocalAssemblerInterface.h
@@ -26,8 +26,34 @@ public:
 
     virtual void assemble(double const t, std::vector<double> const& local_x) = 0;
 
-    virtual void addToGlobal(AssemblerLib::LocalToGlobalIndexMap::RowColumnIndices const&,
-            GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b) const = 0;
+    virtual void addToGlobal(
+        AssemblerLib::LocalToGlobalIndexMap::RowColumnIndices const&,
+        GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b) const = 0;
+
+    virtual void assembleJacobian(double const /*t*/,
+                                  std::vector<double> const& /*local_x*/)
+    {
+        ERR(
+            "assembleJacobian function is not implemented in the local "
+            "assembler.");
+        std::abort();
+    }
+
+    virtual void addJacobianToGlobal(AssemblerLib::LocalToGlobalIndexMap::
+                                         RowColumnIndices const& /*indices*/,
+                                     GlobalMatrix& /*Jac*/) const
+    {
+        ERR(
+            "addJacobianToGlobal function is not implemented in the local "
+            "assembler.");
+        std::abort();
+    }
+
+    virtual void preTimestep(std::vector<double> const& /*local_x*/,
+                             double const /*t*/, double const /*delta_t*/)
+    {
+    }
+    virtual void postTimestep(std::vector<double> const& /*local_x*/) {}
 };
 
 } // namespace ProcessLib