OGS
MaterialPropertyLib::MaterialSpatialDistributionMap Class Reference

Detailed Description

Definition at line 28 of file MaterialSpatialDistributionMap.h.

#include <MaterialSpatialDistributionMap.h>

Collaboration diagram for MaterialPropertyLib::MaterialSpatialDistributionMap:
[legend]

Public Member Functions

 MaterialSpatialDistributionMap (std::map< int, std::shared_ptr< Medium >> const &media, MeshLib::PropertyVector< int > const *const material_ids)
 
MediumgetMedium (std::size_t element_id)
 
Medium const * getMedium (std::size_t element_id) const
 
void checkElementHasMedium (std::size_t const element_id) const
 

Private Attributes

std::map< int, std::shared_ptr< Medium > > const & media_
 
MeshLib::PropertyVector< int > const *const material_ids_
 

Constructor & Destructor Documentation

◆ MaterialSpatialDistributionMap()

MaterialPropertyLib::MaterialSpatialDistributionMap::MaterialSpatialDistributionMap ( std::map< int, std::shared_ptr< Medium >> const &  media,
MeshLib::PropertyVector< int > const *const  material_ids 
)
inline

Definition at line 31 of file MaterialSpatialDistributionMap.h.

34  : media_(media), material_ids_(material_ids)
35  {
36  }
MeshLib::PropertyVector< int > const *const material_ids_
std::map< int, std::shared_ptr< Medium > > const & media_

Member Function Documentation

◆ checkElementHasMedium()

void MaterialPropertyLib::MaterialSpatialDistributionMap::checkElementHasMedium ( std::size_t const  element_id) const

Definition at line 34 of file MaterialSpatialDistributionMap.cpp.

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 }
#define OGS_FATAL(...)
Definition: Error.h:26

References material_ids_, media_, and OGS_FATAL.

◆ getMedium() [1/2]

Medium * MaterialPropertyLib::MaterialSpatialDistributionMap::getMedium ( std::size_t  element_id)

◆ getMedium() [2/2]

Medium const * MaterialPropertyLib::MaterialSpatialDistributionMap::getMedium ( std::size_t  element_id) const

Definition at line 25 of file MaterialSpatialDistributionMap.cpp.

27 {
28  auto const material_id =
29  material_ids_ == nullptr ? 0 : (*material_ids_)[element_id];
30 
31  return media_.at(material_id).get();
32 }

References material_ids_, and media_.

Member Data Documentation

◆ material_ids_

MeshLib::PropertyVector<int> const* const MaterialPropertyLib::MaterialSpatialDistributionMap::material_ids_
private

Definition at line 44 of file MaterialSpatialDistributionMap.h.

Referenced by checkElementHasMedium(), and getMedium().

◆ media_

std::map<int, std::shared_ptr<Medium> > const& MaterialPropertyLib::MaterialSpatialDistributionMap::media_
private

Definition at line 43 of file MaterialSpatialDistributionMap.h.

Referenced by checkElementHasMedium(), and getMedium().


The documentation for this class was generated from the following files: