Files
MeanField_SERiF/docs/man/man3/serif_geometry_surface.3
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

261 lines
9.8 KiB
Groff

.TH "serif::geometry::surface" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
.ad l
.nh
.SH NAME
serif::geometry::surface
.SH SYNOPSIS
.br
.PP
.SS "Namespaces"
.in +1c
.ti -1c
.RI "namespace \fBbackend\fP"
.br
.ti -1c
.RI "namespace \fBdetail\fP"
.br
.ti -1c
.RI "namespace \fBkeys\fP"
.br
.in -1c
.SS "Classes"
.in +1c
.ti -1c
.RI "struct \fBAutomaticPressureSurface\fP"
.br
.RI "Compile an isobaric condition from available physical fields, actual equation rows, and the EOS catalog\&. "
.ti -1c
.RI "struct \fBBoundaryValues\fP"
.br
.RI "Values of one scalar term at an ordered collection of boundary points\&. "
.ti -1c
.RI "struct \fBDirectPressureSurfaceFormulation\fP"
.br
.RI "Enforce P_EOS(state) - P_surface = 0 without inventing an inverse EOS relation\&. "
.ti -1c
.RI "struct \fBInversePressureSurfaceFormulation\fP"
.br
.RI "A selected explicit inverse relation; choosing it requires no numerical EOS inversion\&. "
.ti -1c
.RI "class \fBIsobaricSurface\fP"
.br
.ti -1c
.RI "struct \fBPressureFieldSurfaceFormulation\fP"
.br
.RI "An existing pressure unknown enforces P - P_surface directly, without evaluating the EOS\&. "
.ti -1c
.RI "struct \fBPressureSurfaceDescriptor\fP"
.br
.ti -1c
.RI "struct \fBPressureSurfaceFormulation\fP"
.br
.RI "The boundary residual is carrier minus the EOS value at prescribed pressure; no carrier quantity is privileged\&. "
.ti -1c
.RI "struct \fBSurfaceEOSResponse\fP"
.br
.RI "An EOS value and all of its local derivatives, evaluated together at one state\&. "
.ti -1c
.RI "struct \fBSurfaceFailure\fP"
.br
.RI "A rejected thermodynamic candidate, with a sample index when evaluating a boundary batch\&. "
.in -1c
.SS "Concepts"
.in +1c
.ti -1c
.RI "concept \fBAutomaticPressureSurfaceCompilable\fP"
.br
.RI "Whether the available equations and numerical backend select one implementable isobaric residual\&. "
.ti -1c
.RI "concept \fBPressureSurfaceCompilable\fP"
.br
.RI "Whether the available state selects exactly one pressure-to-carrier EOS relation\&. "
.ti -1c
.RI "concept \fBDirectPressureSurfaceCompilable\fP"
.br
.RI "A direct pressure residual requires an explicitly chosen pressure relation and an input quantity whose equation row it replaces\&. "
.ti -1c
.RI "concept \fBPressureSurfaceFormulationType\fP"
.br
.ti -1c
.RI "concept \fBSurfaceScalarTerm\fP"
.br
.RI "Scalar thermodynamic data may come from any declared scalar space; boundary enforcement is a separate backend capability\&. "
.ti -1c
.RI "concept \fBSurfaceStateBindings\fP"
.br
.RI "Reuse dependency bindings, retaining distinct quantity roles even when they refer to one term\&. "
.ti -1c
.RI "concept \fBSurfaceResidualRow\fP"
.br
.RI "The quantity enforcing the boundary must have an actual equation row, not just sampled values\&. "
.ti -1c
.RI "concept \fBIsobaricSurfaceType\fP"
.br
.in -1c
.SS "Typedefs"
.in +1c
.ti -1c
.RI "template<typename EOS, typename Bindings, typename Carrier = void> using \fBpressure_relation_t\fP = std::tuple_element_t<0, typename \fBdetail::MatchingPressureRelations\fP<std::remove_cvref_t<EOS>, std::remove_cvref_t<Bindings>, Carrier, typename std::remove_cvref_t<EOS>::Relations>::Matches>"
.br
.ti -1c
.RI "using \fBIsobaric\fP = \fBIsobaricSurface\fP"
.br
.ti -1c
.RI "template<PressureSurfaceFormulationType Formulation> using \fBSurfacePoint\fP = \fBequations::EquationPoint\fP<typename Formulation::Operands>"
.br
.ti -1c
.RI "template<PressureSurfaceFormulationType Formulation> using \fBSurfaceLinearization\fP = \fBequations::PointLinearization\fP<typename Formulation::Operands>"
.br
.in -1c
.SS "Enumerations"
.in +1c
.ti -1c
.RI "enum class \fBPressureSurfaceSelection\fP { \fBsupported\fP, \fBunavailable\fP, \fBambiguous\fP }"
.br
.ti -1c
.RI "enum class \fBSurfaceFailureReason\fP { \fBnon_finite_state\fP, \fBnon_finite_eos_response\fP, \fBnon_finite_linearization\fP, \fBinconsistent_sample_count\fP, \fBempty_surface\fP }"
.br
.in -1c
.SS "Functions"
.in +1c
.ti -1c
.RI "template<PressureSurfaceFormulationType Formulation, template< typename > typename SampleKey = std::type_identity_t> auto \fBmake_pressure_surface_computations\fP ()"
.br
.RI "Expose the existing EOS and residual stages for composition with backend sampling or other physics\&. "
.ti -1c
.RI "template<PressureSurfaceFormulationType Formulation> auto \fBmake_pressure_surface_graph\fP ()"
.br
.RI "Describe the isobaric calculation as an ordinary dependency graph, without evaluating the EOS\&. "
.ti -1c
.RI "template<typename EOS, typename Bindings, typename Carrier = void>
.br
requires PressureSurfaceCompilable<EOS, Bindings, Carrier>auto \fBmake_pressure_surface_graph\fP ()"
.br
.RI "Infer a unique carrier-resolved formulation directly from an EOS and the available physical state\&. "
.ti -1c
.RI "template<PressureSurfaceFormulationType Formulation> std::expected< \fBSurfaceLinearization\fP< Formulation >, \fBSurfaceFailure\fP > \fBevaluate_pressure_surface\fP (const typename Formulation::EquationOfState &equation_of_state, const \fBIsobaricSurface\fP &condition, const \fBSurfacePoint\fP< Formulation > &point)"
.br
.RI "Evaluate the chosen isobaric residual and its analytical derivatives at one boundary point\&. "
.ti -1c
.RI "template<SurfaceScalarTerm Term> auto \fBboundary_values\fP (std::vector< double > values)"
.br
.RI "Supply owned boundary samples to an ordinary dependency context, keyed by their physical term\&. "
.ti -1c
.RI "auto \fBpressure_condition\fP (\fBIsobaricSurface\fP condition)"
.br
.RI "Supply the isobaric condition as an owned dependency source, with pressure tracked by value\&. "
.in -1c
.SH "Typedef Documentation"
.PP
.SS "using \fBserif::geometry::surface::Isobaric\fP = \fBIsobaricSurface\fP"
.SS "template<typename EOS, typename Bindings, typename Carrier = void> using \fBserif::geometry::surface::pressure_relation_t\fP = std::tuple_element_t<0, typename \fBdetail::MatchingPressureRelations\fP<std::remove_cvref_t<EOS>, std::remove_cvref_t<Bindings>, Carrier, typename std::remove_cvref_t<EOS>::Relations>::Matches>"
.SS "template<PressureSurfaceFormulationType Formulation> using \fBserif::geometry::surface::SurfaceLinearization\fP = \fBequations::PointLinearization\fP<typename Formulation::Operands>"
.SS "template<PressureSurfaceFormulationType Formulation> using \fBserif::geometry::surface::SurfacePoint\fP = \fBequations::EquationPoint\fP<typename Formulation::Operands>"
.SH "Enumeration Type Documentation"
.PP
.SS "enum class \fBserif::geometry::surface::PressureSurfaceSelection\fP\fR [strong]\fP"
.PP
\fBEnumerator\fP
.in +1c
.TP
\f(BIsupported \fP
.TP
\f(BIunavailable \fP
.TP
\f(BIambiguous \fP
.SS "enum class \fBserif::geometry::surface::SurfaceFailureReason\fP\fR [strong]\fP"
.PP
\fBEnumerator\fP
.in +1c
.TP
\f(BInon_finite_state \fP
.TP
\f(BInon_finite_eos_response \fP
.TP
\f(BInon_finite_linearization \fP
.TP
\f(BIinconsistent_sample_count \fP
.TP
\f(BIempty_surface \fP
.SH "Function Documentation"
.PP
.SS "template<SurfaceScalarTerm Term> auto serif::geometry::surface::boundary_values (std::vector< double > values)\fR [nodiscard]\fP"
.PP
Supply owned boundary samples to an ordinary dependency context, keyed by their physical term\&.
.SS "template<PressureSurfaceFormulationType Formulation> std::expected< \fBSurfaceLinearization\fP< Formulation >, \fBSurfaceFailure\fP > serif::geometry::surface::evaluate_pressure_surface (const typename Formulation::EquationOfState & equation_of_state, const \fBIsobaricSurface\fP & condition, const \fBSurfacePoint\fP< Formulation > & point)\fR [nodiscard]\fP"
.PP
Evaluate the chosen isobaric residual and its analytical derivatives at one boundary point\&.
.PP
\fBParameters\fP
.RS 4
\fIequation_of_state\fP The EOS declared by Formulation\&.
.br
\fIcondition\fP The prescribed surface pressure, independent of the choice of carrier\&.
.br
\fIpoint\fP Values of the formulation's bound scalar terms, already sampled at a common boundary point\&.
.RE
.PP
\fBReturns\fP
.RS 4
A conventional equation linearization, or a numerical rejection\&. No preparation or borrowed state is retained\&.
.RE
.PP
\fBNote\fP
.RS 4
Domain exceptions from an existing throwing EOS propagate; no exception is used for surface validation\&.
.RE
.PP
.SS "template<PressureSurfaceFormulationType Formulation, template< typename > typename SampleKey = std::type_identity_t> auto serif::geometry::surface::make_pressure_surface_computations ()\fR [nodiscard]\fP"
.PP
Expose the existing EOS and residual stages for composition with backend sampling or other physics\&.
.SS "template<PressureSurfaceFormulationType Formulation> auto serif::geometry::surface::make_pressure_surface_graph ()\fR [nodiscard]\fP"
.PP
Describe the isobaric calculation as an ordinary dependency graph, without evaluating the EOS\&.
.PP
\fBTemplate Parameters\fP
.RS 4
\fIFormulation\fP A carrier-resolved or explicitly selected direct-pressure surface formulation\&.
.RE
.PP
\fBReturns\fP
.RS 4
Two computations: the EOS response and the boundary residual with analytical derivatives\&.
.RE
.PP
\fBNote\fP
.RS 4
Supply pressure_condition and boundary_values, and bind \fBkeys::EquationOfState\fP with a tracking policy when the formulation uses the EOS\&. A pressure-field formulation needs no EOS source\&. Use make_computation_cache<SurfaceFailure> and its normal try_prepare/get interface; the cache owns the complete preparation lifecycle\&.
.RE
.PP
.SS "template<typename EOS, typename Bindings, typename Carrier = void>
.br
requires PressureSurfaceCompilable<EOS, Bindings, Carrier>auto serif::geometry::surface::make_pressure_surface_graph ()\fR [nodiscard]\fP"
.PP
Infer a unique carrier-resolved formulation directly from an EOS and the available physical state\&.
.SS "auto serif::geometry::surface::pressure_condition (\fBIsobaricSurface\fP condition)\fR [inline]\fP, \fR [nodiscard]\fP"
.PP
Supply the isobaric condition as an owned dependency source, with pressure tracked by value\&.
.SH "Author"
.PP
Generated automatically by Doxygen for SERiF from the source code\&.