37 #include "SiconosNumerics.h"
52 LinearComplementarityProblem OSNSProblem;
53 OSNSProblem.size = sizep;
63 SolverOptions numerics_solver_options = { 0 };
71 linearComplementarity_lexicolemke_setDefaultSolverOptions(&numerics_solver_options);
72 numerics_solver_options.iparam[0] = maxiternum;
73 lcp_lexicolemke(&OSNSProblem, Pkp1, wlem, &solparam.
info, &numerics_solver_options);
78 linearComplementarity_rpgs_setDefaultSolverOptions(&numerics_solver_options);
79 numerics_solver_options.iparam[0] = maxiternum;
80 numerics_solver_options.dparam[0] = tolerance;
81 lcp_rpgs(&OSNSProblem, Pkp1, wlem, &solparam.
info, &numerics_solver_options);
87 linearComplementarity_qp_setDefaultSolverOptions(&numerics_solver_options);
88 numerics_solver_options.dparam[0] = tolerance;
89 lcp_qp(&OSNSProblem, Pkp1, wlem, &solparam.
info, &numerics_solver_options);
93 linearComplementarity_cpg_setDefaultSolverOptions(&numerics_solver_options);
94 numerics_solver_options.iparam[0] = maxiternum;
95 numerics_solver_options.dparam[0] = tolerance;
96 lcp_cpg(&OSNSProblem, Pkp1, wlem, &solparam.
info, &numerics_solver_options);
102 linearComplementarity_pgs_setDefaultSolverOptions(&numerics_solver_options);
103 numerics_solver_options.iparam[0] = maxiternum;
104 numerics_solver_options.dparam[0] = tolerance;
105 lcp_pgs(&OSNSProblem, Pkp1, wlem, &solparam.
info, &numerics_solver_options);
111 linearComplementarity_psor_setDefaultSolverOptions(&numerics_solver_options);
112 numerics_solver_options.iparam[0] = maxiternum;
113 numerics_solver_options.dparam[0] = tolerance;
114 lcp_psor(&OSNSProblem, Pkp1, wlem, &solparam.
info, &numerics_solver_options);
120 linearComplementarity_nsqp_setDefaultSolverOptions(&numerics_solver_options);
121 numerics_solver_options.dparam[0] = tolerance;
122 lcp_nsqp(&OSNSProblem, Pkp1, wlem, &solparam.
info, &numerics_solver_options);
126 linearComplementarity_latin_setDefaultSolverOptions(&numerics_solver_options);
127 numerics_solver_options.iparam[0] = maxiternum;
128 numerics_solver_options.dparam[0] = tolerance;
129 lcp_latin(&OSNSProblem, Pkp1, wlem, &solparam.
info, &numerics_solver_options);
133 linearComplementarity_latin_w_setDefaultSolverOptions(&numerics_solver_options);
134 numerics_solver_options.iparam[0] = maxiternum;
135 numerics_solver_options.dparam[0] = tolerance;
136 lcp_latin_w(&OSNSProblem, Pkp1, wlem, &solparam.
info, &numerics_solver_options);
140 linearComplementarity_newton_min_setDefaultSolverOptions(&numerics_solver_options);
141 numerics_solver_options.iparam[0] = maxiternum;
142 numerics_solver_options.dparam[0] = tolerance;
143 lcp_newton_min(&OSNSProblem, Pkp1, wlem, &solparam.
info, &numerics_solver_options);
149 linearComplementarity_newton_FB_setDefaultSolverOptions(&numerics_solver_options);
150 numerics_solver_options.iparam[0] = maxiternum;
151 numerics_solver_options.dparam[0] = tolerance;
152 lcp_newton_FB(&OSNSProblem, Pkp1, wlem, &solparam.
info, &numerics_solver_options);
160 switch (solparam.
info) {
165 std::cout << std::endl
166 <<
"loadable element nonsmooth node: max iterations reached in LCP solver "
173 std::cout << std::endl
174 <<
"loadable element nonsmooth node: problem in solution of LCP"
182 deleteSolverOptions(&numerics_solver_options);
void mbdyn_siconos_LCP_call(int sizep, double W_NN[], double bLCP[], double Pkp1[], double wlem[], solver_parameters &solparam)