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)
409 lines
45 KiB
TeX
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.
|
|
|