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

 1#ifndef GLOBALFRICTIONCONTACTPROBLEM_H
 2#define GLOBALFRICTIONCONTACTPROBLEM_H
 3
 4
 5
 6#include "NumericsFwd.h"
 7#include "NumericsMatrix.h"
 8#include "SiconosConfig.h"
 9
10#include <stdio.h>
11
12
13
14struct GlobalFrictionContactProblem {
15
16  int dimension;
17
18  int numberOfContacts;
19
20  NumericsMatrix *M;
21
22  NumericsMatrix *H;
23
24  double *q;
25
26  double norm_q;
27
28  double *b;
29
30  double norm_b;
31
32  double *mu;
33
34
35  NumericsMatrix *M_inverse;
36
37
38  void *env;
39};
40
41#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
42extern "C" {
43#endif
44
45
46GlobalFrictionContactProblem *globalFrictionContactProblem_new(void);
47
48
49void globalFrictionContact_display(GlobalFrictionContactProblem *problem);
50
51
52int globalFrictionContact_printInFile(GlobalFrictionContactProblem *problem,
53                                      FILE *file);
54
55
56int globalFrictionContact_printInFileName(GlobalFrictionContactProblem *problem,
57                                          const char *filename);
58
59
60GlobalFrictionContactProblem *globalFrictionContact_newFromFile(FILE *file);
61
62
63GlobalFrictionContactProblem *
64globalFrictionContact_new_from_filename(const char *filename);
65
66
67void globalFrictionContact_free(GlobalFrictionContactProblem *problem);
68
69GlobalFrictionContactProblem *
70globalFrictionContact_copy(GlobalFrictionContactProblem *problem);
71
72
73int globalFrictionContact_computeGlobalVelocity(
74    GlobalFrictionContactProblem *problem, double *reaction,
75    double *globalVelocity);
76
77
78FrictionContactProblem *globalFrictionContact_reformulation_FrictionContact(
79    GlobalFrictionContactProblem *problem);
80#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
81}
82#endif
83#endif