Reference documentation for deal.II version 9.6.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
NonlinearSolverSelector< VectorType >::AdditionalData Class Reference

#include <deal.II/numerics/nonlinear.h>

Public Types

enum  SolutionStrategy { newton , linesearch , picard }
 
enum  SolverType { automatic , kinsol , nox , petsc_snes }
 

Public Member Functions

 AdditionalData (const SolverType &solver_type=automatic, const SolutionStrategy &strategy=linesearch, const unsigned int maximum_non_linear_iterations=200, const double function_tolerance=1e-8, const double relative_tolerance=1e-5, const double step_tolerance=0.0, const unsigned int anderson_subspace_size=0)
 

Public Attributes

SolverType solver_type
 
SolutionStrategy strategy
 
unsigned int maximum_non_linear_iterations
 
double function_tolerance
 
const double relative_tolerance
 
double step_tolerance
 
unsigned int anderson_subspace_size
 

Detailed Description

template<typename VectorType = Vector<double>>
class NonlinearSolverSelector< VectorType >::AdditionalData

Additional data that will be sent through the NonlinearSolverSelector class, then into the specific nonlinear solver classes themselves. Many of these parameters can also be foud in the documentation for KINSOL and NOX.

Definition at line 84 of file nonlinear.h.

Member Enumeration Documentation

◆ SolutionStrategy

template<typename VectorType = Vector<double>>
enum NonlinearSolverSelector::AdditionalData::SolutionStrategy

NonlinearSolverSelector solution strategy. The solver types included in this class both use a Newton-Krylov solver with a line search and even Picard iterations (KINSOL).

Enumerator
newton 

Standard Newton iteration.

linesearch 

Newton iteration with line search.

picard 

Picard iteration.

Definition at line 92 of file nonlinear.h.

◆ SolverType

template<typename VectorType = Vector<double>>
enum NonlinearSolverSelector::AdditionalData::SolverType
Enumerator
automatic 

Default parameter, will use whatever solver is available with KINSOL as the priority.

kinsol 

KINSOL nonlinear solver, part of the SUNDIALS package.

nox 

NOX nonlinear solver, part of the TRILINOS package.

petsc_snes 

Definition at line 108 of file nonlinear.h.

Constructor & Destructor Documentation

◆ AdditionalData()

template<typename VectorType >
NonlinearSolverSelector< VectorType >::AdditionalData::AdditionalData ( const SolverType & solver_type = automatic,
const SolutionStrategy & strategy = linesearch,
const unsigned int maximum_non_linear_iterations = 200,
const double function_tolerance = 1e-8,
const double relative_tolerance = 1e-5,
const double step_tolerance = 0.0,
const unsigned int anderson_subspace_size = 0 )

Initialization parameters for NonlinearSolverSelector.

Parameters
solver_typeNonlinear solver type.
strategyMethod of solving the nonlinear problem.
maximum_non_linear_iterationsMaximum number of nonlinear iterations.
function_toleranceAbsolute stopping tolerance for the norm of the residual \(F(u)\).
relative_toleranceRelative stopping tolerance.
step_toleranceTolerance for minimum scaled step length
anderson_subspace_sizeSize of the Anderson acceleration subspace, use 0 to disable.

Definition at line 528 of file nonlinear.h.

Member Data Documentation

◆ solver_type

template<typename VectorType = Vector<double>>
SolverType NonlinearSolverSelector< VectorType >::AdditionalData::solver_type

The type of nonlinear solver to use. If the default 'automatic' is used, it will choose the first available package in the order KINSOL, NOX, or SNES.

Definition at line 156 of file nonlinear.h.

◆ strategy

template<typename VectorType = Vector<double>>
SolutionStrategy NonlinearSolverSelector< VectorType >::AdditionalData::strategy

The solution strategy to use. For this class, you can choose from SolutionStrategy::newton, SolutionStrategy::linesearch, or SolutionStrategy::picard. More details on this can be found on the KINSOL documentation.

Definition at line 164 of file nonlinear.h.

◆ maximum_non_linear_iterations

template<typename VectorType = Vector<double>>
unsigned int NonlinearSolverSelector< VectorType >::AdditionalData::maximum_non_linear_iterations

Maximum number of nonlinear iterations allowed.

Definition at line 169 of file nonlinear.h.

◆ function_tolerance

template<typename VectorType = Vector<double>>
double NonlinearSolverSelector< VectorType >::AdditionalData::function_tolerance

A scalar used as a stopping tolerance on the scaled maximum norm of the system function \(F(u)\) or \(G(u)\).

If set to zero, default values will be used.

Definition at line 177 of file nonlinear.h.

◆ relative_tolerance

template<typename VectorType = Vector<double>>
const double NonlinearSolverSelector< VectorType >::AdditionalData::relative_tolerance

Relative \(l_2\) tolerance of the residual to be reached.

Note
Solver terminates successfully if either the function tolerance or the relative tolerance has been reached.

Definition at line 185 of file nonlinear.h.

◆ step_tolerance

template<typename VectorType = Vector<double>>
double NonlinearSolverSelector< VectorType >::AdditionalData::step_tolerance

A scalar used as a stopping tolerance on the minimum scaled step length.

If set to zero, default values will be used.

Definition at line 193 of file nonlinear.h.

◆ anderson_subspace_size

template<typename VectorType = Vector<double>>
unsigned int NonlinearSolverSelector< VectorType >::AdditionalData::anderson_subspace_size

The size of the subspace used with Anderson acceleration in conjunction with Picard iteration.

If you set this to 0, no acceleration is used.

Definition at line 201 of file nonlinear.h.


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