OGS
CheckMaterialSpatialDistributionMap.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
5#include "Medium.h"
7#include "MeshLib/Mesh.h"
8#include "Phase.h"
9
10namespace MaterialPropertyLib
11{
12template <typename ContainerMedium,
13 typename ContainerSolid,
14 typename ContainerLiquid,
15 typename ContainerGas>
17 MeshLib::Mesh const& mesh,
19 ContainerMedium const& required_properties_medium,
20 ContainerSolid const& required_properties_solid_phase,
21 ContainerLiquid const& required_properties_liquid_phase,
22 ContainerGas const& required_properties_gas_phase)
23{
24 for (auto const element_id : mesh.getElements() | MeshLib::views::ids)
25 {
26 auto const& medium = *media_map.getMedium(element_id);
27 if (!required_properties_medium.empty())
28 {
30 medium, required_properties_medium);
31 }
32 if (!required_properties_liquid_phase.empty())
33 {
35 medium.phase("AqueousLiquid"),
36 required_properties_liquid_phase);
37 }
38 if (!required_properties_gas_phase.empty())
39 {
41 medium.phase("Gas"), required_properties_gas_phase);
42 }
43 if (!required_properties_solid_phase.empty())
44 {
46 medium.phase("Solid"), required_properties_solid_phase);
47 }
48 }
49}
50
51} // namespace MaterialPropertyLib
std::vector< Element * > const & getElements() const
Get the element-vector for the mesh.
Definition Mesh.h:100
void checkMaterialSpatialDistributionMap(MeshLib::Mesh const &mesh, MaterialPropertyLib::MaterialSpatialDistributionMap const &media_map, ContainerMedium const &required_properties_medium, ContainerSolid const &required_properties_solid_phase, ContainerLiquid const &required_properties_liquid_phase, ContainerGas const &required_properties_gas_phase)
void checkRequiredProperties(Component const &c, std::span< PropertyType const > const required_properties)
Definition Component.cpp:51
constexpr ranges::views::view_closure ids
For an element of a range view return its id.
Definition Mesh.h:216