Files
MeanField_SERiF/docs/latex/namespaceserif_1_1geometry_1_1surface.tex
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

274 lines
27 KiB
TeX

\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.