Files
MeanField_SERiF/docs/xml/namespaceserif_1_1solver.xml
Emily Boudreaux 6b57738330 docs(docs): built docs
Note for now much of the docs is LLM written. This was done to save time and focus on code development. The docs have been LOOSLEY reviewed. However, the code itself has been either fully written by hand or fully reviewed. Therefore, the docs should at the moment be seen as a loose resource rather than authoratiative (and this is on top of the general ability for docs to drift)
2026-11-09 14:09:44 -05:00

896 lines
43 KiB
XML

<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.13.2" xml:lang="en-US">
<compounddef id="namespaceserif_1_1solver" kind="namespace" language="C++">
<compoundname>serif::solver</compoundname>
<innerclass refid="structserif_1_1solver_1_1_backtracking" prot="public">serif::solver::Backtracking</innerclass>
<innerclass refid="structserif_1_1solver_1_1_direction_assessment" prot="public">serif::solver::DirectionAssessment</innerclass>
<innerclass refid="structserif_1_1solver_1_1_metric_evaluation" prot="public">serif::solver::MetricEvaluation</innerclass>
<innerclass refid="structserif_1_1solver_1_1_newton" prot="public">serif::solver::Newton</innerclass>
<innerclass refid="structserif_1_1solver_1_1_newton_checkpoint" prot="public">serif::solver::NewtonCheckpoint</innerclass>
<innerclass refid="structserif_1_1solver_1_1_newton_progress" prot="public">serif::solver::NewtonProgress</innerclass>
<innerclass refid="structserif_1_1solver_1_1_no_model" prot="public">serif::solver::NoModel</innerclass>
<innerclass refid="structserif_1_1solver_1_1_no_observer" prot="public">serif::solver::NoObserver</innerclass>
<innerclass refid="structserif_1_1solver_1_1_normalized_residual_metric" prot="public">serif::solver::NormalizedResidualMetric</innerclass>
<innerclass refid="structserif_1_1solver_1_1_solve_diagnostics" prot="public">serif::solver::SolveDiagnostics</innerclass>
<innerclass refid="structserif_1_1solver_1_1_solve_event" prot="public">serif::solver::SolveEvent</innerclass>
<innerclass refid="classserif_1_1solver_1_1_solve_result" prot="public">serif::solver::SolveResult</innerclass>
<innerclass refid="structserif_1_1solver_1_1_solver_options" prot="public">serif::solver::SolverOptions</innerclass>
<innerclass refid="structserif_1_1solver_1_1_solve_timing" prot="public">serif::solver::SolveTiming</innerclass>
<innerclass refid="structserif_1_1solver_1_1_standard_newton" prot="public">serif::solver::StandardNewton</innerclass>
<innerclass refid="classserif_1_1solver_1_1_timed_observer" prot="public">serif::solver::TimedObserver</innerclass>
<innerclass refid="structserif_1_1solver_1_1_trial_assessment" prot="public">serif::solver::TrialAssessment</innerclass>
<innernamespace refid="namespaceserif_1_1solver_1_1admissibility">serif::solver::admissibility</innernamespace>
<innernamespace refid="namespaceserif_1_1solver_1_1backend">serif::solver::backend</innernamespace>
<innernamespace refid="namespaceserif_1_1solver_1_1continuation">serif::solver::continuation</innernamespace>
<innernamespace refid="namespaceserif_1_1solver_1_1detail">serif::solver::detail</innernamespace>
<innernamespace refid="namespaceserif_1_1solver_1_1linear">serif::solver::linear</innernamespace>
<innernamespace refid="namespaceserif_1_1solver_1_1normalization">serif::solver::normalization</innernamespace>
<innernamespace refid="namespaceserif_1_1solver_1_1preconditioner">serif::solver::preconditioner</innernamespace>
<innernamespace refid="namespaceserif_1_1solver_1_1seed">serif::solver::seed</innernamespace>
<sectiondef kind="enum">
<memberdef kind="enum" id="namespaceserif_1_1solver_1a0c5b4c0a272429c1c5807ebb757aad64" prot="public" static="no" strong="yes">
<type></type>
<name>SolveStatus</name>
<qualifiedname>serif::solver::SolveStatus</qualifiedname>
<enumvalue id="namespaceserif_1_1solver_1a0c5b4c0a272429c1c5807ebb757aad64a7de33615d7fbc1cb7bc608d12f1993d2" prot="public">
<name>converged</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1a0c5b4c0a272429c1c5807ebb757aad64a00284e15e20ba8bd246e70c06567efbd" prot="public">
<name>initial_state_rejected</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1a0c5b4c0a272429c1c5807ebb757aad64ae5352def1775383427334d4671099caf" prot="public">
<name>invalid_metric</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1a0c5b4c0a272429c1c5807ebb757aad64ae9f49c7af9b0c06e5e2481ec84cdf9aa" prot="public">
<name>preparation_failure</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1a0c5b4c0a272429c1c5807ebb757aad64a4913a35a7eab87ca909c1d360ab82adb" prot="public">
<name>linear_solve_failure</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1a0c5b4c0a272429c1c5807ebb757aad64a8286355a7892894a1c3cc40354da9999" prot="public">
<name>globalization_failure</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1a0c5b4c0a272429c1c5807ebb757aad64af9cc715fb6ecde5fea080ac57ad0dfaf" prot="public">
<name>maximum_iterations</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1a0c5b4c0a272429c1c5807ebb757aad64af0a0bfe6bc7d2c58d2989034f83183e0" prot="public">
<name>stopped</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<briefdescription>
<para>Numerical termination; invalid configuration and user callback errors remain exceptions. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/nonlinear/result.hpp" line="18" column="5" bodyfile="src/include/serif/solver/nonlinear/result.hpp" bodystart="18" bodyend="19"/>
</memberdef>
<memberdef kind="enum" id="namespaceserif_1_1solver_1a6fa8bbc306fbf990b16ade9fb7771464" prot="public" static="no" strong="yes">
<type></type>
<name>EventKind</name>
<qualifiedname>serif::solver::EventKind</qualifiedname>
<enumvalue id="namespaceserif_1_1solver_1a6fa8bbc306fbf990b16ade9fb7771464acc51b81974287ab79cef9e94fe778cc9" prot="public">
<name>initial</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1a6fa8bbc306fbf990b16ade9fb7771464a57054ff3283d5f50b905c8d1a492c8a3" prot="public">
<name>before_iteration</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1a6fa8bbc306fbf990b16ade9fb7771464a8746f4ec6db7fdda6018d314e8c3ae02" prot="public">
<name>trial_rejected</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1a6fa8bbc306fbf990b16ade9fb7771464a6e563563af598fa7575b0944e785a7d5" prot="public">
<name>before_accept</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1a6fa8bbc306fbf990b16ade9fb7771464a3e4d891a5df3d6d0d7dd9432a1bc6470" prot="public">
<name>accepted</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1a6fa8bbc306fbf990b16ade9fb7771464aa5d7ceb2c59b8cee46c2953fec9abc19" prot="public">
<name>finished</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1a6fa8bbc306fbf990b16ade9fb7771464a121ad2eb76415d284215a4c9deddf79c" prot="public">
<name>resumed</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<briefdescription>
<para>Events expose immutable accepted/trial snapshots; callbacks never decide acceptance. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/nonlinear/result.hpp" line="92" column="5" bodyfile="src/include/serif/solver/nonlinear/result.hpp" bodystart="92" bodyend="92"/>
</memberdef>
<memberdef kind="enum" id="namespaceserif_1_1solver_1af4b1a8caa8d8f54f51fc013688c7b21c" prot="public" static="no" strong="yes">
<type></type>
<name>SolveControl</name>
<qualifiedname>serif::solver::SolveControl</qualifiedname>
<enumvalue id="namespaceserif_1_1solver_1af4b1a8caa8d8f54f51fc013688c7b21ca1c2afff196eca9b02ad6a8dcc4aee0e0" prot="public">
<name>continue_solve</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1solver_1af4b1a8caa8d8f54f51fc013688c7b21caef399b2d446bb37b7c32ad2cc1b6045b" prot="public">
<name>stop</name>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<briefdescription>
<para>A stop request is remembered until the next initial, resumed or accepted <ref refid="structserif_1_1solver_1_1_newton" kindref="compound">Newton</ref> boundary. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/nonlinear/result.hpp" line="95" column="5" bodyfile="src/include/serif/solver/nonlinear/result.hpp" bodystart="95" bodyend="95"/>
</memberdef>
</sectiondef>
<sectiondef kind="typedef">
<memberdef kind="typedef" id="namespaceserif_1_1solver_1aaee71b0914bfa77aeb37e494eab911bb" prot="public" static="no">
<type><ref refid="structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_options" kindref="compound">operators::backend::mfem::VolumeOptions</ref></type>
<definition>using serif::solver::VolumeOptions = operators::backend::mfem::VolumeOptions</definition>
<argsstring></argsstring>
<name>VolumeOptions</name>
<qualifiedname>serif::solver::VolumeOptions</qualifiedname>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/equilibrium.hpp" line="8" column="5" bodyfile="src/include/serif/solver/equilibrium.hpp" bodystart="8" bodyend="-1"/>
</memberdef>
</sectiondef>
<sectiondef kind="func">
<memberdef kind="function" id="namespaceserif_1_1solver_1a795ce8d9efdc979d67d91cb56839fd1e" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Family</type>
</param>
<param>
<type>typename Factory</type>
</param>
<param>
<type>typename State</type>
</param>
<param>
<type>typename Options</type>
<defval>SolverOptions&lt;&gt;</defval>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::continue_equilibrium</definition>
<argsstring>(const Family &amp;family, Factory configure, const State &amp;initial_state, continuation::Options&lt; Family &gt; continuation_options, Options solver_options=continuation::default_solver_options())</argsstring>
<name>continue_equilibrium</name>
<qualifiedname>serif::solver::continue_equilibrium</qualifiedname>
<param>
<type>const Family &amp;</type>
<declname>family</declname>
</param>
<param>
<type>Factory</type>
<declname>configure</declname>
</param>
<param>
<type>const State &amp;</type>
<declname>initial_state</declname>
</param>
<param>
<type><ref refid="structserif_1_1solver_1_1continuation_1_1_options" kindref="compound">continuation::Options</ref>&lt; Family &gt;</type>
<declname>continuation_options</declname>
</param>
<param>
<type>Options</type>
<declname>solver_options</declname>
<defval><ref refid="namespaceserif_1_1solver_1_1continuation_1a284b5f1f64852170370630726f9fd9e6" kindref="member">continuation::default_solver_options</ref>()</defval>
</param>
<requiresclause>std::copy_constructible&lt;Options&gt; </requiresclause>
<briefdescription>
<para>Continue moving-star equilibria through an explicitly declared physical family. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>configure</parametername>
</parameternamelist>
<parameterdescription>
<para>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. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="note"><para>The explicit factory supports move-only resource policies without inventing a mutable clone/context hierarchy. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/equilibrium.hpp" line="56" column="11" bodyfile="src/include/serif/solver/continuation/equilibrium.hpp" bodystart="56" bodyend="63"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1aae73f87737f0d06a65fdf60a267717d7" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Family</type>
</param>
<param>
<type>typename Factory</type>
</param>
<param>
<type>typename State</type>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::continue_equilibrium</definition>
<argsstring>(const Family &amp;family, Factory configure, const State &amp;initial_state)</argsstring>
<name>continue_equilibrium</name>
<qualifiedname>serif::solver::continue_equilibrium</qualifiedname>
<param>
<type>const Family &amp;</type>
<declname>family</declname>
</param>
<param>
<type>Factory</type>
<declname>configure</declname>
</param>
<param>
<type>const State &amp;</type>
<declname>initial_state</declname>
</param>
<briefdescription>
<para>Start with the family&apos;s physics-owned default coordinates and bounded fallback route. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/equilibrium.hpp" line="67" column="11" bodyfile="src/include/serif/solver/continuation/equilibrium.hpp" bodystart="67" bodyend="69"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1abb8b187f7bbc1ffbe64842176278d16f" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Family</type>
</param>
<param>
<type>typename Factory</type>
</param>
<param>
<type>typename State</type>
</param>
<param>
<type>typename Options</type>
<defval>SolverOptions&lt;&gt;</defval>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::continue_equilibrium</definition>
<argsstring>(const Family &amp;family, Factory configure, const State &amp;initial_state, const Vector &amp;displacement, continuation::Options&lt; Family &gt; continuation_options, Options solver_options=continuation::default_solver_options())</argsstring>
<name>continue_equilibrium</name>
<qualifiedname>serif::solver::continue_equilibrium</qualifiedname>
<param>
<type>const Family &amp;</type>
<declname>family</declname>
</param>
<param>
<type>Factory</type>
<declname>configure</declname>
</param>
<param>
<type>const State &amp;</type>
<declname>initial_state</declname>
</param>
<param>
<type>const <ref refid="namespaceserif_1ab7690da8665e9d9bd2fa8e8534cd6e57" kindref="member">Vector</ref> &amp;</type>
<declname>displacement</declname>
</param>
<param>
<type><ref refid="structserif_1_1solver_1_1continuation_1_1_options" kindref="compound">continuation::Options</ref>&lt; Family &gt;</type>
<declname>continuation_options</declname>
</param>
<param>
<type>Options</type>
<declname>solver_options</declname>
<defval><ref refid="namespaceserif_1_1solver_1_1continuation_1a284b5f1f64852170370630726f9fd9e6" kindref="member">continuation::default_solver_options</ref>()</defval>
</param>
<requiresclause>std::copy_constructible&lt;Options&gt; </requiresclause>
<briefdescription>
<para>Continue a fixed-geometry model while preserving its prescribed displacement. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/equilibrium.hpp" line="74" column="11" bodyfile="src/include/serif/solver/continuation/equilibrium.hpp" bodystart="74" bodyend="81"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1ada5a2ebd458d64ac776bede196e81002" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Family</type>
</param>
<param>
<type>typename Factory</type>
</param>
<param>
<type>typename State</type>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::continue_equilibrium</definition>
<argsstring>(const Family &amp;family, Factory configure, const State &amp;initial_state, const Vector &amp;displacement)</argsstring>
<name>continue_equilibrium</name>
<qualifiedname>serif::solver::continue_equilibrium</qualifiedname>
<param>
<type>const Family &amp;</type>
<declname>family</declname>
</param>
<param>
<type>Factory</type>
<declname>configure</declname>
</param>
<param>
<type>const State &amp;</type>
<declname>initial_state</declname>
</param>
<param>
<type>const <ref refid="namespaceserif_1ab7690da8665e9d9bd2fa8e8534cd6e57" kindref="member">Vector</ref> &amp;</type>
<declname>displacement</declname>
</param>
<briefdescription>
<para>Use the same default route and absolute qualification tolerance for fixed geometry. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/continuation/equilibrium.hpp" line="85" column="11" bodyfile="src/include/serif/solver/continuation/equilibrium.hpp" bodystart="85" bodyend="87"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1a2e9de7691387f8b6f7ee258e6516da7d" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Configuration</type>
</param>
<param>
<type>typename Layout</type>
</param>
<param>
<type>typename Options</type>
<defval>SolverOptions&lt;&gt;</defval>
</param>
<param>
<type>typename Observer</type>
<defval>NoObserver</defval>
</param>
<param>
<type>utils::dependencies::IsDependencyContext</type>
<declname>Inputs</declname>
<defname>Inputs</defname>
<defval>utils::dependencies::DependencyContext&lt;&gt;</defval>
</param>
<param>
<type>typename ObserverFactory</type>
<defval>utils::dependencies::NoGraphObservers</defval>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::solve_equilibrium</definition>
<argsstring>(Configuration configuration, model::StellarState&lt; Layout &gt; initial_state, Options options={}, Observer observer={}, VolumeOptions volume_options={}, Inputs prescribed=Inputs{}, ObserverFactory observer_factory={})</argsstring>
<name>solve_equilibrium</name>
<qualifiedname>serif::solver::solve_equilibrium</qualifiedname>
<param>
<type>Configuration</type>
<declname>configuration</declname>
</param>
<param>
<type><ref refid="structserif_1_1model_1_1_stellar_state" kindref="compound">model::StellarState</ref>&lt; Layout &gt;</type>
<declname>initial_state</declname>
</param>
<param>
<type>Options</type>
<declname>options</declname>
<defval>{}</defval>
</param>
<param>
<type>Observer</type>
<declname>observer</declname>
<defval>{}</defval>
</param>
<param>
<type><ref refid="namespaceserif_1_1solver_1aaee71b0914bfa77aeb37e494eab911bb" kindref="member">VolumeOptions</ref></type>
<declname>volume_options</declname>
<defval>{}</defval>
</param>
<param>
<type>Inputs</type>
<declname>prescribed</declname>
<defval>Inputs{}</defval>
</param>
<param>
<type>ObserverFactory</type>
<declname>observer_factory</declname>
<defval>{}</defval>
</param>
<requiresclause>utils::dependencies::ContainsKey&lt;discretization::blocks::surface_deformation::coefficients, typename Layout::Values&gt; </requiresclause>
<briefdescription>
<para>Solve a moving star from an owning physical initial state. </para>
</briefdescription>
<detaileddescription>
<para><simplesect kind="note"><para>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&apos;s MPI runtime before using a recipe containing Hypre AMG. The optional final observer factory measures graph work separately from physics and solver history. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/equilibrium.hpp" line="20" column="11" bodyfile="src/include/serif/solver/equilibrium.hpp" bodystart="20" bodyend="32"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1aabb49f9d871887898b5f5001ff33b4bf" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Configuration</type>
</param>
<param>
<type>typename Layout</type>
</param>
<param>
<type>typename Options</type>
<defval>SolverOptions&lt;&gt;</defval>
</param>
<param>
<type>typename Observer</type>
<defval>NoObserver</defval>
</param>
<param>
<type>utils::dependencies::IsDependencyContext</type>
<declname>Inputs</declname>
<defname>Inputs</defname>
<defval>utils::dependencies::DependencyContext&lt;&gt;</defval>
</param>
<param>
<type>typename ObserverFactory</type>
<defval>utils::dependencies::NoGraphObservers</defval>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::solve_equilibrium</definition>
<argsstring>(Configuration configuration, model::StellarState&lt; Layout &gt; initial_state, const Vector &amp;displacement, Options options={}, Observer observer={}, VolumeOptions volume_options={}, Inputs prescribed=Inputs{}, ObserverFactory observer_factory={})</argsstring>
<name>solve_equilibrium</name>
<qualifiedname>serif::solver::solve_equilibrium</qualifiedname>
<param>
<type>Configuration</type>
<declname>configuration</declname>
</param>
<param>
<type><ref refid="structserif_1_1model_1_1_stellar_state" kindref="compound">model::StellarState</ref>&lt; Layout &gt;</type>
<declname>initial_state</declname>
</param>
<param>
<type>const <ref refid="namespaceserif_1ab7690da8665e9d9bd2fa8e8534cd6e57" kindref="member">Vector</ref> &amp;</type>
<declname>displacement</declname>
</param>
<param>
<type>Options</type>
<declname>options</declname>
<defval>{}</defval>
</param>
<param>
<type>Observer</type>
<declname>observer</declname>
<defval>{}</defval>
</param>
<param>
<type><ref refid="namespaceserif_1_1solver_1aaee71b0914bfa77aeb37e494eab911bb" kindref="member">VolumeOptions</ref></type>
<declname>volume_options</declname>
<defval>{}</defval>
</param>
<param>
<type>Inputs</type>
<declname>prescribed</declname>
<defval>Inputs{}</defval>
</param>
<param>
<type>ObserverFactory</type>
<declname>observer_factory</declname>
<defval>{}</defval>
</param>
<requiresclause>(!utils::dependencies::ContainsKey&lt;discretization::blocks::surface_deformation::coefficients, typename Layout::Values&gt;) </requiresclause>
<briefdescription>
<para>Solve a fixed-geometry model with prescribed displacement outside its unknown vector. </para>
</briefdescription>
<detaileddescription>
<para><simplesect kind="note"><para>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. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/equilibrium.hpp" line="43" column="11" bodyfile="src/include/serif/solver/equilibrium.hpp" bodystart="43" bodyend="49"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1a2698b5ef612716179bbd0f1498cc4cec" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Configuration</type>
</param>
<param>
<type>typename Layout</type>
</param>
<param>
<type>typename Options</type>
<defval>SolverOptions&lt;&gt;</defval>
</param>
<param>
<type>typename Observer</type>
<defval>NoObserver</defval>
</param>
<param>
<type>utils::dependencies::IsDependencyContext</type>
<declname>Inputs</declname>
<defname>Inputs</defname>
<defval>utils::dependencies::DependencyContext&lt;&gt;</defval>
</param>
<param>
<type>typename ObserverFactory</type>
<defval>utils::dependencies::NoGraphObservers</defval>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::resume_equilibrium</definition>
<argsstring>(Configuration configuration, NewtonCheckpoint&lt; model::StellarState&lt; Layout &gt; &gt; checkpoint, Options options={}, Observer observer={}, VolumeOptions volume_options={}, Inputs prescribed=Inputs{}, ObserverFactory observer_factory={})</argsstring>
<name>resume_equilibrium</name>
<qualifiedname>serif::solver::resume_equilibrium</qualifiedname>
<param>
<type>Configuration</type>
<declname>configuration</declname>
</param>
<param>
<type><ref refid="structserif_1_1solver_1_1_newton_checkpoint" kindref="compound">NewtonCheckpoint</ref>&lt; <ref refid="structserif_1_1model_1_1_stellar_state" kindref="compound">model::StellarState</ref>&lt; Layout &gt; &gt;</type>
<declname>checkpoint</declname>
</param>
<param>
<type>Options</type>
<declname>options</declname>
<defval>{}</defval>
</param>
<param>
<type>Observer</type>
<declname>observer</declname>
<defval>{}</defval>
</param>
<param>
<type><ref refid="namespaceserif_1_1solver_1aaee71b0914bfa77aeb37e494eab911bb" kindref="member">VolumeOptions</ref></type>
<declname>volume_options</declname>
<defval>{}</defval>
</param>
<param>
<type>Inputs</type>
<declname>prescribed</declname>
<defval>Inputs{}</defval>
</param>
<param>
<type>ObserverFactory</type>
<declname>observer_factory</declname>
<defval>{}</defval>
</param>
<requiresclause>utils::dependencies::ContainsKey&lt;discretization::blocks::surface_deformation::coefficients, typename Layout::Values&gt; </requiresclause>
<briefdescription>
<para>Continue a moving-star checkpoint using reconstructed physical and numerical configuration. </para>
</briefdescription>
<detaileddescription>
<para><simplesect kind="note"><para>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. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/equilibrium.hpp" line="61" column="11" bodyfile="src/include/serif/solver/equilibrium.hpp" bodystart="61" bodyend="66"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1ad1fa5c83c70e1b37311b7cf0ed4b88bd" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Configuration</type>
</param>
<param>
<type>typename Layout</type>
</param>
<param>
<type>typename Options</type>
<defval>SolverOptions&lt;&gt;</defval>
</param>
<param>
<type>typename Observer</type>
<defval>NoObserver</defval>
</param>
<param>
<type>utils::dependencies::IsDependencyContext</type>
<declname>Inputs</declname>
<defname>Inputs</defname>
<defval>utils::dependencies::DependencyContext&lt;&gt;</defval>
</param>
<param>
<type>typename ObserverFactory</type>
<defval>utils::dependencies::NoGraphObservers</defval>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::resume_equilibrium</definition>
<argsstring>(Configuration configuration, NewtonCheckpoint&lt; model::StellarState&lt; Layout &gt; &gt; checkpoint, const Vector &amp;displacement, Options options={}, Observer observer={}, VolumeOptions volume_options={}, Inputs prescribed=Inputs{}, ObserverFactory observer_factory={})</argsstring>
<name>resume_equilibrium</name>
<qualifiedname>serif::solver::resume_equilibrium</qualifiedname>
<param>
<type>Configuration</type>
<declname>configuration</declname>
</param>
<param>
<type><ref refid="structserif_1_1solver_1_1_newton_checkpoint" kindref="compound">NewtonCheckpoint</ref>&lt; <ref refid="structserif_1_1model_1_1_stellar_state" kindref="compound">model::StellarState</ref>&lt; Layout &gt; &gt;</type>
<declname>checkpoint</declname>
</param>
<param>
<type>const <ref refid="namespaceserif_1ab7690da8665e9d9bd2fa8e8534cd6e57" kindref="member">Vector</ref> &amp;</type>
<declname>displacement</declname>
</param>
<param>
<type>Options</type>
<declname>options</declname>
<defval>{}</defval>
</param>
<param>
<type>Observer</type>
<declname>observer</declname>
<defval>{}</defval>
</param>
<param>
<type><ref refid="namespaceserif_1_1solver_1aaee71b0914bfa77aeb37e494eab911bb" kindref="member">VolumeOptions</ref></type>
<declname>volume_options</declname>
<defval>{}</defval>
</param>
<param>
<type>Inputs</type>
<declname>prescribed</declname>
<defval>Inputs{}</defval>
</param>
<param>
<type>ObserverFactory</type>
<declname>observer_factory</declname>
<defval>{}</defval>
</param>
<requiresclause>(!utils::dependencies::ContainsKey&lt;discretization::blocks::surface_deformation::coefficients, typename Layout::Values&gt;) </requiresclause>
<briefdescription>
<para>Continue a fixed-geometry checkpoint with its separately restored prescribed displacement. </para>
</briefdescription>
<detaileddescription>
<para><simplesect kind="note"><para>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. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/equilibrium.hpp" line="77" column="11" bodyfile="src/include/serif/solver/equilibrium.hpp" bodystart="77" bodyend="83"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1a50d481ced4213cc6414d163eff898df9" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Problem</type>
</param>
<param>
<type>typename State</type>
</param>
<param>
<type>typename Options</type>
<defval>SolverOptions&lt;&gt;</defval>
</param>
<param>
<type>typename Observer</type>
<defval>NoObserver</defval>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::solve_newton</definition>
<argsstring>(Problem &amp;problem, State initial_state, Options options={}, Observer observer={})</argsstring>
<name>solve_newton</name>
<qualifiedname>serif::solver::solve_newton</qualifiedname>
<param>
<type>Problem &amp;</type>
<declname>problem</declname>
</param>
<param>
<type>State</type>
<declname>initial_state</declname>
</param>
<param>
<type>Options</type>
<declname>options</declname>
<defval>{}</defval>
</param>
<param>
<type>Observer</type>
<declname>observer</declname>
<defval>{}</defval>
</param>
<requiresclause>detail::NewtonStrategyFor&lt;Problem, State, Options&gt; </requiresclause>
<briefdescription>
<para>Solve a custom numerical problem using its native <ref refid="namespaceserif_1ab7690da8665e9d9bd2fa8e8534cd6e57" kindref="member">Vector</ref>, evaluate, prepare and solve_linear operations. </para>
</briefdescription>
<detaileddescription>
<para><simplesect kind="note"><para>Strategies here are executable numerical methods; solve_equilibrium uses the same strategies. </para>
</simplesect>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/nonlinear/newton.hpp" line="109" column="11" bodyfile="src/include/serif/solver/nonlinear/newton.hpp" bodystart="109" bodyend="111"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1aa3cdbadff61a171e313e316fdf26909d" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>typename Problem</type>
</param>
<param>
<type>typename State</type>
</param>
<param>
<type>typename Options</type>
<defval>SolverOptions&lt;&gt;</defval>
</param>
<param>
<type>typename Observer</type>
<defval>NoObserver</defval>
</param>
</templateparamlist>
<type>auto</type>
<definition>auto serif::solver::resume_newton</definition>
<argsstring>(Problem &amp;problem, NewtonCheckpoint&lt; State &gt; checkpoint, Options options={}, Observer observer={})</argsstring>
<name>resume_newton</name>
<qualifiedname>serif::solver::resume_newton</qualifiedname>
<param>
<type>Problem &amp;</type>
<declname>problem</declname>
</param>
<param>
<type><ref refid="structserif_1_1solver_1_1_newton_checkpoint" kindref="compound">NewtonCheckpoint</ref>&lt; State &gt;</type>
<declname>checkpoint</declname>
</param>
<param>
<type>Options</type>
<declname>options</declname>
<defval>{}</defval>
</param>
<param>
<type>Observer</type>
<declname>observer</declname>
<defval>{}</defval>
</param>
<requiresclause>detail::NewtonStrategyFor&lt;Problem, State, Options&gt; </requiresclause>
<briefdescription>
<para>Resume the original convergence reference, correction reuse, and cumulative work budget. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/nonlinear/newton.hpp" line="116" column="11" bodyfile="src/include/serif/solver/nonlinear/newton.hpp" bodystart="116" bodyend="118"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1a4ae15221b9aded0dc3ec787898984462" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" noexcept="yes" virt="non-virtual">
<type>double</type>
<definition>double serif::solver::next_backtracking_step</definition>
<argsstring>(double rejected_step, double accepted_determinant, double rejected_determinant, bool inverted, const Backtracking &amp;options) noexcept</argsstring>
<name>next_backtracking_step</name>
<qualifiedname>serif::solver::next_backtracking_step</qualifiedname>
<param>
<type>double</type>
<declname>rejected_step</declname>
</param>
<param>
<type>double</type>
<declname>accepted_determinant</declname>
</param>
<param>
<type>double</type>
<declname>rejected_determinant</declname>
</param>
<param>
<type>bool</type>
<declname>inverted</declname>
</param>
<param>
<type>const <ref refid="structserif_1_1solver_1_1_backtracking" kindref="compound">Backtracking</ref> &amp;</type>
<declname>options</declname>
</param>
<briefdescription>
<para>Skip only existing backtracking rungs when an inverted trial gives a finite boundary estimate. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/lib/serif/solver/nonlinear/options.cpp" line="42" column="12" bodyfile="src/lib/serif/solver/nonlinear/options.cpp" bodystart="42" bodyend="66" declfile="src/include/serif/solver/nonlinear/options.hpp" declline="104" declcolumn="13"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1solver_1aba8609bba7520feb62263d06def641e5" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
<type>std::optional&lt; std::string &gt;</type>
<definition>std::optional&lt; std::string &gt; serif::solver::validate_newton_progress</definition>
<argsstring>(const NewtonProgress &amp;progress, const std::size_t state_size)</argsstring>
<name>validate_newton_progress</name>
<qualifiedname>serif::solver::validate_newton_progress</qualifiedname>
<param>
<type>const <ref refid="structserif_1_1solver_1_1_newton_progress" kindref="compound">NewtonProgress</ref> &amp;</type>
<declname>progress</declname>
</param>
<param>
<type>const std::size_t</type>
<declname>state_size</declname>
</param>
<briefdescription>
<para>Reject incomplete or inconsistent imported history before preparing any runtime operators. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/solver/nonlinear/result.hpp" line="60" column="27" bodyfile="src/include/serif/solver/nonlinear/result.hpp" bodystart="60" bodyend="82"/>
</memberdef>
</sectiondef>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<location file="src/compile_time_checks/serif/solver/normalization/dimensionless.cpp" line="5" column="1"/>
</compounddef>
</doxygen>