34 Phase(std::string&& phase_name,
35 std::vector<std::unique_ptr<Component>>&& components,
36 std::unique_ptr<PropertyArray>&& properties);
74 template <
typename Container>
77 for (
auto const& p : required_properties)
81 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
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
void checkRequiredProperties(Component const &c, Container const &required_properties)