serif::eos::runtime serif::eos::runtime::EOSView serif::eos::runtime::HasRuntimeQuantityIdentifiers serif::eos::runtime::HasRuntimeQuantityIdentifiers< relations::Relation< OutputT, InputTs... > > serif::eos::runtime::RuntimeCatalogDispatch serif::eos::runtime::RuntimeCatalogDispatch< EOS, relations::RelationCatalog< RelationTs... > > serif::eos::runtime::RuntimeCatalogIsSupported serif::eos::runtime::RuntimeCatalogIsSupported< relations::RelationCatalog< RelationTs... > > serif::eos::runtime::RuntimeCatalogStorage serif::eos::runtime::RuntimeCatalogStorage< EOS, relations::RelationCatalog< RelationTs... > > serif::eos::runtime::RuntimeRelationQuantities serif::eos::runtime::RuntimeRelationQuantities< relations::Relation< OutputT, InputTs... > > serif::eos::runtime::RuntimeRelationsAreSupported serif::eos::runtime::RuntimeRelationsAreSupported< true, RelationTs... > serif::eos::runtime::RuntimeRelationStorage serif::eos::runtime::RuntimeRelationStorage< EOS, relations::Relation< OutputT, InputTs... > > RuntimeEOSModel EOSCandidate EOSCandidate RuntimeCatalogDispatch< EOSCandidate, typename EOSCandidate::Relations > using serif::eos::runtime::RuntimeEOSAdapter = RuntimeCatalogDispatch<EOSCandidate, typename EOSCandidate::Relations> RuntimeEOSAdapter serif::eos::runtime::RuntimeEOSAdapter A helper alias to adapt a runtime EOS model to the runtime catalog dispatch system. This is used to simplify the usage of runtime EOS models in the runtime system. EOSCandidate The runtime EOS model type to adapt. typename... RelationTs RelationTs decltype(std::tuple_cat(std::declval< typename RuntimeRelationQuantities< RelationTs >::Type >()...)) using serif::eos::runtime::RuntimeCatalogQuantityTuple = decltype(std::tuple_cat(std::declval<typename RuntimeRelationQuantities<RelationTs>::Type>()...)) RuntimeCatalogQuantityTuple serif::eos::runtime::RuntimeCatalogQuantityTuple A helper alias to extract the quantity types from a catalog of relations. This is used to simplify the usage of catalogs in the runtime system. RelationTs The relation types in the catalog. RuntimeEOSModel EOSCandidate EOSCandidate std::span< const dimensions::runtime::RuntimeRelationDescriptor > std::span< const dimensions::runtime::RuntimeRelationDescriptor > serif::eos::runtime::runtimeRelationDescriptors () noexcept runtimeRelationDescriptors serif::eos::runtime::runtimeRelationDescriptors A helper function to get the runtime relation descriptors for a runtime EOS model. This is used to simplify the usage of runtime EOS models in the runtime system. EOSCandidate The runtime EOS model type to get the descriptors for. A span of runtime relation descriptors. typename FirstQuantityT typename SecondQuantityT bool bool serif::eos::runtime::runtimeQuantityIdentifiersAreCompatible () runtimeQuantityIdentifiersAreCompatible serif::eos::runtime::runtimeQuantityIdentifiersAreCompatible A helper function to determine if two runtime quantity identifiers are compatible. This is used to ensure that all relations in a catalog have unique runtime quantity identifiers. FirstQuantityT The first quantity type to check. SecondQuantityT The second quantity type to check. True if the quantity identifiers are compatible, false otherwise. typename QuantityTupleT std::size_t First First std::size_t... Offsets Offsets bool bool serif::eos::runtime::runtimeQuantityIdentifierIsUnambiguous (std::index_sequence< Offsets... >) runtimeQuantityIdentifierIsUnambiguous serif::eos::runtime::runtimeQuantityIdentifierIsUnambiguous std::index_sequence< Offsets... > A helper function to determine if the runtime quantity identifiers in a tuple of quantity types are unambiguous. This is used to ensure that all relations in a catalog have unique runtime quantity identifiers. QuantityTupleT The tuple of quantity types to check. First The index of the first quantity type to check. Offsets The indices of the remaining quantity types to check. True if the quantity identifiers are unambiguous, false otherwise. typename QuantityTupleT std::size_t... Indices Indices bool bool serif::eos::runtime::runtimeQuantityIdentifiersAreUnambiguous (std::index_sequence< Indices... >) runtimeQuantityIdentifiersAreUnambiguous serif::eos::runtime::runtimeQuantityIdentifiersAreUnambiguous std::index_sequence< Indices... > A helper function to determine if the runtime quantity identifiers in a tuple of quantity types are unambiguous. This is used to ensure that all relations in a catalog have unique runtime quantity identifiers. QuantityTupleT The tuple of quantity types to check. Indices The indices of the quantity types to check. True if the quantity identifiers are unambiguous, false otherwise. std::expected< double, utils::errors::SERiFErrorCode > std::expected< double, utils::errors::SERiFErrorCode > serif::eos::runtime::runtimeEvaluationFailure (const utils::errors::SERiFErrorCode code) runtimeEvaluationFailure serif::eos::runtime::runtimeEvaluationFailure const utils::errors::SERiFErrorCode code A helper function to create a std::unexpected with a SERiFErrorCode. This is used to simplify the usage of std::expected in the runtime system. code The SERiFErrorCode to wrap in a std::unexpected. A std::unexpected containing the given SERiFErrorCode. typename EOS typename OutputT typename... InputTs InputTs std::expected< double, utils::errors::SERiFErrorCode > std::expected< double, utils::errors::SERiFErrorCode > serif::eos::runtime::evaluateRuntimeRelation (const EOS &eos, relations::Relation< OutputT, InputTs... >, const std::span< const dimensions::runtime::RuntimeQuantityValue > inputValues) evaluateRuntimeRelation serif::eos::runtime::evaluateRuntimeRelation const EOS & eos relations::Relation< OutputT, InputTs... > const std::span< const dimensions::runtime::RuntimeQuantityValue > inputValues A helper function to evaluate a relation at runtime. This is used to simplify the usage of std::expected in the runtime system. EOS The EOS model type that supports the relation. OutputT The output quantity type of the relation. InputTs The input quantity types of the relation. eos The EOS model instance to use for evaluation. relation The relation to evaluate. inputValues The input values to use for evaluation. A std::expected containing the result of the evaluation or a SERiFErrorCode if the evaluation failed. typename InputQuantityT typename EOS typename OutputT typename... InputTs InputTs bool bool serif::eos::runtime::tryRuntimePartialDerivative (const EOS &eos, relations::Relation< OutputT, InputTs... >, const dimensions::runtime::ThermodynamicQuantityID withRespectTo, const std::span< const dimensions::runtime::RuntimeQuantityValue > inputValues, std::expected< double, utils::errors::SERiFErrorCode > &result) tryRuntimePartialDerivative serif::eos::runtime::tryRuntimePartialDerivative const EOS & eos relations::Relation< OutputT, InputTs... > const dimensions::runtime::ThermodynamicQuantityID withRespectTo const std::span< const dimensions::runtime::RuntimeQuantityValue > inputValues std::expected< double, utils::errors::SERiFErrorCode > & result A helper function to evaluate a partial derivative of a relation at runtime. This is used to simplify the usage of std::expected in the runtime system. InputQuantityT The input quantity type to take the partial derivative with respect to. EOS The EOS model type that supports the relation. OutputT The output quantity type of the relation. InputTs The input quantity types of the relation. eos The EOS model instance to use for evaluation. relation The relation to evaluate. withRespectTo The input quantity type to take the partial derivative with respect to. inputValues The input values to use for evaluation. A std::expected containing the result of the evaluation or a SERiFErrorCode if the evaluation failed. typename EOS typename OutputT typename... InputTs InputTs std::expected< double, utils::errors::SERiFErrorCode > std::expected< double, utils::errors::SERiFErrorCode > serif::eos::runtime::evaluateRuntimePartialDerivative (const EOS &eos, relations::Relation< OutputT, InputTs... > relation, const dimensions::runtime::ThermodynamicQuantityID withRespectTo, const std::span< const dimensions::runtime::RuntimeQuantityValue > inputValues) evaluateRuntimePartialDerivative serif::eos::runtime::evaluateRuntimePartialDerivative const EOS & eos relations::Relation< OutputT, InputTs... > relation const dimensions::runtime::ThermodynamicQuantityID withRespectTo const std::span< const dimensions::runtime::RuntimeQuantityValue > inputValues A helper function to evaluate a partial derivative of a relation at runtime. This is used to simplify the usage of std::expected in the runtime system. EOS The EOS model type that supports the relation. OutputT The output quantity type of the relation. InputTs The input quantity types of the relation. eos The EOS model instance to use for evaluation. relation The relation to evaluate. withRespectTo The input quantity type to take the partial derivative with respect to. inputValues The input values to use for evaluation. A std::expected containing the result of the evaluation or a SERiFErrorCode if the evaluation failed. typename EOS typename RelationT bool bool serif::eos::runtime::runtimeRelationMatches (const dimensions::runtime::ThermodynamicQuantityID outputQuantityID, const std::span< const dimensions::runtime::RuntimeQuantityValue > inputValues) runtimeRelationMatches serif::eos::runtime::runtimeRelationMatches const dimensions::runtime::ThermodynamicQuantityID outputQuantityID const std::span< const dimensions::runtime::RuntimeQuantityValue > inputValues A helper function to determine if a relation matches the given output quantity and input quantities at runtime. This is used to simplify the usage of std::expected in the runtime system. EOS The EOS model type that supports the relation. RelationT The relation type to check. outputQuantityID The output quantity type to check. inputValues The input values to check. True if the relation matches the given output quantity and input quantities, false otherwise.