From 3b51218a32b1a358b90bc77cde58cde9800edef6 Mon Sep 17 00:00:00 2001 From: Florian Zill <florian.zill@ufz.de> Date: Mon, 3 Feb 2020 16:50:59 +0100 Subject: [PATCH] [ML/MPL] check if element has medium --- MaterialLib/MPL/MaterialSpatialDistributionMap.cpp | 14 ++++++++++++++ MaterialLib/MPL/MaterialSpatialDistributionMap.h | 1 + 2 files changed, 15 insertions(+) diff --git a/MaterialLib/MPL/MaterialSpatialDistributionMap.cpp b/MaterialLib/MPL/MaterialSpatialDistributionMap.cpp index 8687d1f845e..04971b5ad0b 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 f51f94a0d3d..06c937bff1a 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; -- GitLab