Global-Friction-contact problems (2D or 3D)

Problem statement.:


  • a symmetric positive semi definite matrix \({M} \in {{\mathrm{I\!R}}}^{n \times n}\)
  • a matrix \({H} \in {{\mathrm{I\!R}}}^{n \times {d\, n_c}}\)
  • a vector \({q} \in {{\mathrm{I\!R}}}^n\)
  • a vector \({b} \in {{\mathrm{I\!R}}}^{d\, n_c}\)
  • a vector of coefficients of friction \(\mu \in{{\mathrm{I\!R}}}^{n_c}\)

the (global or global) frictional contact problem is to find three vectors \(v\in{{\mathrm{I\!R}}}^n\) , the (global) velocity \(u\in{{\mathrm{I\!R}}}^{d\,n_c}\) , the relative local velocity and \(r\in {{\mathrm{I\!R}}}^{d,n_c}\) , the contact forces denoted by \(\mathrm{PFC}(M,H,q,b,\mu)\) such that

\[\begin{split}\begin{eqnarray*} \begin{cases} M v = q + H r \\ u = H^\top v + b \\ \hat u = u +\left[ \left[\begin{array}{c} \mu^\alpha \|u^\alpha_{T}\|\\ 0 \\ 0 \end{array}\right]^T, \alpha = 1 \ldots n_c \right]^T \\ \ \ C^\star_{\mu} \ni {\hat u} \perp r \in C_{\mu} \end{cases} \end{eqnarray*}\end{split}\]

where the Coulomb friction cone is defined by \(C_{\mu} = \prod\limits_{\alpha=1\ldots n_c} C^{\alpha}_{\mu^\alpha}\)

with \(C^{\alpha}_{\mu^\alpha} =\{ r^\alpha, \|r_{t}\| \leq \mu_{\alpha} |r^\alpha_{n}|\}\) , and the set \(C^{\alpha,\star}_{\mu^\alpha}\) its dual.

The modified local velocity \(\widehat u \) . Coulomb’s friction law with Signorini’s condition for the unilateral contact written in terms of second order complementarity condition

\[\begin{eqnarray} C^\star_{\mu} \ni {\hat u} \perp r \in C_{\mu} \end{eqnarray}\]

can be interpreted in a more usual form

\[\begin{split}\begin{eqnarray} \begin{cases} 0 \leq u_{N} \perp r_N \geq 0 \quad\quad\text{ Signorini condition}\\ u_T = 0 \Rightarrow \|r_T\| \leq \mu |r_n| \quad\quad\text{ Sticking mode} \\ u_T \neq 0 \Rightarrow r_T = - \mu |r_n| \frac{u_T }{\|u_T\|} \quad\quad\text{ Sliding mode} \end{cases} \end{eqnarray}\end{split}\]

This problem models any instance of discretized frictional contact problem obtained from

  • the time-discretization of dynamics contact problems with event-capturing of event-tracking schemes,
  • the time-discretization of quasi-static contact problems,
  • the modeling of static contact problems. In this last case, \(u\) plays the role of the relative displacement at contact

The problem is stored and given to the solver in Siconos/Numerics thanks to a C structure GlobalFrictionContactProblem .

Available solvers for Friction Contact 3D:

Use the generic function gfc3d_driver() to call one the the specific solvers listed below:

  • gfc3d_nsgs() : non-smooth Gauss-Seidel solver (see the functions/solvers list in gfc3d_Solvers.h )

Required and optional parameters:

gfc3d problems needs some specific parameters, given to the gfc3d_driver() function thanks to a SolverOptions structure.

Global Friction-Contact 3D problems Solvers:

This page gives an overview of the available solvers for friction-contact (3D) problems and their required parameters.

For each solver, the input argument are:

  • a FrictionContactProblem
  • the unknowns (reaction,velocity)
  • info, the termination value (0: convergence, >0 problem which depends on the solver)
  • a SolverOptions structure, which handles iparam and dparam

Non-Smooth Gauss Seidel Solver:

function: fc3d_nsgs() parameters: