File numerics/src/NonSmoothDrivers.h

Go to the source code of this file

This file provides all generic functions (drivers), interfaces to the different formulations for Non-Smooth Problems available in Numerics.

Use fc3d tools.

Functions

int avi_driver(AffineVariationalInequalities *problem, double *z, double *w, SolverOptions *options)

General interface to solvers for Affine Variational Inequalities (AVI)

Return

info termination value

  • 0 : successful

  • >0 : otherwise see each solver for more information about the log info

Parameters
  • [in] problem: the AffineVariationalInequalities structure which handles the problem (M,q)

  • [inout] z: a n-vector of doubles which contains the solution of the problem.

  • [inout] w: a n-vector of doubles which contains the solution of the problem.

  • [inout] options: structure used to define the solver(s) and their parameters

int fc2d_driver(FrictionContactProblem *problem, double *reaction, double *velocity, SolverOptions *options)

General interface to solvers for friction-contact 2D problem.

Return

result (0 if successful otherwise 1).

Parameters
  • [in] problem: the structure which handles the Friction-Contact problem

  • [inout] reaction: global vector (n)

  • [inout] velocity: global vector (n)

  • [inout] options: structure used to define the solver(s) and their parameters

int fc3d_driver(FrictionContactProblem *problem, double *reaction, double *velocity, SolverOptions *options)

General interface to solvers for friction-contact 3D problem.

Return

result (0 if successful otherwise 1).

Parameters
  • [in] problem: the structure which handles the Friction-Contact problem

  • [inout] reaction: global vector (n)

  • [inout] velocity: global vector (n)

  • [inout] options: structure used to define the solver(s) and their parameters

int fc3d_LmgcDriver(double *reaction, double *velocity, double *q, double *mu, double *W, unsigned int *row, unsigned int *column, unsigned int nc, unsigned int nb, int solver_id, double tolerance, int itermax, int verbose, int outputFile, int freq_output, int ndof)

LMGC interface to solvers for friction-contact 3D problem.

Return

result (0 if successful otherwise 1).

Parameters
  • [inout] reaction: global vector (nc*3)

  • [inout] velocity: global vector (nc*3)

  • [in] q: global vector (nc*3)

  • [in] mu: global vector (nc)

  • [in] W: the block matrix in coordinate format

  • [in] row: block row indices

  • [in] column: block column indices

  • [in] nc: number of contacts

  • [in] nb: number of blocks

  • [in] solver_id: id an int to be mapped to actual solver in Numerics

  • [in] tolerance: threshold used to validate the solution: if the error is less than this value, the solution is accepted

  • [in] itermax: the maximum number of iteration

  • [in] verbose: level 0 : nothing, 1: mid level 2: high level

  • [in] outputFile: outputFile option 0 : nothing 1 : dat file 2: FCLIB HDF5 file if FCLIB is found

  • [in] freq_output:

  • [in] ndof: the numbe of dof in the dynamical systems involved in contact (for output in file.)

int gfc3d_driver(GlobalFrictionContactProblem *problem, double *reaction, double *velocity, double *globalVelocity, SolverOptions *options)

General interface to solvers for global friction-contact 3D problem.

Return

result (0 if successful otherwise 1).

Parameters
  • [in] problem: the structure which handles the Friction-Contact problem

  • [inout] reaction: global vector (n)

  • [inout] velocity: global vector (n)

  • [inout] globalVelocity: global vector

  • [inout] options: structure used to define the solver(s) and their parameters

int gfc3d_LmgcDriver(double *reaction, double *velocity, double *globalVelocity, double *q, double *b, double *mu, double *Mdata, unsigned int nzM, unsigned int *rowM, unsigned int *colM, double *Hdata, unsigned int nzH, unsigned int *rowH, unsigned int *colH, unsigned int n, unsigned int nc, int solver_id, int isize, int *iparam, int dsize, double *dparam, int verbose, int outputFile, int freq_output)

LMGC interface to solvers for global friction-contact 3D problem.

Return

result (0 if successful otherwise 1).

Parameters
  • [inout] reaction: global vector (nc*3)

  • [inout] velocity: global vector (nc*3)

  • [inout] globalVelocity: global velocity vector (n)

  • [in] q: global vector (n)

  • [in] b: global vector (nc*3)

  • [in] mu: global vector (nc)

  • [in] Mdata: the sparse matrix in coordinate format

  • [in] nzM: number of non zeros in Mdata

  • [in] rowM: row indices of M

  • [in] colM: column indices of M

  • [in] Hdata: the sparse matrix in coordinate format

  • [in] nzH: number of non zeros in Hdata

  • [in] rowH: row indices of H

  • [in] colH: column indices of H

  • [in] n: size of global velocity

  • [in] nc: number of contacts

  • [in] solver_id: id an int to be mapped to actual solver in Numerics

  • [in] isize: sive of integer parameters array

  • [in] iparam: integer parameters array

  • [in] dsize: sive of double parameters array

  • [in] dparam: double parameters array

  • [in] verbose: level 0 : nothing, 1: mid level 2: high level

  • [in] outputFile: outputFile option 0 : nothing 1 : C file , 1 : dat file 3: FCLIB HDF5 file if FCLIB is found

  • [in] freq_output:

int linearComplementarity_driver(LinearComplementarityProblem *problem, double *z, double *w, SolverOptions *options)

General interface to solvers for Linear Complementarity Problems.

Return

info termination value

  • 0 : successful

  • >0 : otherwise see each solver for more information about the log info

Parameters
  • [in] problem: the LinearComplementarityProblem structure which handles the problem (M,q)

  • [inout] z: a n-vector of doubles which contains the solution of the problem.

  • [inout] w: a n-vector of doubles which contains the solution of the problem.

  • [inout] options: structure used to define the solver(s) and their parameters

int mcp_driver(MixedComplementarityProblem *problem, double *z, double *w, SolverOptions *options)

General interface to solver for MCP problems new version.

Return

info termination value 0 : successful, else error.

Parameters
  • [in] problem: the MixedComplementarityProblem structure which handles the problem

  • [inout] z: a m+n-vector of doubles which contains the solution of the problem.

  • [inout] w: a m+n-vector of doubles which contains the solution of the problem.

  • [inout] options: structure used to define the solver(s) and its(their) parameters

int mcp_old_driver(MixedComplementarityProblem_old *problem, double *z, double *w, SolverOptions *options)

General interface to solver for MCP problems.

Return

info termination value 0 : successful, else error.

Parameters
  • [in] problem: the MixedComplementarityProblem_old structure which handles the problem

  • [inout] z: a m+n-vector of doubles which contains the solution of the problem.

  • [inout] w: a m+n-vector of doubles which contains the solution of the problem.

  • [inout] options: structure used to define the solver(s) and its(their) parameters

int mlcp_driver(MixedLinearComplementarityProblem *problem, double *z, double *w, SolverOptions *options)

General interface to solver for MLCP problems.

Return

info termination value

  • 0 : successful

  • >0 : otherwise see each solver for more information about the log info

Parameters
  • [in] problem: the MixedLinearComplementarityProblem structure which handles the problem (M,q)

  • [inout] z: a m+n-vector of doubles which contains the solution of the problem.

  • [inout] w: a m+n-vector of doubles which contains the solution of the problem.

  • [inout] options: structure used to define the solver(s) and their parameters

int ncp_driver(NonlinearComplementarityProblem *problem, double *z, double *F, SolverOptions *options)

General interface to solver for NCP problems.

Return

info termination value 0 : successful, else error

Parameters
  • [in] problem: the NonlinearComplementarityProblem structure which handles the problem

  • [inout] z: a n-vector of doubles which contains the solution of the problem.

  • [inout] F: a n-vector of doubles which contains value of the function evaluated at the solution of the problem.

  • [inout] options: structure used to define the solver(s) and its(their) parameters

int relay_driver(RelayProblem *problem, double *z, double *w, SolverOptions *options)

General interface to solver for relay problems.

Return

info termination value

  • 0 : successful

  • >0 : otherwise see each solver for more information about the log info

Parameters
  • [in] problem: the RelayProblem structure which handles the problem (M,q)

  • [inout] z: a n-vector of doubles which contains the solution of the problem.

  • [inout] w: a n-vector of doubles which contains the solution of the problem.

  • [inout] options: structure used to define the solver(s) and its (their) parameters

int rolling_fc3d_driver(RollingFrictionContactProblem *problem, double *reaction, double *velocity, SolverOptions *options)

General interface to solvers for friction-contact 3D problem.

Return

result (0 if successful otherwise 1).

Parameters
  • [in] problem: the structure which handles the Friction-Contact problem

  • [inout] reaction: global vector (n)

  • [inout] velocity: global vector (n)

  • [inout] options: structure used to define the solver(s) and their parameters

int soclcp_driver(SecondOrderConeLinearComplementarityProblem *problem, double *r, double *v, SolverOptions *options)

General interface to solvers for SOCLCP problem.

Return

result (0 if successful otherwise 1).

Parameters
  • [in] problem: the structure which handles the Friction-Contact problem

  • [inout] r: global vector (n)

  • [inout] v: global vector (n)

  • [inout] options: structure used to define the solver(s) and their parameters

int variationalInequality_driver(VariationalInequality *problem, double *x, double *w, SolverOptions *options)

General interface to solvers for friction-contact 3D problem.

Return

result (0 if successful otherwise 1).

Parameters
  • [in] problem: the structure which handles the Friction-Contact problem

  • [inout] x: global vector (n)

  • [inout] w: global vector (n)

  • [inout] options: structure used to define the solver(s) and their parameters