diff --git a/ProcessLib/ComponentTransport/ChemicalProcessData.h b/ProcessLib/ComponentTransport/ChemicalProcessData.h
new file mode 100644
index 0000000000000000000000000000000000000000..8b805302324f0bbbc2332bfa878554f17c1d8bd8
--- /dev/null
+++ b/ProcessLib/ComponentTransport/ChemicalProcessData.h
@@ -0,0 +1,32 @@
+/**
+ * \file
+ * \copyright
+ * Copyright (c) 2012-2020, OpenGeoSys Community (http://www.opengeosys.org)
+ *            Distributed under a Modified BSD License.
+ *              See accompanying file LICENSE.txt or
+ *              http://www.opengeosys.org/project/license
+ *
+ */
+
+#pragma once
+
+#include <vector>
+
+#include "MathLib/LinAlg/GlobalMatrixVectorTypes.h"
+
+namespace ProcessLib
+{
+namespace ComponentTransport
+{
+struct ChemicalProcessData
+{
+    ChemicalProcessData(
+        std::vector<std::vector<GlobalIndexType>>& chemical_system_index_map_)
+        : chemical_system_index_map(chemical_system_index_map_)
+    {
+    }
+
+    std::vector<std::vector<GlobalIndexType>>& chemical_system_index_map;
+};
+}  // namespace ComponentTransport
+}  // namespace ProcessLib
diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcessData.h b/ProcessLib/ComponentTransport/ComponentTransportProcessData.h
index 6e0b5517452f0a0ef63379e1d427b51523467bef..3636d775ff4129622b4dc4a259d124c83d442c22 100644
--- a/ProcessLib/ComponentTransport/ComponentTransportProcessData.h
+++ b/ProcessLib/ComponentTransport/ComponentTransportProcessData.h
@@ -12,6 +12,7 @@
 
 #include <memory>
 
+#include "ChemicalProcessData.h"
 #include "MaterialLib/MPL/CreateMaterialSpatialDistributionMap.h"
 #include "MathLib/LinAlg/Eigen/EigenMapTools.h"
 
@@ -43,6 +44,7 @@ struct ComponentTransportProcessData
     Eigen::VectorXd const specific_body_force;
     bool const has_gravity;
     bool const non_advective_form;
+    std::unique_ptr<ChemicalProcessData> chemical_process_data;
 };
 
 }  // namespace ComponentTransport