14#include <spdlog/fmt/ranges.h>
16#include <range/v3/view/map.hpp>
24 return const_cast<Medium*
>(
30 std::size_t
const element_id)
const
32 auto const material_id =
37 if (
auto const it =
media_.find(material_id); it !=
media_.end())
39 return it->second.get();
48 assert(material_id == 0);
49 ERR(
"No MaterialIDs given in the mesh therefore default material id = "
52 auto keys =
media_ | ranges::views::keys;
56 ERR(
"Single medium for material id {} is defined.",
57 fmt::join(keys,
", "));
61 ERR(
"Media for material ids {} are defined.", fmt::join(keys,
", "));
63 OGS_FATAL(
"No medium for material id {} found for element {}.", material_id,
68 std::size_t
const element_id)
const
70 auto const material_id =
75 "There is no medium definition for element {:d} with material "
76 "ID {:d}. Please define a medium for each material.",
77 element_id, material_id);
void ERR(fmt::format_string< Args... > fmt, Args &&... args)
Definition of the Mesh class.
void checkElementHasMedium(std::size_t const element_id) const
MeshLib::PropertyVector< int > const *const material_ids_
Medium * getMedium(std::size_t element_id)
std::map< int, std::shared_ptr< Medium > > const & media_