#include <SolverNleQ.h>
Public Member Functions | |
SolverNleQ (int, ObjectiveNleInterface &) | |
void | resize (int n) override |
sets the number of unknowns More... | |
double | norm (const double *x) override |
return root mean square (RMS) norm More... | |
int | solve (void) override |
std::string | message (int code) override |
void | setTolerances (double lambdaMin, double epsilon, double lambda0, double) override |
Public Member Functions inherited from SolverNleInterface | |
SolverNleInterface (ObjectiveNleInterface &of) | |
int | size (void) const |
virtual void | resize (int n) |
sets the number of unknowns More... | |
void | print_table (double *xmin, double *xmax, int nsteps) |
print dependence on all unknowns More... | |
void | printResults (void) |
print vector of results More... | |
void | printMetrics (void) |
print metric counters More... | |
virtual void | setTolerances (double, double, double, double)=0 |
virtual function, has different meaning for the different solvers derived from SolverNleInterface More... | |
void | setMaximumIterations (int m) |
sets the maximum number of iterations More... | |
void | setMaximumStepSize (double stpmx) |
void | bmpout (char *file_out_name) const |
double | residual (int i) |
returns current value of the ith component of the residual vector More... | |
virtual double | norm (const double *x)=0 |
return root mean square (RMS) norm More... | |
virtual double | calculateF (void)=0 |
calculates F; returns the norm of the residuals More... | |
virtual double | calculateFJ (void)=0 |
calculates F and J; returns the norm of the residuals More... | |
virtual int | solve (void)=0 |
virtual std::string | message (int code)=0 |
convert return code returned by solve method to human-readable message More... | |
virtual void | verifySolution (void)=0 |
evaluate equation set at the current set up estimates for the unknowns; useful to test for convergence after sequential solution More... | |
bool | nonConverged (void) |
Public Member Functions inherited from Diagnostic | |
Diagnostic (void) | |
void | setVerbosity (int verbosity) |
sets the verbosity level for this instance More... | |
int | verbosity (void) const |
Protected Member Functions | |
~SolverNleQ (void) | |
Protected Member Functions inherited from SolverNleInterface | |
~SolverNleInterface (void) | |
void | clearCounters (void) |
Protected Member Functions inherited from Diagnostic | |
virtual | ~Diagnostic ()=default |
Additional Inherited Members | |
Public Attributes inherited from SolverNleInterface | |
int | NITER |
double * | F_ |
current values of residuals More... | |
double * | x_ |
current values of unknowns More... | |
Jacobian | J |
Protected Attributes inherited from SolverNleInterface | |
ObjectiveNleInterface * | ofp_ |
int | MAXITS |
maximum number of Newton iterations More... | |
int | verbosityLocal |
int | nSyst_ |
Number of system evaluations. More... | |
int | nNewt_ |
Number of Newton method applications. More... | |
int | nQuas_ |
Number of Quasi Newton method applications. More... | |
int | nAuto_ |
Number of analytical Jacobian evaluations. More... | |
int | nNume_ |
Number of numerical Jacobian evaluations. More... | |
double | STPMX |
scaled maximum step length allowed in line searches More... | |
Protected Attributes inherited from Diagnostic | |
int | verbosityInstance |
Detailed Description
Resolution of systems of non-linear equations, based on the NLEQ-ERR algorithm in: Peter Deuflhard, "Newton Methods for Nonlinear Problems Affine Invariance and Adaptive Algorithms" Springer Series in Computational Mathematics 35 2011, page 148
parameters: lambda0, epsilon
#include <libpf/core/SolverNleQ.h>
- Remarks
- Warning
- Thread safe:
- Extendable:
- Platform dependencies:
Constructor & Destructor Documentation
◆ ~SolverNleQ()
|
protected |
◆ SolverNleQ()
SolverNleQ::SolverNleQ | ( | int | , |
ObjectiveNleInterface & | |||
) |
Member Function Documentation
◆ message()
|
overridevirtual |
OK: 0 Converged OK
warning level:
error level: 2 Newton exceeded maximum iterations limit 3 Error when evaluating the residuals 4 Quasi-Newton exceeded maximum iterations limit 5 Step reduction limit reached 6 Singular matrix, type 1 7 Singular matrix, type 2
Implements SolverNleInterface.
◆ norm()
|
overridevirtual |
return root mean square (RMS) norm
Implements SolverNleInterface.
◆ resize()
|
overridevirtual |
sets the number of unknowns
Reimplemented from SolverNleInterface.
Reimplemented in SolverNleQNumeric.
◆ setTolerances()
|
overridevirtual |
- Parameters
-
lambdaMin Minimum step reduction factor epsilon Required error accuracy lambda0 Initial step reduction factor
Implements SolverNleInterface.
◆ solve()
|
overridevirtual |
Globally convergent Newton's method algorithm zero return code: solved ok negative return code: solved with warnings positive return code: unrecoverable error
Implements SolverNleInterface.
The documentation for this class was generated from the following file: