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)
461 lines
47 KiB
TeX
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.
|
|
|