34 Medium(std::vector<std::unique_ptr<Phase>>&& phases,
35 std::unique_ptr<PropertyArray>&& properties);
41 Phase const&
phase(std::string
const& phase_name)
const;
44 bool hasPhase(std::string
const& phase_name)
const;
64 return property(p).template value<T>();
70 return property(p).template value<T>(variable_array);
78 return property(p).template dValue<T>(variable_array, variable);
87 return property(p).template d2Value<T>(variable_array, variable1,
93 std::vector<std::unique_ptr<Phase>>
const phases_;
103 template <
typename Container>
105 Container
const& required_properties)
107 for (
auto const& p : required_properties)
112 "The property '{:s}' is missing in the medium definition.",
119 Phase
const&
fluidPhase(Medium
const& medium);
T value(PropertyType const p, VariableArray const &variable_array) const
std::size_t numberOfPhases() const
Phase const & phase(std::size_t index) const
Medium(std::vector< std::unique_ptr< Phase >> &&phases, std::unique_ptr< PropertyArray > &&properties)
std::vector< std::unique_ptr< Phase > > const phases_
The vector that holds the phases.
bool hasPhase(std::string const &phase_name) const
A query for a named phase.
T value(PropertyType const p) const
PropertyArray properties_
T d2Value(PropertyType const p, VariableArray const &variable_array, Variable const variable1, Variable const variable2) const
Property const & property(PropertyType const &p) const
bool hasProperty(PropertyType const &p) const
static std::string description()
Short description of the medium.
Property const & operator[](PropertyType const &p) const
T dValue(PropertyType const p, VariableArray const &variable_array, Variable const variable) const
std::array< std::unique_ptr< Property >, PropertyType::number_of_properties > PropertyArray
static const std::array< std::string, PropertyType::number_of_properties > property_enum_to_string
Phase const & fluidPhase(Medium const &medium)
Returns a gas or aqueous liquid phase of the given medium.
std::array< VariableType, static_cast< int >(Variable::number_of_variables)> VariableArray
void checkRequiredProperties(Component const &c, Container const &required_properties)