Program listing for file numerics/src/FrictionContact/Friction_cst.h

Program listing for file numerics/src/FrictionContact/Friction_cst.h#

  1#ifndef FRICTION_CST_H
  2#define FRICTION_CST_H
  3
  4
  5enum FRICTION_SOLVER
  6{
  7
  8  SICONOS_FRICTION_2D_NSGS = 400,
  9  SICONOS_FRICTION_2D_CPG = 402,
 10  SICONOS_FRICTION_2D_LEMKE = 404,
 11  SICONOS_FRICTION_2D_ENUM = 405,
 12
 13
 14
 15
 16  SICONOS_FRICTION_3D_NSGS = 500,
 17
 18  SICONOS_FRICTION_3D_NSGSV = 501,
 19
 20  SICONOS_FRICTION_3D_PROX = 502,
 21
 22  SICONOS_FRICTION_3D_TFP = 503,
 23
 24  SICONOS_FRICTION_3D_NSN_AC = 504,
 25
 26  SICONOS_FRICTION_3D_DSFP = 505,
 27
 28  SICONOS_FRICTION_3D_VI_FPP = 506,
 29
 30  SICONOS_FRICTION_3D_VI_EG = 507,
 31
 32  SICONOS_FRICTION_3D_HP = 508,
 33
 34  SICONOS_FRICTION_3D_NCPGlockerFBFixedPoint = 510,
 35
 36  SICONOS_FRICTION_3D_FPP = 511,
 37
 38  SICONOS_FRICTION_3D_EG = 512,
 39
 40  SICONOS_FRICTION_3D_NSN_FB = 513,
 41
 42  SICONOS_FRICTION_3D_GAMS_PATH = 514,
 43
 44  SICONOS_FRICTION_3D_GAMS_PATHVI = 515,
 45
 46  SICONOS_FRICTION_3D_ACLMFP = 516,
 47
 48  SICONOS_FRICTION_3D_SOCLCP = 517,
 49
 50  SICONOS_FRICTION_3D_GAMS_LCP_PATH = 518,
 51
 52  SICONOS_FRICTION_3D_GAMS_LCP_PATHVI = 519,
 53
 54  SICONOS_FRICTION_3D_NSN_NM = 520,
 55  SICONOS_FRICTION_3D_NSN_AC_TEST = 521,
 56
 57  SICONOS_FRICTION_3D_PFP = 522,
 58
 59  SICONOS_FRICTION_3D_ADMM = 523,
 60
 61
 62
 63
 64  SICONOS_FRICTION_3D_ONECONTACT_NSN= 550,
 65
 66  SICONOS_FRICTION_3D_ONECONTACT_NSN_GP = 551,
 67
 68  SICONOS_FRICTION_3D_ONECONTACT_ProjectionOnCone = 552,
 69
 70  SICONOS_FRICTION_3D_ONECONTACT_ProjectionOnConeWithLocalIteration = 553,
 71  SICONOS_FRICTION_3D_ONECONTACT_ProjectionOnConeWithRegularization = 554,
 72  SICONOS_FRICTION_3D_ONECONTACT_ProjectionOnConeWithDiagonalization = 555,
 73  SICONOS_FRICTION_3D_ONECONTACT_ProjectionOnCone_velocity = 558,
 74
 75
 76  SICONOS_FRICTION_3D_NCPGlockerFBPATH = 556,
 77
 78  SICONOS_FRICTION_3D_NCPGlockerFBNewton = 561,
 79  SICONOS_FRICTION_3D_ONECONTACT_QUARTIC = 562,
 80  SICONOS_FRICTION_3D_ONECONTACT_QUARTIC_NU = 563,
 81  SICONOS_FRICTION_3D_ONECONTACT_ProjectionOnCylinder = 557,
 82  SICONOS_FRICTION_3D_ONECONTACT_ProjectionOnCylinderWithLocalIteration = 564,
 83  SICONOS_FRICTION_3D_ONECONTACT_NSN_GP_HYBRID = 565,
 84  SICONOS_FRICTION_3D_VI_FPP_Cylinder = 566,
 85  SICONOS_FRICTION_3D_CONVEXQP_PG_CYLINDER = 567,
 86
 87
 88  SICONOS_GLOBAL_FRICTION_3D_NSGS_WR = 600,
 89  SICONOS_GLOBAL_FRICTION_3D_NSGSV_WR = 601,
 90  SICONOS_GLOBAL_FRICTION_3D_PROX_WR = 602,
 91  SICONOS_GLOBAL_FRICTION_3D_DSFP_WR = 603,
 92  SICONOS_GLOBAL_FRICTION_3D_TFP_WR = 604,
 93  SICONOS_GLOBAL_FRICTION_3D_NSGS = 605,
 94  SICONOS_GLOBAL_FRICTION_3D_NSN_AC_WR = 606,
 95  SICONOS_GLOBAL_FRICTION_3D_NSN_AC = 607,
 96  SICONOS_GLOBAL_FRICTION_3D_GAMS_PATH = 608,
 97  SICONOS_GLOBAL_FRICTION_3D_GAMS_PATHVI = 609,
 98
 99  SICONOS_GLOBAL_FRICTION_3D_VI_FPP = 610,
100
101  SICONOS_GLOBAL_FRICTION_3D_VI_EG = 611,
102  SICONOS_GLOBAL_FRICTION_3D_ACLMFP = 612,
103  SICONOS_GLOBAL_FRICTION_3D_ADMM = 613,
104  SICONOS_GLOBAL_FRICTION_3D_ADMM_WR = 614,
105  SICONOS_GLOBAL_FRICTION_3D_IPM = 615,
106
107
108
109  SICONOS_ROLLING_FRICTION_3D_NSGS = 3000,
110  SICONOS_ROLLING_FRICTION_3D_ONECONTACT_ProjectionOnCone= 3001,
111  SICONOS_ROLLING_FRICTION_3D_ONECONTACT_ProjectionOnConeWithLocalIteration = 3002,
112  SICONOS_ROLLING_FRICTION_3D_ADMM = 3003,
113
114
115  SICONOS_ROLLING_FRICTION_2D_NSGS = 4000,
116  SICONOS_ROLLING_FRICTION_2D_ONECONTACT_ProjectionOnCone= 4001,
117  SICONOS_ROLLING_FRICTION_2D_ONECONTACT_ProjectionOnConeWithLocalIteration = 4002,
118
119
120  SICONOS_GLOBAL_ROLLING_FRICTION_3D_NSGS_WR = 5000,
121  SICONOS_GLOBAL_ROLLING_FRICTION_3D_IPM = 5001
122
123};
124
125
126
127extern const char* const   SICONOS_FRICTION_2D_NSGS_STR ;
128extern const char* const   SICONOS_FRICTION_2D_CPG_STR ;
129extern const char* const   SICONOS_FRICTION_2D_LEMKE_STR ;
130extern const char* const   SICONOS_FRICTION_2D_ENUM_STR ;
131
132extern const char* const   SICONOS_FRICTION_3D_NSGS_STR ;
133extern const char* const   SICONOS_FRICTION_3D_NSGSV_STR ;
134extern const char* const   SICONOS_FRICTION_3D_PROX_STR;
135extern const char* const   SICONOS_FRICTION_3D_TFP_STR ;
136extern const char* const   SICONOS_FRICTION_3D_PFP_STR ;
137extern const char* const   SICONOS_FRICTION_3D_NSN_AC_STR ;
138extern const char* const   SICONOS_FRICTION_3D_NSN_AC_TEST_STR ;
139extern const char* const   SICONOS_FRICTION_3D_NSN_FB_STR ;
140extern const char* const   SICONOS_FRICTION_3D_NSN_NM_STR ;
141extern const char* const   SICONOS_FRICTION_3D_DSFP_STR ;
142extern const char* const   SICONOS_FRICTION_3D_VI_EG_STR ;
143extern const char* const   SICONOS_FRICTION_3D_VI_FPP_STR ;
144extern const char* const   SICONOS_FRICTION_3D_EG_STR ;
145extern const char* const   SICONOS_FRICTION_3D_FPP_STR ;
146extern const char* const   SICONOS_FRICTION_3D_HP_STR ;
147extern const char* const   SICONOS_FRICTION_3D_NCPGlockerFBFixedPoint_STR;
148extern const char* const   SICONOS_FRICTION_3D_ONECONTACT_NSN_STR;
149extern const char* const   SICONOS_FRICTION_3D_ONECONTACT_NSN_GP_STR;
150extern const char* const   SICONOS_FRICTION_3D_ONECONTACT_NSN_GP_HYBRID_STR;
151extern const char* const   SICONOS_FRICTION_3D_NCPGlockerFBNewton_STR;
152extern const char* const   SICONOS_FRICTION_3D_ONECONTACT_ProjectionOnConeWithDiagonalization_STR;
153extern const char* const   SICONOS_FRICTION_3D_ONECONTACT_ProjectionOnCone_STR;
154extern const char* const   SICONOS_FRICTION_3D_ONECONTACT_ProjectionOnConeWithLocalIteration_STR;
155extern const char* const   SICONOS_FRICTION_3D_ONECONTACT_ProjectionOnConeWithRegularization_STR;
156extern const char* const   SICONOS_FRICTION_3D_NCPGlockerFBPATH_STR;
157extern const char* const   SICONOS_FRICTION_3D_ONECONTACT_ProjectionOnCylinder_STR;
158extern const char* const   SICONOS_FRICTION_3D_ONECONTACT_ProjectionOnCylinderWithLocalIteration_STR;
159extern const char* const   SICONOS_FRICTION_3D_ONECONTACT_ProjectionOnCone_velocity_STR;
160extern const char* const   SICONOS_FRICTION_3D_CONVEXQP_PG_CYLINDER_STR;
161extern const char* const   SICONOS_FRICTION_3D_VI_FPP_Cylinder_STR;
162extern const char* const   SICONOS_FRICTION_3D_GAMS_PATH_STR;
163extern const char* const   SICONOS_FRICTION_3D_GAMS_PATHVI_STR;
164extern const char* const   SICONOS_FRICTION_3D_GAMS_LCP_PATH_STR;
165extern const char* const   SICONOS_FRICTION_3D_GAMS_LCP_PATHVI_STR;
166extern const char* const   SICONOS_FRICTION_3D_SOCLCP_STR;
167extern const char* const   SICONOS_FRICTION_3D_ACLMFP_STR;
168extern const char* const   SICONOS_FRICTION_3D_ADMM_STR;
169extern const char* const   SICONOS_GLOBAL_FRICTION_3D_NSGS_WR_STR ;
170extern const char* const   SICONOS_GLOBAL_FRICTION_3D_NSGSV_WR_STR ;
171extern const char* const   SICONOS_GLOBAL_FRICTION_3D_PROX_WR_STR ;
172extern const char* const   SICONOS_GLOBAL_FRICTION_3D_DSFP_WR_STR ;
173extern const char* const   SICONOS_GLOBAL_FRICTION_3D_TFP_WR_STR ;
174extern const char* const   SICONOS_GLOBAL_FRICTION_3D_NSGS_STR ;
175extern const char* const   SICONOS_GLOBAL_FRICTION_3D_NSN_AC_WR_STR ;
176extern const char* const   SICONOS_GLOBAL_FRICTION_3D_NSN_AC_STR;
177extern const char* const   SICONOS_GLOBAL_FRICTION_3D_GAMS_PATH_STR;
178extern const char* const   SICONOS_GLOBAL_FRICTION_3D_GAMS_PATHVI_STR;
179extern const char* const   SICONOS_GLOBAL_FRICTION_3D_VI_FPP_STR;
180extern const char* const   SICONOS_GLOBAL_FRICTION_3D_VI_EG_STR;
181extern const char* const   SICONOS_GLOBAL_FRICTION_3D_ACLMFP_STR;
182extern const char* const   SICONOS_GLOBAL_FRICTION_3D_ADMM_STR;
183extern const char* const   SICONOS_GLOBAL_FRICTION_3D_ADMM_WR_STR;
184extern const char* const   SICONOS_GLOBAL_FRICTION_3D_IPM_STR;
185extern const char* const   SICONOS_FRICTION_3D_ONECONTACT_QUARTIC_STR ;
186extern const char* const   SICONOS_FRICTION_3D_ONECONTACT_QUARTIC_NU_STR ;
187
188
189extern const char* const   SICONOS_ROLLING_FRICTION_3D_NSGS_STR ;
190extern const char* const   SICONOS_ROLLING_FRICTION_3D_ONECONTACT_ProjectionOnCone_STR;
191extern const char* const   SICONOS_ROLLING_FRICTION_3D_ONECONTACT_ProjectionOnConeWithLocalIteration_STR;
192extern const char* const   SICONOS_ROLLING_FRICTION_3D_ADMM_STR ;
193
194extern const char* const   SICONOS_ROLLING_FRICTION_2D_NSGS_STR ;
195extern const char* const   SICONOS_ROLLING_FRICTION_2D_ONECONTACT_ProjectionOnCone_STR;
196extern const char* const   SICONOS_ROLLING_FRICTION_2D_ONECONTACT_ProjectionOnConeWithLocalIteration_STR;
197
198extern const char* const   SICONOS_GLOBAL_ROLLING_FRICTION_3D_NSGS_WR_STR ;
199extern const char* const   SICONOS_GLOBAL_ROLLING_FRICTION_3D_IPM_STR ;
200
201enum SICONOS_FRICTION_3D_IPARAM
202{
203
204  SICONOS_FRICTION_3D_IPARAM_INTERNAL_ERROR_STRATEGY =2,
205
206  SICONOS_FRICTION_3D_IPARAM_RESCALING =3,
207
208  SICONOS_FRICTION_3D_IPARAM_RESCALING_CONE =4,
209
210  SICONOS_FRICTION_3D_CURRENT_CONTACT_NUMBER =5,
211
212  SICONOS_FRICTION_3D_IPARAM_ERROR_EVALUATION = 7,
213
214  SICONOS_FRICTION_3D_IPARAM_ERROR_EVALUATION_FREQUENCY = 8,
215  SICONOS_FRICTION_3D_NUMBER_OF_CONTACTS = 17,
216};
217
218enum SICONOS_FRICTION_INTERNAL_ERROR_STRATEGY
219{
220  SICONOS_FRICTION_3D_INTERNAL_ERROR_STRATEGY_ADAPTIVE =0,
221  SICONOS_FRICTION_3D_INTERNAL_ERROR_STRATEGY_GIVEN_VALUE =1,
222  SICONOS_FRICTION_3D_INTERNAL_ERROR_STRATEGY_ADAPTIVE_N_CONTACT =2
223};
224
225enum SICONOS_FRICTION_3D_RESCALING_ENUM
226{
227  SICONOS_FRICTION_3D_RESCALING_NO =0,
228  SICONOS_FRICTION_3D_RESCALING_SCALAR=1,
229  SICONOS_FRICTION_3D_RESCALING_BALANCING_M=2,
230  SICONOS_FRICTION_3D_RESCALING_BALANCING_MH=3,
231  SICONOS_FRICTION_3D_RESCALING_BALANCING_MHHT=4
232};
233
234enum SICONOS_FRICTION_3D_RESCALING_CONE_ENUM
235{
236  SICONOS_FRICTION_3D_RESCALING_CONE_NO =0,
237  SICONOS_FRICTION_3D_RESCALING_CONE_YES=1
238};
239
240enum SICONOS_FRICTION_3D_DPARAM
241{
242
243  SICONOS_FRICTION_3D_DPARAM_INTERNAL_ERROR_RATIO = 2
244};
245
246
247enum SICONOS_FRICTION_3D_NSGS_IPARAM
248{
249
250  SICONOS_FRICTION_3D_NSGS_RELAXATION=4,
251
252  SICONOS_FRICTION_3D_NSGS_SHUFFLE=5,
253
254  SICONOS_FRICTION_3D_NSGS_SHUFFLE_SEED=6,
255
256  SICONOS_FRICTION_3D_NSGS_FREEZING_CONTACT =19,
257
258  SICONOS_FRICTION_3D_NSGS_FILTER_LOCAL_SOLUTION =14,
259};
260enum SICONOS_FRICTION_3D_NSGS_DPARAM
261{
262
263  SICONOS_FRICTION_3D_NSGS_RELAXATION_VALUE=8,
264};
265
266
267enum SICONOS_FRICTION_3D_NSGS_LOCALSOLVER_IPARAM
268{
269  SICONOS_FRICTION_3D_NSGS_LOCALSOLVER_IPARAM_USE_TRIVIAL_SOLUTION=10
270};
271
272enum SICONOS_FRICTION_3D_NSGS_LOCALSOLVER_USE_TRIVIAL_SOLUTION
273{
274  SICONOS_FRICTION_3D_NSGS_LOCALSOLVER_USE_TRIVIAL_SOLUTION_FALSE=0,
275  SICONOS_FRICTION_3D_NSGS_LOCALSOLVER_USE_TRIVIAL_SOLUTION_TRUE=1
276};
277
278enum SICONOS_FRICTION_3D_NSGS_ERROR_EVALUATION_ENUM
279{
280
281  SICONOS_FRICTION_3D_NSGS_ERROR_EVALUATION_FULL = 0,
282
283  SICONOS_FRICTION_3D_NSGS_ERROR_EVALUATION_LIGHT = 1,
284
285  SICONOS_FRICTION_3D_NSGS_ERROR_EVALUATION_LIGHT_WITH_FULL_FINAL = 2,
286
287  SICONOS_FRICTION_3D_NSGS_ERROR_EVALUATION_ADAPTIVE =3,
288};
289enum SICONOS_FRICTION_3D_NSGS_SHUFFLE_ENUM
290{
291  SICONOS_FRICTION_3D_NSGS_SHUFFLE_FALSE=0,
292  SICONOS_FRICTION_3D_NSGS_SHUFFLE_TRUE=1,
293  SICONOS_FRICTION_3D_NSGS_SHUFFLE_TRUE_EACH_LOOP=2
294};
295
296enum SICONOS_FRICTION_3D_NSGS_RELAXATION_ENUM
297{
298  SICONOS_FRICTION_3D_NSGS_RELAXATION_FALSE,
299  SICONOS_FRICTION_3D_NSGS_RELAXATION_TRUE
300};
301enum SICONOS_FRICTION_3D_NSGS_FILTER_LOCAL_SOLUTION_ENUM
302{
303
304  SICONOS_FRICTION_3D_NSGS_FILTER_LOCAL_SOLUTION_FALSE =0,
305  SICONOS_FRICTION_3D_NSGS_FILTER_LOCAL_SOLUTION_TRUE =1
306};
307
308enum SICONOS_FRICTION_3D_NSN_IPARAM
309{
310
311  SICONOS_FRICTION_3D_NSN_RHO_STRATEGY = 9,
312
313  SICONOS_FRICTION_3D_NSN_FORMULATION = 10,
314
315  SICONOS_FRICTION_3D_NSN_LINESEARCH = 11,
316
317  SICONOS_FRICTION_3D_NSN_LINESEARCH_MAX_ITER = 12,
318
319  SICONOS_FRICTION_3D_NSN_LINEAR_SOLVER = 13,
320
321  SICONOS_FRICTION_3D_NSN_HYBRID_STRATEGY = 14,
322
323  SICONOS_FRICTION_3D_NSN_HYBRID_MAX_LOOP = 15,
324
325  SICONOS_FRICTION_3D_NSN_HYBRID_MAX_ITER = 16,
326
327  SICONOS_FRICTION_3D_NSN_MEMORY_ALLOCATED= 17,
328
329  SICONOS_FRICTION_3D_NSN_MPI_COM= 18
330
331};
332
333enum SICONOS_FC3D_NSN_LINEAR_SOLVER
334  {
335   SICONOS_FRICTION_3D_NSN_USE_CSLUSOL = 0,
336   SICONOS_FRICTION_3D_NSN_USE_MUMPS = 1
337  };
338
339enum SICONOS_FRICTION_3D_NSN_DPARAM
340{
341
342  SICONOS_FRICTION_3D_NSN_RHO = 3,
343};
344
345
346enum SICONOS_FRICTION_3D_NSN_RHO_STRATEGY_ENUM
347{
348
349  SICONOS_FRICTION_3D_NSN_FORMULATION_RHO_STRATEGY_CONSTANT = 0,
350
351  SICONOS_FRICTION_3D_NSN_FORMULATION_RHO_STRATEGY_SPECTRAL_NORM =1,
352
353  SICONOS_FRICTION_3D_NSN_FORMULATION_RHO_STRATEGY_SPLIT_SPECTRAL_NORM_COND = 2,
354
355  SICONOS_FRICTION_3D_NSN_FORMULATION_RHO_STRATEGY_SPLIT_SPECTRAL_NORM =3,
356
357  SICONOS_FRICTION_3D_NSN_FORMULATION_RHO_STRATEGY_ADAPTIVE =4,
358};
359
360
361enum SICONOS_FRICTION_3D_NSN_FORMULATION_ENUM
362{
363  SICONOS_FRICTION_3D_NSN_FORMULATION_ALARTCURNIER_STD =0,
364  SICONOS_FRICTION_3D_NSN_FORMULATION_JEANMOREAU_STD = 1,
365  SICONOS_FRICTION_3D_NSN_FORMULATION_ALARTCURNIER_GENERATED =2,
366  SICONOS_FRICTION_3D_NSN_FORMULATION_JEANMOREAU_GENERATED =3,
367  SICONOS_FRICTION_3D_NSN_FORMULATION_NULL = 4 ,
368};
369
370
371enum SICONOS_FRICTION_3D_NSN_LINESEARCH_ENUM
372{
373  SICONOS_FRICTION_3D_NSN_LINESEARCH_GOLDSTEINPRICE = 0 ,
374  SICONOS_FRICTION_3D_NSN_LINESEARCH_ARMIJO = 1,
375  SICONOS_FRICTION_3D_NSN_LINESEARCH_NO=-1,
376};
377
378enum SICONOS_FRICTION_3D_NSN_HYBRID_ENUM
379{
380
381  SICONOS_FRICTION_3D_NSN_HYBRID_STRATEGY_NO = 0,
382
383  SICONOS_FRICTION_3D_NSN_HYBRID_STRATEGY_PLI_NSN_LOOP = 1,
384
385  SICONOS_FRICTION_3D_NSN_HYBRID_STRATEGY_NSN_AND_PLI_NSN_LOOP = 2,
386
387  SICONOS_FRICTION_3D_NSN_HYBRID_STRATEGY_VI_EG_NSN =3
388};
389
390
391
392enum SICONOS_FRICTION_3D_PROXIMAL_IPARAM
393{
394
395  SICONOS_FRICTION_3D_FP_ERROR_STRATEGY = 2,
396
397  SICONOS_FRICTION_3D_PROXIMAL_IPARAM_CUMULATIVE_ITER_DONE = 6,
398
399  SICONOS_FRICTION_3D_PROXIMAL_IPARAM_RELAXATION = 8,
400
401  SICONOS_FRICTION_3D_PROXIMAL_IPARAM_STRATEGY = 9,
402};
403
404
405enum SICONOS_FRICTION_3D_PROXIMAL_DPARAM
406{
407
408  SICONOS_FRICTION_3D_PROXIMAL_DPARAM_ALPHA =3,
409  SICONOS_FRICTION_3D_PROXIMAL_DPARAM_SIGMA =4,
410  SICONOS_FRICTION_3D_PROXIMAL_DPARAM_NU =5,
411  SICONOS_FRICTION_3D_PROXIMAL_DPARAM_RELAXATION =8,
412
413};
414
415enum SICONOS_FRICTION_3D_PROXIMAL
416{
417
418  SICONOS_FRICTION_3D_PROXIMAL_PROX = 0,
419
420
421  SICONOS_FRICTION_3D_PROXIMAL_REGULARIZATION = 1
422
423};
424
425enum SICONOS_FRICTION_3D_ADMM_IPARAM_ENUM
426{
427
428  SICONOS_FRICTION_3D_ADMM_IPARAM_RHO_STRATEGY = 9,
429
430  SICONOS_FRICTION_3D_ADMM_IPARAM_INITIAL_RHO = 10,
431
432  SICONOS_FRICTION_3D_ADMM_IPARAM_ACCELERATION= 11,
433
434  SICONOS_FRICTION_3D_ADMM_IPARAM_SYMMETRY= 12,
435
436  SICONOS_FRICTION_3D_ADMM_IPARAM_SPARSE_STORAGE= 13,
437
438  SICONOS_FRICTION_3D_ADMM_IPARAM_GET_PROBLEM_INFO= 14,
439  SICONOS_FRICTION_3D_ADMM_IPARAM_UPDATE_S= 15,
440  SICONOS_FRICTION_3D_ADMM_IPARAM_FULL_H= 17
441};
442
443enum SICONOS_FRICTION_3D_ADMM_DPARAM_ENUM
444{
445
446  SICONOS_FRICTION_3D_ADMM_RHO = 3,
447
448  SICONOS_FRICTION_3D_ADMM_RESTART_ETA = 4,
449
450  SICONOS_FRICTION_3D_ADMM_BALANCING_RESIDUAL_TAU = 5,
451
452  SICONOS_FRICTION_3D_ADMM_BALANCING_RESIDUAL_PHI = 6
453};
454
455enum SICONOS_FRICTION_3D_ADMM_ACCELERATION_ENUM
456{
457  SICONOS_FRICTION_3D_ADMM_NO_ACCELERATION= 0,
458  SICONOS_FRICTION_3D_ADMM_ACCELERATION= 1,
459  SICONOS_FRICTION_3D_ADMM_ACCELERATION_AND_RESTART= 2
460};
461
462enum SICONOS_FRICTION_3D_ADMM_SYMMETRY_ENUM
463{
464
465  SICONOS_FRICTION_3D_ADMM_CHECK_SYMMETRY= 0,
466
467  SICONOS_FRICTION_3D_ADMM_FORCED_SYMMETRY= 1,
468
469  SICONOS_FRICTION_3D_ADMM_FORCED_ASYMMETRY= 2,
470
471  SICONOS_FRICTION_3D_ADMM_SYMMETRIZE= 3,
472
473  SICONOS_FRICTION_3D_ADMM_ASSUME_SYMMETRY= 4
474};
475
476enum SICONOS_FRICTION_3D_ADMM_STORAGE_ENUM
477{
478  SICONOS_FRICTION_3D_ADMM_KEEP_STORAGE= 0,
479  SICONOS_FRICTION_3D_ADMM_FORCED_SPARSE_STORAGE= 1
480};
481
482enum SICONOS_FRICTION_3D_ADMM_GET_PROBLEM_INFO_ENUM
483{
484  SICONOS_FRICTION_3D_ADMM_GET_PROBLEM_INFO_NO= 0,
485  SICONOS_FRICTION_3D_ADMM_GET_PROBLEM_INFO_YES= 1
486};
487
488enum SICONOS_FRICTION_3D_ADMM_UPDATE_S_ENUM
489{
490  SICONOS_FRICTION_3D_ADMM_UPDATE_S_YES= 0,
491  SICONOS_FRICTION_3D_ADMM_UPDATE_S_NO= 1
492};
493
494enum SICONOS_FRICTION_3D_ADMM_FULL_H_ENUM
495{
496  SICONOS_FRICTION_3D_ADMM_FULL_H_NO= 0,
497  SICONOS_FRICTION_3D_ADMM_FULL_H_YES= 1
498};
499
500enum SICONOS_FRICTION_3D_ADMM_RHO_STRATEGY_ENUM
501{
502
503  SICONOS_FRICTION_3D_ADMM_RHO_STRATEGY_CONSTANT = 0,
504
505  SICONOS_FRICTION_3D_ADMM_RHO_STRATEGY_RESIDUAL_BALANCING =2,
506
507  SICONOS_FRICTION_3D_ADMM_RHO_STRATEGY_SCALED_RESIDUAL_BALANCING =3
508};
509
510enum SICONOS_FRICTION_3D_ADMM_INITIAL_RHO_ENUM
511{
512
513  SICONOS_FRICTION_3D_ADMM_INITIAL_RHO_GIVEN = 0,
514
515  SICONOS_FRICTION_3D_ADMM_INITIAL_RHO_NORM_INF =1,
516
517  SICONOS_FRICTION_3D_ADMM_INITIAL_RHO_EIGENVALUES =2
518};
519
520enum SICONOS_FRICTION_3D_IPM_IPARAM_ENUM
521{
522
523  SICONOS_FRICTION_3D_IPM_IPARAM_NESTEROV_TODD_SCALING= 11,
524
525  SICONOS_FRICTION_3D_IPM_IPARAM_SPARSE_STORAGE= 12,
526
527  SICONOS_FRICTION_3D_IPM_IPARAM_GET_PROBLEM_INFO= 13,
528
529  SICONOS_FRICTION_3D_IPM_IPARAM_ITERATES_MATLAB_FILE= 14,
530
531  SICONOS_FRICTION_3D_IPM_IPARAM_REDUCED_SYSTEM= 15,
532
533  SICONOS_FRICTION_3D_IPM_IPARAM_FINISH_WITHOUT_SCALING= 16,
534
535  SICONOS_FRICTION_3D_IPM_IPARAM_UPDATE_S = 17,
536
537  SICONOS_FRICTION_3D_IPM_IPARAM_NESTEROV_TODD_SCALING_METHOD = 18,
538
539  SICONOS_FRICTION_3D_IPM_IPARAM_REDUCED_SYSTEM_METHOD = 19,
540
541  SICONOS_FRICTION_3D_IPM_IPARAM_LS_FORM = 10,
542
543  SICONOS_FRICTION_3D_IPM_IPARAM_REFINEMENT = 9,
544
545  SICONOS_FRICTION_3D_IPM_IPARAM_CHOLESKY = 8,
546
547  SICONOS_FRICTION_3D_IPM_IPARAM_ITERATES_PYTHON_FILE= 7,
548};
549
550enum SICONOS_FRICTION_3D_IPM_DPARAM_ENUM
551{
552
553  SICONOS_FRICTION_3D_IPM_SIGMA_PARAMETER_1 = 7,
554  SICONOS_FRICTION_3D_IPM_SIGMA_PARAMETER_2 = 8,
555  SICONOS_FRICTION_3D_IPM_SIGMA_PARAMETER_3 = 9,
556
557
558  SICONOS_FRICTION_3D_IPM_GAMMA_PARAMETER_1 = 10,
559  SICONOS_FRICTION_3D_IPM_GAMMA_PARAMETER_2 = 11,
560};
561
562enum SICONOS_FRICTION_3D_IPM_STORAGE_ENUM
563{
564  SICONOS_FRICTION_3D_IPM_KEEP_STORAGE= 0,
565  SICONOS_FRICTION_3D_IPM_FORCED_SPARSE_STORAGE= 1
566};
567
568enum SICONOS_FRICTION_3D_IPM_GET_PROBLEM_INFO_ENUM
569{
570  SICONOS_FRICTION_3D_IPM_GET_PROBLEM_INFO_NO= 0,
571  SICONOS_FRICTION_3D_IPM_GET_PROBLEM_INFO_YES= 1
572};
573
574enum SICONOS_FRICTION_3D_IPM_NESTEROV_TODD_SCALING_METHOD_ENUM
575{
576  SICONOS_FRICTION_3D_IPM_NESTEROV_TODD_SCALING_WITH_QP = 0,
577  SICONOS_FRICTION_3D_IPM_NESTEROV_TODD_SCALING_WITH_F = 1
578};
579
580enum SICONOS_FRICTION_3D_IPM_IPARAM_REDUCED_SYSTEM_METHOD_ENUM
581{
582  SICONOS_FRICTION_3D_IPM_IPARAM_REDUCED_SYSTEM_WITH_QP2 = 0,
583  SICONOS_FRICTION_3D_IPM_IPARAM_REDUCED_SYSTEM_WITH_QPH = 1
584};
585enum SICONOS_FRICTION_3D_IPM_IPARAM_LS_FORM_ENUM
586{
587  SICONOS_FRICTION_3D_IPM_IPARAM_LS_3X3_NOSCAL = 0,
588  SICONOS_FRICTION_3D_IPM_IPARAM_LS_3X3_QP2 = 1,
589  SICONOS_FRICTION_3D_IPM_IPARAM_LS_3X3_QPH = 2,
590  SICONOS_FRICTION_3D_IPM_IPARAM_LS_2X2_QP2 = 3,
591  SICONOS_FRICTION_3D_IPM_IPARAM_LS_2X2_QPH = 4,
592  SICONOS_FRICTION_3D_IPM_IPARAM_LS_1X1_QPH = 5,
593  SICONOS_FRICTION_3D_IPM_IPARAM_LS_1X1_JQJ = 6,
594  SICONOS_FRICTION_3D_IPM_IPARAM_LS_2X2_JQJ = 10,
595  SICONOS_FRICTION_3D_IPM_IPARAM_LS_2X2_invPH = 11,
596  SICONOS_FRICTION_3D_IPM_IPARAM_LS_3X3_JQinv = 12,
597};
598
599enum SICONOS_FRICTION_3D_IPM_IPARAM_FINISH_WITHOUT_SCALING_ENUM
600{
601  SICONOS_FRICTION_3D_IPM_IPARAM_FINISH_WITHOUT_SCALING_NO = 0,
602  SICONOS_FRICTION_3D_IPM_IPARAM_FINISH_WITHOUT_SCALING_YES = 1
603};
604
605enum SICONOS_FRICTION_3D_IPM_IPARAM_REFINEMENT_ENUM
606{
607  SICONOS_FRICTION_3D_IPM_IPARAM_REFINEMENT_NO = 0,
608  SICONOS_FRICTION_3D_IPM_IPARAM_REFINEMENT_YES = 1,
609  SICONOS_FRICTION_3D_IPM_IPARAM_REFINEMENT_AFTER = 2
610};
611
612enum SICONOS_FRICTION_3D_IPM_IPARAM_CHOLESKY_ENUM
613{
614  SICONOS_FRICTION_3D_IPM_IPARAM_CHOLESKY_NO = 0,
615  SICONOS_FRICTION_3D_IPM_IPARAM_CHOLESKY_YES = 1
616};
617#endif