SpECTRE  v2024.04.12
NonlinearSolver::OptionTags::SufficientDecrease< OptionsGroup > Struct Template Reference

Sufficient decrease parameter of the line search globalization. More...

#include <Tags.hpp>

Public Types

using type = double
 
using group = OptionsGroup
 

Static Public Member Functions

static type lower_bound ()
 
static type upper_bound ()
 
static type suggested_value ()
 

Static Public Attributes

static constexpr Options::String help
 

Detailed Description

template<typename OptionsGroup>
struct NonlinearSolver::OptionTags::SufficientDecrease< OptionsGroup >

Sufficient decrease parameter of the line search globalization.

The sufficient decrease parameter is the acceptable decrease of the residual magnitude in each step of the nonlinear solver. It is measured as a fraction of the predicted decrease in residual magnitude if the problem was linear. For example, a sufficient decrease parameter of 1 means that a nonlinear solver step is expected to decrease the residual exactly as expected for a linear problem, i.e. immediately to zero. A sufficient decrease parameter of 0.5 means that decreasing the residual by half of that amount in each nonlinear solver step is acceptable.

Nonlinear solver steps that fail the sufficient decrease condition (also known as Armijo condition) undergo a globalization procedure such as a line search.

A typical value for the sufficient decrease parameter is \(10^{-4}\). Set to values closer to unity when the nonlinear solver overshoots, e.g. when the initial guess is particularly bad. Larger values mean the nonlinear solver is stricter with accepting steps, preferring to apply the globalization strategy.

Member Data Documentation

◆ help

template<typename OptionsGroup >
constexpr Options::String NonlinearSolver::OptionTags::SufficientDecrease< OptionsGroup >::help
staticconstexpr
Initial value:
= {
"Fraction of decrease predicted by linearization"}

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