NEML2 2.0.0
|
The nonlinear solver solves a nonlinear system of equations. More...
The nonlinear solver solves a nonlinear system of equations.
The Newton-Raphson method is used to iteratively update the initial guess until the residual becomes zero within specified tolerances.
#include <Newton.h>
Public Member Functions | |
Newton (const OptionSet &options) | |
Result | solve (NonlinearSystem &system, const NonlinearSystem::Sol< false > &x0) override |
Solve the given nonlinear system. | |
![]() | |
NonlinearSolver (const OptionSet &options) | |
Construct a new NonlinearSolver object. | |
![]() | |
Solver (const OptionSet &options) | |
Construct a new Solver object. | |
![]() | |
NEML2Object ()=delete | |
NEML2Object (NEML2Object &&)=delete | |
NEML2Object (const NEML2Object &)=delete | |
NEML2Object & | operator= (NEML2Object &&)=delete |
NEML2Object & | operator= (const NEML2Object &)=delete |
virtual | ~NEML2Object ()=default |
NEML2Object (const OptionSet &options) | |
Construct a new NEML2Object object. | |
const OptionSet & | input_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 OptionSet | expected_options () |
![]() | |
static OptionSet | expected_options () |
![]() | |
static OptionSet | expected_options () |
Protected Member Functions | |
virtual void | prepare (const NonlinearSystem &, const NonlinearSystem::Sol< true > &) |
Prepare solver internal data before the iterative update. | |
virtual bool | converged (size_t itr, const ATensor &nR, const ATensor &nR0) const |
Check for convergence. The current iteration is said to be converged if the residual norm is below the absolute tolerance or or the ratio between the residual norm and the initial residual norm is below the relative tolerance. | |
virtual void | update (NonlinearSystem &system, NonlinearSystem::Sol< true > &x, const NonlinearSystem::Res< true > &r, const NonlinearSystem::Jac< true > &J) |
Update trial solution. | |
virtual void | final_update (NonlinearSystem &system, NonlinearSystem::Sol< true > &x, const NonlinearSystem::Res< true > &r, const NonlinearSystem::Jac< true > &J) |
Do a final update to track AD function graph. | |
virtual NonlinearSystem::Sol< true > | solve_direction (const NonlinearSystem::Res< true > &r, const NonlinearSystem::Jac< true > &J) |
Find the current update direction. | |
Additional Inherited Members | |
![]() | |
enum class | RetCode : std::uint8_t { SUCCESS = 0 , MAXITER = 1 , FAILURE = 2 } |
![]() | |
Real | atol |
Absolute tolerance. | |
Real | rtol |
Relative tolerance. | |
unsigned int | miters |
Maximum number of iterations. | |
![]() | |
const bool | verbose |
Whether to print additional (debugging) information during the solve. | |
Check for convergence. The current iteration is said to be converged if the residual norm is below the absolute tolerance or or the ratio between the residual norm and the initial residual norm is below the relative tolerance.
itr | The current iteration number |
nR | The current residual norm |
nR0 | The initial residual norm |
|
static |
|
protectedvirtual |
Do a final update to track AD function graph.
|
inlineprotectedvirtual |
Prepare solver internal data before the iterative update.
Reimplemented in NewtonWithTrustRegion.
|
overridevirtual |
Solve the given nonlinear system.
system | The nonlinear system of equations. |
x0 | The initial guess |
Implements NonlinearSolver.
|
protectedvirtual |
Find the current update direction.
Reimplemented in NewtonWithTrustRegion.
|
protectedvirtual |
Update trial solution.
Reimplemented in NewtonWithLineSearch, and NewtonWithTrustRegion.