|
SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
|
Classes | |
| class | EOSView |
| A class to provide a runtime view of an EOS model and its relations. This class is used to provide a uniform interface for evaluating relations and partial derivatives at runtime. More... | |
| struct | HasRuntimeQuantityIdentifiers |
| A helper trait to determine if a relation has runtime quantity identifiers. This is used to ensure that all relations in a catalog have unique runtime quantity identifiers. More... | |
| struct | HasRuntimeQuantityIdentifiers< relations::Relation< OutputT, InputTs... > > |
| A specialization of the HasRuntimeQuantityIdentifiers trait for a relation. This specialization checks if the output and input quantities of the relation have runtime quantity identifiers. More... | |
| struct | RuntimeCatalogDispatch |
| A helper struct to dispatch runtime evaluation of relations in a catalog. This is used to simplify the usage of std::expected in the runtime system. More... | |
| struct | RuntimeCatalogDispatch< EOS, relations::RelationCatalog< RelationTs... > > |
| A specialization of the RuntimeCatalogDispatch struct for a catalog of relations. This specialization dispatches runtime evaluation of relations in the catalog. More... | |
| struct | RuntimeCatalogIsSupported |
| A helper trait to determine if a catalog of relations is supported by the runtime system. This is used to ensure that all relations in a catalog have unique runtime quantity identifiers. More... | |
| struct | RuntimeCatalogIsSupported< relations::RelationCatalog< RelationTs... > > |
| A specialization of the RuntimeCatalogIsSupported trait for a catalog of relations. This specialization checks if the relations in the catalog have runtime quantity identifiers and if the runtime quantity identifiers are unambiguous. More... | |
| struct | RuntimeCatalogStorage |
| A helper struct to store the runtime relation descriptors for a catalog of relations. This is used to ensure that all relations in a catalog have unique runtime quantity identifiers. More... | |
| struct | RuntimeCatalogStorage< EOS, relations::RelationCatalog< RelationTs... > > |
| A specialization of the RuntimeCatalogStorage struct for a catalog of relations. This specialization stores the runtime relation descriptors for each relation in the catalog. More... | |
| struct | RuntimeRelationQuantities |
| A helper trait to extract the output and input quantity types from a relation. This is used to simplify the usage of relations in the runtime system. More... | |
| struct | RuntimeRelationQuantities< relations::Relation< OutputT, InputTs... > > |
| A specialization of the RuntimeRelationQuantities trait for a relation. This specialization extracts the output and input quantity types from the relation and stores them in a tuple. More... | |
| struct | RuntimeRelationsAreSupported |
| A helper trait to determine if the runtime quantity identifiers in a catalog of relations are unambiguous. This is used to ensure that all relations in a catalog have unique runtime quantity identifiers. More... | |
| struct | RuntimeRelationsAreSupported< true, RelationTs... > |
| A specialization of the RuntimeRelationsAreSupported trait for a catalog of relations. This specialization checks if the runtime quantity identifiers in the catalog are unambiguous. More... | |
| struct | RuntimeRelationStorage |
| A helper trait to determine if a catalog of relations is supported by the runtime system. This is used to ensure that all relations in a catalog have unique runtime quantity identifiers. More... | |
| struct | RuntimeRelationStorage< EOS, relations::Relation< OutputT, InputTs... > > |
| A specialization of the RuntimeRelationStorage trait for a relation. This specialization extracts the output and input quantity types from the relation and stores them in a tuple. More... | |
Concepts | |
| concept | RuntimeEOSModel |
| A concept to determine if a type is a valid runtime EOS model. A type is a valid RuntimeEOSModel if it satisfies the EOSModel concept and if its Relations catalog is supported by the runtime system. | |
Typedefs | |
| template<RuntimeEOSModel EOSCandidate> | |
| using | RuntimeEOSAdapter = RuntimeCatalogDispatch<EOSCandidate, typename EOSCandidate::Relations> |
| 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. | |
| template<typename... RelationTs> | |
| using | RuntimeCatalogQuantityTuple = decltype(std::tuple_cat(std::declval<typename RuntimeRelationQuantities<RelationTs>::Type>()...)) |
| 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. | |
Functions | |
| template<RuntimeEOSModel EOSCandidate> | |
| constexpr std::span< const dimensions::runtime::RuntimeRelationDescriptor > | runtimeRelationDescriptors () noexcept |
| 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. | |
| template<typename FirstQuantityT, typename SecondQuantityT> | |
| consteval bool | 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. | |
| template<typename QuantityTupleT, std::size_t First, std::size_t... Offsets> | |
| consteval bool | 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. | |
| template<typename QuantityTupleT, std::size_t... Indices> | |
| consteval bool | 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. | |
| std::expected< double, utils::errors::SERiFErrorCode > | 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. | |
| template<typename EOS, typename OutputT, typename... InputTs> | |
| std::expected< double, utils::errors::SERiFErrorCode > | 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. | |
| template<typename InputQuantityT, typename EOS, typename OutputT, typename... InputTs> | |
| bool | 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. | |
| template<typename EOS, typename OutputT, typename... InputTs> | |
| std::expected< double, utils::errors::SERiFErrorCode > | 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. | |
| template<typename EOS, typename RelationT> | |
| bool | 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. | |
| using serif::eos::runtime::RuntimeCatalogQuantityTuple = decltype(std::tuple_cat(std::declval<typename RuntimeRelationQuantities<RelationTs>::Type>()...)) |
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. |
| using serif::eos::runtime::RuntimeEOSAdapter = RuntimeCatalogDispatch<EOSCandidate, typename EOSCandidate::Relations> |
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. |
|
nodiscard |
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. |
|
nodiscard |
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. |
|
inlinenodiscard |
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. |
|
nodiscardconsteval |
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. |
|
nodiscardconsteval |
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. |
|
nodiscardconsteval |
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. |
|
nodiscardconstexprnoexcept |
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. |
|
nodiscard |
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. |
|
nodiscard |
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. |