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

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

  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