Files
MeanField_SERiF/docs/latex/namespaceserif_1_1solver.tex

409 lines
45 KiB
TeX
Raw Normal View History

\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.