Files
MeanField_SERiF/docs/man/man3/serif_geometry_surface.3

261 lines
9.8 KiB
Groff
Raw Normal View History

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