Files
MeanField_SERiF/docs/xml/namespaceserif_1_1eos_1_1runtime.xml

696 lines
34 KiB
XML
Raw Permalink Normal View History

<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.13.2" xml:lang="en-US">
<compounddef id="namespaceserif_1_1eos_1_1runtime" kind="namespace" language="C++">
<compoundname>serif::eos::runtime</compoundname>
<innerclass refid="classserif_1_1eos_1_1runtime_1_1_e_o_s_view" prot="public">serif::eos::runtime::EOSView</innerclass>
<innerclass refid="structserif_1_1eos_1_1runtime_1_1_has_runtime_quantity_identifiers" prot="public">serif::eos::runtime::HasRuntimeQuantityIdentifiers</innerclass>
<innerclass refid="structserif_1_1eos_1_1runtime_1_1_has_runtime_quantity_identifiers_3_01relations_1_1_relation_3_cccf8857ab0156cf2afc2677bc16446c" prot="public">serif::eos::runtime::HasRuntimeQuantityIdentifiers&lt; relations::Relation&lt; OutputT, InputTs... &gt; &gt;</innerclass>
<innerclass refid="structserif_1_1eos_1_1runtime_1_1_runtime_catalog_dispatch" prot="public">serif::eos::runtime::RuntimeCatalogDispatch</innerclass>
<innerclass refid="structserif_1_1eos_1_1runtime_1_1_runtime_catalog_dispatch_3_01_e_o_s_00_01relations_1_1_relatio0166b9bbd8882975b3d1325bcdcd27cb" prot="public">serif::eos::runtime::RuntimeCatalogDispatch&lt; EOS, relations::RelationCatalog&lt; RelationTs... &gt; &gt;</innerclass>
<innerclass refid="structserif_1_1eos_1_1runtime_1_1_runtime_catalog_is_supported" prot="public">serif::eos::runtime::RuntimeCatalogIsSupported</innerclass>
<innerclass refid="structserif_1_1eos_1_1runtime_1_1_runtime_catalog_is_supported_3_01relations_1_1_relation_cataloe1dd4e8866d49db6ba530e370961bebe" prot="public">serif::eos::runtime::RuntimeCatalogIsSupported&lt; relations::RelationCatalog&lt; RelationTs... &gt; &gt;</innerclass>
<innerclass refid="structserif_1_1eos_1_1runtime_1_1_runtime_catalog_storage" prot="public">serif::eos::runtime::RuntimeCatalogStorage</innerclass>
<innerclass refid="structserif_1_1eos_1_1runtime_1_1_runtime_catalog_storage_3_01_e_o_s_00_01relations_1_1_relation983e333b4bd596c3958f49a1bba13994" prot="public">serif::eos::runtime::RuntimeCatalogStorage&lt; EOS, relations::RelationCatalog&lt; RelationTs... &gt; &gt;</innerclass>
<innerclass refid="structserif_1_1eos_1_1runtime_1_1_runtime_relation_quantities" prot="public">serif::eos::runtime::RuntimeRelationQuantities</innerclass>
<innerclass refid="structserif_1_1eos_1_1runtime_1_1_runtime_relation_quantities_3_01relations_1_1_relation_3_01_ou3e28a4892e3a6a07a1f901a4b02b1a2d" prot="public">serif::eos::runtime::RuntimeRelationQuantities&lt; relations::Relation&lt; OutputT, InputTs... &gt; &gt;</innerclass>
<innerclass refid="structserif_1_1eos_1_1runtime_1_1_runtime_relations_are_supported" prot="public">serif::eos::runtime::RuntimeRelationsAreSupported</innerclass>
<innerclass refid="structserif_1_1eos_1_1runtime_1_1_runtime_relations_are_supported_3_01true_00_01_relation_ts_8_8_8_01_4" prot="public">serif::eos::runtime::RuntimeRelationsAreSupported&lt; true, RelationTs... &gt;</innerclass>
<innerclass refid="structserif_1_1eos_1_1runtime_1_1_runtime_relation_storage" prot="public">serif::eos::runtime::RuntimeRelationStorage</innerclass>
<innerclass refid="structserif_1_1eos_1_1runtime_1_1_runtime_relation_storage_3_01_e_o_s_00_01relations_1_1_relatio1af2754f79c06f8e77304f983650b533" prot="public">serif::eos::runtime::RuntimeRelationStorage&lt; EOS, relations::Relation&lt; OutputT, InputTs... &gt; &gt;</innerclass>
<sectiondef kind="typedef">
<memberdef kind="typedef" id="namespaceserif_1_1eos_1_1runtime_1af34d4e019ddbfd7eca9b4c20fddbae2f" prot="public" static="no">
<templateparamlist>
<param>
<type>RuntimeEOSModel</type>
<declname>EOSCandidate</declname>
<defname>EOSCandidate</defname>
</param>
</templateparamlist>
<type><ref refid="structserif_1_1eos_1_1runtime_1_1_runtime_catalog_dispatch" kindref="compound">RuntimeCatalogDispatch</ref>&lt; EOSCandidate, typename EOSCandidate::Relations &gt;</type>
<definition>using serif::eos::runtime::RuntimeEOSAdapter = RuntimeCatalogDispatch&lt;EOSCandidate, typename EOSCandidate::Relations&gt;</definition>
<argsstring></argsstring>
<name>RuntimeEOSAdapter</name>
<qualifiedname>serif::eos::runtime::RuntimeEOSAdapter</qualifiedname>
<briefdescription>
<para>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. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>EOSCandidate</parametername>
</parameternamelist>
<parameterdescription>
<para>The runtime EOS model type to adapt. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/eos/runtime/concepts.hpp" line="27" column="5" bodyfile="src/include/serif/eos/runtime/concepts.hpp" bodystart="27" bodyend="-1"/>
</memberdef>
<memberdef kind="typedef" id="namespaceserif_1_1eos_1_1runtime_1a401a6ebdc70fa8ebcaa52ae6d85088c3" prot="public" static="no">
<templateparamlist>
<param>
<type>typename...</type>
<declname>RelationTs</declname>
<defname>RelationTs</defname>
</param>
</templateparamlist>
<type>decltype(std::tuple_cat(std::declval&lt; typename <ref refid="structserif_1_1eos_1_1runtime_1_1_runtime_relation_quantities" kindref="compound">RuntimeRelationQuantities</ref>&lt; RelationTs &gt;::Type &gt;()...))</type>
<definition>using serif::eos::runtime::RuntimeCatalogQuantityTuple = decltype(std::tuple_cat(std::declval&lt;typename RuntimeRelationQuantities&lt;RelationTs&gt;::Type&gt;()...))</definition>
<argsstring></argsstring>
<name>RuntimeCatalogQuantityTuple</name>
<qualifiedname>serif::eos::runtime::RuntimeCatalogQuantityTuple</qualifiedname>
<briefdescription>
<para>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. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>RelationTs</parametername>
</parameternamelist>
<parameterdescription>
<para>The relation types in the catalog. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/eos/runtime/details.hpp" line="62" column="5" bodyfile="src/include/serif/eos/runtime/details.hpp" bodystart="62" bodyend="-1"/>
</memberdef>
</sectiondef>
<sectiondef kind="func">
<memberdef kind="function" id="namespaceserif_1_1eos_1_1runtime_1a25ab7f40da798676afd459e004a8c06d" prot="public" static="no" nodiscard="yes" constexpr="yes" const="no" explicit="no" inline="no" noexcept="yes" virt="non-virtual">
<templateparamlist>
<param>
<type>RuntimeEOSModel</type>
<declname>EOSCandidate</declname>
<defname>EOSCandidate</defname>
</param>
</templateparamlist>
<type>std::span&lt; const <ref refid="structserif_1_1dimensions_1_1runtime_1_1_runtime_relation_descriptor" kindref="compound">dimensions::runtime::RuntimeRelationDescriptor</ref> &gt;</type>
<definition>std::span&lt; const dimensions::runtime::RuntimeRelationDescriptor &gt; serif::eos::runtime::runtimeRelationDescriptors</definition>
<argsstring>() noexcept</argsstring>
<name>runtimeRelationDescriptors</name>
<qualifiedname>serif::eos::runtime::runtimeRelationDescriptors</qualifiedname>
<briefdescription>
<para>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. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>EOSCandidate</parametername>
</parameternamelist>
<parameterdescription>
<para>The runtime EOS model type to get the descriptors for. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>A span of runtime relation descriptors. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/eos/runtime/concepts.hpp" line="35" column="26" bodyfile="src/include/serif/eos/runtime/concepts.hpp" bodystart="35" bodyend="37"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1eos_1_1runtime_1ad0ac24809585cfe3727b7c54825ee888" prot="public" static="no" nodiscard="yes" consteval="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename FirstQuantityT</type>
</param>
<param>
<type>typename SecondQuantityT</type>
</param>
</templateparamlist>
<type>bool</type>
<definition>bool serif::eos::runtime::runtimeQuantityIdentifiersAreCompatible</definition>
<argsstring>()</argsstring>
<name>runtimeQuantityIdentifiersAreCompatible</name>
<qualifiedname>serif::eos::runtime::runtimeQuantityIdentifiersAreCompatible</qualifiedname>
<briefdescription>
<para>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. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>FirstQuantityT</parametername>
</parameternamelist>
<parameterdescription>
<para>The first quantity type to check. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>SecondQuantityT</parametername>
</parameternamelist>
<parameterdescription>
<para>The second quantity type to check. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>True if the quantity identifiers are compatible, false otherwise. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/eos/runtime/details.hpp" line="71" column="21" bodyfile="src/include/serif/eos/runtime/details.hpp" bodystart="71" bodyend="78"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1eos_1_1runtime_1af820c5291bf57d6f96d7394880ae120d" prot="public" static="no" nodiscard="yes" consteval="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename QuantityTupleT</type>
</param>
<param>
<type>std::size_t</type>
<declname>First</declname>
<defname>First</defname>
</param>
<param>
<type>std::size_t...</type>
<declname>Offsets</declname>
<defname>Offsets</defname>
</param>
</templateparamlist>
<type>bool</type>
<definition>bool serif::eos::runtime::runtimeQuantityIdentifierIsUnambiguous</definition>
<argsstring>(std::index_sequence&lt; Offsets... &gt;)</argsstring>
<name>runtimeQuantityIdentifierIsUnambiguous</name>
<qualifiedname>serif::eos::runtime::runtimeQuantityIdentifierIsUnambiguous</qualifiedname>
<param>
<type>std::index_sequence&lt; Offsets... &gt;</type>
</param>
<briefdescription>
<para>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. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>QuantityTupleT</parametername>
</parameternamelist>
<parameterdescription>
<para>The tuple of quantity types to check. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>First</parametername>
</parameternamelist>
<parameterdescription>
<para>The index of the first quantity type to check. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>Offsets</parametername>
</parameternamelist>
<parameterdescription>
<para>The indices of the remaining quantity types to check. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>True if the quantity identifiers are unambiguous, false otherwise. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/eos/runtime/details.hpp" line="88" column="21" bodyfile="src/include/serif/eos/runtime/details.hpp" bodystart="88" bodyend="94"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1eos_1_1runtime_1a70b84b0bdf6dfd9a32811741eeb5904c" prot="public" static="no" nodiscard="yes" consteval="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename QuantityTupleT</type>
</param>
<param>
<type>std::size_t...</type>
<declname>Indices</declname>
<defname>Indices</defname>
</param>
</templateparamlist>
<type>bool</type>
<definition>bool serif::eos::runtime::runtimeQuantityIdentifiersAreUnambiguous</definition>
<argsstring>(std::index_sequence&lt; Indices... &gt;)</argsstring>
<name>runtimeQuantityIdentifiersAreUnambiguous</name>
<qualifiedname>serif::eos::runtime::runtimeQuantityIdentifiersAreUnambiguous</qualifiedname>
<param>
<type>std::index_sequence&lt; Indices... &gt;</type>
</param>
<briefdescription>
<para>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. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>QuantityTupleT</parametername>
</parameternamelist>
<parameterdescription>
<para>The tuple of quantity types to check. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>Indices</parametername>
</parameternamelist>
<parameterdescription>
<para>The indices of the quantity types to check. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>True if the quantity identifiers are unambiguous, false otherwise. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/eos/runtime/details.hpp" line="103" column="21" bodyfile="src/include/serif/eos/runtime/details.hpp" bodystart="103" bodyend="107"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1eos_1_1runtime_1a6bf81d411b0ecbf037e521c4fd9a73fd" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
<type>std::expected&lt; double, <ref refid="namespaceserif_1_1utils_1_1errors_1ab04484c13887f78337c2331fb2911346" kindref="member">utils::errors::SERiFErrorCode</ref> &gt;</type>
<definition>std::expected&lt; double, utils::errors::SERiFErrorCode &gt; serif::eos::runtime::runtimeEvaluationFailure</definition>
<argsstring>(const utils::errors::SERiFErrorCode code)</argsstring>
<name>runtimeEvaluationFailure</name>
<qualifiedname>serif::eos::runtime::runtimeEvaluationFailure</qualifiedname>
<param>
<type>const <ref refid="namespaceserif_1_1utils_1_1errors_1ab04484c13887f78337c2331fb2911346" kindref="member">utils::errors::SERiFErrorCode</ref></type>
<declname>code</declname>
</param>
<briefdescription>
<para>A helper function to create a std::unexpected with a <ref refid="views_8cpp_1ab04484c13887f78337c2331fb2911346" kindref="member">SERiFErrorCode</ref>. This is used to simplify the usage of std::expected in the runtime system. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>code</parametername>
</parameternamelist>
<parameterdescription>
<para>The <ref refid="views_8cpp_1ab04484c13887f78337c2331fb2911346" kindref="member">SERiFErrorCode</ref> to wrap in a std::unexpected. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>A std::unexpected containing the given <ref refid="views_8cpp_1ab04484c13887f78337c2331fb2911346" kindref="member">SERiFErrorCode</ref>. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/eos/runtime/details.hpp" line="238" column="27" bodyfile="src/include/serif/eos/runtime/details.hpp" bodystart="238" bodyend="242"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1eos_1_1runtime_1ada3bf0e8223991d705767cfedd798d0e" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename EOS</type>
</param>
<param>
<type>typename OutputT</type>
</param>
<param>
<type>typename...</type>
<declname>InputTs</declname>
<defname>InputTs</defname>
</param>
</templateparamlist>
<type>std::expected&lt; double, <ref refid="namespaceserif_1_1utils_1_1errors_1ab04484c13887f78337c2331fb2911346" kindref="member">utils::errors::SERiFErrorCode</ref> &gt;</type>
<definition>std::expected&lt; double, utils::errors::SERiFErrorCode &gt; serif::eos::runtime::evaluateRuntimeRelation</definition>
<argsstring>(const EOS &amp;eos, relations::Relation&lt; OutputT, InputTs... &gt;, const std::span&lt; const dimensions::runtime::RuntimeQuantityValue &gt; inputValues)</argsstring>
<name>evaluateRuntimeRelation</name>
<qualifiedname>serif::eos::runtime::evaluateRuntimeRelation</qualifiedname>
<param>
<type>const EOS &amp;</type>
<declname>eos</declname>
</param>
<param>
<type><ref refid="structserif_1_1eos_1_1relations_1_1_relation" kindref="compound">relations::Relation</ref>&lt; OutputT, InputTs... &gt;</type>
</param>
<param>
<type>const std::span&lt; const <ref refid="structserif_1_1dimensions_1_1runtime_1_1_runtime_quantity_value" kindref="compound">dimensions::runtime::RuntimeQuantityValue</ref> &gt;</type>
<declname>inputValues</declname>
</param>
<briefdescription>
<para>A helper function to evaluate a relation at runtime. This is used to simplify the usage of std::expected in the runtime system. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>EOS</parametername>
</parameternamelist>
<parameterdescription>
<para>The EOS model type that supports the relation. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>OutputT</parametername>
</parameternamelist>
<parameterdescription>
<para>The output quantity type of the relation. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>InputTs</parametername>
</parameternamelist>
<parameterdescription>
<para>The input quantity types of the relation.</para>
</parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>eos</parametername>
</parameternamelist>
<parameterdescription>
<para>The EOS model instance to use for evaluation. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>relation</parametername>
</parameternamelist>
<parameterdescription>
<para>The relation to evaluate. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>inputValues</parametername>
</parameternamelist>
<parameterdescription>
<para>The input values to use for evaluation. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>A std::expected containing the result of the evaluation or a <ref refid="views_8cpp_1ab04484c13887f78337c2331fb2911346" kindref="member">SERiFErrorCode</ref> if the evaluation failed. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/eos/runtime/details.hpp" line="256" column="20" bodyfile="src/include/serif/eos/runtime/details.hpp" bodystart="256" bodyend="275"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1eos_1_1runtime_1a7a12dde1e7beb91e5714eb5f058b21b9" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename InputQuantityT</type>
</param>
<param>
<type>typename EOS</type>
</param>
<param>
<type>typename OutputT</type>
</param>
<param>
<type>typename...</type>
<declname>InputTs</declname>
<defname>InputTs</defname>
</param>
</templateparamlist>
<type>bool</type>
<definition>bool serif::eos::runtime::tryRuntimePartialDerivative</definition>
<argsstring>(const EOS &amp;eos, relations::Relation&lt; OutputT, InputTs... &gt;, const dimensions::runtime::ThermodynamicQuantityID withRespectTo, const std::span&lt; const dimensions::runtime::RuntimeQuantityValue &gt; inputValues, std::expected&lt; double, utils::errors::SERiFErrorCode &gt; &amp;result)</argsstring>
<name>tryRuntimePartialDerivative</name>
<qualifiedname>serif::eos::runtime::tryRuntimePartialDerivative</qualifiedname>
<param>
<type>const EOS &amp;</type>
<declname>eos</declname>
</param>
<param>
<type><ref refid="structserif_1_1eos_1_1relations_1_1_relation" kindref="compound">relations::Relation</ref>&lt; OutputT, InputTs... &gt;</type>
</param>
<param>
<type>const <ref refid="classserif_1_1dimensions_1_1runtime_1_1_thermodynamic_quantity_i_d" kindref="compound">dimensions::runtime::ThermodynamicQuantityID</ref></type>
<declname>withRespectTo</declname>
</param>
<param>
<type>const std::span&lt; const <ref refid="structserif_1_1dimensions_1_1runtime_1_1_runtime_quantity_value" kindref="compound">dimensions::runtime::RuntimeQuantityValue</ref> &gt;</type>
<declname>inputValues</declname>
</param>
<param>
<type>std::expected&lt; double, <ref refid="namespaceserif_1_1utils_1_1errors_1ab04484c13887f78337c2331fb2911346" kindref="member">utils::errors::SERiFErrorCode</ref> &gt; &amp;</type>
<declname>result</declname>
</param>
<briefdescription>
<para>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. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>InputQuantityT</parametername>
</parameternamelist>
<parameterdescription>
<para>The input quantity type to take the partial derivative with respect to. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>EOS</parametername>
</parameternamelist>
<parameterdescription>
<para>The EOS model type that supports the relation. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>OutputT</parametername>
</parameternamelist>
<parameterdescription>
<para>The output quantity type of the relation. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>InputTs</parametername>
</parameternamelist>
<parameterdescription>
<para>The input quantity types of the relation.</para>
</parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>eos</parametername>
</parameternamelist>
<parameterdescription>
<para>The EOS model instance to use for evaluation. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>relation</parametername>
</parameternamelist>
<parameterdescription>
<para>The relation to evaluate. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>withRespectTo</parametername>
</parameternamelist>
<parameterdescription>
<para>The input quantity type to take the partial derivative with respect to. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>inputValues</parametername>
</parameternamelist>
<parameterdescription>
<para>The input values to use for evaluation. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>A std::expected containing the result of the evaluation or a <ref refid="views_8cpp_1ab04484c13887f78337c2331fb2911346" kindref="member">SERiFErrorCode</ref> if the evaluation failed. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/eos/runtime/details.hpp" line="291" column="11" bodyfile="src/include/serif/eos/runtime/details.hpp" bodystart="291" bodyend="317"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1eos_1_1runtime_1a8b97b3741d11fdc026685bd5c857404d" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename EOS</type>
</param>
<param>
<type>typename OutputT</type>
</param>
<param>
<type>typename...</type>
<declname>InputTs</declname>
<defname>InputTs</defname>
</param>
</templateparamlist>
<type>std::expected&lt; double, <ref refid="namespaceserif_1_1utils_1_1errors_1ab04484c13887f78337c2331fb2911346" kindref="member">utils::errors::SERiFErrorCode</ref> &gt;</type>
<definition>std::expected&lt; double, utils::errors::SERiFErrorCode &gt; serif::eos::runtime::evaluateRuntimePartialDerivative</definition>
<argsstring>(const EOS &amp;eos, relations::Relation&lt; OutputT, InputTs... &gt; relation, const dimensions::runtime::ThermodynamicQuantityID withRespectTo, const std::span&lt; const dimensions::runtime::RuntimeQuantityValue &gt; inputValues)</argsstring>
<name>evaluateRuntimePartialDerivative</name>
<qualifiedname>serif::eos::runtime::evaluateRuntimePartialDerivative</qualifiedname>
<param>
<type>const EOS &amp;</type>
<declname>eos</declname>
</param>
<param>
<type><ref refid="structserif_1_1eos_1_1relations_1_1_relation" kindref="compound">relations::Relation</ref>&lt; OutputT, InputTs... &gt;</type>
<declname>relation</declname>
</param>
<param>
<type>const <ref refid="classserif_1_1dimensions_1_1runtime_1_1_thermodynamic_quantity_i_d" kindref="compound">dimensions::runtime::ThermodynamicQuantityID</ref></type>
<declname>withRespectTo</declname>
</param>
<param>
<type>const std::span&lt; const <ref refid="structserif_1_1dimensions_1_1runtime_1_1_runtime_quantity_value" kindref="compound">dimensions::runtime::RuntimeQuantityValue</ref> &gt;</type>
<declname>inputValues</declname>
</param>
<briefdescription>
<para>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. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>EOS</parametername>
</parameternamelist>
<parameterdescription>
<para>The EOS model type that supports the relation. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>OutputT</parametername>
</parameternamelist>
<parameterdescription>
<para>The output quantity type of the relation. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>InputTs</parametername>
</parameternamelist>
<parameterdescription>
<para>The input quantity types of the relation.</para>
</parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>eos</parametername>
</parameternamelist>
<parameterdescription>
<para>The EOS model instance to use for evaluation. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>relation</parametername>
</parameternamelist>
<parameterdescription>
<para>The relation to evaluate. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>withRespectTo</parametername>
</parameternamelist>
<parameterdescription>
<para>The input quantity type to take the partial derivative with respect to. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>inputValues</parametername>
</parameternamelist>
<parameterdescription>
<para>The input values to use for evaluation. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>A std::expected containing the result of the evaluation or a <ref refid="views_8cpp_1ab04484c13887f78337c2331fb2911346" kindref="member">SERiFErrorCode</ref> if the evaluation failed. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/eos/runtime/details.hpp" line="332" column="20" bodyfile="src/include/serif/eos/runtime/details.hpp" bodystart="332" bodyend="344"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1eos_1_1runtime_1a47b57535e125e2a963ff0105c77420fd" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename EOS</type>
</param>
<param>
<type>typename RelationT</type>
</param>
</templateparamlist>
<type>bool</type>
<definition>bool serif::eos::runtime::runtimeRelationMatches</definition>
<argsstring>(const dimensions::runtime::ThermodynamicQuantityID outputQuantityID, const std::span&lt; const dimensions::runtime::RuntimeQuantityValue &gt; inputValues)</argsstring>
<name>runtimeRelationMatches</name>
<qualifiedname>serif::eos::runtime::runtimeRelationMatches</qualifiedname>
<param>
<type>const <ref refid="classserif_1_1dimensions_1_1runtime_1_1_thermodynamic_quantity_i_d" kindref="compound">dimensions::runtime::ThermodynamicQuantityID</ref></type>
<declname>outputQuantityID</declname>
</param>
<param>
<type>const std::span&lt; const <ref refid="structserif_1_1dimensions_1_1runtime_1_1_runtime_quantity_value" kindref="compound">dimensions::runtime::RuntimeQuantityValue</ref> &gt;</type>
<declname>inputValues</declname>
</param>
<briefdescription>
<para>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. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>EOS</parametername>
</parameternamelist>
<parameterdescription>
<para>The EOS model type that supports the relation. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>RelationT</parametername>
</parameternamelist>
<parameterdescription>
<para>The relation type to check.</para>
</parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>outputQuantityID</parametername>
</parameternamelist>
<parameterdescription>
<para>The output quantity type to check. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>inputValues</parametername>
</parameternamelist>
<parameterdescription>
<para>The input values to check. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>True if the relation matches the given output quantity and input quantities, false otherwise. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/eos/runtime/details.hpp" line="356" column="11" bodyfile="src/include/serif/eos/runtime/details.hpp" bodystart="356" bodyend="373"/>
</memberdef>
</sectiondef>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<location file="src/include/serif/eos/runtime/concepts.hpp" line="13" column="1"/>
</compounddef>
</doxygen>