Files
MeanField_SERiF/docs/xml/namespaceserif_1_1model.xml
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

1072 lines
60 KiB
XML

<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.13.2" xml:lang="en-US">
<compounddef id="namespaceserif_1_1model" kind="namespace" language="C++">
<compoundname>serif::model</compoundname>
<innerclass refid="structserif_1_1model_1_1_constraint_of" prot="public">serif::model::ConstraintOf</innerclass>
<innerclass refid="structserif_1_1model_1_1_discretization_options" prot="public">serif::model::DiscretizationOptions</innerclass>
<innerclass refid="structserif_1_1model_1_1_enforcement_of" prot="public">serif::model::EnforcementOf</innerclass>
<innerclass refid="classserif_1_1model_1_1_eos_reference" prot="public">serif::model::EosReference</innerclass>
<innerclass refid="structserif_1_1model_1_1_equilibrium_equations" prot="public">serif::model::EquilibriumEquations</innerclass>
<innerclass refid="structserif_1_1model_1_1_equilibrium_plan" prot="public">serif::model::EquilibriumPlan</innerclass>
<innerclass refid="classserif_1_1model_1_1_fixed_angular_momentum" prot="public">serif::model::FixedAngularMomentum</innerclass>
<innerclass refid="classserif_1_1model_1_1_fixed_total_mass" prot="public">serif::model::FixedTotalMass</innerclass>
<innerclass refid="structserif_1_1model_1_1_generated_coordinate_of" prot="public">serif::model::GeneratedCoordinateOf</innerclass>
<innerclass refid="structserif_1_1model_1_1_model_plan" prot="public">serif::model::ModelPlan</innerclass>
<innerclass refid="structserif_1_1model_1_1_no_shape_force" prot="public">serif::model::NoShapeForce</innerclass>
<innerclass refid="structserif_1_1model_1_1_no_surface_condition" prot="public">serif::model::NoSurfaceCondition</innerclass>
<innerclass refid="structserif_1_1model_1_1_scalar_constraint" prot="public">serif::model::ScalarConstraint</innerclass>
<innerclass refid="structserif_1_1model_1_1_specification_definition" prot="public">serif::model::SpecificationDefinition</innerclass>
<innerclass refid="structserif_1_1model_1_1_specification_descriptor" prot="public">serif::model::SpecificationDescriptor</innerclass>
<innerclass refid="structserif_1_1model_1_1_stellar_mesh_options" prot="public">serif::model::StellarMeshOptions</innerclass>
<innerclass refid="classserif_1_1model_1_1_stellar_model" prot="public">serif::model::StellarModel</innerclass>
<innerclass refid="classserif_1_1model_1_1_stellar_model_3_01_equation_of_state_t_00_01_equation_definition_t_00_016d3cb5fe23fb2ea683d797d35ea27bae" prot="public">serif::model::StellarModel&lt; EquationOfStateT, EquationDefinitionT, utils::types::TypeList&lt; Specifications... &gt; &gt;</innerclass>
<innerclass refid="structserif_1_1model_1_1_stellar_state" prot="public">serif::model::StellarState</innerclass>
<innerclass refid="structserif_1_1model_1_1_stellar_surface_refinement_options" prot="public">serif::model::StellarSurfaceRefinementOptions</innerclass>
<innernamespace refid="namespaceserif_1_1model_1_1backend">serif::model::backend</innernamespace>
<innernamespace refid="namespaceserif_1_1model_1_1checks">serif::model::checks</innernamespace>
<innernamespace refid="namespaceserif_1_1model_1_1computations">serif::model::computations</innernamespace>
<innernamespace refid="namespaceserif_1_1model_1_1detail">serif::model::detail</innernamespace>
<innernamespace refid="namespaceserif_1_1model_1_1equation">serif::model::equation</innernamespace>
<innernamespace refid="namespaceserif_1_1model_1_1keys">serif::model::keys</innernamespace>
<innernamespace refid="namespaceserif_1_1model_1_1normalization">serif::model::normalization</innernamespace>
<innernamespace refid="namespaceserif_1_1model_1_1preconditioning">serif::model::preconditioning</innernamespace>
<innernamespace refid="namespaceserif_1_1model_1_1state">serif::model::state</innernamespace>
<sectiondef kind="enum">
<memberdef kind="enum" id="namespaceserif_1_1model_1a80cb843c4b97c06905b775aba9d4b813" prot="public" static="no" strong="yes">
<type></type>
<name>SpecificationRole</name>
<qualifiedname>serif::model::SpecificationRole</qualifiedname>
<enumvalue id="namespaceserif_1_1model_1a80cb843c4b97c06905b775aba9d4b813a7832eb62b9d5da114fbd828501794b90" prot="public">
<name>constitutive_law</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1model_1a80cb843c4b97c06905b775aba9d4b813a8360be627354dd5a66ea7e358d0109a4" prot="public">
<name>boundary_condition</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1model_1a80cb843c4b97c06905b775aba9d4b813a97a1fb4792ab0d80857d825020ced2f0" prot="public">
<name>invariant</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1model_1a80cb843c4b97c06905b775aba9d4b813ab55fad3fe78d06b3d481aef2500c784b" prot="public">
<name>phase_condition</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1model_1a80cb843c4b97c06905b775aba9d4b813a49d377e11d9c996137d2ef9ca80a1482" prot="public">
<name>gauge_choice</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1model_1a80cb843c4b97c06905b775aba9d4b813ae7aa3fcb6ca31a1a1fa583a6e4a98c30" prot="public">
<name>rotation_law</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<briefdescription>
<para>Physical purpose of a prescription, independently of its numerical implementation. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/specification.hpp" line="16" column="5" bodyfile="src/include/serif/model/specification.hpp" bodystart="17" bodyend="19"/>
</memberdef>
<memberdef kind="enum" id="namespaceserif_1_1model_1a9dbd561b48b9cbb817a4102517d065ca" prot="public" static="no" strong="yes">
<type></type>
<name>GeneratedStateKind</name>
<qualifiedname>serif::model::GeneratedStateKind</qualifiedname>
<enumvalue id="namespaceserif_1_1model_1a9dbd561b48b9cbb817a4102517d065caa334c4a4c42fdb79d7ebc3e73b517e6f8" prot="public">
<name>none</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1model_1a9dbd561b48b9cbb817a4102517d065caa2375dfa839ccd84978745547605b21e4" prot="public">
<name>multiplier</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1model_1a9dbd561b48b9cbb817a4102517d065caa5b029370da350a18e571dffd4b78ae47" prot="public">
<name>physical_coordinate</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1model_1a9dbd561b48b9cbb817a4102517d065caa2fadfbbb30ccd79bbdcae01edd52f2b5" prot="public">
<name>solver_border</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<briefdescription>
<para>Distinguish prescribed physics from the physical meaning of a generated scalar. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/specification.hpp" line="22" column="5" bodyfile="src/include/serif/model/specification.hpp" bodystart="23" bodyend="25"/>
</memberdef>
</sectiondef>
<sectiondef kind="typedef">
<memberdef kind="typedef" id="namespaceserif_1_1model_1a1a9e18895b6021d27952932da09eb71b" prot="public" static="no">
<templateparamlist>
<param>
<type>ExecutableEquilibriumDescription</type>
<declname>Description</declname>
<defname>Description</defname>
</param>
<param>
<type>typename Plan</type>
</param>
</templateparamlist>
<type>typename <ref refid="structserif_1_1model_1_1detail_1_1_equilibrium_couplings" kindref="compound">detail::EquilibriumCouplings</ref>&lt; Description, <ref refid="structserif_1_1model_1_1detail_1_1_execution_surface" kindref="compound">detail::ExecutionSurface</ref>&lt; Plan &gt; &gt;::Type</type>
<definition>using serif::model::ActualEquilibriumCouplings = typename detail::EquilibriumCouplings&lt;Description, detail::ExecutionSurface&lt;Plan&gt;&gt;::Type</definition>
<argsstring></argsstring>
<name>ActualEquilibriumCouplings</name>
<qualifiedname>serif::model::ActualEquilibriumCouplings</qualifiedname>
<briefdescription>
<para>Inspect the actual derivative producers admitted by the explicitly supplied physical formulation. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/execution_validation.hpp" line="102" column="5" bodyfile="src/include/serif/model/execution_validation.hpp" bodystart="102" bodyend="-1"/>
</memberdef>
<memberdef kind="typedef" id="namespaceserif_1_1model_1a251ff98f4ef742b690180c7cb06292bb" prot="public" static="no">
<templateparamlist>
<param>
<type>typename...</type>
<declname>Fields</declname>
<defname>Fields</defname>
</param>
</templateparamlist>
<type><ref refid="structserif_1_1utils_1_1types_1_1_type_list" kindref="compound">utils::types::TypeList</ref>&lt; Fields... &gt;</type>
<definition>using serif::model::Reads = utils::types::TypeList&lt;Fields...&gt;</definition>
<argsstring></argsstring>
<name>Reads</name>
<qualifiedname>serif::model::Reads</qualifiedname>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/specification.hpp" line="43" column="5" bodyfile="src/include/serif/model/specification.hpp" bodystart="43" bodyend="-1"/>
</memberdef>
<memberdef kind="typedef" id="namespaceserif_1_1model_1a5cbe5c0513a11299350110cee5d31821" prot="public" static="no">
<templateparamlist>
<param>
<type>typename...</type>
<declname>Equations</declname>
<defname>Equations</defname>
</param>
</templateparamlist>
<type><ref refid="structserif_1_1utils_1_1types_1_1_type_list" kindref="compound">utils::types::TypeList</ref>&lt; Equations... &gt;</type>
<definition>using serif::model::Changes = utils::types::TypeList&lt;Equations...&gt;</definition>
<argsstring></argsstring>
<name>Changes</name>
<qualifiedname>serif::model::Changes</qualifiedname>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/specification.hpp" line="46" column="5" bodyfile="src/include/serif/model/specification.hpp" bodystart="46" bodyend="-1"/>
</memberdef>
<memberdef kind="typedef" id="namespaceserif_1_1model_1ac7544ec47f3986209861b7fb0b6ae4bf" prot="public" static="no">
<templateparamlist>
<param>
<type>DimensionalScalarSpecification</type>
<declname>Specification</declname>
<defname>Specification</defname>
</param>
</templateparamlist>
<type>typename Specification::ModelDefinition::ScalarDescription::CoordinateQuantity</type>
<definition>using serif::model::GeneratedCoordinateQuantity = typename Specification::ModelDefinition::ScalarDescription::CoordinateQuantity</definition>
<argsstring></argsstring>
<name>GeneratedCoordinateQuantity</name>
<qualifiedname>serif::model::GeneratedCoordinateQuantity</qualifiedname>
<briefdescription>
<para>Query scalar units only once the owning prescription is complete. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/specification.hpp" line="142" column="5" bodyfile="src/include/serif/model/specification.hpp" bodystart="142" bodyend="-1"/>
</memberdef>
<memberdef kind="typedef" id="namespaceserif_1_1model_1a36d5c59d89fffbd444ee44415f85bbed" prot="public" static="no">
<templateparamlist>
<param>
<type>DimensionalScalarSpecification</type>
<declname>Specification</declname>
<defname>Specification</defname>
</param>
</templateparamlist>
<type>typename Specification::ModelDefinition::ScalarDescription::ResidualQuantity</type>
<definition>using serif::model::ConstraintQuantity = typename Specification::ModelDefinition::ScalarDescription::ResidualQuantity</definition>
<argsstring></argsstring>
<name>ConstraintQuantity</name>
<qualifiedname>serif::model::ConstraintQuantity</qualifiedname>
<briefdescription>
<para>Residual units remain independent from the target and generated coordinate. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/specification.hpp" line="146" column="5" bodyfile="src/include/serif/model/specification.hpp" bodystart="146" bodyend="-1"/>
</memberdef>
<memberdef kind="typedef" id="namespaceserif_1_1model_1aeb8535e8d8e5b2b39d913f12b149a2b3" prot="public" static="no">
<templateparamlist>
<param>
<type>SpecificationRole</type>
<declname>Role</declname>
<defname>Role</defname>
</param>
<param>
<type>StellarModelType</type>
<declname>Candidate</declname>
<defname>Candidate</defname>
</param>
</templateparamlist>
<type>typename std::remove_cvref_t&lt; Candidate &gt;::template <ref refid="namespaceserif_1_1model_1aeb8535e8d8e5b2b39d913f12b149a2b3" kindref="member">SpecificationsForRole</ref>&lt; Role &gt;</type>
<definition>using serif::model::SpecificationsForRole = typename std::remove_cvref_t&lt;Candidate&gt;::template SpecificationsForRole&lt;Role&gt;</definition>
<argsstring></argsstring>
<name>SpecificationsForRole</name>
<qualifiedname>serif::model::SpecificationsForRole</qualifiedname>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/stellar_model.hpp" line="185" column="5" bodyfile="src/include/serif/model/stellar_model.hpp" bodystart="185" bodyend="-1"/>
</memberdef>
<memberdef kind="typedef" id="namespaceserif_1_1model_1a95bbbd670343f9cd11939d21c5bf79ab" prot="public" static="no">
<templateparamlist>
<param>
<type>typename Row</type>
</param>
<param>
<type>typename Field</type>
</param>
</templateparamlist>
<type><ref refid="structserif_1_1operators_1_1_physical_block" kindref="compound">operators::PhysicalBlock</ref>&lt; <ref refid="structserif_1_1utils_1_1dependencies_1_1_key_list" kindref="compound">utils::dependencies::KeyList</ref>&lt; Row &gt;, <ref refid="structserif_1_1utils_1_1dependencies_1_1_key_list" kindref="compound">utils::dependencies::KeyList</ref>&lt; Field &gt; &gt;</type>
<definition>using serif::model::Derivative = operators::PhysicalBlock&lt;utils::dependencies::KeyList&lt;Row&gt;, utils::dependencies::KeyList&lt;Field&gt;&gt;</definition>
<argsstring></argsstring>
<name>Derivative</name>
<qualifiedname>serif::model::Derivative</qualifiedname>
<briefdescription>
<para>Name a physical derivative using the shared block-source key convention. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/validation.hpp" line="12" column="5" bodyfile="src/include/serif/model/validation.hpp" bodystart="12" bodyend="-1"/>
</memberdef>
<memberdef kind="typedef" id="namespaceserif_1_1model_1aa7c7c71dc1c2c0431623ac27c88bdb0b" prot="public" static="no">
<templateparamlist>
<param>
<type>utils::dependencies::IsBinding...</type>
<declname>Additional</declname>
<defname>Additional</defname>
</param>
</templateparamlist>
<type><ref refid="structserif_1_1utils_1_1dependencies_1_1_bindings" kindref="compound">utils::dependencies::Bindings</ref>&lt; <ref refid="structserif_1_1utils_1_1dependencies_1_1_binding" kindref="compound">utils::dependencies::Binding</ref>&lt; <ref refid="structserif_1_1model_1_1state_1_1_density" kindref="compound">state::Density</ref>, <ref refid="structserif_1_1discretization_1_1blocks_1_1density_1_1mass" kindref="compound">discretization::blocks::density::mass</ref> &gt;, <ref refid="structserif_1_1utils_1_1dependencies_1_1_binding" kindref="compound">utils::dependencies::Binding</ref>&lt; <ref refid="structserif_1_1model_1_1state_1_1_surface_shape" kindref="compound">state::SurfaceShape</ref>, <ref refid="structserif_1_1discretization_1_1blocks_1_1surface__deformation_1_1coefficients" kindref="compound">discretization::blocks::surface_deformation::coefficients</ref> &gt;, <ref refid="structserif_1_1utils_1_1dependencies_1_1_binding" kindref="compound">utils::dependencies::Binding</ref>&lt; <ref refid="structserif_1_1model_1_1state_1_1_gravitational_potential" kindref="compound">state::GravitationalPotential</ref>, <ref refid="structserif_1_1discretization_1_1blocks_1_1gravity_1_1potential" kindref="compound">discretization::blocks::gravity::potential</ref> &gt;, <ref refid="structserif_1_1utils_1_1dependencies_1_1_binding" kindref="compound">utils::dependencies::Binding</ref>&lt; <ref refid="structserif_1_1model_1_1equation_1_1_poisson_balance" kindref="compound">equation::PoissonBalance</ref>, <ref refid="structserif_1_1discretization_1_1blocks_1_1gravity_1_1potential" kindref="compound">discretization::blocks::gravity::potential</ref> &gt;, <ref refid="structserif_1_1utils_1_1dependencies_1_1_binding" kindref="compound">utils::dependencies::Binding</ref>&lt; <ref refid="structserif_1_1model_1_1equation_1_1_surface_shape_balance" kindref="compound">equation::SurfaceShapeBalance</ref>, <ref refid="structserif_1_1discretization_1_1blocks_1_1surface__deformation_1_1shape__equilibrium" kindref="compound">discretization::blocks::surface_deformation::shape_equilibrium</ref> &gt;, <ref refid="structserif_1_1utils_1_1dependencies_1_1_binding" kindref="compound">utils::dependencies::Binding</ref>&lt; <ref refid="structserif_1_1model_1_1equation_1_1_hydrostatic_balance" kindref="compound">equation::HydrostaticBalance</ref>, <ref refid="structserif_1_1discretization_1_1blocks_1_1density_1_1mass" kindref="compound">discretization::blocks::density::mass</ref> &gt;, <ref refid="structserif_1_1utils_1_1dependencies_1_1_binding" kindref="compound">utils::dependencies::Binding</ref>&lt; <ref refid="structserif_1_1model_1_1_generated_coordinate_of" kindref="compound">GeneratedCoordinateOf</ref>&lt; <ref refid="classserif_1_1model_1_1_fixed_total_mass" kindref="compound">FixedTotalMass</ref> &gt;, <ref refid="structserif_1_1discretization_1_1blocks_1_1barotropic__constant_1_1mass__normalization" kindref="compound">discretization::blocks::barotropic_constant::mass_normalization</ref> &gt;, <ref refid="structserif_1_1utils_1_1dependencies_1_1_binding" kindref="compound">utils::dependencies::Binding</ref>&lt; <ref refid="structserif_1_1model_1_1_constraint_of" kindref="compound">ConstraintOf</ref>&lt; <ref refid="classserif_1_1model_1_1_fixed_total_mass" kindref="compound">FixedTotalMass</ref> &gt;, <ref refid="structserif_1_1discretization_1_1blocks_1_1barotropic__constant_1_1mass__normalization" kindref="compound">discretization::blocks::barotropic_constant::mass_normalization</ref> &gt;, <ref refid="structserif_1_1utils_1_1dependencies_1_1_binding" kindref="compound">utils::dependencies::Binding</ref>&lt; <ref refid="structserif_1_1model_1_1_generated_coordinate_of" kindref="compound">GeneratedCoordinateOf</ref>&lt; <ref refid="classserif_1_1model_1_1_fixed_angular_momentum" kindref="compound">FixedAngularMomentum</ref> &gt;, <ref refid="structserif_1_1discretization_1_1blocks_1_1rotation_1_1angular__velocity" kindref="compound">discretization::blocks::rotation::angular_velocity</ref> &gt;, <ref refid="structserif_1_1utils_1_1dependencies_1_1_binding" kindref="compound">utils::dependencies::Binding</ref>&lt; <ref refid="structserif_1_1model_1_1_constraint_of" kindref="compound">ConstraintOf</ref>&lt; <ref refid="classserif_1_1model_1_1_fixed_angular_momentum" kindref="compound">FixedAngularMomentum</ref> &gt;, <ref refid="structserif_1_1discretization_1_1blocks_1_1rotation_1_1angular__velocity" kindref="compound">discretization::blocks::rotation::angular_velocity</ref> &gt;, Additional... &gt;</type>
<definition>using serif::model::SpecificationBindings = utils::dependencies::Bindings&lt;
utils::dependencies::Binding&lt;state::Density, discretization::blocks::density::mass&gt;,
utils::dependencies::Binding&lt;state::SurfaceShape, discretization::blocks::surface_deformation::coefficients&gt;,
utils::dependencies::Binding&lt;state::GravitationalPotential, discretization::blocks::gravity::potential&gt;,
utils::dependencies::Binding&lt;equation::PoissonBalance, discretization::blocks::gravity::potential&gt;,
utils::dependencies::Binding&lt;equation::SurfaceShapeBalance, discretization::blocks::surface_deformation::shape_equilibrium&gt;,
utils::dependencies::Binding&lt;equation::HydrostaticBalance, discretization::blocks::density::mass&gt;,
utils::dependencies::Binding&lt;GeneratedCoordinateOf&lt;FixedTotalMass&gt;, discretization::blocks::barotropic_constant::mass_normalization&gt;,
utils::dependencies::Binding&lt;ConstraintOf&lt;FixedTotalMass&gt;, discretization::blocks::barotropic_constant::mass_normalization&gt;,
utils::dependencies::Binding&lt;GeneratedCoordinateOf&lt;FixedAngularMomentum&gt;, discretization::blocks::rotation::angular_velocity&gt;,
utils::dependencies::Binding&lt;ConstraintOf&lt;FixedAngularMomentum&gt;, discretization::blocks::rotation::angular_velocity&gt;, Additional...&gt;</definition>
<argsstring></argsstring>
<name>SpecificationBindings</name>
<qualifiedname>serif::model::SpecificationBindings</qualifiedname>
<briefdescription>
<para>Map physical names and built-in generated identities once; custom identities require explicit bindings. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/validation.hpp" line="16" column="5" bodyfile="src/include/serif/model/validation.hpp" bodystart="16" bodyend="-1"/>
</memberdef>
<memberdef kind="typedef" id="namespaceserif_1_1model_1adae046e777aafb66e79a039911580916" prot="public" static="no">
<type><ref refid="namespaceserif_1_1model_1aa7c7c71dc1c2c0431623ac27c88bdb0b" kindref="member">SpecificationBindings</ref>&lt;&gt;</type>
<definition>using serif::model::DefaultSpecificationBindings = SpecificationBindings&lt;&gt;</definition>
<argsstring></argsstring>
<name>DefaultSpecificationBindings</name>
<qualifiedname>serif::model::DefaultSpecificationBindings</qualifiedname>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/validation.hpp" line="28" column="5" bodyfile="src/include/serif/model/validation.hpp" bodystart="28" bodyend="-1"/>
</memberdef>
<memberdef kind="typedef" id="namespaceserif_1_1model_1a5d147fdea58527d7b5ee14302ab8cd57" prot="public" static="no">
<templateparamlist>
<param>
<type>ExecutableInteriorEquations</type>
<declname>Registry</declname>
<defname>Registry</defname>
</param>
</templateparamlist>
<type>typename <ref refid="structserif_1_1model_1_1detail_1_1_interior_couplings" kindref="compound">detail::InteriorCouplings</ref>&lt; std::remove_cvref_t&lt; Registry &gt; &gt;::Type</type>
<definition>using serif::model::DeclaredEquationCouplings = typename detail::InteriorCouplings&lt;std::remove_cvref_t&lt;Registry&gt;&gt;::Type</definition>
<argsstring></argsstring>
<name>DeclaredEquationCouplings</name>
<qualifiedname>serif::model::DeclaredEquationCouplings</qualifiedname>
<briefdescription>
<para>Derive declared interior couplings from actual operands rather than a second physical sparsity table. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/validation.hpp" line="117" column="5" bodyfile="src/include/serif/model/validation.hpp" bodystart="117" bodyend="-1"/>
</memberdef>
</sectiondef>
<sectiondef kind="var">
<memberdef kind="variable" id="namespaceserif_1_1model_1a80f6f9e6dee6acbd57d0d4bd1116c9f2" prot="public" static="no" constexpr="yes" mutable="no">
<templateparamlist>
<param>
<type>SpecificationRole</type>
<declname>Role</declname>
<defname>Role</defname>
</param>
<param>
<type>typename Candidate</type>
</param>
</templateparamlist>
<type>std::size_t</type>
<definition>std::size_t serif::model::specification_role_count</definition>
<argsstring></argsstring>
<name>specification_role_count</name>
<qualifiedname>serif::model::specification_role_count</qualifiedname>
<initializer>= []
{
if constexpr (StellarModelType&lt;Candidate&gt;)
{
return std::remove_cvref_t&lt;Candidate&gt;::template specification_role_count&lt;Role&gt;;
}
else
{
return std::size_t{0};
}
}()</initializer>
<briefdescription>
<para>Inspect role counts without instantiating invalid model specializations. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/stellar_model.hpp" line="169" column="34" bodyfile="src/include/serif/model/stellar_model.hpp" bodystart="169" bodyend="179"/>
</memberdef>
</sectiondef>
<sectiondef kind="func">
<memberdef kind="function" id="namespaceserif_1_1model_1a818040e7235375f50650868a1fec3ae6" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>ExecutableInteriorEquations</type>
<declname>Registry</declname>
<defname>Registry</defname>
</param>
<param>
<type>typename Discretization</type>
</param>
<param>
<type>discretization::blocks::SystemLayoutType</type>
<declname>Layout</declname>
<defname>Layout</defname>
</param>
<param>
<type>typename...</type>
<declname>AdditionalComputations</declname>
<defname>AdditionalComputations</defname>
</param>
<param>
<type>typename...</type>
<declname>AdditionalContributions</declname>
<defname>AdditionalContributions</defname>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::model::make_model_graph</definition>
<argsstring>(std::shared_ptr&lt; const Registry &gt; registry, std::shared_ptr&lt; const Discretization &gt; discretization, const Layout &amp;layout, std::tuple&lt; AdditionalComputations... &gt; additional={}, utils::dependencies::KeyList&lt; AdditionalContributions... &gt; contributions={}, operators::backend::mfem::VolumeOptions options={})</argsstring>
<name>make_model_graph</name>
<qualifiedname>serif::model::make_model_graph</qualifiedname>
<param>
<type>std::shared_ptr&lt; const Registry &gt;</type>
<declname>registry</declname>
</param>
<param>
<type>std::shared_ptr&lt; const Discretization &gt;</type>
<declname>discretization</declname>
</param>
<param>
<type>const Layout &amp;</type>
<declname>layout</declname>
</param>
<param>
<type>std::tuple&lt; AdditionalComputations... &gt;</type>
<declname>additional</declname>
<defval>{}</defval>
</param>
<param>
<type><ref refid="structserif_1_1utils_1_1dependencies_1_1_key_list" kindref="compound">utils::dependencies::KeyList</ref>&lt; AdditionalContributions... &gt;</type>
<declname>contributions</declname>
<defval>{}</defval>
</param>
<param>
<type><ref refid="structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_options" kindref="compound">operators::backend::mfem::VolumeOptions</ref></type>
<declname>options</declname>
<defval>{}</defval>
</param>
<briefdescription>
<para>Construct the complete stellar graph at one explicit composition point. </para>
</briefdescription>
<detaileddescription>
<para><simplesect kind="note"><para>The registry is the authoritative equation list. Additional declarations supply deformation, boundary treatment, constraints, normalization or inverses; only named contribution results modify the physical system. Dependency preparation schedules the work and publishes complete results. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/backend/mfem/model/graph.hpp" line="76" column="11" bodyfile="src/include/serif/backend/mfem/model/graph.hpp" bodystart="76" bodyend="89"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1model_1a085910a172d862a4116162850b0222c5" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>ExecutableInteriorEquations</type>
<declname>Registry</declname>
<defname>Registry</defname>
</param>
<param>
<type>typename Discretization</type>
</param>
<param>
<type>discretization::blocks::SystemLayoutType</type>
<declname>Layout</declname>
<defname>Layout</defname>
</param>
<param>
<type>typename...</type>
<declname>AdditionalComputations</declname>
<defname>AdditionalComputations</defname>
</param>
<param>
<type>typename...</type>
<declname>AdditionalContributions</declname>
<defname>AdditionalContributions</defname>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::model::make_model_graph</definition>
<argsstring>(Registry registry, std::shared_ptr&lt; const Discretization &gt; discretization, const Layout &amp;layout, std::tuple&lt; AdditionalComputations... &gt; additional={}, utils::dependencies::KeyList&lt; AdditionalContributions... &gt; contributions={}, operators::backend::mfem::VolumeOptions options={})</argsstring>
<name>make_model_graph</name>
<qualifiedname>serif::model::make_model_graph</qualifiedname>
<param>
<type>Registry</type>
<declname>registry</declname>
</param>
<param>
<type>std::shared_ptr&lt; const Discretization &gt;</type>
<declname>discretization</declname>
</param>
<param>
<type>const Layout &amp;</type>
<declname>layout</declname>
</param>
<param>
<type>std::tuple&lt; AdditionalComputations... &gt;</type>
<declname>additional</declname>
<defval>{}</defval>
</param>
<param>
<type><ref refid="structserif_1_1utils_1_1dependencies_1_1_key_list" kindref="compound">utils::dependencies::KeyList</ref>&lt; AdditionalContributions... &gt;</type>
<declname>contributions</declname>
<defval>{}</defval>
</param>
<param>
<type><ref refid="structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_options" kindref="compound">operators::backend::mfem::VolumeOptions</ref></type>
<declname>options</declname>
<defval>{}</defval>
</param>
<briefdescription>
<para>Retain a standalone registry, including move-only equations supplied as an rvalue. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/backend/mfem/model/graph.hpp" line="94" column="11" bodyfile="src/include/serif/backend/mfem/model/graph.hpp" bodystart="94" bodyend="98"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1model_1a74e1efe91e9ad6f773134036585a39b6" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Bound</type>
</param>
<param>
<type>typename Layout</type>
</param>
<param>
<type>typename...</type>
<declname>NumericalComputations</declname>
<defname>NumericalComputations</defname>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::model::make_equilibrium_graph</definition>
<argsstring>(std::shared_ptr&lt; const Bound &gt; bound, const Layout &amp;layout, std::tuple&lt; NumericalComputations... &gt; numerical={}, operators::backend::mfem::VolumeOptions options={})</argsstring>
<name>make_equilibrium_graph</name>
<qualifiedname>serif::model::make_equilibrium_graph</qualifiedname>
<param>
<type>std::shared_ptr&lt; const Bound &gt;</type>
<declname>bound</declname>
</param>
<param>
<type>const Layout &amp;</type>
<declname>layout</declname>
</param>
<param>
<type>std::tuple&lt; NumericalComputations... &gt;</type>
<declname>numerical</declname>
<defval>{}</defval>
</param>
<param>
<type><ref refid="structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_options" kindref="compound">operators::backend::mfem::VolumeOptions</ref></type>
<declname>options</declname>
<defval>{}</defval>
</param>
<briefdescription>
<para>Connect the explicit equilibrium definition in one readable place. </para>
</briefdescription>
<detaileddescription>
<para><simplesect kind="note"><para>Interior physics, shape force and surface replacement remain separate declarations. The final physical-system computation collects additions before replacing rows. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/backend/mfem/model/graph.hpp" line="153" column="11" bodyfile="src/include/serif/backend/mfem/model/graph.hpp" bodystart="153" bodyend="173"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1model_1a98c9e47b78a995adae698ca88a7e18fb" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>StellarModelType</type>
<declname>Model</declname>
<defname>Model</defname>
</param>
<param>
<type>typename FiniteElements</type>
</param>
<param>
<type>typename Normalization</type>
</param>
<param>
<type>typename Preconditioner</type>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::model::make_discretization</definition>
<argsstring>(DiscretizationOptions&lt; Model, FiniteElements, Normalization, Preconditioner &gt; options)</argsstring>
<name>make_discretization</name>
<qualifiedname>serif::model::make_discretization</qualifiedname>
<param>
<type><ref refid="structserif_1_1model_1_1_discretization_options" kindref="compound">DiscretizationOptions</ref>&lt; Model, FiniteElements, Normalization, Preconditioner &gt;</type>
<declname>options</declname>
</param>
<requiresclause>normalization::ReferenceResolvable&lt;Normalization, Model&gt; </requiresclause>
<briefdescription>
<para>Resolve model defaults while preserving compile-time field, scheme, and coordinate choices. </para>
</briefdescription>
<detaileddescription>
<para><simplesect kind="note"><para>Finite-element resources remain explicit: normalization does not choose a mesh or approximation order. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/configured_discretization.hpp" line="28" column="11" bodyfile="src/include/serif/model/configured_discretization.hpp" bodystart="28" bodyend="34"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1model_1a99f093b7cfc3526466056b87c8db0f33" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Model</type>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::model::share_equation_of_state</definition>
<argsstring>(std::shared_ptr&lt; const Model &gt; model)</argsstring>
<name>share_equation_of_state</name>
<qualifiedname>serif::model::share_equation_of_state</qualifiedname>
<param>
<type>std::shared_ptr&lt; const Model &gt;</type>
<declname>model</declname>
</param>
<briefdescription>
<para>Share the EOS subobject while retaining the model that owns it. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/eos_reference.hpp" line="76" column="11" bodyfile="src/include/serif/model/eos_reference.hpp" bodystart="76" bodyend="83"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1model_1ae24dcbfc49419c2f0f500da702371bd5" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" noexcept="yes" virt="non-virtual">
<templateparamlist>
<param>
<type>typename EOS</type>
</param>
</templateparamlist>
<type><ref refid="classserif_1_1model_1_1_eos_reference" kindref="compound">EosReference</ref>&lt; EOS &gt;</type>
<definition>EosReference&lt; EOS &gt; serif::model::borrow_eos</definition>
<argsstring>(const EOS &amp;eos) noexcept</argsstring>
<name>borrow_eos</name>
<qualifiedname>serif::model::borrow_eos</qualifiedname>
<param>
<type>const EOS &amp;</type>
<declname>eos</declname>
</param>
<briefdescription>
<para>Borrow the model-owned EOS when the prepared graph already retains its immutable model owner. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/eos_reference.hpp" line="87" column="19" bodyfile="src/include/serif/model/eos_reference.hpp" bodystart="87" bodyend="90"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1model_1a6252df8508dcd9bed7e242edae8133d5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename EOS</type>
</param>
</templateparamlist>
<type>void</type>
<definition>void serif::model::borrow_eos</definition>
<argsstring>(EOS &amp;&amp;)=delete</argsstring>
<name>borrow_eos</name>
<qualifiedname>serif::model::borrow_eos</qualifiedname>
<param>
<type>EOS &amp;&amp;</type>
</param>
<requiresclause>(!std::is_lvalue_reference_v&lt;EOS&gt;) </requiresclause>
<briefdescription>
<para>Borrowing never extends a temporary EOS lifetime. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/eos_reference.hpp" line="95" column="10" declfile="src/include/serif/model/eos_reference.hpp" declline="95" declcolumn="10"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1model_1ae40b696afec46eacfa0e74ef448b46bb" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Interior</type>
</param>
<param>
<type>typename Shape</type>
<defval>NoShapeForce</defval>
</param>
<param>
<type>typename Surface</type>
<defval>NoSurfaceCondition</defval>
</param>
</templateparamlist>
<type></type>
<definition>serif::model::EquilibriumEquations</definition>
<argsstring>(Interior, Shape={}, Surface={}) -&gt; EquilibriumEquations&lt; Interior, Shape, Surface &gt;</argsstring>
<name>EquilibriumEquations</name>
<qualifiedname>serif::model::EquilibriumEquations</qualifiedname>
<param>
<type>Interior</type>
</param>
<param>
<type>Shape</type>
<defval>{}</defval>
</param>
<param>
<type>Surface</type>
<defval>{}</defval>
</param>
<briefdescription>
<para>Preserve every authored member when a declaration passes through a templated model factory. </para>
</briefdescription>
<detaileddescription>
<para><simplesect kind="note"><para>Explicit deduction avoids compiler substitution dropping defaulted aggregate members. Deduced declarations supply preceding slots: use <ref refid="structserif_1_1model_1_1_no_shape_force" kindref="compound">NoShapeForce</ref> before a surface condition when the shape force is absent. Explicitly typed aggregates may still skip members. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/equilibrium_equations.hpp" line="40" column="5" declfile="src/include/serif/model/equilibrium_equations.hpp" declline="40" declcolumn="5"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1model_1aa55d6cc09e69d07412896dedcb71c5a5" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Model</type>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::model::resolve_equilibrium_equations</definition>
<argsstring>(const Model &amp;model)</argsstring>
<name>resolve_equilibrium_equations</name>
<qualifiedname>serif::model::resolve_equilibrium_equations</qualifiedname>
<param>
<type>const Model &amp;</type>
<declname>model</declname>
</param>
<requiresclause>requires(const Model&amp; model) { model.equations(); } &amp;&amp; EquilibriumEquationDescription&lt;decltype(detail::resolve_equation_member(std::declval&lt;const Model&amp;&gt;().equations(), std::declval&lt;const Model&amp;&gt;()))&gt; </requiresclause>
<briefdescription>
<para>Resolve an explicit composition at binding; retain the model while the result borrows its members. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/equilibrium_equations.hpp" line="92" column="11" bodyfile="src/include/serif/model/equilibrium_equations.hpp" bodystart="92" bodyend="95"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1model_1af1e5714cfeffe321e29886eec5b93020" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Model</type>
</param>
</templateparamlist>
<type>void</type>
<definition>void serif::model::resolve_equilibrium_equations</definition>
<argsstring>(Model &amp;&amp;)=delete</argsstring>
<name>resolve_equilibrium_equations</name>
<qualifiedname>serif::model::resolve_equilibrium_equations</qualifiedname>
<param>
<type>Model &amp;&amp;</type>
</param>
<requiresclause>(!std::is_lvalue_reference_v&lt;Model&gt;) </requiresclause>
<briefdescription>
<para>A temporary model cannot retain the equation members borrowed by the resolved description. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/equilibrium_equations.hpp" line="100" column="10" declfile="src/include/serif/model/equilibrium_equations.hpp" declline="100" declcolumn="10"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1model_1a85f2ca250e5b86d7c907d7db1428d852" prot="public" static="no" nodiscard="yes" consteval="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Model</type>
</param>
<param>
<type>typename Description</type>
</param>
<param>
<type>typename Plan</type>
</param>
<param>
<type>typename Bindings</type>
<defval>DefaultSpecificationBindings</defval>
</param>
<param>
<type>typename ExplicitZeroCouplings</type>
<defval>utils::dependencies::KeyList&lt;&gt;</defval>
</param>
</templateparamlist>
<type>bool</type>
<definition>bool serif::model::executable_model_topology</definition>
<argsstring>()</argsstring>
<name>executable_model_topology</name>
<qualifiedname>serif::model::executable_model_topology</qualifiedname>
<briefdescription>
<para>Validate a complete selected formulation without inferring solvability or selecting physics. </para>
</briefdescription>
<detaileddescription>
<para><simplesect kind="note"><para>Closed equations define zero derivatives for other coordinates, but that fact cannot admit a missing custom multiplier force. ExplicitZeroCouplings is an explicit author registration, not a fallback. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/execution_validation.hpp" line="111" column="21" bodyfile="src/include/serif/model/execution_validation.hpp" bodystart="111" bodyend="143"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1model_1abd39d351ddfb0d4d45fb44b868673416" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>discretization::blocks::SystemLayoutType</type>
<declname>Layout</declname>
<defname>Layout</defname>
</param>
</templateparamlist>
<type></type>
<definition>serif::model::StellarState</definition>
<argsstring>(Layout) -&gt; StellarState&lt; std::remove_cvref_t&lt; Layout &gt; &gt;</argsstring>
<name>StellarState</name>
<qualifiedname>serif::model::StellarState</qualifiedname>
<param>
<type>Layout</type>
</param>
<briefdescription>
<para>Infer a state&apos;s layout type from its physical coordinate description. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/state.hpp" line="74" column="5" declfile="src/include/serif/model/state.hpp" declline="74" declcolumn="5"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1model_1ab2897a50326648ba69b6ab9fd3c3d27a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>discretization::blocks::SystemLayoutType</type>
<declname>Layout</declname>
<defname>Layout</defname>
</param>
</templateparamlist>
<type></type>
<definition>serif::model::StellarState</definition>
<argsstring>(Layout, std::vector&lt; double &gt;) -&gt; StellarState&lt; std::remove_cvref_t&lt; Layout &gt; &gt;</argsstring>
<name>StellarState</name>
<qualifiedname>serif::model::StellarState</qualifiedname>
<param>
<type>Layout</type>
</param>
<param>
<type>std::vector&lt; double &gt;</type>
</param>
<briefdescription>
<para>Infer a state&apos;s layout type when adopting physical coefficients. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/state.hpp" line="78" column="5" declfile="src/include/serif/model/state.hpp" declline="78" declcolumn="5"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1model_1a5a15073437bd18ed5d356ee544b14447" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename EOS</type>
</param>
<param>
<type>typename Definition</type>
</param>
<param>
<type>typename...</type>
<declname>Specifications</declname>
<defname>Specifications</defname>
</param>
</templateparamlist>
<type></type>
<definition>serif::model::StellarModel</definition>
<argsstring>(EOS &amp;&amp;, Definition &amp;&amp;, Specifications &amp;&amp;...) -&gt; StellarModel&lt; std::remove_cvref_t&lt; EOS &gt;, std::remove_cvref_t&lt; Definition &gt;, typename detail::CanonicalSpecifications&lt; std::remove_cvref_t&lt; Specifications &gt;... &gt;::Type &gt;</argsstring>
<name>StellarModel</name>
<qualifiedname>serif::model::StellarModel</qualifiedname>
<param>
<type>EOS &amp;&amp;</type>
</param>
<param>
<type>Definition &amp;&amp;</type>
</param>
<param>
<type>Specifications &amp;&amp;</type>
<declname>...</declname>
</param>
<requiresclause>ValidSpecificationPack&lt;std::remove_cvref_t&lt;Specifications&gt;...&gt; </requiresclause>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/stellar_model.hpp" line="144" column="5" declfile="src/include/serif/model/stellar_model.hpp" declline="144" declcolumn="5"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1model_1abd082b1964d28e91b8eb1da4ffdf22ee" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename EOS</type>
</param>
<param>
<type>typename Definition</type>
</param>
<param>
<type>typename...</type>
<declname>Specifications</declname>
<defname>Specifications</defname>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::model::make_stellar_model</definition>
<argsstring>(EOS &amp;&amp;eos, Definition &amp;&amp;definition, Specifications &amp;&amp;... specifications)</argsstring>
<name>make_stellar_model</name>
<qualifiedname>serif::model::make_stellar_model</qualifiedname>
<param>
<type>EOS &amp;&amp;</type>
<declname>eos</declname>
</param>
<param>
<type>Definition &amp;&amp;</type>
<declname>definition</declname>
</param>
<param>
<type>Specifications &amp;&amp;...</type>
<declname>specifications</declname>
</param>
<requiresclause>ValidSpecificationPack&lt;std::remove_cvref_t&lt;Specifications&gt;...&gt; </requiresclause>
<briefdescription>
<para>Construct a typed physical description with programmer-selected equations. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/stellar_model.hpp" line="149" column="11" bodyfile="src/include/serif/model/stellar_model.hpp" bodystart="149" bodyend="152"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1model_1a5a76a53b06ed3a20062a609e61848840" prot="public" static="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<type>void</type>
<definition>static void serif::model::validate_target</definition>
<argsstring>(double value, bool zero_allowed, std::string_view name)</argsstring>
<name>validate_target</name>
<qualifiedname>serif::model::validate_target</qualifiedname>
<param>
<type>double</type>
<declname>value</declname>
</param>
<param>
<type>bool</type>
<declname>zero_allowed</declname>
</param>
<param>
<type>std::string_view</type>
<declname>name</declname>
</param>
<briefdescription>
<para>Validate a dimensional scalar target before storing a physical prescription. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/lib/serif/model/specifications.cpp" line="12" column="17" bodyfile="src/lib/serif/model/specifications.cpp" bodystart="12" bodyend="17"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1model_1ac5681e63c50dc5a136eaa699838cf332" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Owner</type>
</param>
<param>
<type>utils::dependencies::IsDependencyContext</type>
<declname>Bindings</declname>
<defname>Bindings</defname>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::model::backend::mfem::make_stellar_discretization</definition>
<argsstring>(std::shared_ptr&lt; Owner &gt; owner, Bindings bindings, const ::mfem::GridFunction &amp;compactification, const mapping::DomainMapper &amp;mapper)</argsstring>
<name>make_stellar_discretization</name>
<qualifiedname>serif::model::make_stellar_discretization</qualifiedname>
<param>
<type>std::shared_ptr&lt; Owner &gt;</type>
<declname>owner</declname>
</param>
<param>
<type>Bindings</type>
<declname>bindings</declname>
</param>
<param>
<type>const ::mfem::GridFunction &amp;</type>
<declname>compactification</declname>
</param>
<param>
<type>const <ref refid="classserif_1_1mapping_1_1_domain_mapper" kindref="compound">mapping::DomainMapper</ref> &amp;</type>
<declname>mapper</declname>
</param>
<briefdescription>
<para>Retain the supplied resource owner without copying finite-element spaces or changing their addresses. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/finite_elements.hpp" line="7" column="5" bodyfile="src/include/serif/backend/mfem/model/discretization.hpp" bodystart="64" bodyend="74"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1model_1ade88a3e3fa00b425b3d93ad44b3bb604" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Owner</type>
</param>
<param>
<type>typename Bindings</type>
</param>
<param>
<type>typename DomainModel</type>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::model::backend::mfem::with_deformation</definition>
<argsstring>(StellarDiscretization&lt; Owner, Bindings &gt; discretization, DomainModel model, geometry::deformation::backend::mfem::ReferenceDiscretization reference)</argsstring>
<name>with_deformation</name>
<qualifiedname>serif::model::with_deformation</qualifiedname>
<param>
<type>StellarDiscretization&lt; Owner, Bindings &gt;</type>
<declname>discretization</declname>
</param>
<param>
<type>DomainModel</type>
<declname>model</declname>
</param>
<param>
<type><ref refid="structserif_1_1geometry_1_1deformation_1_1backend_1_1mfem_1_1_reference_discretization" kindref="compound">geometry::deformation::backend::mfem::ReferenceDiscretization</ref></type>
<declname>reference</declname>
</param>
<briefdescription>
<para>Add an explicit deformation prescription without changing the physical equation definition. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/model/finite_elements.hpp" line="8" column="5" bodyfile="src/include/serif/backend/mfem/model/discretization.hpp" bodystart="78" bodyend="86"/>
</memberdef>
</sectiondef>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<location file="src/compile_time_checks/serif/model/state.cpp" line="10" column="1"/>
</compounddef>
</doxygen>