22               std::vector<std::unique_ptr<Phase>>&& phases,
 
   23               std::unique_ptr<PropertyArray>&& properties)
 
   24    : phases_(std::move(phases)), material_id_(material_id)
 
 
   42        [&phase_name](std::unique_ptr<MaterialPropertyLib::Phase> 
const& 
phase)
 
   44        [&]() { 
OGS_FATAL(
"Could not find phase named '{:s}.'", phase_name); });
 
 
   50                       [&phase_name](
auto const& 
phase)
 
 
   59        OGS_FATAL(
"Trying to access undefined property '{:s}' of {:s}",
 
 
   87    std::span<PropertyType const> 
const required_properties)
 
   89    for (
auto const& p : required_properties)
 
   94                "The property '{:s}' is missing in the medium definition.",
 
 
  104        return medium.
phase(
"Gas");
 
  106    if (medium.
hasPhase(
"AqueousLiquid"))
 
  108        return medium.
phase(
"AqueousLiquid");
 
  111        "Neither Gas nor AqueousLiquid phase is available for the medium, but " 
  112        "a fluid phase was requested.");
 
 
std::size_t numberOfPhases() const
 
Phase const & phase(std::size_t index) const
 
Medium(int const material_id, 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.
 
PropertyArray properties_
 
Property const & property(PropertyType const &p) const
 
bool hasProperty(PropertyType const &p) const
 
Property const & operator[](PropertyType const &p) const
 
std::string description() const
Short description of the medium.
 
ranges::range_reference_t< Range > findElementOrError(Range &range, std::predicate< ranges::range_reference_t< Range > > auto &&predicate, std::invocable auto error_callback)
 
void overwriteExistingProperties(PropertyArray &properties, PropertyArray &new_properties, std::variant< Medium *, Phase *, Component * > scale_pointer)
 
void checkRequiredProperties(Component const &c, std::span< PropertyType const > const required_properties)
 
void updatePropertiesForAllPhases(PropertyArray &properties, std::vector< std::unique_ptr< Phase > > const &phases)
 
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.