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
 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