diff --git a/ProcessLib/LocalAssemblerInterface.cpp b/ProcessLib/LocalAssemblerInterface.cpp
index adc706ab2138a5d64f3995fb23931147c7b3a8d6..63836d0bb49291b4e3b648ab619aa56b0d753748 100644
--- a/ProcessLib/LocalAssemblerInterface.cpp
+++ b/ProcessLib/LocalAssemblerInterface.cpp
@@ -91,6 +91,13 @@ void LocalAssemblerInterface::setInitialConditions(
     setInitialConditionsConcrete(local_x, t);
 }
 
+void LocalAssemblerInterface::initialize(
+    std::size_t const /*mesh_item_id*/,
+    NumLib::LocalToGlobalIndexMap const& /*dof_table*/)
+{
+    initializeConcrete();
+}
+
 void LocalAssemblerInterface::preTimestep(
     std::size_t const mesh_item_id,
     NumLib::LocalToGlobalIndexMap const& dof_table, GlobalVector const& x,
diff --git a/ProcessLib/LocalAssemblerInterface.h b/ProcessLib/LocalAssemblerInterface.h
index 28352e86d441c9a66c621d223bed79e21673b189..ecd1878c598f490dcc6a9ec6bdcfa232f5cae70f 100644
--- a/ProcessLib/LocalAssemblerInterface.h
+++ b/ProcessLib/LocalAssemblerInterface.h
@@ -39,6 +39,9 @@ public:
         NumLib::LocalToGlobalIndexMap const& dof_table, GlobalVector const& x,
         double const t);
 
+    virtual void initialize(std::size_t const mesh_item_id,
+                            NumLib::LocalToGlobalIndexMap const& dof_table);
+
     virtual void preAssemble(double const /*t*/,
                              std::vector<double> const& /*local_x*/){};
 
@@ -116,6 +119,8 @@ private:
     {
     }
 
+    virtual void initializeConcrete() {}
+
     virtual void preTimestepConcrete(std::vector<double> const& /*local_x*/,
                                      double const /*t*/, double const /*dt*/)
     {