\doxysection{src/include/serif/geometry/surface/detail/evaluation.hpp File Reference} \hypertarget{geometry_2surface_2detail_2evaluation_8hpp}{}\label{geometry_2surface_2detail_2evaluation_8hpp}\index{src/include/serif/geometry/surface/detail/evaluation.hpp@{src/include/serif/geometry/surface/detail/evaluation.hpp}} {\ttfamily \#include $<$cmath$>$}\newline {\ttfamily \#include $<$expected$>$}\newline {\ttfamily \#include "{}serif/eos/evaluation.\+hpp"{}}\newline {\ttfamily \#include "{}serif/geometry/surface/linearization.\+hpp"{}}\newline Include dependency graph for evaluation.\+hpp\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{geometry_2surface_2detail_2evaluation_8hpp__incl} \end{center} \end{figure} This graph shows which files directly or indirectly include this file\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{geometry_2surface_2detail_2evaluation_8hpp__dep__incl} \end{center} \end{figure} \doxysubsubsection*{Namespaces} \begin{DoxyCompactItemize} \item namespace \mbox{\hyperlink{namespaceserif}{serif}} \item namespace \mbox{\hyperlink{namespaceserif_1_1geometry}{serif\+::geometry}} \item namespace \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface}{serif\+::geometry\+::surface}} \item namespace \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_1_1detail}{serif\+::geometry\+::surface\+::detail}} \end{DoxyCompactItemize} \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename Quantity, Pressure\+Surface\+Formulation\+Type Formulation$>$ }\\\mbox{\hyperlink{classserif_1_1dimensions_1_1_quantity_value}{dimensions\+::\+Quantity\+Value}}$<$ Quantity $>$ \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_1_1detail_a3d578d861d82b08ed4e0d377f3248968}{serif\+::geometry\+::surface\+::detail\+::state\+\_\+value}} (const \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_aac7a93b7163561a9bfbf7c7447eeebfe}{Surface\+Point}}$<$ Formulation $>$ \&point) \begin{DoxyCompactList}\small\item\em Read one thermodynamic role from its bound term, preserving the EOS argument\textquotesingle{}s physical type. \end{DoxyCompactList}\item {\footnotesize template$<$typename Quantity, Pressure\+Surface\+Formulation\+Type Formulation$>$ }\\\mbox{\hyperlink{classserif_1_1dimensions_1_1_quantity_value}{dimensions\+::\+Quantity\+Value}}$<$ Quantity $>$ \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_1_1detail_abd88070a830aee7ea52bbc9975423092}{serif\+::geometry\+::surface\+::detail\+::relation\+\_\+input}} (const \mbox{\hyperlink{namespaceserif_1_1dimensions_a60ad5bcd33f38e5e0e272d9df76008ec}{dimensions\+::\+Pressure\+Value}} pressure, const \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_aac7a93b7163561a9bfbf7c7447eeebfe}{Surface\+Point}}$<$ Formulation $>$ \&point) \begin{DoxyCompactList}\small\item\em Only the carrier-\/resolved formulation substitutes prescribed pressure for an EOS input. \end{DoxyCompactList}\item {\footnotesize template$<$Pressure\+Surface\+Formulation\+Type Formulation, typename... Quantities$>$ }\\bool \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_1_1detail_ae06b817a237df48fe4fc5740fac4f0ea}{serif\+::geometry\+::surface\+::detail\+::finite\+\_\+state}} (const \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_aac7a93b7163561a9bfbf7c7447eeebfe}{Surface\+Point}}$<$ Formulation $>$ \&point, \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$ Quantities... $>$) \begin{DoxyCompactList}\small\item\em Validate precisely the state read by this calculation, leaving unrelated state outside its dependencies. \end{DoxyCompactList}\item {\footnotesize template$<$typename Quantity, Pressure\+Surface\+Formulation\+Type Formulation, typename... Inputs$>$ }\\void \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_1_1detail_a687fdf4034118c40dd902913030f4887}{serif\+::geometry\+::surface\+::detail\+::accumulate\+\_\+partial}} (const typename Formulation\+::\+Equation\+Of\+State \&equation\+\_\+of\+\_\+state, const \mbox{\hyperlink{namespaceserif_1_1dimensions_a60ad5bcd33f38e5e0e272d9df76008ec}{dimensions\+::\+Pressure\+Value}} pressure, const \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_aac7a93b7163561a9bfbf7c7447eeebfe}{Surface\+Point}}$<$ Formulation $>$ \&point, \mbox{\hyperlink{structserif_1_1geometry_1_1surface_1_1_surface_e_o_s_response}{Surface\+EOSResponse}}$<$ Formulation $>$ \&response, \mbox{\hyperlink{structserif_1_1dimensions_1_1_quantity_list}{dimensions\+::\+Quantity\+List}}$<$ Inputs... $>$) \begin{DoxyCompactList}\small\item\em Add each quantity\textquotesingle{}s chain-\/rule contribution, including distinct roles bound to the same unknown. \end{DoxyCompactList}\item {\footnotesize template$<$Pressure\+Surface\+Formulation\+Type Formulation, typename... Inputs, typename... State\+Quantities$>$ }\\\mbox{\hyperlink{structserif_1_1geometry_1_1surface_1_1_surface_e_o_s_response}{Surface\+EOSResponse}}$<$ Formulation $>$ \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_1_1detail_a966227f117fb18ae658b64ea0622a7e3}{serif\+::geometry\+::surface\+::detail\+::evaluate\+\_\+relation}} (const typename Formulation\+::\+Equation\+Of\+State \&equation\+\_\+of\+\_\+state, const \mbox{\hyperlink{namespaceserif_1_1dimensions_a60ad5bcd33f38e5e0e272d9df76008ec}{dimensions\+::\+Pressure\+Value}} pressure, const \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_aac7a93b7163561a9bfbf7c7447eeebfe}{Surface\+Point}}$<$ Formulation $>$ \&point, \mbox{\hyperlink{structserif_1_1dimensions_1_1_quantity_list}{dimensions\+::\+Quantity\+List}}$<$ Inputs... $>$ inputs, \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$ State\+Quantities... $>$) \begin{DoxyCompactList}\small\item\em Evaluate one selected relation and all required partials without any hidden EOS inversion. \end{DoxyCompactList}\item {\footnotesize template$<$Pressure\+Surface\+Formulation\+Type Formulation$>$ }\\std\+::expected$<$ \mbox{\hyperlink{structserif_1_1geometry_1_1surface_1_1_surface_e_o_s_response}{Surface\+EOSResponse}}$<$ Formulation $>$, \mbox{\hyperlink{structserif_1_1geometry_1_1surface_1_1_surface_failure}{Surface\+Failure}} $>$ \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_1_1detail_a0ed025267a4b81a4d5f9c2d7f8929cd0}{serif\+::geometry\+::surface\+::detail\+::evaluate\+\_\+surface\+\_\+response}} (const typename Formulation\+::\+Equation\+Of\+State \&equation\+\_\+of\+\_\+state, const \mbox{\hyperlink{namespaceserif_1_1dimensions_a60ad5bcd33f38e5e0e272d9df76008ec}{dimensions\+::\+Pressure\+Value}} pressure, const \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_aac7a93b7163561a9bfbf7c7447eeebfe}{Surface\+Point}}$<$ Formulation $>$ \&point) \begin{DoxyCompactList}\small\item\em Reject non-\/finite thermodynamic inputs, EOS outputs, and partials as values. \end{DoxyCompactList}\item {\footnotesize template$<$Pressure\+Surface\+Formulation\+Type Formulation$>$ }\\\mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a38dcffacd50298452984a55e3c69b83a}{Surface\+Linearization}}$<$ Formulation $>$ \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_1_1detail_a995b339d443e9b917c694778900b632d}{serif\+::geometry\+::surface\+::detail\+::linearize\+\_\+surface}} (const \mbox{\hyperlink{namespaceserif_1_1dimensions_a60ad5bcd33f38e5e0e272d9df76008ec}{dimensions\+::\+Pressure\+Value}} pressure, const \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_aac7a93b7163561a9bfbf7c7447eeebfe}{Surface\+Point}}$<$ Formulation $>$ \&point, const \mbox{\hyperlink{structserif_1_1geometry_1_1surface_1_1_surface_e_o_s_response}{Surface\+EOSResponse}}$<$ Formulation $>$ \&response) \begin{DoxyCompactList}\small\item\em Form the declared residual from an already evaluated EOS response, keeping the carrier identity explicit. \end{DoxyCompactList}\item {\footnotesize template$<$Pressure\+Surface\+Formulation\+Type Formulation$>$ }\\std\+::expected$<$ \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a38dcffacd50298452984a55e3c69b83a}{Surface\+Linearization}}$<$ Formulation $>$, \mbox{\hyperlink{structserif_1_1geometry_1_1surface_1_1_surface_failure}{Surface\+Failure}} $>$ \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_1_1detail_a5dd1679de9226d8f2f5bf03d2548c0bc}{serif\+::geometry\+::surface\+::detail\+::checked\+\_\+linearization}} (const \mbox{\hyperlink{namespaceserif_1_1dimensions_a60ad5bcd33f38e5e0e272d9df76008ec}{dimensions\+::\+Pressure\+Value}} pressure, const \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_aac7a93b7163561a9bfbf7c7447eeebfe}{Surface\+Point}}$<$ Formulation $>$ \&point, const \mbox{\hyperlink{structserif_1_1geometry_1_1surface_1_1_surface_e_o_s_response}{Surface\+EOSResponse}}$<$ Formulation $>$ \&response) \begin{DoxyCompactList}\small\item\em Catch overflow in residual subtraction or derivative accumulation before publishing a linearization. \end{DoxyCompactList}\end{DoxyCompactItemize}