File numerics/src/FrictionContact/fc3d_AlartCurnier_functions.h

Go to the source code of this file

Typedef and functions declarations related to Alart-Curnier formulation for 3 dimension frictional contact problems.

Subroutines used when the friction-contact 3D problem is written using Alart-Curnier formulation:

F(reaction)=\left[\begin{array}{c} velocity - M.reaction - q \\ 1/rn*[velocity_N - (velocity_N - rn*reaction_N)^+] 1/rt*[velocity_T - proj(velocity_T - rt*reaction_T)] \end{array}\right]

where M is an n by n matrix, q an n-dimensional vector, reaction an n-dimensional vector and velocity an n-dimensional vector.

We consider a “global” (ie for several contacts) problem, used to initialize the static global variables. Then a “local” (ie for one contact => size = 3) problem is built (update function) and solved (solve function).

Two different storages are available for M: dense and sparse block.

Functions

void compute_rho_spectral_norm(FrictionContactProblem *localproblem, double *rho)
void compute_rho_split_spectral_norm(FrictionContactProblem *localproblem, double *rho)
void compute_rho_split_spectral_norm_cond(FrictionContactProblem *localproblem, double *rho)
void computeAlartCurnierJeanMoreau(double reaction[3], double velocity[3], double mu, double rho[3], double result[3], double A[9], double B[9])
void computeAlartCurnierSTD(double reaction[3], double velocity[3], double mu, double rho[3], double result[3], double A[9], double B[9])