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

710 lines
39 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_1solver_1_1continuation" kind="namespace" language="C++">
<compoundname>serif::solver::continuation</compoundname>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_angular_momentum" prot="public">serif::solver::continuation::AngularMomentum</innerclass>
<innerclass refid="classserif_1_1solver_1_1continuation_1_1_bound_family" prot="public">serif::solver::continuation::BoundFamily</innerclass>
<innerclass refid="classserif_1_1solver_1_1continuation_1_1_bound_family_3_01_model_00_01_parameter_list_3_01_selec59bdc15c834ea037ddf5937bdf68e98f" prot="public">serif::solver::continuation::BoundFamily&lt; Model, ParameterList&lt; Selected... &gt;, std::tuple&lt; Laws... &gt;, EquationFactory &gt;</innerclass>
<innerclass refid="classserif_1_1solver_1_1continuation_1_1_coordinate_controller" prot="public">serif::solver::continuation::CoordinateController</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_coordinate_counters" prot="public">serif::solver::continuation::CoordinateCounters</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_coordinate_options" prot="public">serif::solver::continuation::CoordinateOptions</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_coordinate_proposal" prot="public">serif::solver::continuation::CoordinateProposal</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_correction_controls" prot="public">serif::solver::continuation::CorrectionControls</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_failure" prot="public">serif::solver::continuation::Failure</innerclass>
<innerclass refid="classserif_1_1solver_1_1continuation_1_1_family" prot="public">serif::solver::continuation::Family</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_identified_equations" prot="public">serif::solver::continuation::IdentifiedEquations</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_numerical_controls" prot="public">serif::solver::continuation::NumericalControls</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_options" prot="public">serif::solver::continuation::Options</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_ordering" prot="public">serif::solver::continuation::Ordering</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_parameter_descriptor" prot="public">serif::solver::continuation::ParameterDescriptor</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_parameter_law" prot="public">serif::solver::continuation::ParameterLaw</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_polytropic_constant" prot="public">serif::solver::continuation::PolytropicConstant</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_polytropic_index" prot="public">serif::solver::continuation::PolytropicIndex</innerclass>
<innerclass refid="classserif_1_1solver_1_1continuation_1_1_preserve_pressure_at_reference_density" prot="public">serif::solver::continuation::PreservePressureAtReferenceDensity</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_result" prot="public">serif::solver::continuation::Result</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_specification_traits" prot="public">serif::solver::continuation::SpecificationTraits</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_specification_traits_3_01eos_1_1models_1_1_polytrope_01_4" prot="public">serif::solver::continuation::SpecificationTraits&lt; eos::models::Polytrope &gt;</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_specification_traits_3_01model_1_1_fixed_angular_momentum_01_4" prot="public">serif::solver::continuation::SpecificationTraits&lt; model::FixedAngularMomentum &gt;</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_specification_traits_3_01_specification_01_4" prot="public">serif::solver::continuation::SpecificationTraits&lt; Specification &gt;</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_stage_record" prot="public">serif::solver::continuation::StageRecord</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_starting_at" prot="public">serif::solver::continuation::StartingAt</innerclass>
<innerclass refid="structserif_1_1solver_1_1continuation_1_1_starting_star" prot="public">serif::solver::continuation::StartingStar</innerclass>
<innernamespace refid="namespaceserif_1_1solver_1_1continuation_1_1detail">serif::solver::continuation::detail</innernamespace>
<sectiondef kind="enum">
<memberdef kind="enum" id="namespaceserif_1_1solver_1_1continuation_1a66bc61a6db9aafdd80e8be6ef7e50c7d" prot="public" static="no" strong="yes">
<type></type>
<name>CoordinateOrder</name>
<qualifiedname>serif::solver::continuation::CoordinateOrder</qualifiedname>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1a66bc61a6db9aafdd80e8be6ef7e50c7da2bd9c0ed00116be1258e0cc66617d7c8" prot="public">
<name>automatic</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1a66bc61a6db9aafdd80e8be6ef7e50c7dae4e5ef276d7ffb582d6c44f837a1e11e" prot="public">
<name>preferred</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1a66bc61a6db9aafdd80e8be6ef7e50c7da2133fd717402a7966ee88d06f9e0b792" prot="public">
<name>strict</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/controller.hpp" line="13" column="5" bodyfile="src/include/serif/solver/continuation/controller.hpp" bodystart="13" bodyend="13"/>
</memberdef>
<memberdef kind="enum" id="namespaceserif_1_1solver_1_1continuation_1a888b97a307db6acbca740638be478375" prot="public" static="no" strong="yes">
<type></type>
<name>AttemptOutcome</name>
<qualifiedname>serif::solver::continuation::AttemptOutcome</qualifiedname>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1a888b97a307db6acbca740638be478375a260ca9dd8a4577fc00b7bd5810298076" prot="public">
<name>success</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1a888b97a307db6acbca740638be478375a9d2045acefec47e0dff109bd1309581d" prot="public">
<name>recoverable_rejection</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1a888b97a307db6acbca740638be478375a3fa51915e3330498d7b812b8738dd3f4" prot="public">
<name>fatal_failure</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/controller.hpp" line="14" column="5" bodyfile="src/include/serif/solver/continuation/controller.hpp" bodystart="14" bodyend="14"/>
</memberdef>
<memberdef kind="enum" id="namespaceserif_1_1solver_1_1continuation_1ac833c779d67dfdac0917f38d98020224" prot="public" static="no" strong="yes">
<type></type>
<name>ControllerStatus</name>
<qualifiedname>serif::solver::continuation::ControllerStatus</qualifiedname>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1ac833c779d67dfdac0917f38d98020224ab2fdab230a2c39f3595a947861863cb7" prot="public">
<name>ready</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1ac833c779d67dfdac0917f38d98020224a7c6c2e5d48ab37a007cbf70d3ea25fa4" prot="public">
<name>pending</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1ac833c779d67dfdac0917f38d98020224ad9a22d7a8178d5b42a8750123cbfe5b1" prot="public">
<name>complete</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1ac833c779d67dfdac0917f38d98020224acc37d00e5e12d2c8308851308b845222" prot="public">
<name>attempt_limit</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1ac833c779d67dfdac0917f38d98020224a43c09831647cc3d85b480f8815f0eef7" prot="public">
<name>no_progress</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1ac833c779d67dfdac0917f38d98020224a3fa51915e3330498d7b812b8738dd3f4" prot="public">
<name>fatal_failure</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/controller.hpp" line="15" column="5" bodyfile="src/include/serif/solver/continuation/controller.hpp" bodystart="15" bodyend="15"/>
</memberdef>
<memberdef kind="enum" id="namespaceserif_1_1solver_1_1continuation_1a0445e530123f4dd3f14954eafeaeb516" prot="public" static="no" strong="yes">
<type></type>
<name>Status</name>
<qualifiedname>serif::solver::continuation::Status</qualifiedname>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1a0445e530123f4dd3f14954eafeaeb516a47252c72fe050aa193e34680c008a090" prot="public">
<name>target_reached</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1a0445e530123f4dd3f14954eafeaeb516a3b37da8ec952c032b770374dbc6235c1" prot="public">
<name>starting_star_failed</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1a0445e530123f4dd3f14954eafeaeb516acc37d00e5e12d2c8308851308b845222" prot="public">
<name>attempt_limit</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1a0445e530123f4dd3f14954eafeaeb516ab46e5f037ad909fb47d91de634c95004" prot="public">
<name>work_limit</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1a0445e530123f4dd3f14954eafeaeb516a43c09831647cc3d85b480f8815f0eef7" prot="public">
<name>no_progress</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1a0445e530123f4dd3f14954eafeaeb516a53dbaf63161eadde6786ab8baa54a3e5" prot="public">
<name>invalid_model</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/driver.hpp" line="9" column="5" bodyfile="src/include/serif/solver/continuation/driver.hpp" bodystart="9" bodyend="9"/>
</memberdef>
<memberdef kind="enum" id="namespaceserif_1_1solver_1_1continuation_1ae0b82e9c6b756ec2095a5ea1df5f768e" prot="public" static="no" strong="yes">
<type></type>
<name>StageDisposition</name>
<qualifiedname>serif::solver::continuation::StageDisposition</qualifiedname>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1ae0b82e9c6b756ec2095a5ea1df5f768ea7de33615d7fbc1cb7bc608d12f1993d2" prot="public">
<name>converged</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1ae0b82e9c6b756ec2095a5ea1df5f768ea21f518858f05ad9436d04f274f2de0ab" prot="public">
<name>not_converged</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1_1continuation_1ae0b82e9c6b756ec2095a5ea1df5f768ea53dbaf63161eadde6786ab8baa54a3e5" prot="public">
<name>invalid_model</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/driver.hpp" line="10" column="5" bodyfile="src/include/serif/solver/continuation/driver.hpp" bodystart="10" bodyend="10"/>
</memberdef>
</sectiondef>
<sectiondef kind="typedef">
<memberdef kind="typedef" id="namespaceserif_1_1solver_1_1continuation_1af4abf5dbb21b2d1032b766c80c2138d4" prot="public" static="no">
<templateparamlist>
<param>
<type>typename...</type>
<declname>Parameters</declname>
<defname>Parameters</defname>
</param>
</templateparamlist>
<type><ref refid="structserif_1_1utils_1_1dependencies_1_1_key_list" kindref="compound">utils::dependencies::KeyList</ref>&lt; Parameters... &gt;</type>
<definition>using serif::solver::continuation::ParameterList = utils::dependencies::KeyList&lt;Parameters...&gt;</definition>
<argsstring></argsstring>
<name>ParameterList</name>
<qualifiedname>serif::solver::continuation::ParameterList</qualifiedname>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/parameters.hpp" line="16" column="5" bodyfile="src/include/serif/solver/continuation/parameters.hpp" bodystart="16" bodyend="-1"/>
</memberdef>
</sectiondef>
<sectiondef kind="func">
<memberdef kind="function" id="namespaceserif_1_1solver_1_1continuation_1add798956874a0248752eabf98cc12b4b" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Family</type>
</param>
<param>
<type>typename State</type>
</param>
<param>
<type>typename Corrector</type>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::continuation::run</definition>
<argsstring>(const Family &amp;family, const State &amp;initial_state, Corrector &amp;&amp;correct, Options&lt; Family &gt; options, double absolute_tolerance)</argsstring>
<name>run</name>
<qualifiedname>serif::solver::continuation::run</qualifiedname>
<param>
<type>const <ref refid="classserif_1_1solver_1_1continuation_1_1_family" kindref="compound">Family</ref> &amp;</type>
<declname>family</declname>
</param>
<param>
<type>const State &amp;</type>
<declname>initial_state</declname>
</param>
<param>
<type>Corrector &amp;&amp;</type>
<declname>correct</declname>
</param>
<param>
<type><ref refid="structserif_1_1solver_1_1continuation_1_1_options" kindref="compound">Options</ref>&lt; <ref refid="classserif_1_1solver_1_1continuation_1_1_family" kindref="compound">Family</ref> &gt;</type>
<declname>options</declname>
</param>
<param>
<type>double</type>
<declname>absolute_tolerance</declname>
</param>
<briefdescription>
<para>Follow a physical family using owning correction results and physical state transfer. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>correct</parametername>
</parameternamelist>
<parameterdescription>
<para>A callable accepting a fresh model, a physical state value, and <ref refid="structserif_1_1solver_1_1continuation_1_1_correction_controls" kindref="compound">CorrectionControls</ref>. Its result must expose <ref refid="namespaceserif_1_1solver_1_1continuation_1ae0b82e9c6b756ec2095a5ea1df5f768ea7de33615d7fbc1cb7bc608d12f1993d2" kindref="member">converged()</ref>, has_state(), state(), diagnostics().attempted_iterations/final_residual_norm, and message(). </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="note"><para>The corrector must honor the supplied work cap and one fixed positive absolute tolerance. Failed states are never transferred into retries. Numerical nonconvergence is recoverable; malformed family models stop the path. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/driver.hpp" line="104" column="11" bodyfile="src/include/serif/solver/continuation/driver.hpp" bodystart="104" bodyend="219"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1continuation_1a4090eedeabb4c30d029eb370a1188f44" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Family</type>
</param>
<param>
<type>typename Model</type>
</param>
<param>
<type>typename State</type>
</param>
<param>
<type>typename Corrector</type>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::continuation::run</definition>
<argsstring>(const Family &amp;family, const StartingStar&lt; Model, State &gt; &amp;initial, Corrector &amp;&amp;correct, Options&lt; Family &gt; options, double absolute_tolerance)</argsstring>
<name>run</name>
<qualifiedname>serif::solver::continuation::run</qualifiedname>
<param>
<type>const <ref refid="classserif_1_1solver_1_1continuation_1_1_family" kindref="compound">Family</ref> &amp;</type>
<declname>family</declname>
</param>
<param>
<type>const <ref refid="structserif_1_1solver_1_1continuation_1_1_starting_star" kindref="compound">StartingStar</ref>&lt; Model, State &gt; &amp;</type>
<declname>initial</declname>
</param>
<param>
<type>Corrector &amp;&amp;</type>
<declname>correct</declname>
</param>
<param>
<type><ref refid="structserif_1_1solver_1_1continuation_1_1_options" kindref="compound">Options</ref>&lt; <ref refid="classserif_1_1solver_1_1continuation_1_1_family" kindref="compound">Family</ref> &gt;</type>
<declname>options</declname>
</param>
<param>
<type>double</type>
<declname>absolute_tolerance</declname>
</param>
<briefdescription>
<para>Qualify a supplied star afresh after checking every physical family input. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/driver.hpp" line="223" column="11" bodyfile="src/include/serif/solver/continuation/driver.hpp" bodystart="223" bodyend="231"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1continuation_1a284b5f1f64852170370630726f9fd9e6" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
<type><ref refid="structserif_1_1solver_1_1_solver_options" kindref="compound">SolverOptions</ref></type>
<definition>SolverOptions serif::solver::continuation::default_solver_options</definition>
<argsstring>()</argsstring>
<name>default_solver_options</name>
<qualifiedname>serif::solver::continuation::default_solver_options</qualifiedname>
<briefdescription>
<para>Continuation uses one absolute qualification threshold across all family members. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/equilibrium.hpp" line="9" column="14" bodyfile="src/include/serif/solver/continuation/equilibrium.hpp" bodystart="9" bodyend="11"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1continuation_1a94545ae3cf626e6588d86471528374aa" prot="public" static="no" nodiscard="yes" constexpr="yes" const="no" explicit="no" inline="no" noexcept="yes" virt="non-virtual">
<templateparamlist>
<param>
<type>PhysicalParameter...</type>
<declname>Parameters</declname>
<defname>Parameters</defname>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::continuation::depends_on</definition>
<argsstring>(Parameters...) noexcept</argsstring>
<name>depends_on</name>
<qualifiedname>serif::solver::continuation::depends_on</qualifiedname>
<param>
<type>Parameters...</type>
</param>
<briefdescription>
<para>Name only independent physical inputs to a dependent law. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/family.hpp" line="19" column="21" bodyfile="src/include/serif/solver/continuation/family.hpp" bodystart="19" bodyend="19"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1continuation_1a6f421e0cf94425828a241416a97e6290" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>PhysicalParameter</type>
<declname>Output</declname>
<defname>Output</defname>
</param>
<param>
<type>PhysicalParameter...</type>
<declname>Inputs</declname>
<defname>Inputs</defname>
</param>
<param>
<type>typename Function</type>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::continuation::law</definition>
<argsstring>(Output, ParameterList&lt; Inputs... &gt;, Function &amp;&amp;function)</argsstring>
<name>law</name>
<qualifiedname>serif::solver::continuation::law</qualifiedname>
<param>
<type>Output</type>
</param>
<param>
<type><ref refid="namespaceserif_1_1solver_1_1continuation_1af4abf5dbb21b2d1032b766c80c2138d4" kindref="member">ParameterList</ref>&lt; Inputs... &gt;</type>
</param>
<param>
<type>Function &amp;&amp;</type>
<declname>function</declname>
</param>
<requiresclause>utils::dependencies::IsKeyList&lt;ParameterList&lt;Inputs...&gt;&gt; &amp;&amp; std::invocable&lt;const std::remove_cvref_t&lt;Function&gt;&amp;, typename Inputs::Value...&gt; &amp;&amp; std::same_as&lt;std::remove_cvref_t&lt;std::invoke_result_t&lt;const std::remove_cvref_t&lt;Function&gt;&amp;, typename Inputs::Value...&gt;&gt;, typename Output::Value&gt; </requiresclause>
<briefdescription>
<para>Own a typed law, including move-only captures; its inputs are selected coordinates rather than other laws. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/family.hpp" line="110" column="11" bodyfile="src/include/serif/solver/continuation/family.hpp" bodystart="110" bodyend="114"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1continuation_1ae6b0f634b5c0bda27b5b2f9e816c3ff2" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>PhysicalParameter...</type>
<declname>Parameters</declname>
<defname>Parameters</defname>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::continuation::in</definition>
<argsstring>(Parameters...)</argsstring>
<name>in</name>
<qualifiedname>serif::solver::continuation::in</qualifiedname>
<param>
<type>Parameters...</type>
</param>
<requiresclause>(sizeof...(Parameters) &gt; 0) &amp;&amp; utils::dependencies::IsKeyList&lt;ParameterList&lt;Parameters...&gt;&gt; </requiresclause>
<briefdescription>
<para>Select independent physical coordinates with duplicate detection at compile time. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/family.hpp" line="371" column="11" bodyfile="src/include/serif/solver/continuation/family.hpp" bodystart="371" bodyend="371"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1continuation_1a4febacc55e92aa45bcac8a82de827e19" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Definition</type>
</param>
<param>
<type>CoordinateValue...</type>
<declname>Values</declname>
<defname>Values</defname>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::continuation::identified_equations</definition>
<argsstring>(Definition definition, Values... values)</argsstring>
<name>identified_equations</name>
<qualifiedname>serif::solver::continuation::identified_equations</qualifiedname>
<param>
<type>Definition</type>
<declname>definition</declname>
</param>
<param>
<type>Values...</type>
<declname>values</declname>
</param>
<briefdescription>
<para>Declare every fixed physical constant captured by a deferred equation definition. </para>
</briefdescription>
<detaileddescription>
<para><simplesect kind="note"><para>Include all captured physical inputs, such as G and surface pressure. Values read from the supplied model belong to its specification identity already. The declaration is a user contract: C++ cannot inspect arbitrary captures or prove that a callback uses only these inputs. Move-only definitions remain supported with an explicit equation factory when binding a family. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/identified_equations.hpp" line="36" column="11" bodyfile="src/include/serif/solver/continuation/identified_equations.hpp" bodystart="36" bodyend="38"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1continuation_1aa7ddba37396ae133a3a2e1744888d4dd" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>PhysicalParameter</type>
<declname>Parameter</declname>
<defname>Parameter</defname>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::continuation::starting_at</definition>
<argsstring>(Parameter, typename Parameter::Value value)</argsstring>
<name>starting_at</name>
<qualifiedname>serif::solver::continuation::starting_at</qualifiedname>
<param>
<type>Parameter</type>
</param>
<param>
<type>typename Parameter::Value</type>
<declname>value</declname>
</param>
<briefdescription>
<para>Select a physical starting value with the parameter&apos;s required units. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/options.hpp" line="38" column="11" bodyfile="src/include/serif/solver/continuation/options.hpp" bodystart="38" bodyend="38"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1continuation_1aacad124179f8468affa401c5a7a80e84" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>PhysicalParameter...</type>
<declname>Parameters</declname>
<defname>Parameters</defname>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::continuation::prefer</definition>
<argsstring>(Parameters...)</argsstring>
<name>prefer</name>
<qualifiedname>serif::solver::continuation::prefer</qualifiedname>
<param>
<type>Parameters...</type>
</param>
<requiresclause>(sizeof...(Parameters) &gt; 0) &amp;&amp; utils::dependencies::IsKeyList&lt;ParameterList&lt;Parameters...&gt;&gt; </requiresclause>
<briefdescription>
<para>Try these physical coordinates first, allowing blocked coordinates to yield. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/options.hpp" line="67" column="11" bodyfile="src/include/serif/solver/continuation/options.hpp" bodystart="67" bodyend="67"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1continuation_1af7d8b9dda17198536ec18b187be872cc" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>PhysicalParameter...</type>
<declname>Parameters</declname>
<defname>Parameters</defname>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::continuation::stages</definition>
<argsstring>(Parameters...)</argsstring>
<name>stages</name>
<qualifiedname>serif::solver::continuation::stages</qualifiedname>
<param>
<type>Parameters...</type>
</param>
<requiresclause>(sizeof...(Parameters) &gt; 0) &amp;&amp; utils::dependencies::IsKeyList&lt;ParameterList&lt;Parameters...&gt;&gt; </requiresclause>
<briefdescription>
<para>Complete each physical stage before attempting the next. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/options.hpp" line="72" column="11" bodyfile="src/include/serif/solver/continuation/options.hpp" bodystart="72" bodyend="72"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1continuation_1a90ad5d8671d73087cd74d1462313a12f" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>std::size_t</type>
<declname>Count</declname>
<defname>Count</defname>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::continuation::numerics</definition>
<argsstring>(CoordinateOptions&lt; Count &gt; options)</argsstring>
<name>numerics</name>
<qualifiedname>serif::solver::continuation::numerics</qualifiedname>
<param>
<type><ref refid="structserif_1_1solver_1_1continuation_1_1_coordinate_options" kindref="compound">CoordinateOptions</ref>&lt; Count &gt;</type>
<declname>options</declname>
</param>
<briefdescription>
<para>Expose advanced numerical coordinate stepping without mixing it into physical prescriptions. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/options.hpp" line="96" column="11" bodyfile="src/include/serif/solver/continuation/options.hpp" bodystart="96" bodyend="96"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1continuation_1aae7169c3931073093e861283e0d514f1" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Family</type>
</param>
<param>
<type>typename...</type>
<declname>Settings</declname>
<defname>Settings</defname>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::continuation::make_options</definition>
<argsstring>(const Family &amp;family, const Settings &amp;... settings)</argsstring>
<name>make_options</name>
<qualifiedname>serif::solver::continuation::make_options</qualifiedname>
<param>
<type>const <ref refid="classserif_1_1solver_1_1continuation_1_1_family" kindref="compound">Family</ref> &amp;</type>
<declname>family</declname>
</param>
<param>
<type>const Settings &amp;...</type>
<declname>settings</declname>
</param>
<requiresclause>(requires(const Settings&amp; setting, Options&lt;Family&gt;&amp; options) { setting.apply(options); } &amp;&amp; ...) </requiresclause>
<briefdescription>
<para>Resolve physical settings from family defaults before any corrector runs. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/options.hpp" line="101" column="11" bodyfile="src/include/serif/solver/continuation/options.hpp" bodystart="101" bodyend="105"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1continuation_1aad8111501ecddde8dd9e0d3264b8c1db" prot="public" static="no" nodiscard="yes" constexpr="yes" const="no" explicit="no" inline="no" noexcept="yes" virt="non-virtual">
<templateparamlist>
<param>
<type>CoordinateValue</type>
<declname>Value</declname>
<defname>Value</defname>
</param>
</templateparamlist>
<type>double</type>
<definition>double serif::solver::continuation::coordinate_value</definition>
<argsstring>(Value value) noexcept</argsstring>
<name>coordinate_value</name>
<qualifiedname>serif::solver::continuation::coordinate_value</qualifiedname>
<param>
<type>Value</type>
<declname>value</declname>
</param>
<briefdescription>
<para>Convert physical units only at the coordinate-controller boundary. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/parameters.hpp" line="58" column="23" bodyfile="src/include/serif/solver/continuation/parameters.hpp" bodystart="58" bodyend="64"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1_1continuation_1a0641f5765d284cabf96fe363078c5e33" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
<type>auto</type>
<definition>auto serif::solver::continuation::preserve_pressure_at_reference_density</definition>
<argsstring>(dimensions::DensityValue density)</argsstring>
<name>preserve_pressure_at_reference_density</name>
<qualifiedname>serif::solver::continuation::preserve_pressure_at_reference_density</qualifiedname>
<param>
<type><ref refid="namespaceserif_1_1dimensions_1af7f8c68a704a7bf475c60dbad5f98d78" kindref="member">dimensions::DensityValue</ref></type>
<declname>density</declname>
</param>
<briefdescription>
<para>Choose a pressure-preserving physical EOS family, independently of numerical normalization. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/polytropic.hpp" line="43" column="18" bodyfile="src/include/serif/solver/continuation/polytropic.hpp" bodystart="43" bodyend="45"/>
</memberdef>
</sectiondef>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<location file="src/include/serif/solver/continuation/controller.hpp" line="12" column="1"/>
</compounddef>
</doxygen>