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

404 lines
20 KiB
Groff

.TH "serif::model::detail" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
.ad l
.nh
.SH NAME
serif::model::detail
.SH SYNOPSIS
.br
.PP
.SS "Classes"
.in +1c
.ti -1c
.RI "struct \fBArgumentsMatch\fP"
.br
.ti -1c
.RI "struct \fBArgumentsMatch< utils::types::TypeList< Specifications\&.\&.\&. >, Arguments\&.\&.\&. >\fP"
.br
.ti -1c
.RI "struct \fBCanonicalSpecifications\fP"
.br
.ti -1c
.RI "struct \fBCanonicalSpecifications< Head, Tail\&.\&.\&. >\fP"
.br
.ti -1c
.RI "struct \fBCanonicalSpecifications<>\fP"
.br
.ti -1c
.RI "struct \fBCartesianCouplings\fP"
.br
.ti -1c
.RI "struct \fBCartesianCouplings< utils::dependencies::KeyList< Rows\&.\&.\&. >, utils::dependencies::KeyList< Fields\&.\&.\&. > >\fP"
.br
.ti -1c
.RI "struct \fBEndpointOwner\fP"
.br
.RI "Recognize generated endpoint identities without interpreting unrelated physical names\&. "
.ti -1c
.RI "struct \fBEndpointOwner< ConstraintOf< Specification > >\fP"
.br
.ti -1c
.RI "struct \fBEndpointOwner< GeneratedCoordinateOf< Specification > >\fP"
.br
.ti -1c
.RI "struct \fBEnforcementDependencies\fP"
.br
.RI "Legacy prescriptions retain their original dependencies unless an equation explicitly registers another enforcement\&. "
.ti -1c
.RI "struct \fBEnforcementDependencies< Specification, Bindings, true >\fP"
.br
.ti -1c
.RI "struct \fBEquationCouplings\fP"
.br
.ti -1c
.RI "struct \fBEquationCouplings< Equation, utils::types::TypeList< Columns\&.\&.\&. > >\fP"
.br
.ti -1c
.RI "struct \fBEquilibriumCouplings\fP"
.br
.ti -1c
.RI "struct \fBExecutionInputs\fP"
.br
.ti -1c
.RI "struct \fBExecutionInputs< Plan, std::void_t< typename Plan::PhysicalInputs, typename Plan::InactiveRows > >\fP"
.br
.ti -1c
.RI "struct \fBExecutionSurface\fP"
.br
.ti -1c
.RI "struct \fBExecutionSurface< Plan, std::void_t< typename Plan::Surface > >\fP"
.br
.ti -1c
.RI "struct \fBInsertSpecification\fP"
.br
.ti -1c
.RI "struct \fBInsertSpecification< Specification, utils::types::TypeList< Head, Tail\&.\&.\&. > >\fP"
.br
.ti -1c
.RI "struct \fBInsertSpecification< Specification, utils::types::TypeList<> >\fP"
.br
.ti -1c
.RI "struct \fBInteriorCouplings\fP"
.br
.ti -1c
.RI "struct \fBInteriorCouplings< equations::EquationRegistry< Equations\&.\&.\&. > >\fP"
.br
.ti -1c
.RI "struct \fBInteriorPlan\fP"
.br
.ti -1c
.RI "struct \fBInteriorPlan< equations::EquationRegistry< Equations\&.\&.\&. > >\fP"
.br
.ti -1c
.RI "struct \fBOperandTerms\fP"
.br
.ti -1c
.RI "struct \fBOperandTerms< utils::types::TypeList< Operands\&.\&.\&. > >\fP"
.br
.ti -1c
.RI "struct \fBPreferredSurfaceField\fP"
.br
.ti -1c
.RI "struct \fBPreferredSurfaceField< utils::types::TypeList< Equations\&.\&.\&. > >\fP"
.br
.ti -1c
.RI "struct \fBRemoveKeys\fP"
.br
.ti -1c
.RI "struct \fBRemoveKeys< utils::dependencies::KeyList< Keys\&.\&.\&. >, Excluded >\fP"
.br
.ti -1c
.RI "struct \fBResolvedEndpoints\fP"
.br
.ti -1c
.RI "struct \fBResolvedEndpoints< Owner, utils::types::TypeList< Endpoints\&.\&.\&. >, Bindings >\fP"
.br
.ti -1c
.RI "struct \fBResolvedSpecification\fP"
.br
.RI "Share resolved physical identities between endpoint and numerical-provider checks\&. "
.ti -1c
.RI "struct \fBSelectedSurface\fP"
.br
.RI "A disabled or unavailable boundary has no compiled field or row requirements\&. "
.ti -1c
.RI "struct \fBSelectedSurface< Selection, true >\fP"
.br
.ti -1c
.RI "struct \fBSelectRole\fP"
.br
.ti -1c
.RI "struct \fBShapePlan\fP"
.br
.ti -1c
.RI "struct \fBShapePlan< equations::SurfacePotentialBalance >\fP"
.br
.RI "The isobar level couples only existing scalar potential, rotation and mass coordinates\&. "
.ti -1c
.RI "struct \fBShapePlan< NoShapeForce >\fP"
.br
.ti -1c
.RI "struct \fBSurfaceFieldHint\fP"
.br
.ti -1c
.RI "struct \fBSurfaceFieldHint< Equation, std::void_t< typename Equation::IsobaricSurfaceField > >\fP"
.br
.RI "An equation author may disambiguate surface enforcement without changing the physical condition\&. "
.ti -1c
.RI "struct \fBSurfacePlan\fP"
.br
.ti -1c
.RI "struct \fBSurfacePlan< geometry::surface::Isobaric, EOS, Fields, Rows, Solved, Equations >\fP"
.br
.RI "Compile the condition once; planning, graph assembly and validation share the selected formulation\&. "
.ti -1c
.RI "struct \fBSurfacePlan< NoSurfaceCondition, EOS, Fields, Rows, Solved, Equations >\fP"
.br
.ti -1c
.RI "struct \fBUniqueSurfaceField\fP"
.br
.ti -1c
.RI "struct \fBUniqueSurfaceField< utils::dependencies::KeyList< Field, Others\&.\&.\&. > >\fP"
.br
.ti -1c
.RI "struct \fBUniqueSurfaceField< utils::dependencies::KeyList<> >\fP"
.br
.in -1c
.SS "Typedefs"
.in +1c
.ti -1c
.RI "template<typename Specification> using \fBGeneratesState\fP = std::bool_constant<Specification::ModelDefinition::generated_state_kind != \fBGeneratedStateKind::none\fP>"
.br
.ti -1c
.RI "template<typename Model> using \fBGeneratedSpecifications\fP = \fButils::misc::concepts::FilterT\fP<typename Model::SpecificationTypes, \fBGeneratesState\fP>"
.br
.RI "Numerical checks operate only on prescriptions that introduce a coordinate and equation\&. "
.ti -1c
.RI "template<typename Owner, typename Endpoint, typename Bindings> using \fBResolvedEndpoint\fP = typename decltype(\fBresolved_endpoint\fP<Owner, Endpoint, Bindings>())::type"
.br
.in -1c
.SS "Functions"
.in +1c
.ti -1c
.RI "template<typename Layout, typename Owner, typename\&.\&.\&. ContributionKeys> auto \fBphysical_system_computation\fP (Layout layout, std::shared_ptr< const Owner > owner, \fButils::dependencies::KeyList\fP< ContributionKeys\&.\&.\&. >)"
.br
.RI "Collect all additions before applying any boundary replacement\&. "
.ti -1c
.RI "template<typename\&.\&.\&. Equations, typename\&.\&.\&. Additional> consteval auto \fBcontribution_keys\fP (\fButils::types::TypeList\fP< Equations\&.\&.\&. >, \fButils::dependencies::KeyList\fP< Additional\&.\&.\&. >)"
.br
.RI "Every interior equation contributes once; extension keys identify explicit additions or replacements\&. "
.ti -1c
.RI "template<typename Registry, typename Discretization, typename Layout, typename\&.\&.\&. Equations> auto \fBinterior_computations\fP (const std::shared_ptr< const Registry > &registry, const Discretization &discretization, const Layout &layout, \fBoperators::backend::mfem::VolumeOptions\fP options, \fButils::types::TypeList\fP< Equations\&.\&.\&. >)"
.br
.RI "Share each immutable equation with its volume graph, then publish one complete row contribution\&. "
.ti -1c
.RI "template<typename Bound, typename Layout> auto \fBshape_computations\fP (const std::shared_ptr< const Bound > &bound, const Layout &layout)"
.br
.RI "One shared deformation feeds all geometry derivatives and the surface-potential shape row\&. "
.ti -1c
.RI "template<typename Bound, typename Layout> auto \fBboundary_computations\fP (const Bound &, const Layout &layout)"
.br
.RI "Sample the internally selected pressure formulation through its compiled traces\&. "
.ti -1c
.RI "template<typename Plan> consteval auto \fBequilibrium_contribution_keys\fP ()"
.br
.RI "Name exactly the explicitly selected non-interior contributions to final assembly\&. "
.ti -1c
.RI "template<typename Owner, typename Endpoint, typename Bindings> consteval auto \fBresolved_endpoint\fP ()"
.br
.RI "Resolve owned aliases and explicit bindings without merging same-unit identities\&. "
.ti -1c
.RI "template<typename Model, typename Endpoint> consteval bool \fBendpoint_owner_present\fP ()"
.br
.RI "A coordinate binding cannot supply an absent or non-generating physical prescription\&. "
.ti -1c
.RI "template<ModelSpecification Left, ModelSpecification Right> consteval bool \fBspecification_precedes\fP ()"
.br
.RI "Compare physical identities in the historical role, coordinate-kind, stable-name order\&. "
.ti -1c
.RI "template<ModelSpecification\&.\&.\&. Specifications> consteval bool \fBunique_specification_names\fP ()"
.br
.RI "Reject semantic collisions even when two prescriptions have different C++ types or scalar kinds\&. "
.ti -1c
.RI "template<typename\&.\&.\&. Specifications, typename\&.\&.\&. Arguments> std::tuple< Specifications\&.\&.\&. > \fBcanonical_specifications\fP (\fButils::types::TypeList\fP< Specifications\&.\&.\&. >, Arguments &&\&.\&.\&. arguments)"
.br
.RI "Consume the argument tuple once, moving each specification into its canonical slot once\&. "
.ti -1c
.RI "template<typename Definition, typename Model> decltype(auto) \fBresolve_equation_member\fP (Definition &&definition, const Model &model)"
.br
.RI "Evaluate a physical definition or retain its immutable object without requiring a copy\&. "
.ti -1c
.RI "template<typename Definition, typename Model> auto \fBresolve_equation_members\fP (Definition &&definition, const Model &model)"
.br
.RI "Resolve each explicit part, owning temporary results and borrowing unchanged model members\&. "
.ti -1c
.RI "template<DimensionalScalarSpecification Specification, typename Rows, typename InactiveRows, typename Actual, typename Bindings> consteval bool \fBgenerated_physics_is_present\fP ()"
.br
.RI "Demand an explicitly supplied generated equation and effect before inferring closed-row zeros\&. "
.ti -1c
.RI "template<typename Rows, typename InactiveRows, typename Actual, typename Bindings, typename\&.\&.\&. Specifications> consteval bool \fBgenerated_physics_are_present\fP (\fButils::types::TypeList\fP< Specifications\&.\&.\&. >)"
.br
.RI "Check only numerical-provider admission; physical endpoint ownership is checked separately\&. "
.ti -1c
.RI "template<typename Rows, typename\&.\&.\&. Required> consteval bool \fBequation_rows_exist\fP (\fButils::dependencies::KeyList\fP< Required\&.\&.\&. >)"
.br
.RI "Every surface carrier must have an equation row in the selected layout\&. "
.ti -1c
.RI "consteval bool \fBcompatible_generated_state\fP (\fBSpecificationRole\fP role, \fBGeneratedStateKind\fP kind)"
.br
.RI "Reject unknown enums and mismatched physical roles before inspecting optional scalar metadata\&. "
.ti -1c
.RI "template<DimensionalScalarSpecification Specification, typename Model, typename Values, typename Inputs, typename Rows, typename InactiveRows, typename Bindings> consteval bool \fBvalid_specification_endpoints\fP ()"
.br
.RI "Check physical inputs separately from unknowns and explicitly inactive equations\&. "
.ti -1c
.RI "template<typename Model, typename Values, typename Inputs, typename Rows, typename InactiveRows, typename Bindings, typename\&.\&.\&. Specifications> consteval bool \fBvalid_specifications\fP (\fButils::types::TypeList\fP< Specifications\&.\&.\&. >)"
.br
.RI "Fold independent physical declarations; no equation counting or rank inference is involved\&. "
.ti -1c
.RI "template<DimensionalScalarSpecification Specification, typename Couplings, typename Bindings> consteval bool \fBspecification_derivatives_available\fP ()"
.br
.RI "Validate declared derivative contracts without inferring zeros from missing providers\&. "
.ti -1c
.RI "template<typename Couplings, typename Bindings, typename\&.\&.\&. Specifications> consteval bool \fBspecification_derivatives_available\fP (\fButils::types::TypeList\fP< Specifications\&.\&.\&. >)"
.br
.RI "Check each prescription against independently supplied derivative registrations\&. "
.in -1c
.SS "Variables"
.in +1c
.ti -1c
.RI "template<typename Candidate> constexpr bool \fBis_equilibrium_equations\fP = false"
.br
.ti -1c
.RI "template<typename Interior, typename Shape, typename Surface> constexpr bool \fBis_equilibrium_equations< EquilibriumEquations< Interior, Shape, Surface > >\fP = true"
.br
.ti -1c
.RI "template<typename Candidate> constexpr bool \fBis_type_list\fP = false"
.br
.ti -1c
.RI "template<typename\&.\&.\&. Types> constexpr bool \fBis_type_list< utils::types::TypeList< Types\&.\&.\&. > >\fP = true"
.br
.ti -1c
.RI "template<typename Candidate, typename = void> constexpr bool \fBis_stellar_model\fP = false"
.br
.ti -1c
.RI "template<typename EOS, typename Definition, typename List> constexpr bool \fBis_stellar_model< StellarModel< EOS, Definition, List >, std::void_t< typename StellarModel< EOS, Definition, List >::SpecificationTypes > >\fP = true"
.br
.in -1c
.SH "Typedef Documentation"
.PP
.SS "template<typename Model> using \fBserif::model::detail::GeneratedSpecifications\fP = \fButils::misc::concepts::FilterT\fP<typename Model::SpecificationTypes, \fBGeneratesState\fP>"
.PP
Numerical checks operate only on prescriptions that introduce a coordinate and equation\&.
.SS "template<typename Specification> using \fBserif::model::detail::GeneratesState\fP = std::bool_constant<Specification::ModelDefinition::generated_state_kind != \fBGeneratedStateKind::none\fP>"
.SS "template<typename Owner, typename Endpoint, typename Bindings> using \fBserif::model::detail::ResolvedEndpoint\fP = typename decltype(\fBresolved_endpoint\fP<Owner, Endpoint, Bindings>())::type"
.SH "Function Documentation"
.PP
.SS "template<typename Bound, typename Layout> auto serif::model::detail::boundary_computations (const Bound & , const Layout & layout)\fR [nodiscard]\fP"
.PP
Sample the internally selected pressure formulation through its compiled traces\&.
.SS "template<typename\&.\&.\&. Specifications, typename\&.\&.\&. Arguments> std::tuple< Specifications\&.\&.\&. > serif::model::detail::canonical_specifications (\fButils::types::TypeList\fP< Specifications\&.\&.\&. > , Arguments &&\&.\&.\&. arguments)\fR [nodiscard]\fP"
.PP
Consume the argument tuple once, moving each specification into its canonical slot once\&.
.SS "bool serif::model::detail::compatible_generated_state (\fBSpecificationRole\fP role, \fBGeneratedStateKind\fP kind)\fR [nodiscard]\fP, \fR [consteval]\fP"
.PP
Reject unknown enums and mismatched physical roles before inspecting optional scalar metadata\&.
.SS "template<typename\&.\&.\&. Equations, typename\&.\&.\&. Additional> auto serif::model::detail::contribution_keys (\fButils::types::TypeList\fP< Equations\&.\&.\&. > , \fButils::dependencies::KeyList\fP< Additional\&.\&.\&. > )\fR [nodiscard]\fP, \fR [consteval]\fP"
.PP
Every interior equation contributes once; extension keys identify explicit additions or replacements\&.
.SS "template<typename Model, typename Endpoint> bool serif::model::detail::endpoint_owner_present ()\fR [nodiscard]\fP, \fR [consteval]\fP"
.PP
A coordinate binding cannot supply an absent or non-generating physical prescription\&.
.SS "template<typename Rows, typename\&.\&.\&. Required> bool serif::model::detail::equation_rows_exist (\fButils::dependencies::KeyList\fP< Required\&.\&.\&. > )\fR [nodiscard]\fP, \fR [consteval]\fP"
.PP
Every surface carrier must have an equation row in the selected layout\&.
.SS "template<typename Plan> auto serif::model::detail::equilibrium_contribution_keys ()\fR [nodiscard]\fP, \fR [consteval]\fP"
.PP
Name exactly the explicitly selected non-interior contributions to final assembly\&.
.SS "template<typename Rows, typename InactiveRows, typename Actual, typename Bindings, typename\&.\&.\&. Specifications> bool serif::model::detail::generated_physics_are_present (\fButils::types::TypeList\fP< Specifications\&.\&.\&. > )\fR [nodiscard]\fP, \fR [consteval]\fP"
.PP
Check only numerical-provider admission; physical endpoint ownership is checked separately\&.
.SS "template<DimensionalScalarSpecification Specification, typename Rows, typename InactiveRows, typename Actual, typename Bindings> bool serif::model::detail::generated_physics_is_present ()\fR [nodiscard]\fP, \fR [consteval]\fP"
.PP
Demand an explicitly supplied generated equation and effect before inferring closed-row zeros\&.
.SS "template<typename Registry, typename Discretization, typename Layout, typename\&.\&.\&. Equations> auto serif::model::detail::interior_computations (const std::shared_ptr< const Registry > & registry, const Discretization & discretization, const Layout & layout, \fBoperators::backend::mfem::VolumeOptions\fP options, \fButils::types::TypeList\fP< Equations\&.\&.\&. > )\fR [nodiscard]\fP"
.PP
Share each immutable equation with its volume graph, then publish one complete row contribution\&.
.SS "template<typename Layout, typename Owner, typename\&.\&.\&. ContributionKeys> auto serif::model::detail::physical_system_computation (Layout layout, std::shared_ptr< const Owner > owner, \fButils::dependencies::KeyList\fP< ContributionKeys\&.\&.\&. > )\fR [nodiscard]\fP"
.PP
Collect all additions before applying any boundary replacement\&.
.SS "template<typename Definition, typename Model> decltype(auto) serif::model::detail::resolve_equation_member (Definition && definition, const Model & model)\fR [nodiscard]\fP"
.PP
Evaluate a physical definition or retain its immutable object without requiring a copy\&.
.SS "template<typename Definition, typename Model> auto serif::model::detail::resolve_equation_members (Definition && definition, const Model & model)\fR [nodiscard]\fP"
.PP
Resolve each explicit part, owning temporary results and borrowing unchanged model members\&.
.SS "template<typename Owner, typename Endpoint, typename Bindings> auto serif::model::detail::resolved_endpoint ()\fR [nodiscard]\fP, \fR [consteval]\fP"
.PP
Resolve owned aliases and explicit bindings without merging same-unit identities\&.
.SS "template<typename Bound, typename Layout> auto serif::model::detail::shape_computations (const std::shared_ptr< const Bound > & bound, const Layout & layout)\fR [nodiscard]\fP"
.PP
One shared deformation feeds all geometry derivatives and the surface-potential shape row\&.
.SS "template<DimensionalScalarSpecification Specification, typename Couplings, typename Bindings> bool serif::model::detail::specification_derivatives_available ()\fR [nodiscard]\fP, \fR [consteval]\fP"
.PP
Validate declared derivative contracts without inferring zeros from missing providers\&.
.SS "template<typename Couplings, typename Bindings, typename\&.\&.\&. Specifications> bool serif::model::detail::specification_derivatives_available (\fButils::types::TypeList\fP< Specifications\&.\&.\&. > )\fR [nodiscard]\fP, \fR [consteval]\fP"
.PP
Check each prescription against independently supplied derivative registrations\&.
.SS "template<ModelSpecification Left, ModelSpecification Right> bool serif::model::detail::specification_precedes ()\fR [nodiscard]\fP, \fR [consteval]\fP"
.PP
Compare physical identities in the historical role, coordinate-kind, stable-name order\&.
.SS "template<ModelSpecification\&.\&.\&. Specifications> bool serif::model::detail::unique_specification_names ()\fR [nodiscard]\fP, \fR [consteval]\fP"
.PP
Reject semantic collisions even when two prescriptions have different C++ types or scalar kinds\&.
.SS "template<DimensionalScalarSpecification Specification, typename Model, typename Values, typename Inputs, typename Rows, typename InactiveRows, typename Bindings> bool serif::model::detail::valid_specification_endpoints ()\fR [nodiscard]\fP, \fR [consteval]\fP"
.PP
Check physical inputs separately from unknowns and explicitly inactive equations\&.
.SS "template<typename Model, typename Values, typename Inputs, typename Rows, typename InactiveRows, typename Bindings, typename\&.\&.\&. Specifications> bool serif::model::detail::valid_specifications (\fButils::types::TypeList\fP< Specifications\&.\&.\&. > )\fR [nodiscard]\fP, \fR [consteval]\fP"
.PP
Fold independent physical declarations; no equation counting or rank inference is involved\&.
.SH "Variable Documentation"
.PP
.SS "template<typename Candidate> bool serif::model::detail::is_equilibrium_equations = false\fR [inline]\fP, \fR [constexpr]\fP"
.SS "template<typename Interior, typename Shape, typename Surface> bool \fBserif::model::detail::is_equilibrium_equations\fP< \fBEquilibriumEquations\fP< Interior, Shape, Surface > > = true\fR [inline]\fP, \fR [constexpr]\fP"
.SS "template<typename Candidate, typename = void> bool serif::model::detail::is_stellar_model = false\fR [inline]\fP, \fR [constexpr]\fP"
.SS "template<typename EOS, typename Definition, typename List> bool \fBserif::model::detail::is_stellar_model\fP< \fBStellarModel\fP< EOS, Definition, List >, std::void_t< typename \fBStellarModel\fP< EOS, Definition, List >::SpecificationTypes > > = true\fR [inline]\fP, \fR [constexpr]\fP"
.SS "template<typename Candidate> bool serif::model::detail::is_type_list = false\fR [inline]\fP, \fR [constexpr]\fP"
.SS "template<typename\&.\&.\&. Types> bool \fBserif::model::detail::is_type_list\fP< \fButils::types::TypeList\fP< Types\&.\&.\&. > > = true\fR [inline]\fP, \fR [constexpr]\fP"
.SH "Author"
.PP
Generated automatically by Doxygen for SERiF from the source code\&.