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

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

 1#ifndef GLOBALFRICTIONCONTACT3DBALANCING_H
 2#define GLOBALFRICTIONCONTACT3DBALANCING_H
 3
 4struct GlobalFrictionContactProblem_balancing_data
 5{
 6  BalancingMatrices * B_for_M;
 7  BalancingMatrices * B_for_H;
 8  GlobalFrictionContactProblem * original_problem;
 9  double alpha;
10  double beta;
11  double gamma;
12};
13
14
15#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
16extern "C"
17{
18#endif
19  void gfc3d_rescaling(
20    GlobalFrictionContactProblem* problem,
21    double alpha,  double beta, double gamma);
22
23  void gfc3d_balancing_M(
24    GlobalFrictionContactProblem* problem,
25    BalancingMatrices * B_for_M);
26
27  void gfc3d_balancing_MHHT(
28    GlobalFrictionContactProblem* problem,
29    BalancingMatrices * B_for_M,
30    BalancingMatrices * B_for_H);
31
32  GlobalFrictionContactProblem*  gfc3d_balancing_problem(
33    GlobalFrictionContactProblem* problem,
34    SolverOptions* options);
35
36  void gfc3d_balancing_go_to_balanced_variables(
37    GlobalFrictionContactProblem* balanced_problem,
38    SolverOptions* options,
39    double *r, double *u, double* v);
40
41  void gfc3d_balancing_back_to_original_variables(
42    GlobalFrictionContactProblem* balanced_problem,
43    SolverOptions* options,
44    double *r, double *u, double *v);
45
46  GlobalFrictionContactProblem*  gfc3d_balancing_free(
47    GlobalFrictionContactProblem* balanced_problem,
48    SolverOptions* options);
49
50  GlobalFrictionContactProblem_balancing_data  * gfc3d_balancing_data_free(
51    GlobalFrictionContactProblem_balancing_data * data);
52
53  GlobalFrictionContactProblem_balancing_data  * gfc3d_balancing_data_new(void);
54
55#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
56}
57#endif
58
59#endif