File numerics/src/FrictionContact/fc2d_Solvers.h#

Go to the source code of this file

Subroutines for the resolution of contact problems with friction (2-dimensional case).

Functions

void fc2d_cpg(FrictionContactProblem *problem, double *reaction, double *velocity, int *info, SolverOptions *options)#

cpg (conjugated projected gradient) solver for global contact problems with friction (2D)

Parameters:
  • problem[in] the friction-contact problem

  • reaction[out] vector

  • velocity[out] vector

  • info[inout] termination value

  • options[inout] structure for options

void fc2d_nsgs_dense(FrictionContactProblem *problem, double *reaction, double *velocity, int *info, SolverOptions *options)#

Non Linear Gauss Seidel solver (dense) for global contact problem with friction in 2D case.

Parameters:
  • problem[in] the friction-contact problem

  • reaction[out] vector

  • velocity[out] vector

  • info[inout] termination value

  • options[inout] structure

void fc2d_nsgs(FrictionContactProblem *problem, double *z, double *w, int *info, SolverOptions *options)#

Non Linear Gauss Seidel solver (sbm) for global contact problem with friction in 2D case.

Parameters:
  • problem[in] the friction-contact problem

  • reaction[out] vector

  • velocity[out] vector

  • info[inout] termination value

  • options[inout] structure

void fc2d_projc(double xi[], int *n, int statusi[], double p[], double fric[], double *reaction, int *status)#

fc2d_projc is a specific projection operator related to CPG (conjugated projected gradient) algorithm for global contact problem with friction.

Parameters:
  • xi[in] the intermediate iterate which goes to be projected (projc1).

  • n[in] the dimension of the system.

  • statusi[in] a vector which contains the initial status.

  • p[in] a vector which contains the components of the descent direction.

  • fric[in] a vector which contains the friction coefficient.

  • reaction[out] the corrected iterate.

  • status[out] the new status.

void fc2d_projf(int etat[], int *n, double y[], double fric[], double projf1[])#

fc2d_projf is a specific projection operator related to CPG (conjugated projected gradient) algorithm for global contact problem with friction.

Parameters:
  • etat[in] parameter which represents the status vector.

  • n[in] parameter which represents the dimension of the system.

  • y[in] parameter which contains the components of the residue or descent direction vector.

  • fric[in] parameter which contains the friction coefficient.

  • projf1[out] parameter which contains the projected residue or descent direction.

void fc2d_lexicolemke(FrictionContactProblem *problem, double *reaction, double *velocity, int *info, SolverOptions *options)#

fc2d_lexicolemke is a Lemke solver for frictionContact2D problems.

Parameters:
  • problem[in] structure that represents the fc2d (M, q…)

  • reaction[inout] a n-vector of doubles which contains the initial solution and returns the solution of the problem.

  • velocity[inout] a n-vector of doubles which returns the solution of the problem.

  • options

  • info[out] an integer which returns the termination value: 0 = convergence, 1 = no convergence, 2 = Null diagonal term

int fc2d_tolcp(FrictionContactProblem *problem, LinearComplementarityProblem *lcp_problem)#

This function transform a FrictionContactProblem (2D) into a LinearComplementarityProblem.

Parameters:
  • problem[in] A pointer to a FrictionContactProblem to transform

  • lcp_problem[out] A pointer to a LinearComplementarity_problem resulting from the reformulation

void fc2d_enum(FrictionContactProblem *problem, double *reaction, double *velocity, int *info, SolverOptions *options)#

fc2d_enum solver for frictionContact2D problems.

Parameters:
  • problem[in] structure that represents the fc2d (M, q…)

  • reaction[inout] a n-vector of doubles which contains the initial solution and returns the solution of the problem.

  • velocity[inout] a n-vector of doubles which returns the solution of the problem.

  • options

  • info[out] an integer which returns the termination value: 0 = convergence, 1 = no convergence, 2 = Null diagonal term

void fc2d_nsgs_set_default(SolverOptions *options)#