Files
MeanField_SERiF/docs/xml/namespaceserif_1_1eos_1_1runtime.xml
Emily Boudreaux 6b57738330 docs(docs): built docs
Note for now much of the docs is LLM written. This was done to save time and focus on code development. The docs have been LOOSLEY reviewed. However, the code itself has been either fully written by hand or fully reviewed. Therefore, the docs should at the moment be seen as a loose resource rather than authoratiative (and this is on top of the general ability for docs to drift)
2026-11-09 14:09:44 -05:00

696 lines
34 KiB
XML

<?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>