File numerics/src/tools/SolverOptions.h#
Go to the source code of this file
Structure used to send options (name, parameters and so on) to a specific solver-driver (mainly from Kernel to Numerics).
Defines
-
OPTIONS_PARAM_SIZE#
Enums
-
enum SICONOS_IPARAM#
Some value for iparam index.
Values:
-
enumerator SICONOS_IPARAM_MAX_ITER#
-
enumerator SICONOS_IPARAM_ITER_DONE#
-
enumerator SICONOS_IPARAM_PREALLOC#
-
enumerator SICONOS_IPARAM_NSGS_SHUFFLE#
-
enumerator SICONOS_IPARAM_ERROR_EVALUATION#
-
enumerator SICONOS_IPARAM_PATHSEARCH_STACKSIZE#
-
enumerator SICONOS_IPARAM_MAX_ITER#
-
enum SICONOS_IPARAM_ERROR_EVALUATION_ENUM#
allowed values for iparam[SICONOS_IPARAM_ERROR_EVALUATION
Values:
-
enumerator SICONOS_ERROR_FULL_EVALUATION#
Complete error computation, including v computation.
-
enumerator SICONOS_ERROR_LIGHT_EVALUATION#
Light error computation with incremental values on r verification of absolute error at the end.
-
enumerator SICONOS_ERROR_LIGHT_EVALUATION_NO_UPDATE#
only light error computation, do not update v unknown)
-
enumerator SICONOS_ERROR_FULL_EVALUATION#
Functions
-
void solver_options_print(SolverOptions *options)#
screen display of solver parameters
- Parameters:
options – the structure to be displayed
-
void solver_options_delete(SolverOptions *options)#
Clear and free all pointer members of the structure, then release memory.
- Parameters:
options – the structure to be cleared.
-
SolverOptions *solver_options_create(int solverId)#
Create and initialize a SolverOptions struct: allocate internal memories, set default values depending on the id.
- Parameters:
id – solver id number It must belong to one of the available ids defined for each formulation, see users’guide for details
- Returns:
a pointer to options set, ready to use by a driver.
-
SolverOptions *solver_options_copy(SolverOptions *source)#
Copy an existing set of options, to create a new one.
Warning : callback, solverData and solverParameters of the new structure are pointer links to those of the original one!
- Parameters:
source – an existing solver options structure
- Returns:
a pointer to options set, ready to use by a driver.
-
void solver_options_update_internal(SolverOptions *parent, size_t internal_solver_number, int solver_id)#
Change one of the internal solver of a previously defined SolverOptions set.
Allocate internal memories and set default values for the internal solver. Warning : the actual internal solver in position internal_solver_number and all its content will be destroyed and replaced by a new one.
- Parameters:
parent – the top-level SolverOptions which contains the internal solver to be updated
internal_solver_number – number of the internal solver to be update (warning : this is the position in the list of internal solvers, not the id!)
solver_id – id number of the new internal solver to be created/updated
-
int solver_options_name_to_id(const char *pName)#
return the id of a solver based on its name
- Parameters:
pName – the name of the solver
- Returns:
the id of the solver or 0 if it failed
-
const char *solver_options_id_to_name(int Id)#
return the name of a solver given its id
- Parameters:
Id – the id of the solver
- Returns:
the name of the solver
-
SolverOptions *solver_options_get_internal_solver(SolverOptions *options, size_t n)#
return the internal solver options set
- Parameters:
options – parent options
number – of the targeted solver
- Returns:
a pointer to the internal solver options set
-
void solver_options_set_internal_solver(SolverOptions *options, size_t n, SolverOptions *NSO)#
set internal solver
- Parameters:
options – parent options
number – of the targeted solver
the – solver options to be used as internal solver number n
-
struct Callback#
- #include <SolverOptions.h>
Structure used to store user callbacks inside solvers.
Public Members
-
void *env#
general user environment
-
void (*collectStatsIteration)(void *env, int size, double *reaction, double *velocity, double error, void *extra_data)#
pointer on a function Its signature is: user env, problem size, reaction, velocity, error at end of solver iteration (when this makes sense) and an extra data structure
-
void *env#
-
struct SolverOptions#
- #include <SolverOptions.h>
Structure used to send options (name, parameters and so on) to a specific solver (mainly from Kernel to Numerics).
Creation, update and destruction:
Details in users’guide.
Public Members
-
int solverId#
id number of the solver.
-
bool isSet#
true(1) if the structure is ready to be used by a numerics driver.
-
int iSize#
iSize size of vector iparam
-
int *iparam#
list of solver parameters (integer type); Check solvers doc for details.
-
int dSize#
size of vector dparam
-
double *dparam#
list of solver parameters (double type); Check solvers doc for details.
-
bool filterOn#
if true (1), check solution validity after the driver call.
Default = 1. For example if filterOn = 1 for a LCP, lcp_compute_error() will be called at the end of the process).
-
size_t dWorkSize#
size of double type internal work array.
-
double *dWork#
internal (double type) work array.
-
size_t iWorkSize#
size of integer type internal work array.
-
int *iWork#
internal (integer type) work array.
-
size_t numberOfInternalSolvers#
the number of internal or local ‘sub-solvers’ used by the solver (size of internalSolvers) .
-
struct SolverOptions **internalSolvers#
list of internal solver options
-
void *solverParameters#
additional parameters specific to the solver (GAMS and NewtonMethod only)
-
void *solverData#
additional data specific to the solver
-
int solverId#