diff --git a/MaterialLib/MPL/MaterialSpatialDistributionMap.cpp b/MaterialLib/MPL/MaterialSpatialDistributionMap.cpp
index 8687d1f845efbe7e95afb0aff2d5bbf7b4bc5ceb..04971b5ad0b2fe95983f5e16f264abb71983dc09 100644
--- a/MaterialLib/MPL/MaterialSpatialDistributionMap.cpp
+++ b/MaterialLib/MPL/MaterialSpatialDistributionMap.cpp
@@ -21,4 +21,18 @@ Medium* MaterialSpatialDistributionMap::getMedium(std::size_t const element_id)
 
     return _media.at(material_id).get();
 }
+
+void MaterialSpatialDistributionMap::checkElementHasMedium(std::size_t const element_id)
+{
+    auto const material_id =
+            _material_ids == nullptr ? 0 : (*_material_ids)[element_id];
+    if (_media.find(material_id) == _media.end())
+    {
+        OGS_FATAL(
+                "There is no medium definition for element %d with material "
+                "ID %d. Please define a medium for each material.",
+                element_id, material_id);
+    }
+}
+
 }  // namespace MaterialPropertyLib
diff --git a/MaterialLib/MPL/MaterialSpatialDistributionMap.h b/MaterialLib/MPL/MaterialSpatialDistributionMap.h
index f51f94a0d3d4b5d0132b369edfd74f03ac2454f1..06c937bff1a2c4574c84b05c744f76c8f24cb4bc 100644
--- a/MaterialLib/MPL/MaterialSpatialDistributionMap.h
+++ b/MaterialLib/MPL/MaterialSpatialDistributionMap.h
@@ -36,6 +36,7 @@ public:
     }
 
     Medium* getMedium(std::size_t element_id);
+    void checkElementHasMedium(std::size_t const element_id);
 
 private:
     std::map<int, std::shared_ptr<Medium>> const& _media;