\doxysection{serif\+::eos Namespace Reference} \hypertarget{namespaceserif_1_1eos}{}\label{namespaceserif_1_1eos}\index{serif::eos@{serif::eos}} \doxysubsubsection*{Namespaces} \begin{DoxyCompactItemize} \item namespace \mbox{\hyperlink{namespaceserif_1_1eos_1_1models}{models}} \item namespace \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations}{relations}} \end{DoxyCompactItemize} \doxysubsubsection*{Classes} \begin{DoxyCompactItemize} \item class \mbox{\hyperlink{classserif_1_1eos_1_1_e_o_s_evaluation_error}{EOSEvaluation\+Error}} \begin{DoxyCompactList}\small\item\em An exception class to represent errors that occur during the evaluation of an EOS model. This class inherits from std\+::domain\+\_\+error and is used to provide a more specific exception type for EOS evaluation errors. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} \item {\footnotesize template$<$dimensions\+::\+Thermodynamic\+Quantity\+Type OutputQ, models\+::\+EOSModel EOS, dimensions\+::\+Quantity\+Value\+Type... Input\+Values$>$ \newline requires models\+::\+EOSSupporting\+Relation$<$EOS, \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{relations\+::\+Relation}}$<$OutputQ, \mbox{\hyperlink{namespaceserif_1_1dimensions_a726ea17ab3c500d045d2605915ecfcd6}{dimensions\+::\+Quantity\+OfT}}$<$Input\+Values$>$...$>$$>$}\\constexpr \mbox{\hyperlink{classserif_1_1dimensions_1_1_quantity_value}{dimensions\+::\+Quantity\+Value}}$<$ OutputQ $>$ \mbox{\hyperlink{namespaceserif_1_1eos_ade79763ef51f539b78059d8898a2d2a2}{evaluate}} (const EOS \&eos, const Input\+Values... input\+Values) noexcept(noexcept(eos.\+evaluate(\mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{relations\+::\+Relation}}$<$ OutputQ, \mbox{\hyperlink{namespaceserif_1_1dimensions_a726ea17ab3c500d045d2605915ecfcd6}{dimensions\+::\+Quantity\+OfT}}$<$ Input\+Values $>$... $>$\{\}, input\+Values...))) \begin{DoxyCompactList}\small\item\em Evaluates a relation for a given EOS model. This function is used to evaluate relations for a given EOS model. \end{DoxyCompactList}\item {\footnotesize template$<$dimensions\+::\+Thermodynamic\+Quantity\+Type OutputQ, dimensions\+::\+Thermodynamic\+Quantity\+Type InputQ, models\+::\+EOSModel EOS, dimensions\+::\+Quantity\+Value\+Type... Input\+Values$>$ \newline requires models\+::\+EOSSupporting\+Partial\+Derivative$<$EOS, \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{relations\+::\+Relation}}$<$OutputQ, \mbox{\hyperlink{namespaceserif_1_1dimensions_a726ea17ab3c500d045d2605915ecfcd6}{dimensions\+::\+Quantity\+OfT}}$<$Input\+Values$>$...$>$, InputQ$>$}\\constexpr \mbox{\hyperlink{classserif_1_1dimensions_1_1_partial_derivative}{dimensions\+::\+Partial\+Derivative}}$<$ OutputQ, InputQ $>$ \mbox{\hyperlink{namespaceserif_1_1eos_a2d0ca00b47c2dfa34d75bae9456fe390}{partial\+\_\+derivative}} (const EOS \&eos, const Input\+Values... input\+Values) noexcept(noexcept(eos.\+partial\+\_\+derivative(\mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{relations\+::\+Relation}}$<$ OutputQ, \mbox{\hyperlink{namespaceserif_1_1dimensions_a726ea17ab3c500d045d2605915ecfcd6}{dimensions\+::\+Quantity\+OfT}}$<$ Input\+Values $>$... $>$\{\}, \mbox{\hyperlink{structserif_1_1dimensions_1_1_with_respect_to}{dimensions\+::\+With\+Respect\+To}}$<$ InputQ $>$\{\}, input\+Values...))) \begin{DoxyCompactList}\small\item\em Evaluates a partial derivative of a relation for a given EOS model. This function is used to evaluate partial derivatives of relations for a given EOS model. \end{DoxyCompactList}\item {\footnotesize template$<$dimensions\+::\+Thermodynamic\+Quantity\+Type OutputQ, dimensions\+::\+Thermodynamic\+Quantity\+Type First\+Input, dimensions\+::\+Thermodynamic\+Quantity\+Type Second\+Input, models\+::\+EOSModel EOS, dimensions\+::\+Quantity\+Value\+Type... Input\+Values$>$ \newline requires models\+::\+EOSSupporting\+Second\+Partial\+Derivative$<$EOS, \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{relations\+::\+Relation}}$<$OutputQ, \mbox{\hyperlink{namespaceserif_1_1dimensions_a726ea17ab3c500d045d2605915ecfcd6}{dimensions\+::\+Quantity\+OfT}}$<$Input\+Values$>$...$>$, First\+Input, Second\+Input$>$}\\constexpr \mbox{\hyperlink{classserif_1_1dimensions_1_1_second_partial_derivative}{dimensions\+::\+Second\+Partial\+Derivative}}$<$ OutputQ, First\+Input, Second\+Input $>$ \mbox{\hyperlink{namespaceserif_1_1eos_ad41c8ebf0663a55e74ba55bc35e560b4}{second\+\_\+partial\+\_\+derivative}} (const EOS \&eos, const Input\+Values... input\+Values) noexcept(noexcept(eos.\+second\+\_\+partial\+\_\+derivative(\mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{relations\+::\+Relation}}$<$ OutputQ, \mbox{\hyperlink{namespaceserif_1_1dimensions_a726ea17ab3c500d045d2605915ecfcd6}{dimensions\+::\+Quantity\+OfT}}$<$ Input\+Values $>$... $>$\{\}, \mbox{\hyperlink{structserif_1_1dimensions_1_1_with_respect_to}{dimensions\+::\+With\+Respect\+To}}$<$ First\+Input $>$\{\}, \mbox{\hyperlink{structserif_1_1dimensions_1_1_with_respect_to}{dimensions\+::\+With\+Respect\+To}}$<$ Second\+Input $>$\{\}, input\+Values...))) \begin{DoxyCompactList}\small\item\em Dispatch an analytic second partial without imposing an EOS-\/specific state. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection{Function Documentation} \Hypertarget{namespaceserif_1_1eos_ade79763ef51f539b78059d8898a2d2a2}\index{serif::eos@{serif::eos}!evaluate@{evaluate}} \index{evaluate@{evaluate}!serif::eos@{serif::eos}} \doxysubsubsection{\texorpdfstring{evaluate()}{evaluate()}} {\footnotesize\ttfamily \label{namespaceserif_1_1eos_ade79763ef51f539b78059d8898a2d2a2} template$<$dimensions\+::\+Thermodynamic\+Quantity\+Type OutputQ, models\+::\+EOSModel EOS, dimensions\+::\+Quantity\+Value\+Type... Input\+Values$>$ \newline requires models\+::\+EOSSupporting\+Relation$<$EOS, \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{relations\+::\+Relation}}$<$OutputQ, \mbox{\hyperlink{namespaceserif_1_1dimensions_a726ea17ab3c500d045d2605915ecfcd6}{dimensions\+::\+Quantity\+OfT}}$<$Input\+Values$>$...$>$$>$\\ \mbox{\hyperlink{classserif_1_1dimensions_1_1_quantity_value}{dimensions\+::\+Quantity\+Value}}$<$ OutputQ $>$ serif\+::eos\+::evaluate (\begin{DoxyParamCaption}\item[{const EOS \&}]{eos}{, }\item[{const Input\+Values...}]{input\+Values}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}} Evaluates a relation for a given EOS model. This function is used to evaluate relations for a given EOS model. \begin{DoxyTemplParams}{Template Parameters} {\em OutputQ} & The output quantity type to evaluate. \\ \hline {\em Input\+Values} & The input values to use for evaluation. \\ \hline \end{DoxyTemplParams} \begin{DoxyParams}{Parameters} {\em eos} & The EOS model instance to use for evaluation. \\ \hline {\em input\+Values} & The input values to use for evaluation. \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} The result of the evaluation. \end{DoxyReturn} \begin{DoxyNote}{Note} this is generally the function you want to call to evaluate a model as it will automatically dispatch to the correct relation. \end{DoxyNote} \Hypertarget{namespaceserif_1_1eos_a2d0ca00b47c2dfa34d75bae9456fe390}\index{serif::eos@{serif::eos}!partial\_derivative@{partial\_derivative}} \index{partial\_derivative@{partial\_derivative}!serif::eos@{serif::eos}} \doxysubsubsection{\texorpdfstring{partial\_derivative()}{partial\_derivative()}} {\footnotesize\ttfamily \label{namespaceserif_1_1eos_a2d0ca00b47c2dfa34d75bae9456fe390} template$<$dimensions\+::\+Thermodynamic\+Quantity\+Type OutputQ, dimensions\+::\+Thermodynamic\+Quantity\+Type InputQ, models\+::\+EOSModel EOS, dimensions\+::\+Quantity\+Value\+Type... Input\+Values$>$ \newline requires models\+::\+EOSSupporting\+Partial\+Derivative$<$EOS, \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{relations\+::\+Relation}}$<$OutputQ, \mbox{\hyperlink{namespaceserif_1_1dimensions_a726ea17ab3c500d045d2605915ecfcd6}{dimensions\+::\+Quantity\+OfT}}$<$Input\+Values$>$...$>$, InputQ$>$\\ \mbox{\hyperlink{classserif_1_1dimensions_1_1_partial_derivative}{dimensions\+::\+Partial\+Derivative}}$<$ OutputQ, InputQ $>$ serif\+::eos\+::partial\+\_\+derivative (\begin{DoxyParamCaption}\item[{const EOS \&}]{eos}{, }\item[{const Input\+Values...}]{input\+Values}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}} Evaluates a partial derivative of a relation for a given EOS model. This function is used to evaluate partial derivatives of relations for a given EOS model. \begin{DoxyTemplParams}{Template Parameters} {\em OutputQ} & The output quantity type to evaluate. \\ \hline {\em InputQ} & The input quantity type to take the partial derivative with respect to. \\ \hline {\em Input\+Values} & The input values to use for evaluation. \\ \hline \end{DoxyTemplParams} \begin{DoxyParams}{Parameters} {\em eos} & The EOS model instance to use for evaluation. \\ \hline {\em input\+Values} & The input values to use for evaluation. \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} The result of the evaluation. \end{DoxyReturn} \begin{DoxyNote}{Note} this is generally the function you want to call to evaluate a model\textquotesingle{}s partial derivative as it will automatically dispatch to the correct relation and partial derivative. \end{DoxyNote} \Hypertarget{namespaceserif_1_1eos_ad41c8ebf0663a55e74ba55bc35e560b4}\index{serif::eos@{serif::eos}!second\_partial\_derivative@{second\_partial\_derivative}} \index{second\_partial\_derivative@{second\_partial\_derivative}!serif::eos@{serif::eos}} \doxysubsubsection{\texorpdfstring{second\_partial\_derivative()}{second\_partial\_derivative()}} {\footnotesize\ttfamily \label{namespaceserif_1_1eos_ad41c8ebf0663a55e74ba55bc35e560b4} template$<$dimensions\+::\+Thermodynamic\+Quantity\+Type OutputQ, dimensions\+::\+Thermodynamic\+Quantity\+Type First\+Input, dimensions\+::\+Thermodynamic\+Quantity\+Type Second\+Input, models\+::\+EOSModel EOS, dimensions\+::\+Quantity\+Value\+Type... Input\+Values$>$ \newline requires models\+::\+EOSSupporting\+Second\+Partial\+Derivative$<$EOS, \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{relations\+::\+Relation}}$<$OutputQ, \mbox{\hyperlink{namespaceserif_1_1dimensions_a726ea17ab3c500d045d2605915ecfcd6}{dimensions\+::\+Quantity\+OfT}}$<$Input\+Values$>$...$>$, First\+Input, Second\+Input$>$\\ \mbox{\hyperlink{classserif_1_1dimensions_1_1_second_partial_derivative}{dimensions\+::\+Second\+Partial\+Derivative}}$<$ OutputQ, First\+Input, Second\+Input $>$ serif\+::eos\+::second\+\_\+partial\+\_\+derivative (\begin{DoxyParamCaption}\item[{const EOS \&}]{eos}{, }\item[{const Input\+Values...}]{input\+Values}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}} Dispatch an analytic second partial without imposing an EOS-\/specific state.