\doxysection{serif\+::geometry\+::surface Namespace Reference} \hypertarget{namespaceserif_1_1geometry_1_1surface}{}\label{namespaceserif_1_1geometry_1_1surface}\index{serif::geometry::surface@{serif::geometry::surface}} \doxysubsubsection*{Namespaces} \begin{DoxyCompactItemize} \item namespace \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_1_1backend}{backend}} \item namespace \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_1_1detail}{detail}} \item namespace \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_1_1keys}{keys}} \end{DoxyCompactItemize} \doxysubsubsection*{Classes} \begin{DoxyCompactItemize} \item struct \mbox{\hyperlink{structserif_1_1geometry_1_1surface_1_1_automatic_pressure_surface}{Automatic\+Pressure\+Surface}} \begin{DoxyCompactList}\small\item\em Compile an isobaric condition from available physical fields, actual equation rows, and the EOS catalog. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1geometry_1_1surface_1_1_boundary_values}{Boundary\+Values}} \begin{DoxyCompactList}\small\item\em Values of one scalar term at an ordered collection of boundary points. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1geometry_1_1surface_1_1_direct_pressure_surface_formulation}{Direct\+Pressure\+Surface\+Formulation}} \begin{DoxyCompactList}\small\item\em Enforce P\+\_\+\+EOS(state) -\/ P\+\_\+surface = 0 without inventing an inverse EOS relation. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1geometry_1_1surface_1_1_inverse_pressure_surface_formulation}{Inverse\+Pressure\+Surface\+Formulation}} \begin{DoxyCompactList}\small\item\em A selected explicit inverse relation; choosing it requires no numerical EOS inversion. \end{DoxyCompactList}\item class \mbox{\hyperlink{classserif_1_1geometry_1_1surface_1_1_isobaric_surface}{Isobaric\+Surface}} \item struct \mbox{\hyperlink{structserif_1_1geometry_1_1surface_1_1_pressure_field_surface_formulation}{Pressure\+Field\+Surface\+Formulation}} \begin{DoxyCompactList}\small\item\em An existing pressure unknown enforces P -\/ P\+\_\+surface directly, without evaluating the EOS. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1geometry_1_1surface_1_1_pressure_surface_descriptor}{Pressure\+Surface\+Descriptor}} \item struct \mbox{\hyperlink{structserif_1_1geometry_1_1surface_1_1_pressure_surface_formulation}{Pressure\+Surface\+Formulation}} \begin{DoxyCompactList}\small\item\em The boundary residual is carrier minus the EOS value at prescribed pressure; no carrier quantity is privileged. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1geometry_1_1surface_1_1_surface_e_o_s_response}{Surface\+EOSResponse}} \begin{DoxyCompactList}\small\item\em An EOS value and all of its local derivatives, evaluated together at one state. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1geometry_1_1surface_1_1_surface_failure}{Surface\+Failure}} \begin{DoxyCompactList}\small\item\em A rejected thermodynamic candidate, with a sample index when evaluating a boundary batch. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Concepts} \begin{DoxyCompactItemize} \item concept \mbox{\hyperlink{conceptserif_1_1geometry_1_1surface_1_1_automatic_pressure_surface_compilable}{Automatic\+Pressure\+Surface\+Compilable}} \begin{DoxyCompactList}\small\item\em Whether the available equations and numerical backend select one implementable isobaric residual. \end{DoxyCompactList}\item concept \mbox{\hyperlink{conceptserif_1_1geometry_1_1surface_1_1_pressure_surface_compilable}{Pressure\+Surface\+Compilable}} \begin{DoxyCompactList}\small\item\em Whether the available state selects exactly one pressure-\/to-\/carrier EOS relation. \end{DoxyCompactList}\item concept \mbox{\hyperlink{conceptserif_1_1geometry_1_1surface_1_1_direct_pressure_surface_compilable}{Direct\+Pressure\+Surface\+Compilable}} \begin{DoxyCompactList}\small\item\em A direct pressure residual requires an explicitly chosen pressure relation and an input quantity whose equation row it replaces. \end{DoxyCompactList}\item concept \mbox{\hyperlink{conceptserif_1_1geometry_1_1surface_1_1_pressure_surface_formulation_type}{Pressure\+Surface\+Formulation\+Type}} \item concept \mbox{\hyperlink{conceptserif_1_1geometry_1_1surface_1_1_surface_scalar_term}{Surface\+Scalar\+Term}} \begin{DoxyCompactList}\small\item\em Scalar thermodynamic data may come from any declared scalar space; boundary enforcement is a separate backend capability. \end{DoxyCompactList}\item concept \mbox{\hyperlink{conceptserif_1_1geometry_1_1surface_1_1_surface_state_bindings}{Surface\+State\+Bindings}} \begin{DoxyCompactList}\small\item\em Reuse dependency bindings, retaining distinct quantity roles even when they refer to one term. \end{DoxyCompactList}\item concept \mbox{\hyperlink{conceptserif_1_1geometry_1_1surface_1_1_surface_residual_row}{Surface\+Residual\+Row}} \begin{DoxyCompactList}\small\item\em The quantity enforcing the boundary must have an actual equation row, not just sampled values. \end{DoxyCompactList}\item concept \mbox{\hyperlink{conceptserif_1_1geometry_1_1surface_1_1_isobaric_surface_type}{Isobaric\+Surface\+Type}} \end{DoxyCompactItemize} \doxysubsubsection*{Typedefs} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename EOS, typename Bindings, typename Carrier = void$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_aa7522c70fe18bcce1ad623ce570359fa}{pressure\+\_\+relation\+\_\+t}} = std\+::tuple\+\_\+element\+\_\+t$<$0, typename \mbox{\hyperlink{structserif_1_1geometry_1_1surface_1_1detail_1_1_matching_pressure_relations}{detail\+::\+Matching\+Pressure\+Relations}}$<$std\+::remove\+\_\+cvref\+\_\+t$<$EOS$>$, std\+::remove\+\_\+cvref\+\_\+t$<$Bindings$>$, Carrier, typename std\+::remove\+\_\+cvref\+\_\+t$<$EOS$>$\+::\+Relations$>$\+::\+Matches$>$ \item using \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a42dd706422c3b8c6838ea505ff1212b8}{Isobaric}} = \mbox{\hyperlink{classserif_1_1geometry_1_1surface_1_1_isobaric_surface}{Isobaric\+Surface}} \item {\footnotesize template$<$Pressure\+Surface\+Formulation\+Type Formulation$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_aac7a93b7163561a9bfbf7c7447eeebfe}{Surface\+Point}} = \mbox{\hyperlink{structserif_1_1equations_1_1_equation_point}{equations\+::\+Equation\+Point}}$<$typename Formulation\+::\+Operands$>$ \item {\footnotesize template$<$Pressure\+Surface\+Formulation\+Type Formulation$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a38dcffacd50298452984a55e3c69b83a}{Surface\+Linearization}} = \mbox{\hyperlink{structserif_1_1equations_1_1_point_linearization}{equations\+::\+Point\+Linearization}}$<$typename Formulation\+::\+Operands$>$ \end{DoxyCompactItemize} \doxysubsubsection*{Enumerations} \begin{DoxyCompactItemize} \item enum class \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a739898ab5e92990aaeb57582842b1d1c}{Pressure\+Surface\+Selection}} \{ \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a739898ab5e92990aaeb57582842b1d1ca42bd4c0819c498d1c1ab622de74d6f82}{supported}} , \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a739898ab5e92990aaeb57582842b1d1ca7060e0481896e00b3f7d20f1e8e2749a}{unavailable}} , \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a739898ab5e92990aaeb57582842b1d1ca1f2a1ba9f974029c8e43ae8f59637f4c}{ambiguous}} \} \item enum class \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a54b9db77caf2af1870677a91cfc70026}{Surface\+Failure\+Reason}} \{ \newline \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a54b9db77caf2af1870677a91cfc70026a9ae4e64d7f01a1eb9df10b8fe9738de2}{non\+\_\+finite\+\_\+state}} , \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a54b9db77caf2af1870677a91cfc70026ad74368c2b39a40a73c51f2d51b6561f2}{non\+\_\+finite\+\_\+eos\+\_\+response}} , \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a54b9db77caf2af1870677a91cfc70026a80a298b3818d2f3c68d8f140c4d399f8}{non\+\_\+finite\+\_\+linearization}} , \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a54b9db77caf2af1870677a91cfc70026a1c30d760751e2ce13419a39b3685fbbf}{inconsistent\+\_\+sample\+\_\+count}} , \newline \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a54b9db77caf2af1870677a91cfc70026ab2b4f7bd1ac337134bdbe47cae728f2a}{empty\+\_\+surface}} \} \end{DoxyCompactItemize} \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} \item {\footnotesize template$<$Pressure\+Surface\+Formulation\+Type Formulation, template$<$ typename $>$ typename Sample\+Key = std\+::type\+\_\+identity\+\_\+t$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_aaae557ab0921c03cea6ca410571aea07}{make\+\_\+pressure\+\_\+surface\+\_\+computations}} () \begin{DoxyCompactList}\small\item\em Expose the existing EOS and residual stages for composition with backend sampling or other physics. \end{DoxyCompactList}\item {\footnotesize template$<$Pressure\+Surface\+Formulation\+Type Formulation$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a22a6164aca39d466c509c4e9d73bd0a3}{make\+\_\+pressure\+\_\+surface\+\_\+graph}} () \begin{DoxyCompactList}\small\item\em Describe the isobaric calculation as an ordinary dependency graph, without evaluating the EOS. \end{DoxyCompactList}\item {\footnotesize template$<$typename EOS, typename Bindings, typename Carrier = void$>$ \newline requires Pressure\+Surface\+Compilable$<$EOS, Bindings, Carrier$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a221522d5871c62fa8e9b4aa7493b19ee}{make\+\_\+pressure\+\_\+surface\+\_\+graph}} () \begin{DoxyCompactList}\small\item\em Infer a unique carrier-\/resolved formulation directly from an EOS and the available physical state. \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_a4cdea9db2006b47252ed75446fd9c5d1}{evaluate\+\_\+pressure\+\_\+surface}} (const typename Formulation\+::\+Equation\+Of\+State \&equation\+\_\+of\+\_\+state, const \mbox{\hyperlink{classserif_1_1geometry_1_1surface_1_1_isobaric_surface}{Isobaric\+Surface}} \&condition, const \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_aac7a93b7163561a9bfbf7c7447eeebfe}{Surface\+Point}}$<$ Formulation $>$ \&point) \begin{DoxyCompactList}\small\item\em Evaluate the chosen isobaric residual and its analytical derivatives at one boundary point. \end{DoxyCompactList}\item {\footnotesize template$<$Surface\+Scalar\+Term Term$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a5d4b3151c0eec6aedd3bb2ce4259e52b}{boundary\+\_\+values}} (std\+::vector$<$ double $>$ values) \begin{DoxyCompactList}\small\item\em Supply owned boundary samples to an ordinary dependency context, keyed by their physical term. \end{DoxyCompactList}\item auto \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_ad3e16057fff248ad6c7bd9a43959fc0e}{pressure\+\_\+condition}} (\mbox{\hyperlink{classserif_1_1geometry_1_1surface_1_1_isobaric_surface}{Isobaric\+Surface}} condition) \begin{DoxyCompactList}\small\item\em Supply the isobaric condition as an owned dependency source, with pressure tracked by value. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection{Typedef Documentation} \Hypertarget{namespaceserif_1_1geometry_1_1surface_a42dd706422c3b8c6838ea505ff1212b8}\index{serif::geometry::surface@{serif::geometry::surface}!Isobaric@{Isobaric}} \index{Isobaric@{Isobaric}!serif::geometry::surface@{serif::geometry::surface}} \doxysubsubsection{\texorpdfstring{Isobaric}{Isobaric}} {\footnotesize\ttfamily \label{namespaceserif_1_1geometry_1_1surface_a42dd706422c3b8c6838ea505ff1212b8} using \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a42dd706422c3b8c6838ea505ff1212b8}{serif\+::geometry\+::surface\+::\+Isobaric}} = \mbox{\hyperlink{classserif_1_1geometry_1_1surface_1_1_isobaric_surface}{Isobaric\+Surface}}} \Hypertarget{namespaceserif_1_1geometry_1_1surface_aa7522c70fe18bcce1ad623ce570359fa}\index{serif::geometry::surface@{serif::geometry::surface}!pressure\_relation\_t@{pressure\_relation\_t}} \index{pressure\_relation\_t@{pressure\_relation\_t}!serif::geometry::surface@{serif::geometry::surface}} \doxysubsubsection{\texorpdfstring{pressure\_relation\_t}{pressure\_relation\_t}} {\footnotesize\ttfamily \label{namespaceserif_1_1geometry_1_1surface_aa7522c70fe18bcce1ad623ce570359fa} template$<$typename EOS, typename Bindings, typename Carrier = void$>$ \\ using \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_aa7522c70fe18bcce1ad623ce570359fa}{serif\+::geometry\+::surface\+::pressure\+\_\+relation\+\_\+t}} = std\+::tuple\+\_\+element\+\_\+t$<$0, typename \mbox{\hyperlink{structserif_1_1geometry_1_1surface_1_1detail_1_1_matching_pressure_relations}{detail\+::\+Matching\+Pressure\+Relations}}$<$std\+::remove\+\_\+cvref\+\_\+t$<$EOS$>$, std\+::remove\+\_\+cvref\+\_\+t$<$Bindings$>$, Carrier, typename std\+::remove\+\_\+cvref\+\_\+t$<$EOS$>$\+::\+Relations$>$\+::\+Matches$>$} \Hypertarget{namespaceserif_1_1geometry_1_1surface_a38dcffacd50298452984a55e3c69b83a}\index{serif::geometry::surface@{serif::geometry::surface}!SurfaceLinearization@{SurfaceLinearization}} \index{SurfaceLinearization@{SurfaceLinearization}!serif::geometry::surface@{serif::geometry::surface}} \doxysubsubsection{\texorpdfstring{SurfaceLinearization}{SurfaceLinearization}} {\footnotesize\ttfamily \label{namespaceserif_1_1geometry_1_1surface_a38dcffacd50298452984a55e3c69b83a} template$<$Pressure\+Surface\+Formulation\+Type Formulation$>$ \\ using \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a38dcffacd50298452984a55e3c69b83a}{serif\+::geometry\+::surface\+::\+Surface\+Linearization}} = \mbox{\hyperlink{structserif_1_1equations_1_1_point_linearization}{equations\+::\+Point\+Linearization}}$<$typename Formulation\+::\+Operands$>$} \Hypertarget{namespaceserif_1_1geometry_1_1surface_aac7a93b7163561a9bfbf7c7447eeebfe}\index{serif::geometry::surface@{serif::geometry::surface}!SurfacePoint@{SurfacePoint}} \index{SurfacePoint@{SurfacePoint}!serif::geometry::surface@{serif::geometry::surface}} \doxysubsubsection{\texorpdfstring{SurfacePoint}{SurfacePoint}} {\footnotesize\ttfamily \label{namespaceserif_1_1geometry_1_1surface_aac7a93b7163561a9bfbf7c7447eeebfe} template$<$Pressure\+Surface\+Formulation\+Type Formulation$>$ \\ using \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_aac7a93b7163561a9bfbf7c7447eeebfe}{serif\+::geometry\+::surface\+::\+Surface\+Point}} = \mbox{\hyperlink{structserif_1_1equations_1_1_equation_point}{equations\+::\+Equation\+Point}}$<$typename Formulation\+::\+Operands$>$} \doxysubsection{Enumeration Type Documentation} \Hypertarget{namespaceserif_1_1geometry_1_1surface_a739898ab5e92990aaeb57582842b1d1c}\index{serif::geometry::surface@{serif::geometry::surface}!PressureSurfaceSelection@{PressureSurfaceSelection}} \index{PressureSurfaceSelection@{PressureSurfaceSelection}!serif::geometry::surface@{serif::geometry::surface}} \doxysubsubsection{\texorpdfstring{PressureSurfaceSelection}{PressureSurfaceSelection}} {\footnotesize\ttfamily \label{namespaceserif_1_1geometry_1_1surface_a739898ab5e92990aaeb57582842b1d1c} enum class \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a739898ab5e92990aaeb57582842b1d1c}{serif\+::geometry\+::surface\+::\+Pressure\+Surface\+Selection}}\hspace{0.3cm}{\ttfamily [strong]}} \begin{DoxyEnumFields}[2]{Enumerator} \raisebox{\heightof{T}}[0pt][0pt]{\index{supported@{supported}!serif::geometry::surface@{serif::geometry::surface}}\index{serif::geometry::surface@{serif::geometry::surface}!supported@{supported}}}\Hypertarget{namespaceserif_1_1geometry_1_1surface_a739898ab5e92990aaeb57582842b1d1ca42bd4c0819c498d1c1ab622de74d6f82}\label{namespaceserif_1_1geometry_1_1surface_a739898ab5e92990aaeb57582842b1d1ca42bd4c0819c498d1c1ab622de74d6f82} supported&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{unavailable@{unavailable}!serif::geometry::surface@{serif::geometry::surface}}\index{serif::geometry::surface@{serif::geometry::surface}!unavailable@{unavailable}}}\Hypertarget{namespaceserif_1_1geometry_1_1surface_a739898ab5e92990aaeb57582842b1d1ca7060e0481896e00b3f7d20f1e8e2749a}\label{namespaceserif_1_1geometry_1_1surface_a739898ab5e92990aaeb57582842b1d1ca7060e0481896e00b3f7d20f1e8e2749a} unavailable&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{ambiguous@{ambiguous}!serif::geometry::surface@{serif::geometry::surface}}\index{serif::geometry::surface@{serif::geometry::surface}!ambiguous@{ambiguous}}}\Hypertarget{namespaceserif_1_1geometry_1_1surface_a739898ab5e92990aaeb57582842b1d1ca1f2a1ba9f974029c8e43ae8f59637f4c}\label{namespaceserif_1_1geometry_1_1surface_a739898ab5e92990aaeb57582842b1d1ca1f2a1ba9f974029c8e43ae8f59637f4c} ambiguous&\\ \hline \end{DoxyEnumFields} \Hypertarget{namespaceserif_1_1geometry_1_1surface_a54b9db77caf2af1870677a91cfc70026}\index{serif::geometry::surface@{serif::geometry::surface}!SurfaceFailureReason@{SurfaceFailureReason}} \index{SurfaceFailureReason@{SurfaceFailureReason}!serif::geometry::surface@{serif::geometry::surface}} \doxysubsubsection{\texorpdfstring{SurfaceFailureReason}{SurfaceFailureReason}} {\footnotesize\ttfamily \label{namespaceserif_1_1geometry_1_1surface_a54b9db77caf2af1870677a91cfc70026} enum class \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_a54b9db77caf2af1870677a91cfc70026}{serif\+::geometry\+::surface\+::\+Surface\+Failure\+Reason}}\hspace{0.3cm}{\ttfamily [strong]}} \begin{DoxyEnumFields}[2]{Enumerator} \raisebox{\heightof{T}}[0pt][0pt]{\index{non\_finite\_state@{non\_finite\_state}!serif::geometry::surface@{serif::geometry::surface}}\index{serif::geometry::surface@{serif::geometry::surface}!non\_finite\_state@{non\_finite\_state}}}\Hypertarget{namespaceserif_1_1geometry_1_1surface_a54b9db77caf2af1870677a91cfc70026a9ae4e64d7f01a1eb9df10b8fe9738de2}\label{namespaceserif_1_1geometry_1_1surface_a54b9db77caf2af1870677a91cfc70026a9ae4e64d7f01a1eb9df10b8fe9738de2} non\+\_\+finite\+\_\+state&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{non\_finite\_eos\_response@{non\_finite\_eos\_response}!serif::geometry::surface@{serif::geometry::surface}}\index{serif::geometry::surface@{serif::geometry::surface}!non\_finite\_eos\_response@{non\_finite\_eos\_response}}}\Hypertarget{namespaceserif_1_1geometry_1_1surface_a54b9db77caf2af1870677a91cfc70026ad74368c2b39a40a73c51f2d51b6561f2}\label{namespaceserif_1_1geometry_1_1surface_a54b9db77caf2af1870677a91cfc70026ad74368c2b39a40a73c51f2d51b6561f2} non\+\_\+finite\+\_\+eos\+\_\+response&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{non\_finite\_linearization@{non\_finite\_linearization}!serif::geometry::surface@{serif::geometry::surface}}\index{serif::geometry::surface@{serif::geometry::surface}!non\_finite\_linearization@{non\_finite\_linearization}}}\Hypertarget{namespaceserif_1_1geometry_1_1surface_a54b9db77caf2af1870677a91cfc70026a80a298b3818d2f3c68d8f140c4d399f8}\label{namespaceserif_1_1geometry_1_1surface_a54b9db77caf2af1870677a91cfc70026a80a298b3818d2f3c68d8f140c4d399f8} non\+\_\+finite\+\_\+linearization&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{inconsistent\_sample\_count@{inconsistent\_sample\_count}!serif::geometry::surface@{serif::geometry::surface}}\index{serif::geometry::surface@{serif::geometry::surface}!inconsistent\_sample\_count@{inconsistent\_sample\_count}}}\Hypertarget{namespaceserif_1_1geometry_1_1surface_a54b9db77caf2af1870677a91cfc70026a1c30d760751e2ce13419a39b3685fbbf}\label{namespaceserif_1_1geometry_1_1surface_a54b9db77caf2af1870677a91cfc70026a1c30d760751e2ce13419a39b3685fbbf} inconsistent\+\_\+sample\+\_\+count&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{empty\_surface@{empty\_surface}!serif::geometry::surface@{serif::geometry::surface}}\index{serif::geometry::surface@{serif::geometry::surface}!empty\_surface@{empty\_surface}}}\Hypertarget{namespaceserif_1_1geometry_1_1surface_a54b9db77caf2af1870677a91cfc70026ab2b4f7bd1ac337134bdbe47cae728f2a}\label{namespaceserif_1_1geometry_1_1surface_a54b9db77caf2af1870677a91cfc70026ab2b4f7bd1ac337134bdbe47cae728f2a} empty\+\_\+surface&\\ \hline \end{DoxyEnumFields} \doxysubsection{Function Documentation} \Hypertarget{namespaceserif_1_1geometry_1_1surface_a5d4b3151c0eec6aedd3bb2ce4259e52b}\index{serif::geometry::surface@{serif::geometry::surface}!boundary\_values@{boundary\_values}} \index{boundary\_values@{boundary\_values}!serif::geometry::surface@{serif::geometry::surface}} \doxysubsubsection{\texorpdfstring{boundary\_values()}{boundary\_values()}} {\footnotesize\ttfamily \label{namespaceserif_1_1geometry_1_1surface_a5d4b3151c0eec6aedd3bb2ce4259e52b} template$<$Surface\+Scalar\+Term Term$>$ \\ auto serif\+::geometry\+::surface\+::boundary\+\_\+values (\begin{DoxyParamCaption}\item[{std\+::vector$<$ double $>$}]{values}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}} Supply owned boundary samples to an ordinary dependency context, keyed by their physical term. \Hypertarget{namespaceserif_1_1geometry_1_1surface_a4cdea9db2006b47252ed75446fd9c5d1}\index{serif::geometry::surface@{serif::geometry::surface}!evaluate\_pressure\_surface@{evaluate\_pressure\_surface}} \index{evaluate\_pressure\_surface@{evaluate\_pressure\_surface}!serif::geometry::surface@{serif::geometry::surface}} \doxysubsubsection{\texorpdfstring{evaluate\_pressure\_surface()}{evaluate\_pressure\_surface()}} {\footnotesize\ttfamily \label{namespaceserif_1_1geometry_1_1surface_a4cdea9db2006b47252ed75446fd9c5d1} 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}} $>$ serif\+::geometry\+::surface\+::evaluate\+\_\+pressure\+\_\+surface (\begin{DoxyParamCaption}\item[{const typename Formulation\+::\+Equation\+Of\+State \&}]{equation\+\_\+of\+\_\+state}{, }\item[{const \mbox{\hyperlink{classserif_1_1geometry_1_1surface_1_1_isobaric_surface}{Isobaric\+Surface}} \&}]{condition}{, }\item[{const \mbox{\hyperlink{namespaceserif_1_1geometry_1_1surface_aac7a93b7163561a9bfbf7c7447eeebfe}{Surface\+Point}}$<$ Formulation $>$ \&}]{point}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}} Evaluate the chosen isobaric residual and its analytical derivatives at one boundary point. \begin{DoxyParams}{Parameters} {\em equation\+\_\+of\+\_\+state} & The EOS declared by Formulation. \\ \hline {\em condition} & The prescribed surface pressure, independent of the choice of carrier. \\ \hline {\em point} & Values of the formulation\textquotesingle{}s bound scalar terms, already sampled at a common boundary point. \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} A conventional equation linearization, or a numerical rejection. No preparation or borrowed state is retained. \end{DoxyReturn} \begin{DoxyNote}{Note} Domain exceptions from an existing throwing EOS propagate; no exception is used for surface validation. \end{DoxyNote} \Hypertarget{namespaceserif_1_1geometry_1_1surface_aaae557ab0921c03cea6ca410571aea07}\index{serif::geometry::surface@{serif::geometry::surface}!make\_pressure\_surface\_computations@{make\_pressure\_surface\_computations}} \index{make\_pressure\_surface\_computations@{make\_pressure\_surface\_computations}!serif::geometry::surface@{serif::geometry::surface}} \doxysubsubsection{\texorpdfstring{make\_pressure\_surface\_computations()}{make\_pressure\_surface\_computations()}} {\footnotesize\ttfamily \label{namespaceserif_1_1geometry_1_1surface_aaae557ab0921c03cea6ca410571aea07} template$<$Pressure\+Surface\+Formulation\+Type Formulation, template$<$ typename $>$ typename Sample\+Key = std\+::type\+\_\+identity\+\_\+t$>$ \\ auto serif\+::geometry\+::surface\+::make\+\_\+pressure\+\_\+surface\+\_\+computations (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}} Expose the existing EOS and residual stages for composition with backend sampling or other physics. \Hypertarget{namespaceserif_1_1geometry_1_1surface_a22a6164aca39d466c509c4e9d73bd0a3}\index{serif::geometry::surface@{serif::geometry::surface}!make\_pressure\_surface\_graph@{make\_pressure\_surface\_graph}} \index{make\_pressure\_surface\_graph@{make\_pressure\_surface\_graph}!serif::geometry::surface@{serif::geometry::surface}} \doxysubsubsection{\texorpdfstring{make\_pressure\_surface\_graph()}{make\_pressure\_surface\_graph()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily \label{namespaceserif_1_1geometry_1_1surface_a22a6164aca39d466c509c4e9d73bd0a3} template$<$Pressure\+Surface\+Formulation\+Type Formulation$>$ \\ auto serif\+::geometry\+::surface\+::make\+\_\+pressure\+\_\+surface\+\_\+graph (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}} Describe the isobaric calculation as an ordinary dependency graph, without evaluating the EOS. \begin{DoxyTemplParams}{Template Parameters} {\em Formulation} & A carrier-\/resolved or explicitly selected direct-\/pressure surface formulation. \\ \hline \end{DoxyTemplParams} \begin{DoxyReturn}{Returns} Two computations\+: the EOS response and the boundary residual with analytical derivatives. \end{DoxyReturn} \begin{DoxyNote}{Note} Supply pressure\+\_\+condition and boundary\+\_\+values, and bind \doxylink{structserif_1_1geometry_1_1surface_1_1keys_1_1_equation_of_state}{keys\+::\+Equation\+Of\+State} with a tracking policy when the formulation uses the EOS. A pressure-\/field formulation needs no EOS source. Use make\+\_\+computation\+\_\+cache$<$\+Surface\+Failure$>$ and its normal try\+\_\+prepare/get interface; the cache owns the complete preparation lifecycle. \end{DoxyNote} \Hypertarget{namespaceserif_1_1geometry_1_1surface_a221522d5871c62fa8e9b4aa7493b19ee}\index{serif::geometry::surface@{serif::geometry::surface}!make\_pressure\_surface\_graph@{make\_pressure\_surface\_graph}} \index{make\_pressure\_surface\_graph@{make\_pressure\_surface\_graph}!serif::geometry::surface@{serif::geometry::surface}} \doxysubsubsection{\texorpdfstring{make\_pressure\_surface\_graph()}{make\_pressure\_surface\_graph()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily \label{namespaceserif_1_1geometry_1_1surface_a221522d5871c62fa8e9b4aa7493b19ee} template$<$typename EOS, typename Bindings, typename Carrier = void$>$ \newline requires Pressure\+Surface\+Compilable$<$EOS, Bindings, Carrier$>$\\ auto serif\+::geometry\+::surface\+::make\+\_\+pressure\+\_\+surface\+\_\+graph (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}} Infer a unique carrier-\/resolved formulation directly from an EOS and the available physical state. \Hypertarget{namespaceserif_1_1geometry_1_1surface_ad3e16057fff248ad6c7bd9a43959fc0e}\index{serif::geometry::surface@{serif::geometry::surface}!pressure\_condition@{pressure\_condition}} \index{pressure\_condition@{pressure\_condition}!serif::geometry::surface@{serif::geometry::surface}} \doxysubsubsection{\texorpdfstring{pressure\_condition()}{pressure\_condition()}} {\footnotesize\ttfamily \label{namespaceserif_1_1geometry_1_1surface_ad3e16057fff248ad6c7bd9a43959fc0e} auto serif\+::geometry\+::surface\+::pressure\+\_\+condition (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classserif_1_1geometry_1_1surface_1_1_isobaric_surface}{Isobaric\+Surface}}}]{condition}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [nodiscard]}} Supply the isobaric condition as an owned dependency source, with pressure tracked by value.