\doxysection{src/include/serif/solver/nonlinear/steps.hpp File Reference} \hypertarget{steps_8hpp}{}\label{steps_8hpp}\index{src/include/serif/solver/nonlinear/steps.hpp@{src/include/serif/solver/nonlinear/steps.hpp}} {\ttfamily \#include $<$limits$>$}\newline {\ttfamily \#include "{}serif/solver/nonlinear/qualification.\+hpp"{}}\newline Include dependency graph for steps.\+hpp\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{steps_8hpp__incl} \end{center} \end{figure} This graph shows which files directly or indirectly include this file\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{steps_8hpp__dep__incl} \end{center} \end{figure} \doxysubsubsection*{Classes} \begin{DoxyCompactItemize} \item struct \mbox{\hyperlink{structserif_1_1solver_1_1detail_1_1_initial_evaluation}{serif\+::solver\+::detail\+::\+Initial\+Evaluation$<$ System $>$}} \begin{DoxyCompactList}\small\item\em Keep a freshly qualified metric beside the exact system from which it was measured. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1solver_1_1detail_1_1_qualified_step}{serif\+::solver\+::detail\+::\+Qualified\+Step$<$ State, System, Prepared $>$}} \begin{DoxyCompactList}\small\item\em Own a qualified trial; a terminal root deliberately has no prepared inverse. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Namespaces} \begin{DoxyCompactItemize} \item namespace \mbox{\hyperlink{namespaceserif}{serif}} \item namespace \mbox{\hyperlink{namespaceserif_1_1solver}{serif\+::solver}} \item namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1detail}{serif\+::solver\+::detail}} \end{DoxyCompactItemize} \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} \item void \mbox{\hyperlink{namespaceserif_1_1solver_1_1detail_a07717377a241ffd25e63aa977ff4f554}{serif\+::solver\+::detail\+::validate\+\_\+start}} (const auto \&options, const std\+::optional$<$ \mbox{\hyperlink{structserif_1_1solver_1_1_newton_progress}{Newton\+Progress}} $>$ \&restart, std\+::size\+\_\+t size) \begin{DoxyCompactList}\small\item\em Validate controls and restored history before any physical preparation. \end{DoxyCompactList}\item {\footnotesize template$<$typename Problem$>$ }\\std\+::expected$<$ \mbox{\hyperlink{structserif_1_1solver_1_1detail_1_1_initial_evaluation}{Initial\+Evaluation}}$<$ typename Problem\+::\+System $>$, \mbox{\hyperlink{structserif_1_1solver_1_1detail_1_1_newton_failure}{Newton\+Failure}} $>$ \mbox{\hyperlink{namespaceserif_1_1solver_1_1detail_a6791c39e3a55c271764d9926c97956e0}{serif\+::solver\+::detail\+::evaluate\+\_\+start}} (Problem \&problem, auto \&state, auto \&options, const std\+::optional$<$ \mbox{\hyperlink{structserif_1_1solver_1_1_newton_progress}{Newton\+Progress}} $>$ \&restart, \mbox{\hyperlink{structserif_1_1solver_1_1_solve_diagnostics}{Solve\+Diagnostics}} \&diagnostics) \begin{DoxyCompactList}\small\item\em Qualify the initial state and verify a restart against its original convergence reference. \end{DoxyCompactList}\item std\+::expected$<$ \mbox{\hyperlink{structserif_1_1solver_1_1_direction_assessment}{Direction\+Assessment}}, \mbox{\hyperlink{structserif_1_1solver_1_1detail_1_1_newton_failure}{Newton\+Failure}} $>$ \mbox{\hyperlink{namespaceserif_1_1solver_1_1detail_a5961bb80a48f170cb4e90a77dcb039ec}{serif\+::solver\+::detail\+::compute\+\_\+direction}} (auto \&problem, const auto \&\mbox{\hyperlink{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464a3e4d891a5df3d6d0d7dd9432a1bc6470}{accepted}}, const auto \&prepared, auto \&options, \mbox{\hyperlink{structserif_1_1solver_1_1_solve_diagnostics}{Solve\+Diagnostics}} \&diagnostics, auto \&rhs, auto \&correction, std\+::span$<$ double $>$ physical\+\_\+direction) \begin{DoxyCompactList}\small\item\em Solve and qualify a normalized correction before exposing its physical direction to backtracking. \end{DoxyCompactList}\item {\footnotesize template$<$typename Problem, typename State, typename System, typename Model$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1detail_ad9c44d75fd77ec596f5d512dc3508bd1}{serif\+::solver\+::detail\+::find\+\_\+acceptable\+\_\+step}} (Problem \&problem, const \mbox{\hyperlink{classserif_1_1solver_1_1_solve_result}{Solve\+Result}}$<$ State, System, Model $>$ \&\mbox{\hyperlink{namespaceserif_1_1solver_a6fa8bbc306fbf990b16ade9fb7771464a3e4d891a5df3d6d0d7dd9432a1bc6470}{accepted}}, \mbox{\hyperlink{structserif_1_1solver_1_1_metric_evaluation}{Metric\+Evaluation}} accepted\+\_\+metric, const auto \&correction, std\+::span$<$ const double $>$ physical\+\_\+direction, const \mbox{\hyperlink{structserif_1_1solver_1_1_direction_assessment}{Direction\+Assessment}} \&direction, double step, auto \&options, \mbox{\hyperlink{structserif_1_1solver_1_1_solve_diagnostics}{Solve\+Diagnostics}} \&diagnostics, auto \&observation) \begin{DoxyCompactList}\small\item\em Find a safe, sufficiently decreasing candidate without changing the accepted state. \end{DoxyCompactList}\item void \mbox{\hyperlink{namespaceserif_1_1solver_1_1detail_a94057867583afc7737886a2cc9cb27d3}{serif\+::solver\+::detail\+::save\+\_\+progress}} (auto \&result, auto \&options, \mbox{\hyperlink{structserif_1_1solver_1_1_solve_diagnostics}{Solve\+Diagnostics}} \&diagnostics, \mbox{\hyperlink{structserif_1_1solver_1_1_metric_evaluation}{Metric\+Evaluation}} metric, std\+::span$<$ const double $>$ correction, double next\+\_\+step) \begin{DoxyCompactList}\small\item\em Snapshot only fully committed numerical history; reporting has no influence on restart. \end{DoxyCompactList}\end{DoxyCompactItemize}