Skip to content
Snippets Groups Projects
Commit db04b9f7 authored by Dmitri Naumov's avatar Dmitri Naumov
Browse files

[MPL] Add material id to medium's description.

parent 3fba4edd
No related branches found
No related tags found
No related merge requests found
......@@ -488,7 +488,8 @@ void ProjectData::parseMedia(
if (id == material_ids_of_this_medium[0])
{
_media[id] = MaterialPropertyLib::createMedium(
_mesh_vec[0]->getDimension(), medium_config, _parameters,
id, _mesh_vec[0]->getDimension(), medium_config,
_parameters,
_local_coordinate_system ? &*_local_coordinate_system
: nullptr,
_curves);
......
......@@ -22,6 +22,7 @@
namespace MaterialPropertyLib
{
std::unique_ptr<Medium> createMedium(
int const material_id,
int const geometry_dimension,
BaseLib::ConfigTree const& config,
std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
......@@ -49,7 +50,8 @@ std::unique_ptr<Medium> createMedium(
OGS_FATAL("Neither tag <phases> nor tag <properties> has been found.");
}
return std::make_unique<Medium>(std::move(phases), std::move(properties));
return std::make_unique<Medium>(material_id, std::move(phases),
std::move(properties));
}
} // namespace MaterialPropertyLib
......@@ -42,6 +42,7 @@ namespace MaterialPropertyLib
/// Medium properties are optional. If not defined, default properties are
/// assigned.
std::unique_ptr<Medium> createMedium(
int const material_id,
int const geometry_dimension,
BaseLib::ConfigTree const& config,
std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
......
......@@ -17,9 +17,10 @@
namespace MaterialPropertyLib
{
Medium::Medium(std::vector<std::unique_ptr<Phase>>&& phases,
Medium::Medium(int const material_id,
std::vector<std::unique_ptr<Phase>>&& phases,
std::unique_ptr<PropertyArray>&& properties)
: phases_(std::move(phases))
: phases_(std::move(phases)), material_id_(material_id)
{
if (properties)
{
......@@ -74,9 +75,9 @@ std::size_t Medium::numberOfPhases() const
return phases_.size();
}
std::string Medium::description()
std::string Medium::description() const
{
return "medium";
return "medium " + std::to_string(material_id_);
}
Phase const& fluidPhase(Medium const& medium)
......
......@@ -31,7 +31,8 @@ namespace MaterialPropertyLib
class Medium final
{
public:
Medium(std::vector<std::unique_ptr<Phase>>&& phases,
Medium(int const material_id,
std::vector<std::unique_ptr<Phase>>&& phases,
std::unique_ptr<PropertyArray>&& properties);
/// A get-function for a particular phase. The ul argument specifies the
......@@ -56,7 +57,7 @@ public:
std::size_t numberOfPhases() const;
/// Short description of the medium.
static std::string description();
std::string description() const;
template <typename T>
T value(PropertyType const p) const
......@@ -98,6 +99,10 @@ private:
/// Most properties are fine with the volume fraction average, but
/// special-defaults are allowed as well...
PropertyArray properties_;
/// The first material id for which the medium was created. Used in the
/// description.
int const material_id_;
};
template <typename Container>
......
......@@ -38,8 +38,8 @@ std::unique_ptr<MPL::Medium> createTestMaterial(
std::unique_ptr<MathLib::PiecewiseLinearInterpolation>>
curves;
return MPL::createMedium(geometry_dimension, config, parameters,
local_coordinate_system, curves);
return MPL::createMedium(0 /*material id*/, geometry_dimension, config,
parameters, local_coordinate_system, curves);
}
std::unique_ptr<MaterialPropertyLib::Property> createTestProperty(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment