Program listing for file numerics/src/FrictionContact/fc3d_Solvers.h#
Return to documentation for this file
1#ifndef FRICTIONCONTACT3DSOLVERS_H
2#define FRICTIONCONTACT3DSOLVERS_H
3
4
5
6#include "FrictionContactProblem.h"
7#include "Friction_cst.h"
8#include "SolverOptions.h"
9#include "fc3d_2NCP_Glocker.h"
10#include "fc3d_AlartCurnier_functions.h"
11#include "fc3d_NCPGlockerFixedPoint.h"
12#include "fc3d_local_problem_tools.h"
13#include "fc3d_nonsmooth_Newton_AlartCurnier.h"
14#include "fc3d_nonsmooth_Newton_FischerBurmeister.h"
15#include "fc3d_nonsmooth_Newton_natural_map.h"
16#include "fc3d_onecontact_nonsmooth_Newton_solvers.h"
17#include "fc3d_projection.h"
18#include "fc3d_unitary_enumerative.h"
19
20
21typedef int (*SolverPtr)(FrictionContactProblem *, double *, SolverOptions *);
22
23
24typedef void (*UpdatePtr)(int, FrictionContactProblem *,
25 FrictionContactProblem *, double *, SolverOptions *);
26
27
28typedef void (*PostSolverPtr)(int, double *);
29
30
31typedef void (*ComputeErrorPtr)(FrictionContactProblem *, double *, double *,
32 double, SolverOptions *, double, double *);
33
34
35typedef void (*FreeSolverPtr)(void);
36
37
38typedef void (*FreeSolverNSGSPtr)(FrictionContactProblem *,
39 FrictionContactProblem *, SolverOptions *);
40
41
42typedef void (*internalSolverPtr)(FrictionContactProblem *, double *, double *,
43 int *, SolverOptions *);
44
45#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
46extern "C" {
47#endif
48
49
50void fc3d_nsgs(FrictionContactProblem *problem, double *reaction,
51 double *velocity, int *info, SolverOptions *options);
52
53void fc3d_nsgs_initialize_local_solver(SolverPtr *solve, UpdatePtr *update,
54 FreeSolverNSGSPtr *freeSolver,
55 ComputeErrorPtr *computeError,
56 FrictionContactProblem *problem,
57 FrictionContactProblem *localproblem,
58 SolverOptions *options);
59
60void fc3d_admm(FrictionContactProblem *problem, double *reaction,
61 double *velocity, int *info, SolverOptions *options);
62
63void fc3d_admm_init(FrictionContactProblem *problem, SolverOptions *options);
64void fc3d_admm_free(FrictionContactProblem *problem, SolverOptions *options);
65
66
67void fc3d_nsgs_velocity(FrictionContactProblem *problem, double *reaction,
68 double *velocity, int *info, SolverOptions *options);
69
70
71void fc3d_proximal(FrictionContactProblem *problem, double *reaction,
72 double *velocity, int *info, SolverOptions *options);
73
74
75void fc3d_TrescaFixedPoint(FrictionContactProblem *problem, double *reaction,
76 double *velocity, int *info, SolverOptions *options);
77
78
79void fc3d_Panagiotopoulos_FixedPoint(FrictionContactProblem *problem,
80 double *reaction, double *velocity,
81 int *info, SolverOptions *options);
82
83void fc3d_SOCLCP(FrictionContactProblem *problem, double *reaction,
84 double *velocity, int *info, SolverOptions *options);
85
86
87void fc3d_ACLMFixedPoint(FrictionContactProblem *problem, double *reaction,
88 double *velocity, int *info, SolverOptions *options);
89
90
91void fc3d_ConvexQP_ProjectedGradient_Cylinder(FrictionContactProblem *problem,
92 double *reaction,
93 double *velocity, int *info,
94 SolverOptions *options);
95
96
97void fc3d_DeSaxceFixedPoint(FrictionContactProblem *problem, double *reaction,
98 double *velocity, int *info,
99 SolverOptions *options);
100
101
102void fc3d_fixedPointProjection(FrictionContactProblem *problem,
103 double *reaction, double *velocity, int *info,
104 SolverOptions *options);
105
106
107void fc3d_VI_FixedPointProjection(FrictionContactProblem *problem,
108 double *reaction, double *velocity, int *info,
109 SolverOptions *options);
110
111void fc3d_VI_FixedPointProjection_Cylinder(FrictionContactProblem *problem,
112 double *reaction, double *velocity,
113 int *info, SolverOptions *options);
114
115
116void fc3d_ExtraGradient(FrictionContactProblem *problem, double *reaction,
117 double *velocity, int *info, SolverOptions *options);
118
119
120void fc3d_VI_ExtraGradient(FrictionContactProblem *problem, double *reaction,
121 double *velocity, int *info, SolverOptions *options);
122
123
124void fc3d_HyperplaneProjection(FrictionContactProblem *problem,
125 double *reaction, double *velocity, int *info,
126 SolverOptions *options);
127
128
129void fc3d_AVI_gams_path(FrictionContactProblem *problem, double *reaction,
130 double *velocity, int *info, SolverOptions *options);
131
132
133void fc3d_AVI_gams_pathvi(FrictionContactProblem *problem, double *reaction,
134 double *velocity, int *info, SolverOptions *options);
135
136
137void fc3d_lcp_gams_path(FrictionContactProblem *problem, double *reaction,
138 double *velocity, int *info, SolverOptions *options);
139
140
141void fc3d_lcp_gams_pathvi(FrictionContactProblem *problem, double *reaction,
142 double *velocity, int *info, SolverOptions *options);
143
144
145int fc3d_checkTrivialCase(FrictionContactProblem *problem, double *velocity,
146 double *reaction, SolverOptions *options);
147
148void fc3d_nonsmooth_Newton_AlartCurnier2(FrictionContactProblem *problem,
149 double *reaction, double *velocity,
150 int *info, SolverOptions *options);
151
152void fc3d_set_internalsolver_tolerance(FrictionContactProblem *problem,
153 SolverOptions *options,
154 SolverOptions *internalsolver_options,
155 double error);
156
157
158void fc3d_nsgs_set_default(SolverOptions *options);
159void fc3d_nsgs_velocity_set_default(SolverOptions *options);
160void fc3d_proximal_set_default(SolverOptions *options);
161void fc3d_tfp_set_default(SolverOptions *options);
162void fc3d_nsn_ac_set_default(SolverOptions *options);
163void fc3d_dsfp_set_default(SolverOptions *options);
164void fc3d_hp_set_default(SolverOptions *options);
165void fc3d_fpp_set_default(SolverOptions *options);
166void fc3d_eg_set_default(SolverOptions *options);
167void fc3d_nsn_fb_set_default(SolverOptions *options);
168void fc3d_aclmfp_set_default(SolverOptions *options);
169void fc3d_nsn_nm_set_default(SolverOptions *options);
170void fc3d_pfp_set_default(SolverOptions *options);
171void fc3d_admm_set_default(SolverOptions *options);
172void fc3d_onecontact_nsn_set_default(SolverOptions *options);
173void fc3d_onecontact_nsn_gp_set_default(SolverOptions *options);
174void fc3d_poc_set_default(SolverOptions *options);
175
176
177#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
178}
179#endif
180
181#endif