File numerics/src/FrictionContact/rolling_fc3d_projection.h#

Go to the source code of this file

Typedef and functions declarations related to projection solver for 3 dimension frictional contact problems.

Each solver must have 4 functions in its interface:

  • initialize: link global static variables to the considered problem (M,q,…)

  • update: link/fill the local variables corresponding to sub-blocks of the full problem, for a specific contact

  • solve: solve the local problem

  • free 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 rolling_fc3d_projection_update(int number, RollingFrictionContactProblem *problem, RollingFrictionContactProblem *localproblem, double *reaction, SolverOptions *options)#

Update friction-contact 3D projection solver: formalize local problem for one contact.

Parameters:
  • number – (position in global matrix) of the considered contact

  • problem – : the global problem to solve

  • localproblem – : the local problem to initialize

  • reaction – (only the block corresponding to the current contact will be modified, the rest is used to formalize the local problem)

  • options

void rolling_fc3d_projection_initialize(RollingFrictionContactProblem *problem, RollingFrictionContactProblem *localproblem)#
void rolling_fc3d_projection_free(RollingFrictionContactProblem *problem, RollingFrictionContactProblem *localproblem, SolverOptions *localsolver_options)#
int rolling_fc3d_projectionOnCone_solve(RollingFrictionContactProblem *localproblem, double *reaction, SolverOptions *options)#
int rolling_fc3d_projectionOnCone_setDefaultSolverOptions(SolverOptions *options)#
int rolling_fc3d_projectionOnConeWithLocalIteration_solve(RollingFrictionContactProblem *localproblem, double *reaction, SolverOptions *options)#

solve friction-contact 3D problem with projection on the Cone with local iteration up to convergence of the local problem

Parameters:
  • localproblem – : the local problem to initialize

  • reaction

  • options

Returns:

0 if successfull

void rolling_fc3d_projectionOnConeWithLocalIteration_free(RollingFrictionContactProblem *problem, RollingFrictionContactProblem *localproblem, SolverOptions *localsolver_options)#
void rolling_fc3d_projectionOnConeWithLocalIteration_initialize(RollingFrictionContactProblem *problem, RollingFrictionContactProblem *localproblem, SolverOptions *localsolver_options)#
int rolling_fc3d_projectionOnConeWithLocalIteration_setDefaultSolverOptions(SolverOptions *options)#