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 NonSmooth 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 nvector of doubles which contains the solution of the problem.[inout] w
: a nvector 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 frictioncontact 2D problem.
 Return
result (0 if successful otherwise 1).
 Parameters
[in] problem
: the structure which handles the FrictionContact 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 frictioncontact 3D problem.
 Return
result (0 if successful otherwise 1).
 Parameters
[in] problem
: the structure which handles the FrictionContact 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 frictioncontact 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 frictioncontact 3D problem.
 Return
result (0 if successful otherwise 1).
 Parameters
[in] problem
: the structure which handles the FrictionContact 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 frictioncontact 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 nvector of doubles which contains the solution of the problem.[inout] w
: a nvector 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+nvector of doubles which contains the solution of the problem.[inout] w
: a m+nvector 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+nvector of doubles which contains the solution of the problem.[inout] w
: a m+nvector 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+nvector of doubles which contains the solution of the problem.[inout] w
: a m+nvector 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 nvector of doubles which contains the solution of the problem.[inout] F
: a nvector 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 nvector of doubles which contains the solution of the problem.[inout] w
: a nvector 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 frictioncontact 3D problem.
 Return
result (0 if successful otherwise 1).
 Parameters
[in] problem
: the structure which handles the FrictionContact 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 FrictionContact 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 frictioncontact 3D problem.
 Return
result (0 if successful otherwise 1).
 Parameters
[in] problem
: the structure which handles the FrictionContact problem[inout] x
: global vector (n)[inout] w
: global vector (n)[inout] options
: structure used to define the solver(s) and their parameters