NEML2 2.0.0
Loading...
Searching...
No Matches
NonlinearSolver Class Referenceabstract

The nonlinear solver solves a nonlinear system of equations. More...

Detailed Description

The nonlinear solver solves a nonlinear system of equations.

#include <NonlinearSolver.h>

Inheritance diagram for NonlinearSolver:

Classes

struct  Result
 

Public Types

enum class  RetCode { SUCCESS = 0 , MAXITER = 1 , FAILURE = 2 }
 

Public Member Functions

 NonlinearSolver (const OptionSet &options)
 Construct a new NonlinearSolver object.
 
virtual Result solve (NonlinearSystem &system, const NonlinearSystem::Sol< false > &x0)=0
 Solve the given nonlinear system.
 
- Public Member Functions inherited from Solver
 Solver (const OptionSet &options)
 Construct a new Solver object.
 
- Public Member Functions inherited from NEML2Object
 NEML2Object ()=delete
 
 NEML2Object (NEML2Object &&)=delete
 
 NEML2Object (const NEML2Object &)=delete
 
NEML2Objectoperator= (const NEML2Object &)=delete
 
NEML2Objectoperator= (NEML2Object &&)=delete
 
virtual ~NEML2Object ()=default
 
 NEML2Object (const OptionSet &options)
 Construct a new NEML2Object object.
 
const OptionSetinput_options () const
 
virtual void setup ()
 Setup this object.
 
const std::string & name () const
 A readonly reference to the object's name.
 
const std::string & type () const
 A readonly reference to the object's type.
 
const std::string & path () const
 A readonly reference to the object's path.
 
const std::string & doc () const
 A readonly reference to the object's docstring.
 
template<typename T = NEML2Object>
const T * host () const
 Get a readonly pointer to the host.
 
template<typename T = NEML2Object>
T * host ()
 Get a writable pointer to the host.
 

Static Public Member Functions

static OptionSet expected_options ()
 
- Static Public Member Functions inherited from Solver
static OptionSet expected_options ()
 
- Static Public Member Functions inherited from NEML2Object
static OptionSet expected_options ()
 

Public Attributes

Real atol
 Absolute tolerance.
 
Real rtol
 Relative tolerance.
 
unsigned int miters
 Maximum number of iterations.
 
- Public Attributes inherited from Solver
const bool verbose
 Whether to print additional (debugging) information during the solve.
 

Member Enumeration Documentation

◆ RetCode

enum class RetCode
strong
Enumerator
SUCCESS 

Solver converged successfully.

MAXITER 

Maximum number of iterations reached (without convergence)

FAILURE 

Solver failed to converge.

Constructor & Destructor Documentation

◆ NonlinearSolver()

Construct a new NonlinearSolver object.

Parameters
optionsThe options extracted from the input file

Member Function Documentation

◆ expected_options()

OptionSet expected_options ( )
static

◆ solve()

virtual Result solve ( NonlinearSystem & system,
const NonlinearSystem::Sol< false > & x0 )
pure virtual

Solve the given nonlinear system.

Parameters
systemThe nonlinear system of equations.
x0The initial guess
Returns
See also
neml2::NonlinearSolver::Result

Implemented in Newton.

Member Data Documentation

◆ atol

Real atol

Absolute tolerance.

◆ miters

unsigned int miters

Maximum number of iterations.

◆ rtol

Real rtol

Relative tolerance.