6#include <spdlog/fmt/ranges.h>
8#include <range/v3/view/map.hpp>
16 return const_cast<Medium*
>(
22 std::size_t
const element_id)
const
24 auto const material_id =
29 if (
auto const it =
media_.find(material_id); it !=
media_.end())
31 return it->second.get();
40 assert(material_id == 0);
41 ERR(
"No MaterialIDs given in the mesh therefore default material id = "
44 auto keys =
media_ | ranges::views::keys;
48 ERR(
"Single medium for material id {} is defined.",
49 fmt::join(keys,
", "));
53 ERR(
"Media for material ids {} are defined.", fmt::join(keys,
", "));
55 OGS_FATAL(
"No medium for material id {} found for element {}.", material_id,
60 std::size_t
const element_id)
const
62 auto const material_id =
67 "There is no medium definition for element {:d} with material "
68 "ID {:d}. Please define a medium for each material.",
69 element_id, material_id);
void ERR(fmt::format_string< Args... > fmt, Args &&... args)
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_
MaterialSpatialDistributionMap(std::map< int, std::shared_ptr< Medium > > const &media, MeshLib::PropertyVector< int > const *const material_ids)