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

  1#ifndef GLOBALFRICTIONCONTACT3DSOLVERS_H
  2#define GLOBALFRICTIONCONTACT3DSOLVERS_H
  3
  4
  5
  6#include "GlobalFrictionContactProblem.h"
  7#include "SolverOptions.h"
  8#include "Friction_cst.h"
  9#include "gfc3d_nonsmooth_Newton_AlartCurnier.h"
 10
 11typedef void (*SolverGlobalPtr)(int, int, double*, int*, double*);
 12typedef void (*PostSolverGlobalPtr)(int, double*);
 13
 14typedef void (*FreeSolverGlobalPtr)(GlobalFrictionContactProblem*);
 15
 16
 17typedef void (* ComputeErrorGlobalPtr)(GlobalFrictionContactProblem* ,
 18                                      double * , double *,
 19                                      double* , double ,
 20                                      SolverOptions * ,
 21                                      double, double,  double * );
 22
 23
 24#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
 25extern "C"
 26{
 27#endif
 28
 29  void gfc3d_set_internalsolver_tolerance(GlobalFrictionContactProblem* problem,
 30                                          SolverOptions* options,
 31                                          SolverOptions* internalsolver_options,
 32                                          double error);
 33
 34
 35
 36  int gfc3d_checkTrivialCaseGlobal(int dim, double* q, double* velocity, double*reaction, double* globalVelocity, SolverOptions* options);
 37
 38
 39  void gfc3d_nsgs_wr(GlobalFrictionContactProblem* problem, double *reaction , double *velocity, double* globalVelocity, int* info,  SolverOptions* options);
 40
 41  void gfc3d_admm_wr(GlobalFrictionContactProblem* problem, double *reaction , double *velocity, double* globalVelocity, int* info,  SolverOptions* options);
 42
 43  void  gfc3d_nonsmooth_Newton_AlartCurnier_wr(GlobalFrictionContactProblem* problem, double *reaction , double *velocity, double* globalVelocity, int *info, SolverOptions* options);
 44
 45
 46  void gfc3d_proximal_wr(GlobalFrictionContactProblem* problem, double *reaction , double *velocity, double* globalVelocity, int* info,  SolverOptions* options);
 47
 48
 49  void gfc3d_DeSaxceFixedPoint_wr(GlobalFrictionContactProblem* problem, double *reaction , double *velocity, double* globalVelocity, int* info,  SolverOptions* options);
 50
 51
 52  void gfc3d_TrescaFixedPoint_wr(GlobalFrictionContactProblem* problem, double *reaction , double *velocity, double* globalVelocity, int* info,  SolverOptions* options);
 53
 54
 55  void  gfc3d_nsgs_velocity_wr(GlobalFrictionContactProblem* problem, double *reaction , double *velocity, double* globalVelocity, int *info, SolverOptions* options);
 56
 57
 58  void gfc3d_nsgs(GlobalFrictionContactProblem* problem, double *reaction , double *velocity, double* globalVelocity, int* info, SolverOptions* options);
 59
 60
 61  void gfc3d_ACLMFixedPoint(GlobalFrictionContactProblem*  problem, double*  reaction, double*  velocity,
 62                            double*  globalVelocity, int*  info, SolverOptions* options);
 63
 64
 65  void gfc3d_AVI_gams_path(GlobalFrictionContactProblem* problem, double *reaction,
 66                           double *velocity, int* info, SolverOptions* options);
 67
 68
 69  void gfc3d_AVI_gams_pathvi(GlobalFrictionContactProblem* problem, double *reaction,
 70                             double *velocity, int* info, SolverOptions* options);
 71
 72
 73  void gfc3d_nonsmooth_Newton_AlartCurnier(GlobalFrictionContactProblem* problem, double *reaction, double *velocity, double *globalVelocity, int *info, SolverOptions* options);
 74
 75  void gfc3d_VI_ExtraGradient(GlobalFrictionContactProblem* problem, double *reaction, double *velocity, double* globalVelocity, int* info, SolverOptions* options);
 76
 77  void gfc3d_VI_FixedPointProjection(GlobalFrictionContactProblem* problem, double *reaction, double *velocity, double* globalVelocity, int* info, SolverOptions* options);
 78
 79
 80  void gfc3d_ADMM(GlobalFrictionContactProblem*  problem, double*  reaction,
 81                  double*  velocity, double*  globalVelocity,
 82                  int*  info, SolverOptions*  options);
 83
 84  void gfc3d_ADMM_init(GlobalFrictionContactProblem* problem, SolverOptions* options);
 85
 86  void gfc3d_ADMM_free(GlobalFrictionContactProblem* problem, SolverOptions* options);
 87
 88
 89  void gfc3d_IPM(GlobalFrictionContactProblem*  problem, double*  reaction,
 90                  double*  velocity, double*  globalVelocity,
 91                  int*  info, SolverOptions*  options);
 92
 93  void gfc3d_IPM_init(GlobalFrictionContactProblem* problem, SolverOptions* options);
 94
 95  void gfc3d_IPM_free(GlobalFrictionContactProblem* problem, SolverOptions* options);
 96
 97  void gfc3d_ipm_set_default(SolverOptions* options);
 98
 99
100  void gfc3d_nsn_ac_set_default(SolverOptions* options);
101  void gfc3d_aclmfp_set_default(SolverOptions* options);
102  void gfc3d_admm_set_default(SolverOptions* options);
103
104
105
106#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
107}
108#endif
109
110#endif