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

 1#ifndef ROLLINGFRICTIONCONTACTPROBLEM_H
 2#define ROLLINGFRICTIONCONTACTPROBLEM_H
 3
 4
 5
 6#include "NumericsFwd.h"
 7#include "SiconosConfig.h"
 8
 9#include <stdio.h>
10
11
12struct RollingFrictionContactProblem {
13
14  int dimension;
15
16  int numberOfContacts;
17
18  NumericsMatrix *M;
19
20  double *q;
21
22  double *mu;
23
24  double *mu_r;
25};
26
27#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
28extern "C" {
29#endif
30
31
32RollingFrictionContactProblem *rollingFrictionContactProblem_new(void);
33
34
35RollingFrictionContactProblem *rollingFrictionContactProblem_new_with_data(
36    int dim, int nc, NumericsMatrix *M, double *q, double *mu, double *mu_r);
37
38
39void rollingFrictionContactProblem_free(RollingFrictionContactProblem *problem);
40
41
42void rollingFrictionContact_display(RollingFrictionContactProblem *problem);
43
44
45int rollingFrictionContact_printInFile(RollingFrictionContactProblem *problem,
46                                       FILE *file);
47
48
49int rollingFrictionContact_printInFilename(
50    RollingFrictionContactProblem *problem, char *filename);
51
52
53RollingFrictionContactProblem *rollingFrictionContact_newFromFile(FILE *file);
54
55
56RollingFrictionContactProblem *
57rollingFrictionContact_new_from_filename(const char *filename);
58
59void rollingFrictionContactProblem_compute_statistics(
60    RollingFrictionContactProblem *problem, double *reaction, double *velocity,
61    double tol, int do_print);
62
63#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
64}
65#endif
66
67#endif