#include <SolverNleRecipes.h>
|
| | SolverNleRecipes (int, ObjectiveNleInterface &) |
| |
| void | resize (int n) override |
| | sets the number of unknowns More...
|
| |
| double | norm (const double *x) override |
| | return energy-norm More...
|
| |
| int | solve (void) override |
| |
| std::string | message (int code) override |
| |
| void | setTolerances (double alf, double tolx, double tolf, double tolmin) override |
| |
| | 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) |
| |
| | Diagnostic (void) |
| |
| void | setVerbosity (int verbosity) |
| | sets the verbosity level for this instance More...
|
| |
| int | verbosity (void) const |
| |
Resolution of systems of non-linear equations
#include <libpf/core/SolverNleRecipes.h>
- Warning
-
Thread safe:
-
Extendable:
-
Platform dependencies:
◆ ~SolverNleRecipes()
| SolverNleRecipes::~SolverNleRecipes |
( |
void |
| ) |
|
|
protected |
◆ SolverNleRecipes()
◆ lnsrch_()
| int SolverNleRecipes::lnsrch_ |
( |
double |
fold, |
|
|
double & |
f, |
|
|
double |
stpmax |
|
) |
| |
|
protected |
Input:
- Parameters
-
| stpmax | limit to the length of the steps so that you do not try to evaluate the function in regions where it is undefined or subject to overflow. |
| fold | The previous value of the function |
| f | The new function value is returned in f. |
Output: finds a new point x along the Direction p from xold where the function func has decreased sufficiently
Returns 0 on a normal exit. Returns 4 if on a plateau Returns 5 x is too close to xold (convergence on deltax) Returns 8 if NaN Returns 9 if unknown direction
In a minimization algorithm, this usually signals convergence and can be ignored. However, in a zero-finding algorithm the calling program should check whether the convergence is spurious.
◆ message()
| std::string SolverNleRecipes::message |
( |
int |
code | ) |
|
|
overridevirtual |
OK: 0 converged fine
warning level: -1 converged to a local minimum; try a different initial guess -4 objective function insensitive (plateau) -5 convergence on deltax; dubious convergence
error level: 2 exceeded maximum iterations limit 3 error when evaluating the residuals 6 singular matrix, type 1 7 singular matrix, type 2 8 NaN encountered
Implements SolverNleInterface.
◆ norm()
| double SolverNleRecipes::norm |
( |
const double * |
x | ) |
|
|
overridevirtual |
◆ resize()
| void SolverNleRecipes::resize |
( |
int |
n | ) |
|
|
overridevirtual |
◆ setTolerances()
| void SolverNleRecipes::setTolerances |
( |
double |
alf, |
|
|
double |
tolx, |
|
|
double |
tolf, |
|
|
double |
tolmin |
|
) |
| |
|
overridevirtual |
- Parameters
-
| alf | Ensures sufficient decrease in function value |
| tolx | Convergence criterion on dx |
| tolf | convergence criterion on function values |
| tolmin | sets the criterion for deciding whether spurious convergence to a minimum of fmin has occurred |
Implements SolverNleInterface.
◆ solve()
| int SolverNleRecipes::solve |
( |
void |
| ) |
|
|
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.
◆ d_
| std::vector<double> SolverNleRecipes::d_ |
|
protected |
◆ g_
| double* SolverNleRecipes::g_ |
|
protected |
◆ indx_
| int* SolverNleRecipes::indx_ |
|
protected |
◆ p_
| double * SolverNleRecipes::p_ |
|
protected |
◆ xold_
| double * SolverNleRecipes::xold_ |
|
protected |
The documentation for this class was generated from the following file: