diff --git a/ProcessLib/SourceTerms/SourceTermConfig.h b/ProcessLib/SourceTerms/SourceTermConfig.h
new file mode 100644
index 0000000000000000000000000000000000000000..6d495a6d2b9048cf5308563947c528aa4483ff14
--- /dev/null
+++ b/ProcessLib/SourceTerms/SourceTermConfig.h
@@ -0,0 +1,40 @@
+/**
+ * \copyright
+ * Copyright (c) 2012-2017, 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 "BaseLib/ConfigTree.h"
+#include "GeoLib/GEOObjects.h"
+
+namespace ProcessLib
+{
+struct SourceTermConfig final
+{
+    SourceTermConfig(BaseLib::ConfigTree&& config_,
+                     GeoLib::GeoObject const& geometry_,
+                     boost::optional<int> const component_id_)
+        : config(std::move(config_)),
+          geometry(geometry_),
+          component_id(component_id_)
+    {
+    }
+
+    SourceTermConfig(SourceTermConfig&& other)
+        : config(std::move(other.config)),
+          geometry(other.geometry),
+          component_id(other.component_id)
+    {
+    }
+
+    BaseLib::ConfigTree config;
+    GeoLib::GeoObject const& geometry;
+    boost::optional<int> const component_id;
+};
+
+}  // ProcessLib