23             std::vector<std::unique_ptr<Component>>&& components,
 
   24             std::unique_ptr<PropertyArray>&& properties)
 
   25    : 
name(std::move(phase_name)), components_(std::move(components))
 
 
   48            std::unique_ptr<MaterialPropertyLib::Component> 
const& 
component)
 
   50        [&]() { 
OGS_FATAL(
"Could not find component named '{:s}'.", 
name); });
 
 
   58        OGS_FATAL(
"Trying to access undefined property '{:s}' of {:s}",
 
 
   81    return "phase '" + 
name + 
"'";
 
 
   85    Phase const& phase, std::span<PropertyType const> 
const required_properties)
 
   87    for (
auto const& p : required_properties)
 
   91            OGS_FATAL(
"The property '{:s}' is missing in the {:s} phase.",
 
 
This class defines components (substances).
 
Property const & property(PropertyType const &p) const
 
PropertyArray properties_
 
std::string description() const
Short description of the phase with its name.
 
std::size_t numberOfComponents() const
A get-function for retrieving the number of components in this phase.
 
std::vector< std::unique_ptr< Component > > const components_
 
Property const & operator[](PropertyType const &p) const
 
bool hasProperty(PropertyType const &p) const
 
Phase(std::string &&phase_name, std::vector< std::unique_ptr< Component > > &&components, std::unique_ptr< PropertyArray > &&properties)
The Phase constructor is called with the optional phase name.
 
bool hasComponent(std::size_t const &index) const
 
Component const & component(std::size_t const &index) const
 
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)
 
static const std::array< std::string, PropertyType::number_of_properties > property_enum_to_string