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