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
4#include "GlobalFrictionContactProblem.h"
5#include "NumericsMatrix.h"
6
7struct GlobalFrictionContactProblem_balancing_data {
8 BalancingMatrices* B_for_M;
9 BalancingMatrices* B_for_H;
10 GlobalFrictionContactProblem* original_problem;
11 double alpha;
12 double beta;
13 double gamma;
14};
15
16#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
17extern "C" {
18#endif
19void gfc3d_rescaling(GlobalFrictionContactProblem* problem, double alpha, double beta,
20 double gamma);
21
22void gfc3d_balancing_M(GlobalFrictionContactProblem* problem, BalancingMatrices* B_for_M);
23
24void gfc3d_balancing_MHHT(GlobalFrictionContactProblem* problem, BalancingMatrices* B_for_M,
25 BalancingMatrices* B_for_H);
26
27GlobalFrictionContactProblem* gfc3d_balancing_problem(GlobalFrictionContactProblem* problem,
28 SolverOptions* options);
29
30void gfc3d_balancing_go_to_balanced_variables(GlobalFrictionContactProblem* balanced_problem,
31 SolverOptions* options, double* r, double* u,
32 double* v);
33
34void gfc3d_balancing_back_to_original_variables(GlobalFrictionContactProblem* balanced_problem,
35 SolverOptions* options, double* r, double* u,
36 double* v);
37
38GlobalFrictionContactProblem* gfc3d_balancing_free(
39 GlobalFrictionContactProblem* balanced_problem, SolverOptions* options);
40
41GlobalFrictionContactProblem_balancing_data* gfc3d_balancing_data_free(
42 GlobalFrictionContactProblem_balancing_data* data);
43
44GlobalFrictionContactProblem_balancing_data* gfc3d_balancing_data_new(void);
45
46#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
47}
48#endif
49
50#endif