Program listing for file numerics/src/FrictionContact/GlobalFrictionContactProblem.h#
Return to documentation for this file
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