SpECTRE  v2024.03.19
NonlinearSolver::Tags::Correction< Tag > Struct Template Reference

The correction \(\delta x\) to improve a solution \(x_0\). More...

#include <Tags.hpp>

Public Types

using type = typename Tag::type
 
using tag = Tag
 

Detailed Description

template<typename Tag>
struct NonlinearSolver::Tags::Correction< Tag >

The correction \(\delta x\) to improve a solution \(x_0\).

A linear problem \(Ax=b\) can be equivalently formulated as the problem \(A\delta x=b-A x_0\) for the correction \(\delta x\) to an initial guess \(x_0\). More importantly, we can use a correction scheme to solve a nonlinear problem \(A_\mathrm{nonlinear}(x)=b\) by repeatedly solving a linearization of it. For instance, a Newton-Raphson scheme iteratively refines an initial guess \(x_0\) by repeatedly solving the linearized problem

\begin{equation} \frac{\delta A_\mathrm{nonlinear}}{\delta x}(x_k)\delta x_k = b-A_\mathrm{nonlinear}(x_k) \end{equation}

for the correction \(\delta x_k\) and then updating the solution as \(x_{k+1}=x_k + \delta x_k\).


The documentation for this struct was generated from the following file: