File numerics/src/FrictionContact/fc3d_nonsmooth_Newton_solvers.h

Go to the source code of this file

Non Smooth Newton Solvers for FC3D […].

Typedefs

typedef void (*fc3d_nonsmooth_Newton_solversFunPtr)(void *data, unsigned int problem_size, double *reaction, double *velocity, double *mu, double *rho, double *F, double *A, double *B)

The nonsmooth function signature.

[…]

typedef void (*FrictionContactNSFun3x3Ptr)(double *reaction, double *velocity, double mu, double *rho, double *F, double *A, double *B)

The nonsmooth function signature for a 3x3 block.

Functions

void computeAWpB(double *A, NumericsMatrix *W, double *B, NumericsMatrix *AWpB)
void fc3d_nonsmooth_Newton_solvers_solve(fc3d_nonsmooth_Newton_solvers *equation, double *reaction, double *velocity, int *info, SolverOptions *options)

Solve the equation.

The only implemented method is a nonsmooth Newton method with a Goldstein Price or a FBLSA line search. Linear solver choice and line search are specified in SolverOptions parameter.

Parameters
  • equation: the nonsmooth equation.
  • reaction: the reaction guess as input and the solution as output.
  • velocity: the velocity guess as input and the solution as output.
  • info: the return info. 0 success, 1 failure.
  • options: the SolverOptions parameter.

struct fc3d_nonsmooth_Newton_solvers
#include <fc3d_nonsmooth_Newton_solvers.h>

The nonsmooth equation structure.

[…]

Public Members

void *data
fc3d_nonsmooth_Newton_solversFunPtr function
FrictionContactProblem *problem