SpECTRE
v2025.03.17
|
Items related to the NewtonRaphson nonlinear solver. More...
Classes | |
struct | NewtonRaphson |
A Newton-Raphson correction scheme for nonlinear systems of equations | |
Functions | |
double | next_step_length (size_t globalization_iteration_id, double step_length, double prev_step_length, double residual, double residual_slope, double next_residual, double prev_residual) |
Find the next step length for the line-search globalization. More... | |
Items related to the NewtonRaphson nonlinear solver.
double NonlinearSolver::newton_raphson::next_step_length | ( | size_t | globalization_iteration_id, |
double | step_length, | ||
double | prev_step_length, | ||
double | residual, | ||
double | residual_slope, | ||
double | next_residual, | ||
double | prev_residual | ||
) |
Find the next step length for the line-search globalization.
The next step length is chosen such that it minimizes the quadratic (first globalization step, i.e., when globalization_iteration_id
is 0) or cubic (subsequent globalization steps) polynomial interpolation. This function implements Algorithm A6.3.1 in [50] (p. 325). This is how argument names map to symbols in that algorithm:
step_length
: prev_step_length
: residual
: residual_slope
: next_residual
: prev_residual
: Note that the argument residual_slope
is the derivative of the residual function NonlinearSolver::newton_raphson::NewtonRaphson
, then the residual_slope
reduces to
Here we have used the relation
of a Newton-Raphson step of full length