rolling_fc3d_Solvers (functions)


siconos.numerics.rolling_fc3d_checkTrivialCase(RollingFrictionContactProblem *problem, array_like (np.float64, 1D)velocity, array_like (np.float64, 1D)reaction, SolverOptions *options) → int[source]

Check for trivial solution in the friction-contact 3D problem.

Parameters
  • problem – FrictionContactProblem* the problem

  • velocity – global vector (n), in-out parameter

  • reaction – global vector (n), in-out parameters

  • options – the pointer to the array of options to set

Returns

info =0 if a trivial solution has been found, else = -1


siconos.numerics.rolling_fc3d_nsgs(RollingFrictionContactProblem *problem, array_like (np.float64, 1D)reaction, array_like (np.float64, 1D)velocity, int *info, SolverOptions *options) → None[source]

Non-Smooth Gauss Seidel solver for friction-contact 3D problem.

Parameters
  • problem – the friction-contact 3D problem to solve

  • velocity – global vector (n), in-out parameter

  • reaction – global vector (n), in-out parameters

  • info – return 0 if the solution is found

  • options – the solver options : [in] iparam[0] : Maximum iteration number

  • iparam[SICONOS_FRICTION_3D_IPARAM_ERROR_EVALUATION (7)] ([in]) –

  • method (SICONOS_FRICTION_3D_NSGS_ERROR_EVALUATION_FULL (0) : Full error) –

  • with velocity computation (computation) –

  • (1) (SICONOS_FRICTION_3D_NSGS_SHUFFLE_TRUE) –

  • computation with incremental values on reaction verification of absolute (error) –

  • at the end SICONOS_FRICTION_3D_NSGS_ERROR_EVALUATION_LIGHT (2) (error) –

  • error computation (velocity not computed) (light) –

  • (3) (SICONOS_FRICTION_3D_NSGS_ERROR_EVALUATION_ADAPTIVE) –

  • the full erro evaluation. (of) –

  • iparam[SICONOS_FRICTION_3D_NSGS_FILTER_LOCAL_SOLUTION(14)] ([in]) –

  • if the local error is greater than 1.0 (solution) –

  • (0) the filter is not (SICONOS_FRICTION_3D_NSGS_FILTER_LOCAL_SOLUTION_FALSE) –

  • SICONOS_FRICTION_3D_NSGS_FILTER_LOCAL_SOLUTION_TRUE (1) the filter is (applied) –

  • applied

  • iparam[SICONOS_FRICTION_3D_NSGS_RELAXATION(4)] ([in]) –

  • (0) relaxation is not used, (SICONOS_FRICTION_3D_NSGS_RELAXATION_FALSE) –

  • (1) relaxation is used with parameter (SICONOS_FRICTION_3D_NSGS_RELAXATION_TRUE) –

  • dparam[8],

  • iparam[SICONOS_FRICTION_3D_NSGS_SHUFFLE(5)] ([in]) –

  • the loop SICONOS_FRICTION_3D_NSGS_SHUFFLE_FALSE (0) (in) –

  • (1)

  • (2) (SICONOS_FRICTION_3D_NSGS_SHUFFLE_TRUE_EACH_LOOP) –

  • iparam[SICONOS_FRICTION_3D_NSGS_SHUFFLE_SEED(6)] ([in]) –

  • in shuffling contacts (generator) –

  • iparam[SICONOS_IPARAM_ITER_DONE(1)] = iter number of performed iterations ([out]) –

  • iparam[8] = error computation frequency ([in]) –

  • dparam[SICONOS_DPARAM_TOL(0)] user tolerance on the loop [in] dparam[8] the ([in]) –

  • parameter omega [out] dparam[SICONOS_DPARAM_RESIDU(1)] reached error (relaxation) –

  • internal (local) solver must set by the SolverOptions options[1] (The) –


siconos.numerics.rolling_fc3d_nsgs_initialize_local_solver(RollingSolverPtr *solve, RollingUpdatePtr *update, RollingFreeSolverNSGSPtr *freeSolver, RollingComputeErrorPtr *computeError, RollingFrictionContactProblem *problem, RollingFrictionContactProblem *localproblem, SolverOptions *options) → None[source]

siconos.numerics.rolling_fc3d_nsgs_setDefaultSolverOptions(SolverOptions *options) → int[source]

set the default solver parameters and perform memory allocation for NSGS

Parameters

options – the pointer to the array of options to set


siconos.numerics.rolling_fc3d_setDefaultSolverOptions(SolverOptions *options, int solverId) → int[source]

set the default solver parameters and perform memory allocation for fc3d

Parameters
  • options – the pointer to the options to set

  • solverId – the identifier of the solver


siconos.numerics.rolling_fc3d_set_internalsolver_tolerance(RollingFrictionContactProblem *problem, SolverOptions *options, SolverOptions *internalsolver_options, double error) → None[source]