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

409 lines
45 KiB
TeX

\doxysection{serif\+::solver Namespace Reference}
\hypertarget{namespaceserif_1_1solver}{}\label{namespaceserif_1_1solver}\index{serif::solver@{serif::solver}}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1admissibility}{admissibility}}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1backend}{backend}}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation}{continuation}}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1detail}{detail}}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1linear}{linear}}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1normalization}{normalization}}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner}{preconditioner}}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1seed}{seed}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1_backtracking}{Backtracking}}
\begin{DoxyCompactList}\small\item\em Shorten a \doxylink{structserif_1_1solver_1_1_newton}{Newton} step until the complete residual merit decreases sufficiently. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1_direction_assessment}{Direction\+Assessment}}
\begin{DoxyCompactList}\small\item\em A modified direction must report whether it is usable and any measured merit slope. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1_metric_evaluation}{Metric\+Evaluation}}
\begin{DoxyCompactList}\small\item\em Separate the convergence norm from the line-\/search merit for custom metrics. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1_newton}{Newton}}
\begin{DoxyCompactList}\small\item\em Accuracy and work limits for finding one equilibrium star. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1_newton_checkpoint}{Newton\+Checkpoint}}
\begin{DoxyCompactList}\small\item\em Own the accepted physical star and the small amount of \doxylink{structserif_1_1solver_1_1_newton}{Newton} history needed to continue it. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1_newton_progress}{Newton\+Progress}}
\begin{DoxyCompactList}\small\item\em Numerical continuation data at one accepted \doxylink{structserif_1_1solver_1_1_newton}{Newton} boundary. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1_no_model}{No\+Model}}
\begin{DoxyCompactList}\small\item\em Marker for algebraic tests and custom problems without a stellar description. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1_no_observer}{No\+Observer}}
\begin{DoxyCompactList}\small\item\em Disable observation without introducing runtime callback allocation. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1_normalized_residual_metric}{Normalized\+Residual\+Metric}}
\begin{DoxyCompactList}\small\item\em Use the Euclidean norm of SERiF\textquotesingle{}s normalized residual and half its square. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1_solve_diagnostics}{Solve\+Diagnostics}}
\begin{DoxyCompactList}\small\item\em Bounded work totals; accepted physical snapshots are stored separately from diagnostics. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1_solve_event}{Solve\+Event}}
\begin{DoxyCompactList}\small\item\em Small event record suitable for logging without retaining every iterate. \end{DoxyCompactList}\item
class \mbox{\hyperlink{classserif_1_1solver_1_1_solve_result}{Solve\+Result}}
\begin{DoxyCompactList}\small\item\em Own the last accepted physical state, matching frozen system, and descriptive model. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1_solver_options}{Solver\+Options}}
\begin{DoxyCompactList}\small\item\em Select numerical policies while keeping equilibrium physics in the model. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1_solve_timing}{Solve\+Timing}}
\begin{DoxyCompactList}\small\item\em Optional elapsed wall time, kept separately from numerical restart history. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1_standard_newton}{Standard\+Newton}}
\begin{DoxyCompactList}\small\item\em Ordinary \doxylink{structserif_1_1solver_1_1_newton}{Newton} supplies every strategy phase; custom policies may replace individual phases explicitly. \end{DoxyCompactList}\item
class \mbox{\hyperlink{classserif_1_1solver_1_1_timed_observer}{Timed\+Observer}}
\begin{DoxyCompactList}\small\item\em Measure solves explicitly while retaining an ordinary progress or stop callback. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1solver_1_1_trial_assessment}{Trial\+Assessment}}
\begin{DoxyCompactList}\small\item\em A numerical policy explicitly accepts its work or explains why this candidate must be rejected. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item
using \mbox{\hyperlink{namespaceserif_1_1solver_aaee71b0914bfa77aeb37e494eab911bb}{Volume\+Options}} = \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_options}{operators\+::backend\+::mfem\+::\+Volume\+Options}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item
enum class \mbox{\hyperlink{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64}{Solve\+Status}} \{ \newline
\mbox{\hyperlink{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64a7de33615d7fbc1cb7bc608d12f1993d2}{converged}}
, \mbox{\hyperlink{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64a00284e15e20ba8bd246e70c06567efbd}{initial\+\_\+state\+\_\+rejected}}
, \mbox{\hyperlink{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64ae5352def1775383427334d4671099caf}{invalid\+\_\+metric}}
, \mbox{\hyperlink{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64ae9f49c7af9b0c06e5e2481ec84cdf9aa}{preparation\+\_\+failure}}
, \newline
\mbox{\hyperlink{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64a4913a35a7eab87ca909c1d360ab82adb}{linear\+\_\+solve\+\_\+failure}}
, \mbox{\hyperlink{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64a8286355a7892894a1c3cc40354da9999}{globalization\+\_\+failure}}
, \mbox{\hyperlink{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64af9cc715fb6ecde5fea080ac57ad0dfaf}{maximum\+\_\+iterations}}
, \mbox{\hyperlink{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64af0a0bfe6bc7d2c58d2989034f83183e0}{stopped}}
\}
\begin{DoxyCompactList}\small\item\em Numerical termination; invalid configuration and user callback errors remain exceptions. \end{DoxyCompactList}\item
enum class \mbox{\hyperlink{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464}{Event\+Kind}} \{ \newline
\mbox{\hyperlink{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464acc51b81974287ab79cef9e94fe778cc9}{initial}}
, \mbox{\hyperlink{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464a57054ff3283d5f50b905c8d1a492c8a3}{before\+\_\+iteration}}
, \mbox{\hyperlink{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464a8746f4ec6db7fdda6018d314e8c3ae02}{trial\+\_\+rejected}}
, \mbox{\hyperlink{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464a6e563563af598fa7575b0944e785a7d5}{before\+\_\+accept}}
, \newline
\mbox{\hyperlink{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464a3e4d891a5df3d6d0d7dd9432a1bc6470}{accepted}}
, \mbox{\hyperlink{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464aa5d7ceb2c59b8cee46c2953fec9abc19}{finished}}
, \mbox{\hyperlink{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464a121ad2eb76415d284215a4c9deddf79c}{resumed}}
\}
\begin{DoxyCompactList}\small\item\em Events expose immutable accepted/trial snapshots; callbacks never decide acceptance. \end{DoxyCompactList}\item
enum class \mbox{\hyperlink{namespaceserif_1_1solver_af4b1a8caa8d8f54f51fc013688c7b21c}{Solve\+Control}} \{ \mbox{\hyperlink{namespaceserif_1_1solver_af4b1a8caa8d8f54f51fc013688c7b21ca1c2afff196eca9b02ad6a8dcc4aee0e0}{continue\+\_\+solve}}
, \mbox{\hyperlink{namespaceserif_1_1solver_af4b1a8caa8d8f54f51fc013688c7b21caef399b2d446bb37b7c32ad2cc1b6045b}{stop}}
\}
\begin{DoxyCompactList}\small\item\em A stop request is remembered until the next initial, resumed or accepted Newton boundary. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
{\footnotesize template$<$typename Family, typename Factory, typename State, typename Options = Solver\+Options$<$$>$$>$ \newline
requires std\+::copy\+\_\+constructible$<$Options$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1solver_a795ce8d9efdc979d67d91cb56839fd1e}{continue\+\_\+equilibrium}} (const Family \&family, Factory configure, const State \&initial\+\_\+state, \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_options}{continuation\+::\+Options}}$<$ Family $>$ continuation\+\_\+options, Options solver\+\_\+options=\mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a284b5f1f64852170370630726f9fd9e6}{continuation\+::default\+\_\+solver\+\_\+options}}())
\begin{DoxyCompactList}\small\item\em Continue moving-\/star equilibria through an explicitly declared physical family. \end{DoxyCompactList}\item
{\footnotesize template$<$typename Family, typename Factory, typename State$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_aae73f87737f0d06a65fdf60a267717d7}{continue\+\_\+equilibrium}} (const Family \&family, Factory configure, const State \&initial\+\_\+state)
\begin{DoxyCompactList}\small\item\em Start with the family\textquotesingle{}s physics-\/owned default coordinates and bounded fallback route. \end{DoxyCompactList}\item
{\footnotesize template$<$typename Family, typename Factory, typename State, typename Options = Solver\+Options$<$$>$$>$ \newline
requires std\+::copy\+\_\+constructible$<$Options$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1solver_abb8b187f7bbc1ffbe64842176278d16f}{continue\+\_\+equilibrium}} (const Family \&family, Factory configure, const State \&initial\+\_\+state, const \mbox{\hyperlink{namespaceserif_ab7690da8665e9d9bd2fa8e8534cd6e57}{Vector}} \&displacement, \mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_options}{continuation\+::\+Options}}$<$ Family $>$ continuation\+\_\+options, Options solver\+\_\+options=\mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a284b5f1f64852170370630726f9fd9e6}{continuation\+::default\+\_\+solver\+\_\+options}}())
\begin{DoxyCompactList}\small\item\em Continue a fixed-\/geometry model while preserving its prescribed displacement. \end{DoxyCompactList}\item
{\footnotesize template$<$typename Family, typename Factory, typename State$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_ada5a2ebd458d64ac776bede196e81002}{continue\+\_\+equilibrium}} (const Family \&family, Factory configure, const State \&initial\+\_\+state, const \mbox{\hyperlink{namespaceserif_ab7690da8665e9d9bd2fa8e8534cd6e57}{Vector}} \&displacement)
\begin{DoxyCompactList}\small\item\em Use the same default route and absolute qualification tolerance for fixed geometry. \end{DoxyCompactList}\item
{\footnotesize template$<$typename Configuration, typename Layout, typename Options = Solver\+Options$<$$>$, typename Observer = No\+Observer, utils\+::dependencies\+::\+Is\+Dependency\+Context Inputs = utils\+::dependencies\+::\+Dependency\+Context$<$$>$, typename Observer\+Factory = utils\+::dependencies\+::\+No\+Graph\+Observers$>$ \newline
requires utils\+::dependencies\+::\+Contains\+Key$<$\mbox{\hyperlink{structserif_1_1discretization_1_1blocks_1_1surface__deformation_1_1coefficients}{discretization\+::blocks\+::surface\+\_\+deformation\+::coefficients}}, typename Layout\+::\+Values$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1solver_a2e9de7691387f8b6f7ee258e6516da7d}{solve\+\_\+equilibrium}} (Configuration configuration, \mbox{\hyperlink{structserif_1_1model_1_1_stellar_state}{model\+::\+Stellar\+State}}$<$ Layout $>$ initial\+\_\+state, Options options=\{\}, Observer observer=\{\}, \mbox{\hyperlink{namespaceserif_1_1solver_aaee71b0914bfa77aeb37e494eab911bb}{Volume\+Options}} volume\+\_\+options=\{\}, Inputs prescribed=Inputs\{\}, Observer\+Factory observer\+\_\+factory=\{\})
\begin{DoxyCompactList}\small\item\em Solve a moving star from an owning physical initial state. \end{DoxyCompactList}\item
{\footnotesize template$<$typename Configuration, typename Layout, typename Options = Solver\+Options$<$$>$, typename Observer = No\+Observer, utils\+::dependencies\+::\+Is\+Dependency\+Context Inputs = utils\+::dependencies\+::\+Dependency\+Context$<$$>$, typename Observer\+Factory = utils\+::dependencies\+::\+No\+Graph\+Observers$>$ \newline
requires (!utils\+::dependencies\+::\+Contains\+Key$<$\mbox{\hyperlink{structserif_1_1discretization_1_1blocks_1_1surface__deformation_1_1coefficients}{discretization\+::blocks\+::surface\+\_\+deformation\+::coefficients}}, typename Layout\+::\+Values$>$)}\\auto \mbox{\hyperlink{namespaceserif_1_1solver_aabb49f9d871887898b5f5001ff33b4bf}{solve\+\_\+equilibrium}} (Configuration configuration, \mbox{\hyperlink{structserif_1_1model_1_1_stellar_state}{model\+::\+Stellar\+State}}$<$ Layout $>$ initial\+\_\+state, const \mbox{\hyperlink{namespaceserif_ab7690da8665e9d9bd2fa8e8534cd6e57}{Vector}} \&displacement, Options options=\{\}, Observer observer=\{\}, \mbox{\hyperlink{namespaceserif_1_1solver_aaee71b0914bfa77aeb37e494eab911bb}{Volume\+Options}} volume\+\_\+options=\{\}, Inputs prescribed=Inputs\{\}, Observer\+Factory observer\+\_\+factory=\{\})
\begin{DoxyCompactList}\small\item\em Solve a fixed-\/geometry model with prescribed displacement outside its unknown vector. \end{DoxyCompactList}\item
{\footnotesize template$<$typename Configuration, typename Layout, typename Options = Solver\+Options$<$$>$, typename Observer = No\+Observer, utils\+::dependencies\+::\+Is\+Dependency\+Context Inputs = utils\+::dependencies\+::\+Dependency\+Context$<$$>$, typename Observer\+Factory = utils\+::dependencies\+::\+No\+Graph\+Observers$>$ \newline
requires utils\+::dependencies\+::\+Contains\+Key$<$\mbox{\hyperlink{structserif_1_1discretization_1_1blocks_1_1surface__deformation_1_1coefficients}{discretization\+::blocks\+::surface\+\_\+deformation\+::coefficients}}, typename Layout\+::\+Values$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1solver_a2698b5ef612716179bbd0f1498cc4cec}{resume\+\_\+equilibrium}} (Configuration configuration, \mbox{\hyperlink{structserif_1_1solver_1_1_newton_checkpoint}{Newton\+Checkpoint}}$<$ \mbox{\hyperlink{structserif_1_1model_1_1_stellar_state}{model\+::\+Stellar\+State}}$<$ Layout $>$ $>$ checkpoint, Options options=\{\}, Observer observer=\{\}, \mbox{\hyperlink{namespaceserif_1_1solver_aaee71b0914bfa77aeb37e494eab911bb}{Volume\+Options}} volume\+\_\+options=\{\}, Inputs prescribed=Inputs\{\}, Observer\+Factory observer\+\_\+factory=\{\})
\begin{DoxyCompactList}\small\item\em Continue a moving-\/star checkpoint using reconstructed physical and numerical configuration. \end{DoxyCompactList}\item
{\footnotesize template$<$typename Configuration, typename Layout, typename Options = Solver\+Options$<$$>$, typename Observer = No\+Observer, utils\+::dependencies\+::\+Is\+Dependency\+Context Inputs = utils\+::dependencies\+::\+Dependency\+Context$<$$>$, typename Observer\+Factory = utils\+::dependencies\+::\+No\+Graph\+Observers$>$ \newline
requires (!utils\+::dependencies\+::\+Contains\+Key$<$\mbox{\hyperlink{structserif_1_1discretization_1_1blocks_1_1surface__deformation_1_1coefficients}{discretization\+::blocks\+::surface\+\_\+deformation\+::coefficients}}, typename Layout\+::\+Values$>$)}\\auto \mbox{\hyperlink{namespaceserif_1_1solver_ad1fa5c83c70e1b37311b7cf0ed4b88bd}{resume\+\_\+equilibrium}} (Configuration configuration, \mbox{\hyperlink{structserif_1_1solver_1_1_newton_checkpoint}{Newton\+Checkpoint}}$<$ \mbox{\hyperlink{structserif_1_1model_1_1_stellar_state}{model\+::\+Stellar\+State}}$<$ Layout $>$ $>$ checkpoint, const \mbox{\hyperlink{namespaceserif_ab7690da8665e9d9bd2fa8e8534cd6e57}{Vector}} \&displacement, Options options=\{\}, Observer observer=\{\}, \mbox{\hyperlink{namespaceserif_1_1solver_aaee71b0914bfa77aeb37e494eab911bb}{Volume\+Options}} volume\+\_\+options=\{\}, Inputs prescribed=Inputs\{\}, Observer\+Factory observer\+\_\+factory=\{\})
\begin{DoxyCompactList}\small\item\em Continue a fixed-\/geometry checkpoint with its separately restored prescribed displacement. \end{DoxyCompactList}\item
{\footnotesize template$<$typename Problem, typename State, typename Options = Solver\+Options$<$$>$, typename Observer = No\+Observer$>$ \newline
requires detail\+::\+Newton\+Strategy\+For$<$Problem, State, Options$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1solver_a50d481ced4213cc6414d163eff898df9}{solve\+\_\+newton}} (Problem \&problem, State initial\+\_\+state, Options options=\{\}, Observer observer=\{\})
\begin{DoxyCompactList}\small\item\em Solve a custom numerical problem using its native \doxylink{namespaceserif_ab7690da8665e9d9bd2fa8e8534cd6e57}{Vector}, evaluate, prepare and solve\+\_\+linear operations. \end{DoxyCompactList}\item
{\footnotesize template$<$typename Problem, typename State, typename Options = Solver\+Options$<$$>$, typename Observer = No\+Observer$>$ \newline
requires detail\+::\+Newton\+Strategy\+For$<$Problem, State, Options$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1solver_aa3cdbadff61a171e313e316fdf26909d}{resume\+\_\+newton}} (Problem \&problem, \mbox{\hyperlink{structserif_1_1solver_1_1_newton_checkpoint}{Newton\+Checkpoint}}$<$ State $>$ checkpoint, Options options=\{\}, Observer observer=\{\})
\begin{DoxyCompactList}\small\item\em Resume the original convergence reference, correction reuse, and cumulative work budget. \end{DoxyCompactList}\item
double \mbox{\hyperlink{namespaceserif_1_1solver_a4ae15221b9aded0dc3ec787898984462}{next\+\_\+backtracking\+\_\+step}} (double rejected\+\_\+step, double accepted\+\_\+determinant, double rejected\+\_\+determinant, bool inverted, const \mbox{\hyperlink{structserif_1_1solver_1_1_backtracking}{Backtracking}} \&options) noexcept
\begin{DoxyCompactList}\small\item\em Skip only existing backtracking rungs when an inverted trial gives a finite boundary estimate. \end{DoxyCompactList}\item
std\+::optional$<$ std\+::string $>$ \mbox{\hyperlink{namespaceserif_1_1solver_aba8609bba7520feb62263d06def641e5}{validate\+\_\+newton\+\_\+progress}} (const \mbox{\hyperlink{structserif_1_1solver_1_1_newton_progress}{Newton\+Progress}} \&progress, const std\+::size\+\_\+t state\+\_\+size)
\begin{DoxyCompactList}\small\item\em Reject incomplete or inconsistent imported history before preparing any runtime operators. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection{Typedef Documentation}
\Hypertarget{namespaceserif_1_1solver_aaee71b0914bfa77aeb37e494eab911bb}\index{serif::solver@{serif::solver}!VolumeOptions@{VolumeOptions}}
\index{VolumeOptions@{VolumeOptions}!serif::solver@{serif::solver}}
\doxysubsubsection{\texorpdfstring{VolumeOptions}{VolumeOptions}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_aaee71b0914bfa77aeb37e494eab911bb}
using \mbox{\hyperlink{namespaceserif_1_1solver_aaee71b0914bfa77aeb37e494eab911bb}{serif\+::solver\+::\+Volume\+Options}} = \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_options}{operators\+::backend\+::mfem\+::\+Volume\+Options}}}
\doxysubsection{Enumeration Type Documentation}
\Hypertarget{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464}\index{serif::solver@{serif::solver}!EventKind@{EventKind}}
\index{EventKind@{EventKind}!serif::solver@{serif::solver}}
\doxysubsubsection{\texorpdfstring{EventKind}{EventKind}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464}
enum class \mbox{\hyperlink{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464}{serif\+::solver\+::\+Event\+Kind}}\hspace{0.3cm}{\ttfamily [strong]}}
Events expose immutable accepted/trial snapshots; callbacks never decide acceptance.
\begin{DoxyEnumFields}[2]{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{initial@{initial}!serif::solver@{serif::solver}}\index{serif::solver@{serif::solver}!initial@{initial}}}\Hypertarget{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464acc51b81974287ab79cef9e94fe778cc9}\label{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464acc51b81974287ab79cef9e94fe778cc9}
initial&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{before\_iteration@{before\_iteration}!serif::solver@{serif::solver}}\index{serif::solver@{serif::solver}!before\_iteration@{before\_iteration}}}\Hypertarget{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464a57054ff3283d5f50b905c8d1a492c8a3}\label{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464a57054ff3283d5f50b905c8d1a492c8a3}
before\+\_\+iteration&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{trial\_rejected@{trial\_rejected}!serif::solver@{serif::solver}}\index{serif::solver@{serif::solver}!trial\_rejected@{trial\_rejected}}}\Hypertarget{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464a8746f4ec6db7fdda6018d314e8c3ae02}\label{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464a8746f4ec6db7fdda6018d314e8c3ae02}
trial\+\_\+rejected&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{before\_accept@{before\_accept}!serif::solver@{serif::solver}}\index{serif::solver@{serif::solver}!before\_accept@{before\_accept}}}\Hypertarget{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464a6e563563af598fa7575b0944e785a7d5}\label{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464a6e563563af598fa7575b0944e785a7d5}
before\+\_\+accept&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{accepted@{accepted}!serif::solver@{serif::solver}}\index{serif::solver@{serif::solver}!accepted@{accepted}}}\Hypertarget{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464a3e4d891a5df3d6d0d7dd9432a1bc6470}\label{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464a3e4d891a5df3d6d0d7dd9432a1bc6470}
accepted&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{finished@{finished}!serif::solver@{serif::solver}}\index{serif::solver@{serif::solver}!finished@{finished}}}\Hypertarget{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464aa5d7ceb2c59b8cee46c2953fec9abc19}\label{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464aa5d7ceb2c59b8cee46c2953fec9abc19}
finished&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{resumed@{resumed}!serif::solver@{serif::solver}}\index{serif::solver@{serif::solver}!resumed@{resumed}}}\Hypertarget{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464a121ad2eb76415d284215a4c9deddf79c}\label{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464a121ad2eb76415d284215a4c9deddf79c}
resumed&\\
\hline
\end{DoxyEnumFields}
\Hypertarget{namespaceserif_1_1solver_af4b1a8caa8d8f54f51fc013688c7b21c}\index{serif::solver@{serif::solver}!SolveControl@{SolveControl}}
\index{SolveControl@{SolveControl}!serif::solver@{serif::solver}}
\doxysubsubsection{\texorpdfstring{SolveControl}{SolveControl}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_af4b1a8caa8d8f54f51fc013688c7b21c}
enum class \mbox{\hyperlink{namespaceserif_1_1solver_af4b1a8caa8d8f54f51fc013688c7b21c}{serif\+::solver\+::\+Solve\+Control}}\hspace{0.3cm}{\ttfamily [strong]}}
A stop request is remembered until the next initial, resumed or accepted \doxylink{structserif_1_1solver_1_1_newton}{Newton} boundary.
\begin{DoxyEnumFields}[2]{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{continue\_solve@{continue\_solve}!serif::solver@{serif::solver}}\index{serif::solver@{serif::solver}!continue\_solve@{continue\_solve}}}\Hypertarget{namespaceserif_1_1solver_af4b1a8caa8d8f54f51fc013688c7b21ca1c2afff196eca9b02ad6a8dcc4aee0e0}\label{namespaceserif_1_1solver_af4b1a8caa8d8f54f51fc013688c7b21ca1c2afff196eca9b02ad6a8dcc4aee0e0}
continue\+\_\+solve&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{stop@{stop}!serif::solver@{serif::solver}}\index{serif::solver@{serif::solver}!stop@{stop}}}\Hypertarget{namespaceserif_1_1solver_af4b1a8caa8d8f54f51fc013688c7b21caef399b2d446bb37b7c32ad2cc1b6045b}\label{namespaceserif_1_1solver_af4b1a8caa8d8f54f51fc013688c7b21caef399b2d446bb37b7c32ad2cc1b6045b}
stop&\\
\hline
\end{DoxyEnumFields}
\Hypertarget{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64}\index{serif::solver@{serif::solver}!SolveStatus@{SolveStatus}}
\index{SolveStatus@{SolveStatus}!serif::solver@{serif::solver}}
\doxysubsubsection{\texorpdfstring{SolveStatus}{SolveStatus}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64}
enum class \mbox{\hyperlink{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64}{serif\+::solver\+::\+Solve\+Status}}\hspace{0.3cm}{\ttfamily [strong]}}
Numerical termination; invalid configuration and user callback errors remain exceptions.
\begin{DoxyEnumFields}[2]{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{converged@{converged}!serif::solver@{serif::solver}}\index{serif::solver@{serif::solver}!converged@{converged}}}\Hypertarget{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64a7de33615d7fbc1cb7bc608d12f1993d2}\label{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64a7de33615d7fbc1cb7bc608d12f1993d2}
converged&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{initial\_state\_rejected@{initial\_state\_rejected}!serif::solver@{serif::solver}}\index{serif::solver@{serif::solver}!initial\_state\_rejected@{initial\_state\_rejected}}}\Hypertarget{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64a00284e15e20ba8bd246e70c06567efbd}\label{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64a00284e15e20ba8bd246e70c06567efbd}
initial\+\_\+state\+\_\+rejected&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{invalid\_metric@{invalid\_metric}!serif::solver@{serif::solver}}\index{serif::solver@{serif::solver}!invalid\_metric@{invalid\_metric}}}\Hypertarget{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64ae5352def1775383427334d4671099caf}\label{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64ae5352def1775383427334d4671099caf}
invalid\+\_\+metric&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{preparation\_failure@{preparation\_failure}!serif::solver@{serif::solver}}\index{serif::solver@{serif::solver}!preparation\_failure@{preparation\_failure}}}\Hypertarget{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64ae9f49c7af9b0c06e5e2481ec84cdf9aa}\label{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64ae9f49c7af9b0c06e5e2481ec84cdf9aa}
preparation\+\_\+failure&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{linear\_solve\_failure@{linear\_solve\_failure}!serif::solver@{serif::solver}}\index{serif::solver@{serif::solver}!linear\_solve\_failure@{linear\_solve\_failure}}}\Hypertarget{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64a4913a35a7eab87ca909c1d360ab82adb}\label{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64a4913a35a7eab87ca909c1d360ab82adb}
linear\+\_\+solve\+\_\+failure&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{globalization\_failure@{globalization\_failure}!serif::solver@{serif::solver}}\index{serif::solver@{serif::solver}!globalization\_failure@{globalization\_failure}}}\Hypertarget{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64a8286355a7892894a1c3cc40354da9999}\label{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64a8286355a7892894a1c3cc40354da9999}
globalization\+\_\+failure&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{maximum\_iterations@{maximum\_iterations}!serif::solver@{serif::solver}}\index{serif::solver@{serif::solver}!maximum\_iterations@{maximum\_iterations}}}\Hypertarget{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64af9cc715fb6ecde5fea080ac57ad0dfaf}\label{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64af9cc715fb6ecde5fea080ac57ad0dfaf}
maximum\+\_\+iterations&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{stopped@{stopped}!serif::solver@{serif::solver}}\index{serif::solver@{serif::solver}!stopped@{stopped}}}\Hypertarget{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64af0a0bfe6bc7d2c58d2989034f83183e0}\label{namespaceserif_1_1solver_a0c5b4c0a272429c1c5807ebb757aad64af0a0bfe6bc7d2c58d2989034f83183e0}
stopped&\\
\hline
\end{DoxyEnumFields}
\doxysubsection{Function Documentation}
\Hypertarget{namespaceserif_1_1solver_aae73f87737f0d06a65fdf60a267717d7}\index{serif::solver@{serif::solver}!continue\_equilibrium@{continue\_equilibrium}}
\index{continue\_equilibrium@{continue\_equilibrium}!serif::solver@{serif::solver}}
\doxysubsubsection{\texorpdfstring{continue\_equilibrium()}{continue\_equilibrium()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_aae73f87737f0d06a65fdf60a267717d7}
template$<$typename Family, typename Factory, typename State$>$ \\
auto serif\+::solver\+::continue\+\_\+equilibrium (\begin{DoxyParamCaption}\item[{const Family \&}]{family}{, }\item[{Factory}]{configure}{, }\item[{const State \&}]{initial\+\_\+state}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Start with the family\textquotesingle{}s physics-\/owned default coordinates and bounded fallback route.
\Hypertarget{namespaceserif_1_1solver_ada5a2ebd458d64ac776bede196e81002}\index{serif::solver@{serif::solver}!continue\_equilibrium@{continue\_equilibrium}}
\index{continue\_equilibrium@{continue\_equilibrium}!serif::solver@{serif::solver}}
\doxysubsubsection{\texorpdfstring{continue\_equilibrium()}{continue\_equilibrium()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_ada5a2ebd458d64ac776bede196e81002}
template$<$typename Family, typename Factory, typename State$>$ \\
auto serif\+::solver\+::continue\+\_\+equilibrium (\begin{DoxyParamCaption}\item[{const Family \&}]{family}{, }\item[{Factory}]{configure}{, }\item[{const State \&}]{initial\+\_\+state}{, }\item[{const \mbox{\hyperlink{namespaceserif_ab7690da8665e9d9bd2fa8e8534cd6e57}{Vector}} \&}]{displacement}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Use the same default route and absolute qualification tolerance for fixed geometry.
\Hypertarget{namespaceserif_1_1solver_abb8b187f7bbc1ffbe64842176278d16f}\index{serif::solver@{serif::solver}!continue\_equilibrium@{continue\_equilibrium}}
\index{continue\_equilibrium@{continue\_equilibrium}!serif::solver@{serif::solver}}
\doxysubsubsection{\texorpdfstring{continue\_equilibrium()}{continue\_equilibrium()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_abb8b187f7bbc1ffbe64842176278d16f}
template$<$typename Family, typename Factory, typename State, typename Options = Solver\+Options$<$$>$$>$ \newline
requires std\+::copy\+\_\+constructible$<$Options$>$\\
auto serif\+::solver\+::continue\+\_\+equilibrium (\begin{DoxyParamCaption}\item[{const Family \&}]{family}{, }\item[{Factory}]{configure}{, }\item[{const State \&}]{initial\+\_\+state}{, }\item[{const \mbox{\hyperlink{namespaceserif_ab7690da8665e9d9bd2fa8e8534cd6e57}{Vector}} \&}]{displacement}{, }\item[{\mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_options}{continuation\+::\+Options}}$<$ Family $>$}]{continuation\+\_\+options}{, }\item[{Options}]{solver\+\_\+options}{ = {\ttfamily \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a284b5f1f64852170370630726f9fd9e6}{continuation\+::default\+\_\+solver\+\_\+options}}()}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Continue a fixed-\/geometry model while preserving its prescribed displacement.
\Hypertarget{namespaceserif_1_1solver_a795ce8d9efdc979d67d91cb56839fd1e}\index{serif::solver@{serif::solver}!continue\_equilibrium@{continue\_equilibrium}}
\index{continue\_equilibrium@{continue\_equilibrium}!serif::solver@{serif::solver}}
\doxysubsubsection{\texorpdfstring{continue\_equilibrium()}{continue\_equilibrium()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_a795ce8d9efdc979d67d91cb56839fd1e}
template$<$typename Family, typename Factory, typename State, typename Options = Solver\+Options$<$$>$$>$ \newline
requires std\+::copy\+\_\+constructible$<$Options$>$\\
auto serif\+::solver\+::continue\+\_\+equilibrium (\begin{DoxyParamCaption}\item[{const Family \&}]{family}{, }\item[{Factory}]{configure}{, }\item[{const State \&}]{initial\+\_\+state}{, }\item[{\mbox{\hyperlink{structserif_1_1solver_1_1continuation_1_1_options}{continuation\+::\+Options}}$<$ Family $>$}]{continuation\+\_\+options}{, }\item[{Options}]{solver\+\_\+options}{ = {\ttfamily \mbox{\hyperlink{namespaceserif_1_1solver_1_1continuation_a284b5f1f64852170370630726f9fd9e6}{continuation\+::default\+\_\+solver\+\_\+options}}()}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Continue moving-\/star equilibria through an explicitly declared physical family.
\begin{DoxyParams}{Parameters}
{\em configure} & Own or borrow a callable that returns a configured discretization for its supplied model. It must preserve the physical coordinate layout and finite-\/element reference of transferred states; fresh evaluators are implicit. \\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
The explicit factory supports move-\/only resource policies without inventing a mutable clone/context hierarchy.
\end{DoxyNote}
\Hypertarget{namespaceserif_1_1solver_a4ae15221b9aded0dc3ec787898984462}\index{serif::solver@{serif::solver}!next\_backtracking\_step@{next\_backtracking\_step}}
\index{next\_backtracking\_step@{next\_backtracking\_step}!serif::solver@{serif::solver}}
\doxysubsubsection{\texorpdfstring{next\_backtracking\_step()}{next\_backtracking\_step()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_a4ae15221b9aded0dc3ec787898984462}
double serif\+::solver\+::next\+\_\+backtracking\+\_\+step (\begin{DoxyParamCaption}\item[{double}]{rejected\+\_\+step}{, }\item[{double}]{accepted\+\_\+determinant}{, }\item[{double}]{rejected\+\_\+determinant}{, }\item[{bool}]{inverted}{, }\item[{const \mbox{\hyperlink{structserif_1_1solver_1_1_backtracking}{Backtracking}} \&}]{options}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [noexcept]}}
Skip only existing backtracking rungs when an inverted trial gives a finite boundary estimate.
\Hypertarget{namespaceserif_1_1solver_ad1fa5c83c70e1b37311b7cf0ed4b88bd}\index{serif::solver@{serif::solver}!resume\_equilibrium@{resume\_equilibrium}}
\index{resume\_equilibrium@{resume\_equilibrium}!serif::solver@{serif::solver}}
\doxysubsubsection{\texorpdfstring{resume\_equilibrium()}{resume\_equilibrium()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_ad1fa5c83c70e1b37311b7cf0ed4b88bd}
template$<$typename Configuration, typename Layout, typename Options = Solver\+Options$<$$>$, typename Observer = No\+Observer, utils\+::dependencies\+::\+Is\+Dependency\+Context Inputs = utils\+::dependencies\+::\+Dependency\+Context$<$$>$, typename Observer\+Factory = utils\+::dependencies\+::\+No\+Graph\+Observers$>$ \newline
requires (!utils\+::dependencies\+::\+Contains\+Key$<$\mbox{\hyperlink{structserif_1_1discretization_1_1blocks_1_1surface__deformation_1_1coefficients}{discretization\+::blocks\+::surface\+\_\+deformation\+::coefficients}}, typename Layout\+::\+Values$>$)\\
auto serif\+::solver\+::resume\+\_\+equilibrium (\begin{DoxyParamCaption}\item[{Configuration}]{configuration}{, }\item[{\mbox{\hyperlink{structserif_1_1solver_1_1_newton_checkpoint}{Newton\+Checkpoint}}$<$ \mbox{\hyperlink{structserif_1_1model_1_1_stellar_state}{model\+::\+Stellar\+State}}$<$ Layout $>$ $>$}]{checkpoint}{, }\item[{const \mbox{\hyperlink{namespaceserif_ab7690da8665e9d9bd2fa8e8534cd6e57}{Vector}} \&}]{displacement}{, }\item[{Options}]{options}{ = {\ttfamily \{\}}, }\item[{Observer}]{observer}{ = {\ttfamily \{\}}, }\item[{\mbox{\hyperlink{namespaceserif_1_1solver_aaee71b0914bfa77aeb37e494eab911bb}{Volume\+Options}}}]{volume\+\_\+options}{ = {\ttfamily \{\}}, }\item[{Inputs}]{prescribed}{ = {\ttfamily Inputs\{\}}, }\item[{Observer\+Factory}]{observer\+\_\+factory}{ = {\ttfamily \{\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Continue a fixed-\/geometry checkpoint with its separately restored prescribed displacement.
\begin{DoxyNote}{Note}
The optional final observer factory measures graph work separately from physics and solver history. It is rebuilt for this solve and is not stored in the checkpoint.
\end{DoxyNote}
\Hypertarget{namespaceserif_1_1solver_a2698b5ef612716179bbd0f1498cc4cec}\index{serif::solver@{serif::solver}!resume\_equilibrium@{resume\_equilibrium}}
\index{resume\_equilibrium@{resume\_equilibrium}!serif::solver@{serif::solver}}
\doxysubsubsection{\texorpdfstring{resume\_equilibrium()}{resume\_equilibrium()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_a2698b5ef612716179bbd0f1498cc4cec}
template$<$typename Configuration, typename Layout, typename Options = Solver\+Options$<$$>$, typename Observer = No\+Observer, utils\+::dependencies\+::\+Is\+Dependency\+Context Inputs = utils\+::dependencies\+::\+Dependency\+Context$<$$>$, typename Observer\+Factory = utils\+::dependencies\+::\+No\+Graph\+Observers$>$ \newline
requires utils\+::dependencies\+::\+Contains\+Key$<$\mbox{\hyperlink{structserif_1_1discretization_1_1blocks_1_1surface__deformation_1_1coefficients}{discretization\+::blocks\+::surface\+\_\+deformation\+::coefficients}}, typename Layout\+::\+Values$>$\\
auto serif\+::solver\+::resume\+\_\+equilibrium (\begin{DoxyParamCaption}\item[{Configuration}]{configuration}{, }\item[{\mbox{\hyperlink{structserif_1_1solver_1_1_newton_checkpoint}{Newton\+Checkpoint}}$<$ \mbox{\hyperlink{structserif_1_1model_1_1_stellar_state}{model\+::\+Stellar\+State}}$<$ Layout $>$ $>$}]{checkpoint}{, }\item[{Options}]{options}{ = {\ttfamily \{\}}, }\item[{Observer}]{observer}{ = {\ttfamily \{\}}, }\item[{\mbox{\hyperlink{namespaceserif_1_1solver_aaee71b0914bfa77aeb37e494eab911bb}{Volume\+Options}}}]{volume\+\_\+options}{ = {\ttfamily \{\}}, }\item[{Inputs}]{prescribed}{ = {\ttfamily Inputs\{\}}, }\item[{Observer\+Factory}]{observer\+\_\+factory}{ = {\ttfamily \{\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Continue a moving-\/star checkpoint using reconstructed physical and numerical configuration.
\begin{DoxyNote}{Note}
The optional final observer factory measures graph work separately from physics and solver history. It is rebuilt for this solve and is not stored in the checkpoint.
\end{DoxyNote}
\Hypertarget{namespaceserif_1_1solver_aa3cdbadff61a171e313e316fdf26909d}\index{serif::solver@{serif::solver}!resume\_newton@{resume\_newton}}
\index{resume\_newton@{resume\_newton}!serif::solver@{serif::solver}}
\doxysubsubsection{\texorpdfstring{resume\_newton()}{resume\_newton()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_aa3cdbadff61a171e313e316fdf26909d}
template$<$typename Problem, typename State, typename Options = Solver\+Options$<$$>$, typename Observer = No\+Observer$>$ \newline
requires detail\+::\+Newton\+Strategy\+For$<$Problem, State, Options$>$\\
auto serif\+::solver\+::resume\+\_\+newton (\begin{DoxyParamCaption}\item[{Problem \&}]{problem}{, }\item[{\mbox{\hyperlink{structserif_1_1solver_1_1_newton_checkpoint}{Newton\+Checkpoint}}$<$ State $>$}]{checkpoint}{, }\item[{Options}]{options}{ = {\ttfamily \{\}}, }\item[{Observer}]{observer}{ = {\ttfamily \{\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Resume the original convergence reference, correction reuse, and cumulative work budget.
\Hypertarget{namespaceserif_1_1solver_aabb49f9d871887898b5f5001ff33b4bf}\index{serif::solver@{serif::solver}!solve\_equilibrium@{solve\_equilibrium}}
\index{solve\_equilibrium@{solve\_equilibrium}!serif::solver@{serif::solver}}
\doxysubsubsection{\texorpdfstring{solve\_equilibrium()}{solve\_equilibrium()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_aabb49f9d871887898b5f5001ff33b4bf}
template$<$typename Configuration, typename Layout, typename Options = Solver\+Options$<$$>$, typename Observer = No\+Observer, utils\+::dependencies\+::\+Is\+Dependency\+Context Inputs = utils\+::dependencies\+::\+Dependency\+Context$<$$>$, typename Observer\+Factory = utils\+::dependencies\+::\+No\+Graph\+Observers$>$ \newline
requires (!utils\+::dependencies\+::\+Contains\+Key$<$\mbox{\hyperlink{structserif_1_1discretization_1_1blocks_1_1surface__deformation_1_1coefficients}{discretization\+::blocks\+::surface\+\_\+deformation\+::coefficients}}, typename Layout\+::\+Values$>$)\\
auto serif\+::solver\+::solve\+\_\+equilibrium (\begin{DoxyParamCaption}\item[{Configuration}]{configuration}{, }\item[{\mbox{\hyperlink{structserif_1_1model_1_1_stellar_state}{model\+::\+Stellar\+State}}$<$ Layout $>$}]{initial\+\_\+state}{, }\item[{const \mbox{\hyperlink{namespaceserif_ab7690da8665e9d9bd2fa8e8534cd6e57}{Vector}} \&}]{displacement}{, }\item[{Options}]{options}{ = {\ttfamily \{\}}, }\item[{Observer}]{observer}{ = {\ttfamily \{\}}, }\item[{\mbox{\hyperlink{namespaceserif_1_1solver_aaee71b0914bfa77aeb37e494eab911bb}{Volume\+Options}}}]{volume\+\_\+options}{ = {\ttfamily \{\}}, }\item[{Inputs}]{prescribed}{ = {\ttfamily Inputs\{\}}, }\item[{Observer\+Factory}]{observer\+\_\+factory}{ = {\ttfamily \{\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Solve a fixed-\/geometry model with prescribed displacement outside its unknown vector.
\begin{DoxyNote}{Note}
The optional final observer factory measures graph work separately from physics and solver history. It is rebuilt for this solve and is not stored in the checkpoint.
\end{DoxyNote}
\Hypertarget{namespaceserif_1_1solver_a2e9de7691387f8b6f7ee258e6516da7d}\index{serif::solver@{serif::solver}!solve\_equilibrium@{solve\_equilibrium}}
\index{solve\_equilibrium@{solve\_equilibrium}!serif::solver@{serif::solver}}
\doxysubsubsection{\texorpdfstring{solve\_equilibrium()}{solve\_equilibrium()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_a2e9de7691387f8b6f7ee258e6516da7d}
template$<$typename Configuration, typename Layout, typename Options = Solver\+Options$<$$>$, typename Observer = No\+Observer, utils\+::dependencies\+::\+Is\+Dependency\+Context Inputs = utils\+::dependencies\+::\+Dependency\+Context$<$$>$, typename Observer\+Factory = utils\+::dependencies\+::\+No\+Graph\+Observers$>$ \newline
requires utils\+::dependencies\+::\+Contains\+Key$<$\mbox{\hyperlink{structserif_1_1discretization_1_1blocks_1_1surface__deformation_1_1coefficients}{discretization\+::blocks\+::surface\+\_\+deformation\+::coefficients}}, typename Layout\+::\+Values$>$\\
auto serif\+::solver\+::solve\+\_\+equilibrium (\begin{DoxyParamCaption}\item[{Configuration}]{configuration}{, }\item[{\mbox{\hyperlink{structserif_1_1model_1_1_stellar_state}{model\+::\+Stellar\+State}}$<$ Layout $>$}]{initial\+\_\+state}{, }\item[{Options}]{options}{ = {\ttfamily \{\}}, }\item[{Observer}]{observer}{ = {\ttfamily \{\}}, }\item[{\mbox{\hyperlink{namespaceserif_1_1solver_aaee71b0914bfa77aeb37e494eab911bb}{Volume\+Options}}}]{volume\+\_\+options}{ = {\ttfamily \{\}}, }\item[{Inputs}]{prescribed}{ = {\ttfamily Inputs\{\}}, }\item[{Observer\+Factory}]{observer\+\_\+factory}{ = {\ttfamily \{\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Solve a moving star from an owning physical initial state.
\begin{DoxyNote}{Note}
The model defines equilibrium; its evaluator and reusable cache are constructed internally. The returned result owns the last accepted physical star even when the solve does not converge. Initialize the backend\textquotesingle{}s MPI runtime before using a recipe containing Hypre AMG. The optional final observer factory measures graph work separately from physics and solver history.
\end{DoxyNote}
\Hypertarget{namespaceserif_1_1solver_a50d481ced4213cc6414d163eff898df9}\index{serif::solver@{serif::solver}!solve\_newton@{solve\_newton}}
\index{solve\_newton@{solve\_newton}!serif::solver@{serif::solver}}
\doxysubsubsection{\texorpdfstring{solve\_newton()}{solve\_newton()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_a50d481ced4213cc6414d163eff898df9}
template$<$typename Problem, typename State, typename Options = Solver\+Options$<$$>$, typename Observer = No\+Observer$>$ \newline
requires detail\+::\+Newton\+Strategy\+For$<$Problem, State, Options$>$\\
auto serif\+::solver\+::solve\+\_\+newton (\begin{DoxyParamCaption}\item[{Problem \&}]{problem}{, }\item[{State}]{initial\+\_\+state}{, }\item[{Options}]{options}{ = {\ttfamily \{\}}, }\item[{Observer}]{observer}{ = {\ttfamily \{\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Solve a custom numerical problem using its native \doxylink{namespaceserif_ab7690da8665e9d9bd2fa8e8534cd6e57}{Vector}, evaluate, prepare and solve\+\_\+linear operations.
\begin{DoxyNote}{Note}
Strategies here are executable numerical methods; solve\+\_\+equilibrium uses the same strategies.
\end{DoxyNote}
\Hypertarget{namespaceserif_1_1solver_aba8609bba7520feb62263d06def641e5}\index{serif::solver@{serif::solver}!validate\_newton\_progress@{validate\_newton\_progress}}
\index{validate\_newton\_progress@{validate\_newton\_progress}!serif::solver@{serif::solver}}
\doxysubsubsection{\texorpdfstring{validate\_newton\_progress()}{validate\_newton\_progress()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_aba8609bba7520feb62263d06def641e5}
std\+::optional$<$ std\+::string $>$ serif\+::solver\+::validate\+\_\+newton\+\_\+progress (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structserif_1_1solver_1_1_newton_progress}{Newton\+Progress}} \&}]{progress}{, }\item[{const std\+::size\+\_\+t}]{state\+\_\+size}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [nodiscard]}}
Reject incomplete or inconsistent imported history before preparing any runtime operators.