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

461 lines
47 KiB
TeX

\doxysection{serif\+::solver\+::continuation Namespace Reference}
\hypertarget{namespaceserif_1_1solver_1_1continuation}{}\label{namespaceserif_1_1solver_1_1continuation}\index{serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_1_1detail}{detail}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_angular_momentum}{Angular\+Momentum}}
\item
class \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_bound_family}{Bound\+Family}}
\item
class \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_bound_family_3_01_model_00_01_parameter_list_3_01_selec59bdc15c834ea037ddf5937bdf68e98f}{Bound\+Family$<$ Model, Parameter\+List$<$ Selected... $>$, std\+::tuple$<$ Laws... $>$, Equation\+Factory $>$}}
\begin{DoxyCompactList}\small\item\em Own target physics and construct fresh family members without a mesh, evaluator, or mutable solve context. \end{DoxyCompactList}\item
class \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_coordinate_controller}{Coordinate\+Controller}}
\begin{DoxyCompactList}\small\item\em Own only the continuation path; a caller promotes physical states after successful correction. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_coordinate_counters}{Coordinate\+Counters}}
\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_coordinate_options}{Coordinate\+Options}}
\begin{DoxyCompactList}\small\item\em Numerical increments are fractions of each coordinate\textquotesingle{}s complete physical span. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_coordinate_proposal}{Coordinate\+Proposal}}
\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_correction_controls}{Correction\+Controls}}
\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_failure}{Failure}}
\item
class \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_family}{Family}}
\begin{DoxyCompactList}\small\item\em Own a reusable physical family definition before selecting a target model. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_identified_equations}{Identified\+Equations}}
\begin{DoxyCompactList}\small\item\em Give a deferred equation definition an explicit physical identity without runtime polymorphism. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_numerical_controls}{Numerical\+Controls}}
\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_options}{Options}}
\begin{DoxyCompactList}\small\item\em Bound continuation work and storage independently of \doxylink{structserif_1_1solver_1_1_newton}{Newton}\textquotesingle{}s per-\/correction controls. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_ordering}{Ordering}}
\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_parameter_descriptor}{Parameter\+Descriptor}}
\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_parameter_law}{Parameter\+Law}}
\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_polytropic_constant}{Polytropic\+Constant}}
\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_polytropic_index}{Polytropic\+Index}}
\item
class \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_preserve_pressure_at_reference_density}{Preserve\+Pressure\+At\+Reference\+Density}}
\begin{DoxyCompactList}\small\item\em Vary K with n to preserve pressure at one explicitly selected physical reference density. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_result}{Result}}
\begin{DoxyCompactList}\small\item\em Retain the last converged physical state separately from the requested endpoint and failed candidates. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_specification_traits}{Specification\+Traits}}
\begin{DoxyCompactList}\small\item\em Add continuation access without imposing numerical dependencies on a physical prescription. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_specification_traits_3_01eos_1_1models_1_1_polytrope_01_4}{Specification\+Traits$<$ eos\+::models\+::\+Polytrope $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_specification_traits_3_01model_1_1_fixed_angular_momentum_01_4}{Specification\+Traits$<$ model\+::\+Fixed\+Angular\+Momentum $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_specification_traits_3_01_specification_01_4}{Specification\+Traits$<$ Specification $>$}}
\begin{DoxyCompactList}\small\item\em Preserve unselected scalar prescriptions in the complete physical identity. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_stage_record}{Stage\+Record}}
\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_starting_at}{Starting\+At}}
\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_starting_star}{Starting\+Star}}
\begin{DoxyCompactList}\small\item\em A supplied physical anchor still requires fresh qualification at the continuation tolerance. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Concepts}
\begin{DoxyCompactItemize}
\item
concept \mbox{\hyperlink{conceptserif_1_1solver_1_1continuation_1_1_coordinate_value}{Coordinate\+Value}}
\item
concept \mbox{\hyperlink{conceptserif_1_1solver_1_1continuation_1_1_physical_parameter}{Physical\+Parameter}}
\begin{DoxyCompactList}\small\item\em A typed physical parameter owns its domain predicate, units, owner, and stable identity. \end{DoxyCompactList}\item
concept \mbox{\hyperlink{conceptserif_1_1solver_1_1continuation_1_1_identified_specification}{Identified\+Specification}}
\begin{DoxyCompactList}\small\item\em Require explicit identity data, never an object address or incidental memory representation. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item
{\footnotesize template$<$typename... Parameters$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_af4abf5dbb21b2d1032b766c80c2138d4}{Parameter\+List}} = \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$Parameters...$>$
\end{DoxyCompactItemize}
\doxysubsubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item
enum class \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a66bc61a6db9aafdd80e8be6ef7e50c7d}{Coordinate\+Order}} \{ \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a66bc61a6db9aafdd80e8be6ef7e50c7da2bd9c0ed00116be1258e0cc66617d7c8}{automatic}}
, \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a66bc61a6db9aafdd80e8be6ef7e50c7dae4e5ef276d7ffb582d6c44f837a1e11e}{preferred}}
, \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a66bc61a6db9aafdd80e8be6ef7e50c7da2133fd717402a7966ee88d06f9e0b792}{strict}}
\}
\item
enum class \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a888b97a307db6acbca740638be478375}{Attempt\+Outcome}} \{ \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a888b97a307db6acbca740638be478375a260ca9dd8a4577fc00b7bd5810298076}{success}}
, \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a888b97a307db6acbca740638be478375a9d2045acefec47e0dff109bd1309581d}{recoverable\+\_\+rejection}}
, \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a888b97a307db6acbca740638be478375a3fa51915e3330498d7b812b8738dd3f4}{fatal\+\_\+failure}}
\}
\item
enum class \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224}{Controller\+Status}} \{ \newline
\mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224ab2fdab230a2c39f3595a947861863cb7}{ready}}
, \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224a7c6c2e5d48ab37a007cbf70d3ea25fa4}{pending}}
, \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224ad9a22d7a8178d5b42a8750123cbfe5b1}{complete}}
, \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224acc37d00e5e12d2c8308851308b845222}{attempt\+\_\+limit}}
, \newline
\mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224a43c09831647cc3d85b480f8815f0eef7}{no\+\_\+progress}}
, \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224a3fa51915e3330498d7b812b8738dd3f4}{fatal\+\_\+failure}}
\}
\item
enum class \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516}{Status}} \{ \newline
\mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516a47252c72fe050aa193e34680c008a090}{target\+\_\+reached}}
, \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516a3b37da8ec952c032b770374dbc6235c1}{starting\+\_\+star\+\_\+failed}}
, \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516acc37d00e5e12d2c8308851308b845222}{attempt\+\_\+limit}}
, \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516ab46e5f037ad909fb47d91de634c95004}{work\+\_\+limit}}
, \newline
\mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516a43c09831647cc3d85b480f8815f0eef7}{no\+\_\+progress}}
, \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516a53dbaf63161eadde6786ab8baa54a3e5}{invalid\+\_\+model}}
\}
\item
enum class \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_ae0b82e9c6b756ec2095a5ea1df5f768e}{Stage\+Disposition}} \{ \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_ae0b82e9c6b756ec2095a5ea1df5f768ea7de33615d7fbc1cb7bc608d12f1993d2}{converged}}
, \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_ae0b82e9c6b756ec2095a5ea1df5f768ea21f518858f05ad9436d04f274f2de0ab}{not\+\_\+converged}}
, \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_ae0b82e9c6b756ec2095a5ea1df5f768ea53dbaf63161eadde6786ab8baa54a3e5}{invalid\+\_\+model}}
\}
\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
{\footnotesize template$<$typename \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_family}{Family}}, typename State, typename Corrector$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_add798956874a0248752eabf98cc12b4b}{run}} (const \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_family}{Family}} \&family, const State \&initial\+\_\+state, Corrector \&\&correct, \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_options}{Options}}$<$ \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_family}{Family}} $>$ options, double absolute\+\_\+tolerance)
\begin{DoxyCompactList}\small\item\em Follow a physical family using owning correction results and physical state transfer. \end{DoxyCompactList}\item
{\footnotesize template$<$typename \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_family}{Family}}, typename Model, typename State, typename Corrector$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a4090eedeabb4c30d029eb370a1188f44}{run}} (const \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_family}{Family}} \&family, const \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_starting_star}{Starting\+Star}}$<$ Model, State $>$ \&\mbox{\hyperlink{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464acc51b81974287ab79cef9e94fe778cc9}{initial}}, Corrector \&\&correct, \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_options}{Options}}$<$ \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_family}{Family}} $>$ options, double absolute\+\_\+tolerance)
\begin{DoxyCompactList}\small\item\em Qualify a supplied star afresh after checking every physical family input. \end{DoxyCompactList}\item
\mbox{\hyperlink{structserif_1_1solver_1_1_solver_options}{Solver\+Options}} \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a284b5f1f64852170370630726f9fd9e6}{default\+\_\+solver\+\_\+options}} ()
\begin{DoxyCompactList}\small\item\em Continuation uses one absolute qualification threshold across all family members. \end{DoxyCompactList}\item
{\footnotesize template$<$Physical\+Parameter... Parameters$>$ }\\constexpr auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a94545ae3cf626e6588d86471528374aa}{depends\+\_\+on}} (Parameters...) noexcept
\begin{DoxyCompactList}\small\item\em Name only independent physical inputs to a dependent law. \end{DoxyCompactList}\item
{\footnotesize template$<$Physical\+Parameter Output, Physical\+Parameter... Inputs, typename Function$>$ \newline
requires utils\+::dependencies\+::\+Is\+Key\+List$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_af4abf5dbb21b2d1032b766c80c2138d4}{Parameter\+List}}$<$Inputs...$>$$>$ \&\& std\+::invocable$<$const std\+::remove\+\_\+cvref\+\_\+t$<$Function$>$\&, typename Inputs\+::\+Value...$>$ \&\& std\+::same\+\_\+as$<$std\+::remove\+\_\+cvref\+\_\+t$<$std\+::invoke\+\_\+result\+\_\+t$<$const std\+::remove\+\_\+cvref\+\_\+t$<$Function$>$\&, typename Inputs\+::\+Value...$>$$>$, typename Output\+::\+Value$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a6f421e0cf94425828a241416a97e6290}{law}} (Output, \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_af4abf5dbb21b2d1032b766c80c2138d4}{Parameter\+List}}$<$ Inputs... $>$, Function \&\&function)
\begin{DoxyCompactList}\small\item\em Own a typed law, including move-\/only captures; its inputs are selected coordinates rather than other laws. \end{DoxyCompactList}\item
{\footnotesize template$<$Physical\+Parameter... Parameters$>$ \newline
requires (sizeof...(Parameters) $>$ 0) \&\& utils\+::dependencies\+::\+Is\+Key\+List$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_af4abf5dbb21b2d1032b766c80c2138d4}{Parameter\+List}}$<$Parameters...$>$$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_ae6b0f634b5c0bda27b5b2f9e816c3ff2}{in}} (Parameters...)
\begin{DoxyCompactList}\small\item\em Select independent physical coordinates with duplicate detection at compile time. \end{DoxyCompactList}\item
{\footnotesize template$<$typename Definition, Coordinate\+Value... Values$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a4febacc55e92aa45bcac8a82de827e19}{identified\+\_\+equations}} (Definition definition, Values... values)
\begin{DoxyCompactList}\small\item\em Declare every fixed physical constant captured by a deferred equation definition. \end{DoxyCompactList}\item
{\footnotesize template$<$Physical\+Parameter Parameter$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_aa7ddba37396ae133a3a2e1744888d4dd}{starting\+\_\+at}} (Parameter, typename Parameter\+::\+Value value)
\begin{DoxyCompactList}\small\item\em Select a physical starting value with the parameter\textquotesingle{}s required units. \end{DoxyCompactList}\item
{\footnotesize template$<$Physical\+Parameter... Parameters$>$ \newline
requires (sizeof...(Parameters) $>$ 0) \&\& utils\+::dependencies\+::\+Is\+Key\+List$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_af4abf5dbb21b2d1032b766c80c2138d4}{Parameter\+List}}$<$Parameters...$>$$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_aacad124179f8468affa401c5a7a80e84}{prefer}} (Parameters...)
\begin{DoxyCompactList}\small\item\em Try these physical coordinates first, allowing blocked coordinates to yield. \end{DoxyCompactList}\item
{\footnotesize template$<$Physical\+Parameter... Parameters$>$ \newline
requires (sizeof...(Parameters) $>$ 0) \&\& utils\+::dependencies\+::\+Is\+Key\+List$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_af4abf5dbb21b2d1032b766c80c2138d4}{Parameter\+List}}$<$Parameters...$>$$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_af7d8b9dda17198536ec18b187be872cc}{stages}} (Parameters...)
\begin{DoxyCompactList}\small\item\em Complete each physical stage before attempting the next. \end{DoxyCompactList}\item
{\footnotesize template$<$std\+::size\+\_\+t Count$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a90ad5d8671d73087cd74d1462313a12f}{numerics}} (\mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_coordinate_options}{Coordinate\+Options}}$<$ Count $>$ options)
\begin{DoxyCompactList}\small\item\em Expose advanced numerical coordinate stepping without mixing it into physical prescriptions. \end{DoxyCompactList}\item
{\footnotesize template$<$typename \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_family}{Family}}, typename... Settings$>$ \newline
requires (requires(const Settings\& setting, \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_options}{Options}}$<$\mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_family}{Family}}$>$\& options) \{ setting.\+apply(options); \} \&\& ...)}\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_aae7169c3931073093e861283e0d514f1}{make\+\_\+options}} (const \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_family}{Family}} \&family, const Settings \&... settings)
\begin{DoxyCompactList}\small\item\em Resolve physical settings from family defaults before any corrector runs. \end{DoxyCompactList}\item
{\footnotesize template$<$Coordinate\+Value Value$>$ }\\constexpr double \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_aad8111501ecddde8dd9e0d3264b8c1db}{coordinate\+\_\+value}} (Value value) noexcept
\begin{DoxyCompactList}\small\item\em Convert physical units only at the coordinate-\/controller boundary. \end{DoxyCompactList}\item
auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a0641f5765d284cabf96fe363078c5e33}{preserve\+\_\+pressure\+\_\+at\+\_\+reference\+\_\+density}} (\mbox{\hyperlink{namespaceserif_1_1dimensions_af7f8c68a704a7bf475c60dbad5f98d78}{dimensions\+::\+Density\+Value}} density)
\begin{DoxyCompactList}\small\item\em Choose a pressure-\/preserving physical EOS family, independently of numerical normalization. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection{Typedef Documentation}
\Hypertarget{namespaceserif_1_1solver_1_1continuation_af4abf5dbb21b2d1032b766c80c2138d4}\index{serif::solver::continuation@{serif::solver::continuation}!ParameterList@{ParameterList}}
\index{ParameterList@{ParameterList}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{ParameterList}{ParameterList}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_af4abf5dbb21b2d1032b766c80c2138d4}
template$<$typename... Parameters$>$ \\
using \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_af4abf5dbb21b2d1032b766c80c2138d4}{serif\+::solver\+::continuation\+::\+Parameter\+List}} = \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$Parameters...$>$}
\doxysubsection{Enumeration Type Documentation}
\Hypertarget{namespaceserif_1_1solver_1_1continuation_a888b97a307db6acbca740638be478375}\index{serif::solver::continuation@{serif::solver::continuation}!AttemptOutcome@{AttemptOutcome}}
\index{AttemptOutcome@{AttemptOutcome}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{AttemptOutcome}{AttemptOutcome}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_a888b97a307db6acbca740638be478375}
enum class \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a888b97a307db6acbca740638be478375}{serif\+::solver\+::continuation\+::\+Attempt\+Outcome}}\hspace{0.3cm}{\ttfamily [strong]}}
\begin{DoxyEnumFields}[2]{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{success@{success}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!success@{success}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_a888b97a307db6acbca740638be478375a260ca9dd8a4577fc00b7bd5810298076}\label{namespaceserif_1_1solver_1_1continuation_a888b97a307db6acbca740638be478375a260ca9dd8a4577fc00b7bd5810298076}
success&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{recoverable\_rejection@{recoverable\_rejection}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!recoverable\_rejection@{recoverable\_rejection}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_a888b97a307db6acbca740638be478375a9d2045acefec47e0dff109bd1309581d}\label{namespaceserif_1_1solver_1_1continuation_a888b97a307db6acbca740638be478375a9d2045acefec47e0dff109bd1309581d}
recoverable\+\_\+rejection&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{fatal\_failure@{fatal\_failure}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!fatal\_failure@{fatal\_failure}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_a888b97a307db6acbca740638be478375a3fa51915e3330498d7b812b8738dd3f4}\label{namespaceserif_1_1solver_1_1continuation_a888b97a307db6acbca740638be478375a3fa51915e3330498d7b812b8738dd3f4}
fatal\+\_\+failure&\\
\hline
\end{DoxyEnumFields}
\Hypertarget{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224}\index{serif::solver::continuation@{serif::solver::continuation}!ControllerStatus@{ControllerStatus}}
\index{ControllerStatus@{ControllerStatus}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{ControllerStatus}{ControllerStatus}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224}
enum class \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224}{serif\+::solver\+::continuation\+::\+Controller\+Status}}\hspace{0.3cm}{\ttfamily [strong]}}
\begin{DoxyEnumFields}[2]{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{ready@{ready}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!ready@{ready}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224ab2fdab230a2c39f3595a947861863cb7}\label{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224ab2fdab230a2c39f3595a947861863cb7}
ready&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{pending@{pending}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!pending@{pending}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224a7c6c2e5d48ab37a007cbf70d3ea25fa4}\label{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224a7c6c2e5d48ab37a007cbf70d3ea25fa4}
pending&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{complete@{complete}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!complete@{complete}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224ad9a22d7a8178d5b42a8750123cbfe5b1}\label{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224ad9a22d7a8178d5b42a8750123cbfe5b1}
complete&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{attempt\_limit@{attempt\_limit}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!attempt\_limit@{attempt\_limit}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224acc37d00e5e12d2c8308851308b845222}\label{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224acc37d00e5e12d2c8308851308b845222}
attempt\+\_\+limit&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{no\_progress@{no\_progress}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!no\_progress@{no\_progress}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224a43c09831647cc3d85b480f8815f0eef7}\label{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224a43c09831647cc3d85b480f8815f0eef7}
no\+\_\+progress&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{fatal\_failure@{fatal\_failure}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!fatal\_failure@{fatal\_failure}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224a3fa51915e3330498d7b812b8738dd3f4}\label{namespaceserif_1_1solver_1_1continuation_ac833c779d67dfdac0917f38d98020224a3fa51915e3330498d7b812b8738dd3f4}
fatal\+\_\+failure&\\
\hline
\end{DoxyEnumFields}
\Hypertarget{namespaceserif_1_1solver_1_1continuation_a66bc61a6db9aafdd80e8be6ef7e50c7d}\index{serif::solver::continuation@{serif::solver::continuation}!CoordinateOrder@{CoordinateOrder}}
\index{CoordinateOrder@{CoordinateOrder}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{CoordinateOrder}{CoordinateOrder}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_a66bc61a6db9aafdd80e8be6ef7e50c7d}
enum class \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a66bc61a6db9aafdd80e8be6ef7e50c7d}{serif\+::solver\+::continuation\+::\+Coordinate\+Order}}\hspace{0.3cm}{\ttfamily [strong]}}
\begin{DoxyEnumFields}[2]{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{automatic@{automatic}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!automatic@{automatic}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_a66bc61a6db9aafdd80e8be6ef7e50c7da2bd9c0ed00116be1258e0cc66617d7c8}\label{namespaceserif_1_1solver_1_1continuation_a66bc61a6db9aafdd80e8be6ef7e50c7da2bd9c0ed00116be1258e0cc66617d7c8}
automatic&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{preferred@{preferred}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!preferred@{preferred}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_a66bc61a6db9aafdd80e8be6ef7e50c7dae4e5ef276d7ffb582d6c44f837a1e11e}\label{namespaceserif_1_1solver_1_1continuation_a66bc61a6db9aafdd80e8be6ef7e50c7dae4e5ef276d7ffb582d6c44f837a1e11e}
preferred&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{strict@{strict}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!strict@{strict}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_a66bc61a6db9aafdd80e8be6ef7e50c7da2133fd717402a7966ee88d06f9e0b792}\label{namespaceserif_1_1solver_1_1continuation_a66bc61a6db9aafdd80e8be6ef7e50c7da2133fd717402a7966ee88d06f9e0b792}
strict&\\
\hline
\end{DoxyEnumFields}
\Hypertarget{namespaceserif_1_1solver_1_1continuation_ae0b82e9c6b756ec2095a5ea1df5f768e}\index{serif::solver::continuation@{serif::solver::continuation}!StageDisposition@{StageDisposition}}
\index{StageDisposition@{StageDisposition}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{StageDisposition}{StageDisposition}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_ae0b82e9c6b756ec2095a5ea1df5f768e}
enum class \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_ae0b82e9c6b756ec2095a5ea1df5f768e}{serif\+::solver\+::continuation\+::\+Stage\+Disposition}}\hspace{0.3cm}{\ttfamily [strong]}}
\begin{DoxyEnumFields}[2]{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{converged@{converged}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!converged@{converged}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_ae0b82e9c6b756ec2095a5ea1df5f768ea7de33615d7fbc1cb7bc608d12f1993d2}\label{namespaceserif_1_1solver_1_1continuation_ae0b82e9c6b756ec2095a5ea1df5f768ea7de33615d7fbc1cb7bc608d12f1993d2}
converged&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{not\_converged@{not\_converged}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!not\_converged@{not\_converged}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_ae0b82e9c6b756ec2095a5ea1df5f768ea21f518858f05ad9436d04f274f2de0ab}\label{namespaceserif_1_1solver_1_1continuation_ae0b82e9c6b756ec2095a5ea1df5f768ea21f518858f05ad9436d04f274f2de0ab}
not\+\_\+converged&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{invalid\_model@{invalid\_model}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!invalid\_model@{invalid\_model}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_ae0b82e9c6b756ec2095a5ea1df5f768ea53dbaf63161eadde6786ab8baa54a3e5}\label{namespaceserif_1_1solver_1_1continuation_ae0b82e9c6b756ec2095a5ea1df5f768ea53dbaf63161eadde6786ab8baa54a3e5}
invalid\+\_\+model&\\
\hline
\end{DoxyEnumFields}
\Hypertarget{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516}\index{serif::solver::continuation@{serif::solver::continuation}!Status@{Status}}
\index{Status@{Status}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{Status}{Status}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516}
enum class \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516}{serif\+::solver\+::continuation\+::\+Status}}\hspace{0.3cm}{\ttfamily [strong]}}
\begin{DoxyEnumFields}[2]{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{target\_reached@{target\_reached}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!target\_reached@{target\_reached}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516a47252c72fe050aa193e34680c008a090}\label{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516a47252c72fe050aa193e34680c008a090}
target\+\_\+reached&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{starting\_star\_failed@{starting\_star\_failed}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!starting\_star\_failed@{starting\_star\_failed}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516a3b37da8ec952c032b770374dbc6235c1}\label{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516a3b37da8ec952c032b770374dbc6235c1}
starting\+\_\+star\+\_\+failed&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{attempt\_limit@{attempt\_limit}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!attempt\_limit@{attempt\_limit}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516acc37d00e5e12d2c8308851308b845222}\label{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516acc37d00e5e12d2c8308851308b845222}
attempt\+\_\+limit&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{work\_limit@{work\_limit}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!work\_limit@{work\_limit}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516ab46e5f037ad909fb47d91de634c95004}\label{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516ab46e5f037ad909fb47d91de634c95004}
work\+\_\+limit&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{no\_progress@{no\_progress}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!no\_progress@{no\_progress}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516a43c09831647cc3d85b480f8815f0eef7}\label{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516a43c09831647cc3d85b480f8815f0eef7}
no\+\_\+progress&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{invalid\_model@{invalid\_model}!serif::solver::continuation@{serif::solver::continuation}}\index{serif::solver::continuation@{serif::solver::continuation}!invalid\_model@{invalid\_model}}}\Hypertarget{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516a53dbaf63161eadde6786ab8baa54a3e5}\label{namespaceserif_1_1solver_1_1continuation_a0445e530123f4dd3f14954eafeaeb516a53dbaf63161eadde6786ab8baa54a3e5}
invalid\+\_\+model&\\
\hline
\end{DoxyEnumFields}
\doxysubsection{Function Documentation}
\Hypertarget{namespaceserif_1_1solver_1_1continuation_aad8111501ecddde8dd9e0d3264b8c1db}\index{serif::solver::continuation@{serif::solver::continuation}!coordinate\_value@{coordinate\_value}}
\index{coordinate\_value@{coordinate\_value}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{coordinate\_value()}{coordinate\_value()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_aad8111501ecddde8dd9e0d3264b8c1db}
template$<$Coordinate\+Value Value$>$ \\
double serif\+::solver\+::continuation\+::coordinate\+\_\+value (\begin{DoxyParamCaption}\item[{Value}]{value}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}
Convert physical units only at the coordinate-\/controller boundary.
\Hypertarget{namespaceserif_1_1solver_1_1continuation_a284b5f1f64852170370630726f9fd9e6}\index{serif::solver::continuation@{serif::solver::continuation}!default\_solver\_options@{default\_solver\_options}}
\index{default\_solver\_options@{default\_solver\_options}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{default\_solver\_options()}{default\_solver\_options()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_a284b5f1f64852170370630726f9fd9e6}
\mbox{\hyperlink{structserif_1_1solver_1_1_solver_options}{Solver\+Options}} serif\+::solver\+::continuation\+::default\+\_\+solver\+\_\+options (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [nodiscard]}}
Continuation uses one absolute qualification threshold across all family members.
\Hypertarget{namespaceserif_1_1solver_1_1continuation_a94545ae3cf626e6588d86471528374aa}\index{serif::solver::continuation@{serif::solver::continuation}!depends\_on@{depends\_on}}
\index{depends\_on@{depends\_on}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{depends\_on()}{depends\_on()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_a94545ae3cf626e6588d86471528374aa}
template$<$Physical\+Parameter... Parameters$>$ \\
auto serif\+::solver\+::continuation\+::depends\+\_\+on (\begin{DoxyParamCaption}\item[{Parameters...}]{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}
Name only independent physical inputs to a dependent law.
\Hypertarget{namespaceserif_1_1solver_1_1continuation_a4febacc55e92aa45bcac8a82de827e19}\index{serif::solver::continuation@{serif::solver::continuation}!identified\_equations@{identified\_equations}}
\index{identified\_equations@{identified\_equations}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{identified\_equations()}{identified\_equations()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_a4febacc55e92aa45bcac8a82de827e19}
template$<$typename Definition, Coordinate\+Value... Values$>$ \\
auto serif\+::solver\+::continuation\+::identified\+\_\+equations (\begin{DoxyParamCaption}\item[{Definition}]{definition}{, }\item[{Values...}]{values}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Declare every fixed physical constant captured by a deferred equation definition.
\begin{DoxyNote}{Note}
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.
\end{DoxyNote}
\Hypertarget{namespaceserif_1_1solver_1_1continuation_ae6b0f634b5c0bda27b5b2f9e816c3ff2}\index{serif::solver::continuation@{serif::solver::continuation}!in@{in}}
\index{in@{in}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{in()}{in()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_ae6b0f634b5c0bda27b5b2f9e816c3ff2}
template$<$Physical\+Parameter... Parameters$>$ \newline
requires (sizeof...(Parameters) $>$ 0) \&\& utils\+::dependencies\+::\+Is\+Key\+List$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_af4abf5dbb21b2d1032b766c80c2138d4}{Parameter\+List}}$<$Parameters...$>$$>$\\
auto serif\+::solver\+::continuation\+::in (\begin{DoxyParamCaption}\item[{Parameters...}]{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Select independent physical coordinates with duplicate detection at compile time.
\Hypertarget{namespaceserif_1_1solver_1_1continuation_a6f421e0cf94425828a241416a97e6290}\index{serif::solver::continuation@{serif::solver::continuation}!law@{law}}
\index{law@{law}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{law()}{law()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_a6f421e0cf94425828a241416a97e6290}
template$<$Physical\+Parameter Output, Physical\+Parameter... Inputs, typename Function$>$ \newline
requires utils\+::dependencies\+::\+Is\+Key\+List$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_af4abf5dbb21b2d1032b766c80c2138d4}{Parameter\+List}}$<$Inputs...$>$$>$ \&\& std\+::invocable$<$const std\+::remove\+\_\+cvref\+\_\+t$<$Function$>$\&, typename Inputs\+::\+Value...$>$ \&\& std\+::same\+\_\+as$<$std\+::remove\+\_\+cvref\+\_\+t$<$std\+::invoke\+\_\+result\+\_\+t$<$const std\+::remove\+\_\+cvref\+\_\+t$<$Function$>$\&, typename Inputs\+::\+Value...$>$$>$, typename Output\+::\+Value$>$\\
auto serif\+::solver\+::continuation\+::law (\begin{DoxyParamCaption}\item[{Output}]{}{, }\item[{\mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_af4abf5dbb21b2d1032b766c80c2138d4}{Parameter\+List}}$<$ Inputs... $>$}]{}{, }\item[{Function \&\&}]{function}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Own a typed law, including move-\/only captures; its inputs are selected coordinates rather than other laws.
\Hypertarget{namespaceserif_1_1solver_1_1continuation_aae7169c3931073093e861283e0d514f1}\index{serif::solver::continuation@{serif::solver::continuation}!make\_options@{make\_options}}
\index{make\_options@{make\_options}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{make\_options()}{make\_options()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_aae7169c3931073093e861283e0d514f1}
template$<$typename \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_family}{Family}}, typename... Settings$>$ \newline
requires (requires(const Settings\& setting, \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_options}{Options}}$<$\mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_family}{Family}}$>$\& options) \{ setting.\+apply(options); \} \&\& ...)\\
auto serif\+::solver\+::continuation\+::make\+\_\+options (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_family}{Family}} \&}]{family}{, }\item[{const Settings \&...}]{settings}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Resolve physical settings from family defaults before any corrector runs.
\Hypertarget{namespaceserif_1_1solver_1_1continuation_a90ad5d8671d73087cd74d1462313a12f}\index{serif::solver::continuation@{serif::solver::continuation}!numerics@{numerics}}
\index{numerics@{numerics}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{numerics()}{numerics()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_a90ad5d8671d73087cd74d1462313a12f}
template$<$std\+::size\+\_\+t Count$>$ \\
auto serif\+::solver\+::continuation\+::numerics (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_coordinate_options}{Coordinate\+Options}}$<$ Count $>$}]{options}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Expose advanced numerical coordinate stepping without mixing it into physical prescriptions.
\Hypertarget{namespaceserif_1_1solver_1_1continuation_aacad124179f8468affa401c5a7a80e84}\index{serif::solver::continuation@{serif::solver::continuation}!prefer@{prefer}}
\index{prefer@{prefer}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{prefer()}{prefer()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_aacad124179f8468affa401c5a7a80e84}
template$<$Physical\+Parameter... Parameters$>$ \newline
requires (sizeof...(Parameters) $>$ 0) \&\& utils\+::dependencies\+::\+Is\+Key\+List$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_af4abf5dbb21b2d1032b766c80c2138d4}{Parameter\+List}}$<$Parameters...$>$$>$\\
auto serif\+::solver\+::continuation\+::prefer (\begin{DoxyParamCaption}\item[{Parameters...}]{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Try these physical coordinates first, allowing blocked coordinates to yield.
\Hypertarget{namespaceserif_1_1solver_1_1continuation_a0641f5765d284cabf96fe363078c5e33}\index{serif::solver::continuation@{serif::solver::continuation}!preserve\_pressure\_at\_reference\_density@{preserve\_pressure\_at\_reference\_density}}
\index{preserve\_pressure\_at\_reference\_density@{preserve\_pressure\_at\_reference\_density}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{preserve\_pressure\_at\_reference\_density()}{preserve\_pressure\_at\_reference\_density()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_a0641f5765d284cabf96fe363078c5e33}
auto serif\+::solver\+::continuation\+::preserve\+\_\+pressure\+\_\+at\+\_\+reference\+\_\+density (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespaceserif_1_1dimensions_af7f8c68a704a7bf475c60dbad5f98d78}{dimensions\+::\+Density\+Value}}}]{density}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [nodiscard]}}
Choose a pressure-\/preserving physical EOS family, independently of numerical normalization.
\Hypertarget{namespaceserif_1_1solver_1_1continuation_a4090eedeabb4c30d029eb370a1188f44}\index{serif::solver::continuation@{serif::solver::continuation}!run@{run}}
\index{run@{run}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{run()}{run()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_a4090eedeabb4c30d029eb370a1188f44}
template$<$typename \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_family}{Family}}, typename Model, typename State, typename Corrector$>$ \\
auto serif\+::solver\+::continuation\+::run (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_family}{Family}} \&}]{family}{, }\item[{const \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_starting_star}{Starting\+Star}}$<$ Model, State $>$ \&}]{initial}{, }\item[{Corrector \&\&}]{correct}{, }\item[{\mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_options}{Options}}$<$ \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_family}{Family}} $>$}]{options}{, }\item[{double}]{absolute\+\_\+tolerance}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Qualify a supplied star afresh after checking every physical family input.
\Hypertarget{namespaceserif_1_1solver_1_1continuation_add798956874a0248752eabf98cc12b4b}\index{serif::solver::continuation@{serif::solver::continuation}!run@{run}}
\index{run@{run}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{run()}{run()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_add798956874a0248752eabf98cc12b4b}
template$<$typename \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_family}{Family}}, typename State, typename Corrector$>$ \\
auto serif\+::solver\+::continuation\+::run (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_family}{Family}} \&}]{family}{, }\item[{const State \&}]{initial\+\_\+state}{, }\item[{Corrector \&\&}]{correct}{, }\item[{\mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_options}{Options}}$<$ \mbox{\hyperlink{classserif_1_1solver_1_1continuation_1_1_family}{Family}} $>$}]{options}{, }\item[{double}]{absolute\+\_\+tolerance}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Follow a physical family using owning correction results and physical state transfer.
\begin{DoxyParams}{Parameters}
{\em correct} & A callable accepting a fresh model, a physical state value, and \doxylink{structserif_1_1solver_1_1continuation_1_1_correction_controls}{Correction\+Controls}. Its result must expose \doxylink{namespaceserif_1_1solver_1_1continuation_ae0b82e9c6b756ec2095a5ea1df5f768ea7de33615d7fbc1cb7bc608d12f1993d2}{converged()}, has\+\_\+state(), state(), diagnostics().attempted\+\_\+iterations/final\+\_\+residual\+\_\+norm, and message(). \\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
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.
\end{DoxyNote}
\Hypertarget{namespaceserif_1_1solver_1_1continuation_af7d8b9dda17198536ec18b187be872cc}\index{serif::solver::continuation@{serif::solver::continuation}!stages@{stages}}
\index{stages@{stages}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{stages()}{stages()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_af7d8b9dda17198536ec18b187be872cc}
template$<$Physical\+Parameter... Parameters$>$ \newline
requires (sizeof...(Parameters) $>$ 0) \&\& utils\+::dependencies\+::\+Is\+Key\+List$<$\mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_af4abf5dbb21b2d1032b766c80c2138d4}{Parameter\+List}}$<$Parameters...$>$$>$\\
auto serif\+::solver\+::continuation\+::stages (\begin{DoxyParamCaption}\item[{Parameters...}]{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Complete each physical stage before attempting the next.
\Hypertarget{namespaceserif_1_1solver_1_1continuation_aa7ddba37396ae133a3a2e1744888d4dd}\index{serif::solver::continuation@{serif::solver::continuation}!starting\_at@{starting\_at}}
\index{starting\_at@{starting\_at}!serif::solver::continuation@{serif::solver::continuation}}
\doxysubsubsection{\texorpdfstring{starting\_at()}{starting\_at()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1continuation_aa7ddba37396ae133a3a2e1744888d4dd}
template$<$Physical\+Parameter Parameter$>$ \\
auto serif\+::solver\+::continuation\+::starting\+\_\+at (\begin{DoxyParamCaption}\item[{Parameter}]{}{, }\item[{typename Parameter\+::\+Value}]{value}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Select a physical starting value with the parameter\textquotesingle{}s required units.