File numerics/src/FrictionContact/grfc3d_Solvers.h#
Go to the source code of this file
Subroutines for the resolution of contact problems with rolling friction (3-dimensional and 2-dimensional case).
Typedefs
-
typedef void (*ComputeErrorGlobalRollingPtr)(GlobalRollingFrictionContactProblem*, double*, double*, double*, double, double*, int)#
pointer to function used to update velocity and compute error
Functions
-
void grfc3d_nsgs_wr(GlobalRollingFrictionContactProblem *problem, double *reaction, double *velocity, double *globalVelocity, int *info, SolverOptions *options)#
Non-Smooth Gauss Seidel solver with reformulation for rolling friction-contact 3D problem.
- Parameters:
problem – the friction-contact 3D problem to solve
velocity – global vector (n), in-out parameter
reaction – global vector (n), in-out parameters
globalVelocity – global vector (m), in-out parameters
info – return 0 if the solution is found
options – the solver options : iparam[0] : Maximum iteration number iparam[4] : localsolver choice 0: projection on Cone, 1: Newton/AlartCurnier, 2: projection on Cone with local iteration, 2: projection on Disk with diagonalization, dparam[0] : tolerance dparam[2] : localtolerance dparam[1] : (out) error
-
int grfc3d_checkTrivialCaseGlobal(int n, double *q, double *velocity, double *reaction, double *globalVelocity, SolverOptions *options)#
-
void grfc3d_IPM_init(GlobalRollingFrictionContactProblem *problem, SolverOptions *options)#
-
void grfc3d_IPM_free(GlobalRollingFrictionContactProblem *problem, SolverOptions *options)#
-
void grfc3d_IPM_set_default(SolverOptions *options)#
-
void grfc3d_IPM(GlobalRollingFrictionContactProblem *problem, double *reaction, double *velocity, double *globalVelocity, int *info, SolverOptions *options)#
solver based on Interior Point Method (IPM) for Rolling friction-contact 3D problem based on an AVI reformulation Vincent Acary, Paul Armand, Hoang Minh NGUYEN.
High-accuracy computation of rolling friction contact problems. 2022. https://hal.inria.fr/hal-03741048