OGS
MaterialSpatialDistributionMap.cpp
Go to the documentation of this file.
1 
13 
14 #include "MeshLib/Mesh.h"
15 
16 namespace MaterialPropertyLib
17 {
18 Medium* MaterialSpatialDistributionMap::getMedium(std::size_t const element_id)
19 {
20  return const_cast<Medium*>(
21  static_cast<MaterialSpatialDistributionMap const&>(*this).getMedium(
22  element_id));
23 }
24 
26  std::size_t const element_id) const
27 {
28  auto const material_id =
29  material_ids_ == nullptr ? 0 : (*material_ids_)[element_id];
30 
31  return media_.at(material_id).get();
32 }
33 
35  std::size_t const element_id) const
36 {
37  auto const material_id =
38  material_ids_ == nullptr ? 0 : (*material_ids_)[element_id];
39  if (media_.find(material_id) == media_.end())
40  {
41  OGS_FATAL(
42  "There is no medium definition for element {:d} with material "
43  "ID {:d}. Please define a medium for each material.",
44  element_id, material_id);
45  }
46 }
47 
48 } // namespace MaterialPropertyLib
#define OGS_FATAL(...)
Definition: Error.h:26
Definition of the Mesh class.
void checkElementHasMedium(std::size_t const element_id) const
MeshLib::PropertyVector< int > const *const material_ids_
std::map< int, std::shared_ptr< Medium > > const & media_