Loading [MathJax]/extensions/tex2jax.js
OGS
MaterialPropertyLib::MaterialSpatialDistributionMap Class Reference

Detailed Description

Definition at line 29 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)
 
auto media () const
 
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 32 of file MaterialSpatialDistributionMap.h.

Member Function Documentation

◆ checkElementHasMedium()

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

Definition at line 67 of file MaterialSpatialDistributionMap.cpp.

69{
70 auto const material_id =
71 material_ids_ == nullptr ? 0 : (*material_ids_)[element_id];
72 if (media_.find(material_id) == media_.end())
73 {
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);
78 }
79}
#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)

Definition at line 22 of file MaterialSpatialDistributionMap.cpp.

23{
24 return const_cast<Medium*>(
25 static_cast<MaterialSpatialDistributionMap const&>(*this).getMedium(
26 element_id));
27}
MaterialSpatialDistributionMap(std::map< int, std::shared_ptr< Medium > > const &media, MeshLib::PropertyVector< int > const *const material_ids)

References getMedium().

Referenced by ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::LocalAssemblerData(), ProcessLib::ThermoRichardsFlow::ThermoRichardsFlowLocalAssembler< ShapeFunction, GlobalDim >::ThermoRichardsFlowLocalAssembler(), ProcessLib::WellboreSimulator::WellboreSimulatorFEM< ShapeFunction, GlobalDim >::WellboreSimulatorFEM(), ProcessLib::HeatConduction::LocalAssemblerData< ShapeFunction, GlobalDim >::assemble(), ProcessLib::RichardsFlow::LocalAssemblerData< ShapeFunction, GlobalDim >::assemble(), ProcessLib::SteadyStateDiffusion::LocalAssemblerData< ShapeFunction, GlobalDim >::assemble(), ProcessLib::StokesFlow::LocalAssemblerData< ShapeFunctionLiquidVelocity, ShapeFunctionPressure, GlobalDim >::assemble(), ProcessLib::WellboreCompensateNeumannBoundaryConditionLocalAssembler< ShapeFunction, GlobalDim >::assemble(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleBlockMatrices(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleComponentTransportEquation(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleHeatTransportEquation(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleHydraulicEquation(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleKCmCn(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleReactionEquationConcrete(), ProcessLib::HeatConduction::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleWithJacobian(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleWithJacobianComponentTransportEquation(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleWithJacobianHydraulicEquation(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::calculateIntPtDarcyVelocity(), MaterialPropertyLib::checkMaterialSpatialDistributionMap(), ProcessLib::ComponentTransport::checkMPLProperties(), ProcessLib::RichardsComponentTransport::anonymous_namespace{CreateRichardsComponentTransportProcess.cpp}::checkMPLProperties(), ProcessLib::StokesFlow::anonymous_namespace{CreateStokesFlowProcess.cpp}::checkMPLProperties(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::computeReactionRelatedSecondaryVariable(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::getFlux(), ProcessLib::HT::HTFEM< ShapeFunction, GlobalDim >::getFlux(), ProcessLib::SteadyStateDiffusion::LocalAssemblerData< ShapeFunction, GlobalDim >::getFlux(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::getHeatEnergyCoefficient(), ProcessLib::HT::HTFEM< ShapeFunction, GlobalDim >::getHeatEnergyCoefficient(), ProcessLib::RichardsFlow::LocalAssemblerData< ShapeFunction, GlobalDim >::getIntPtDarcyVelocity(), ProcessLib::SteadyStateDiffusion::LocalAssemblerData< ShapeFunction, GlobalDim >::getIntPtDarcyVelocity(), ProcessLib::HT::HTFEM< ShapeFunction, GlobalDim >::getIntPtDarcyVelocityLocal(), ProcessLib::HeatConduction::LocalAssemblerData< ShapeFunction, GlobalDim >::getIntPtHeatFlux(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::getIntPtMolarFlux(), getMedium(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::getThermalConductivityDispersivity(), ProcessLib::HT::HTFEM< ShapeFunction, GlobalDim >::getThermalConductivityDispersivity(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::initializeChemicalSystemConcrete(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::postSpeciationCalculation(), and ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::setChemicalSystemConcrete().

◆ getMedium() [2/2]

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

Definition at line 29 of file MaterialSpatialDistributionMap.cpp.

31{
32 auto const material_id =
33 material_ids_ == nullptr ? 0 : (*material_ids_)[element_id];
34
35 assert(!media_.empty());
36
37 if (auto const it = media_.find(material_id); it != media_.end())
38 {
39 return it->second.get();
40 }
41
42 //
43 // Error handling until end of the function.
44 //
45
46 if (material_ids_ == nullptr)
47 {
48 assert(material_id == 0);
49 ERR("No MaterialIDs given in the mesh therefore default material id = "
50 "0 is used.");
51 }
52 auto keys = media_ | ranges::views::keys;
53
54 if (media_.size() == 1)
55 {
56 ERR("Single medium for material id {} is defined.",
57 fmt::join(keys, ", "));
58 }
59 else
60 {
61 ERR("Media for material ids {} are defined.", fmt::join(keys, ", "));
62 }
63 OGS_FATAL("No medium for material id {} found for element {}.", material_id,
64 element_id);
65}
void ERR(fmt::format_string< Args... > fmt, Args &&... args)
Definition Logging.h:45

References ERR(), material_ids_, media_, and OGS_FATAL.

◆ media()

auto MaterialPropertyLib::MaterialSpatialDistributionMap::media ( ) const
inline

Definition at line 39 of file MaterialSpatialDistributionMap.h.

39{ return media_ | ranges::views::values; }

References media_.

Referenced by MaterialPropertyLib::checkMPLPhasesForSinglePhaseFlow(), and ProcessLib::LiquidFlow::checkMPLProperties().

Member Data Documentation

◆ material_ids_

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

Definition at line 47 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 46 of file MaterialSpatialDistributionMap.h.

Referenced by checkElementHasMedium(), getMedium(), and media().


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