# VariationalInequality_Solvers (functions)¶

siconos.numerics.checkTrivialCase_vi(VariationalInequality *problem, array_like (np.float64, 1D)x, array_like (np.float64, 1D)fx, SolverOptions *options) → int[source]

Check for trivial solution in the variational inequality problem.

Parameters: problem – VariationalInequality* the problem x – global vector (n), in-out parameter fx – global vector (n), in-out parameters options – the pointer to the array of options to set info =0 if a trivial solution has been found, else = -1

siconos.numerics.variationalInequality_ExtraGradient(VariationalInequality *problem, array_like (np.float64, 1D)x, array_like (np.float64, 1D)w, int *info, SolverOptions *options) → None[source]

Extra Gradient solver forvariational inequality problem based on the De Saxce Formulation.

Parameters: problem – the variational inequality problem to solve x – global vector (n), in-out parameter w – global vector (n), in-out parameters info – return 0 if the solution is found options – the solver options : iparam[0] : Maximum iteration number iparam[1] : Choice of the line search 0 : Armijo rule with Khotbotov ratio (default) 1 : Armijo rule with Solodov.Tseng ratio iparam[2] : bool activate the update in the loop (0:false default choice) iparam[3] : use rho_k * tau * min(1.0,a2/(rho_k*a1)) to decrease rho; commented in the code dparam[3] (rho parameter. If rho >0, then self-adaptive (Armijo like)) – If rho <0, then constant rho parameter (rho <-- -rho) Adaptive step- (procedure.) – parameters (size) – 3.0/2.0; tauinv dparam[6] = 0.9; L dparam[7] = 0.3; Lmin (=) –

siconos.numerics.variationalInequality_ExtraGradient_setDefaultSolverOptions(SolverOptions *options) → int[source]

set the default solver parameters and perform memory allocation for EG

Parameters: options – the pointer to the array of options to set

siconos.numerics.variationalInequality_FixedPointProjection(VariationalInequality *problem, array_like (np.float64, 1D)x, array_like (np.float64, 1D)w, int *info, SolverOptions *options) → None[source]

Fixed Point Projection solver for variational inequality problem based on the De Saxce Formulation.

Parameters: problem – the variational inequality problem to solve x – global vector (n), in-out parameter w – global vector (n), in-out parameters info – return 0 if the solution is found options – the solver options : iparam[0] : Maximum iteration number iparam[1] : Choice of the line search 0 : Armijo rule with Khotbotov ratio (default) 1 : Armijo rule with Solodov.Tseng ratio 2 : Armijo rule with Han.Sun ratio iparam[2] : bool activate the update in the loop (0:false default choice) iparam[3] : use rho_k * tau * min(1.0,a2/(rho_k*a1)) to decrease rho; commented in the code dparam[3] : rho parameter. If rho >0, then self-adaptive (Armijo like) procedure. If rho <0, then constant rho parameter (rho <– -rho) Adaptive step-size parameters: dparam[4] = 2/3.0; tau dparam[5] = 3.0/2.0; tauinv dparam[6] = 0.9; L dparam[7] = 0.3; Lmin

siconos.numerics.variationalInequality_FixedPointProjection_setDefaultSolverOptions(SolverOptions *options) → int[source]

set the default solver parameters and perform memory allocation for EG

Parameters: options – the pointer to the array of options to set

siconos.numerics.variationalInequality_HyperplaneProjection(VariationalInequality *problem, array_like (np.float64, 1D)x, array_like (np.float64, 1D)w, int *info, SolverOptions *options) → None[source]

Hyperplane Projection solver for variational inequality problem based on the De Saxce Formulation.

Parameters: problem – the variational inequality problem to solve x – global vector (n), in-out parameter w – global vector (n), in-out parameters info – return 0 if the solution is found options – the solver options : iparam[0] : Maximum iteration number dparam[3] : rho >0

siconos.numerics.variationalInequality_HyperplaneProjection_setDefaultSolverOptions(SolverOptions *options) → int[source]

set the default solver parameters and perform memory allocation for EG

Parameters: options – the pointer to the array of options to set

siconos.numerics.variationalInequality_box_newton_QiLSA(VariationalInequality *problem, array_like (np.float64, 1D)x, array_like (np.float64, 1D)F, int *info, SolverOptions *options) → None[source]

VI Solver based on a merit function minimization with a line-search type algorithm.

Parameters: problem – the variational inequality problem to solve x – as input, the initial guess; as output the solution if the algorithm is successful F – value of the function info – 0 if a solution is found options – the solver options

siconos.numerics.variationalInequality_common_setDefaultSolverOptions(SolverOptions *options, int solverId) → int[source]

set the default solver parameters and perform memory allocation for a VI solver

Parameters: options – the SolverOptions to set solverId – the id of the solver

siconos.numerics.variationalInequality_setDefaultSolverOptions(SolverOptions *options, int solverId) → int[source]

set the default solver parameters and perform memory allocation for VariationalInequality

Parameters: options – the pointer to the options to set solverId – the identifier of the solver

siconos.numerics.vi_box_AVI_LSA(VariationalInequality *problem, array_like (np.float64, 1D)x, array_like (np.float64, 1D)F, int *info, SolverOptions *options) → None[source]

VI Solver based on the Newton-Josephy method globalized with a line-search type algorithm using the Qi merit function.

Parameters: problem – the variational inequality problem to solve x – as input, the initial guess; as output the solution if the algorithm is successful F – value of the function info – 0 if a solution is found options – the solver options

siconos.numerics.vi_box_AVI_extra_SolverOptions(SolverOptions *options) → None[source]

Extra SolverOptions settings.

Parameters: options – the struct to modify

siconos.numerics.vi_box_AVI_free_solverData(SolverOptions *options) → None[source]

free the specific solverData

Parameters: options – the struct to modify

siconos.numerics.vi_box_path(VariationalInequality *problem, array_like (np.float64, 1D)z, array_like (np.float64, 1D)F, int *info, SolverOptions *options) → None[source]

Solver for box constrainted VI using PATH.

Parameters: problem – the variational inequality problem to solve z – as input, the initial guess; as output the solution if the algorithm is successful F – value of the function info – 0 if a solution is found options – the solver options

siconos.numerics.vi_get_set(None *problem) → None *[source]

Get the set from the VariationalInequality.

Parameters: problem – the VI