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;