File numerics/src/FrictionContact/fc3d_onecontact_nonsmooth_Newton_solvers.h#
Go to the source code of this file
Typedef and functions declarations related to Newton solver for 3 dimension frictional contact problems.
Each solver must have 4 functions in its interface:
initialize: link local static variables to the global ones (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
Typedefs
-
typedef void (*computeNonsmoothFunction)(double*, double*, double, double*, double*, double*, double*)#
Functions
-
void fc3d_onecontact_nonsmooth_Newton_solvers_initialize(FrictionContactProblem *problem, FrictionContactProblem *localproblem, SolverOptions *options)#
initialize friction-contact 3D Newton solver
- Parameters:
problem – to solve
localproblem – to solve
options – of the solver
-
int fc3d_onecontact_nonsmooth_Newton_solvers_solve(FrictionContactProblem *localproblem, double*, SolverOptions *options)#
solve friction-contact 3D problem with Newton
- Parameters:
localproblem – to solve
options – of the solver
- Returns:
0 iff successful.
-
void fc3d_onecontact_nonsmooth_Newton_solvers_free(FrictionContactProblem *problem, FrictionContactProblem *localproblem, SolverOptions *localsolver_options)#
free memory for friction contact 3D Newton solver
- Parameters:
problem – the global problem to solve
localproblem – for freeing matrix0
localsolver_options – options of the solver
-
void fc3d_onecontact_nonsmooth_Newton_solvers_computeError(int dimension, double *velocity, double *reaction, double *output_error)#
compute error for friction-contact 3D problem with Newton
- Parameters:
dimension – of the global problem
velocity – [inout] vector
reaction – global reaction vector
output_error –
-
void fc3d_onecontact_nonsmooth_Newton_AC_update(int number, FrictionContactProblem *problem, FrictionContactProblem *localproblem, double *reaction, SolverOptions *options)#
Update friction-contact 3D problem: formalize local problem for one contact.
the rest is used to formalize the local problem)
- Parameters:
problem – the global problem to solve
localproblem – the local problem to solve
number – (position in global matrix) of the considered contact
reaction – global reaction (only the block corresponding to the current contact will be modified
options – of the solver
-
int fc3d_onecontact_nonsmooth_Newton_solvers_solve_direct(FrictionContactProblem *localproblem, double *R, SolverOptions *options)#
-
int fc3d_onecontact_nonsmooth_Newton_solvers_solve_damped(FrictionContactProblem *localproblem, double *R, SolverOptions *options)#
-
int fc3d_onecontact_nonsmooth_Newton_solvers_solve_hybrid(FrictionContactProblem *localproblem, double *local_reaction, SolverOptions *options)#