File numerics/src/FrictionContact/fc3d_nonsmooth_Newton_FischerBurmeister.h¶
Go to the source code of this file
Typedef and functions declarations related to Fischer-Burmeister formulation for 3 dimension frictional contact problems in Local Coordinates.
Subroutines used when the friction-contact 3D problem is written using Fischer-Burmeister formulation:
[…]
where M is an n by n matrix, q an n-dimensional vector, reaction an n-dimensional vector and velocity an n-dimensional vector.
We consider a “global” (ie for several contacts) problem, used to initialize the static global variables.
Typedefs
-
typedef void (*FischerBurmeisterFun3x3Ptr)(double *reaction, double *velocity, double mu, double *rho, double *F, double *A, double *B)¶
The Fischer Burmeister function signature for a 3x3 block.
Functions
-
void fc3d_nonsmooth_Newton_FischerBurmeister(FrictionContactProblem *problem, double *reaction, double *velocity, int *info, SolverOptions *options)¶
Nonsmooth Newton solver based on the Fischer—Burmeister function for the local (reduced) frictional contact problem in the dense form.
- Parameters
problem – the problem to solve in dense or sparse block form
reaction – solution and initial guess for reaction
velocity – solution and initial guess for velocity
info – returned info
options – the solver options
-
void fc3d_FischerBurmeisterFunction(unsigned int problemSize, FischerBurmeisterFun3x3Ptr computeACFun3x3, double *reaction3D, double *velocity3D, double *mu, double *rho3D, double *output_blocklist3, double *output_blocklist3x3_1, double *output_blocklist3x3_2)¶
The Fischer & Burmeister function for several contacts.
On each contact, the specified Fischer Burmeister function in iparam[9] is called.
- Parameters
problemSize – the number of contacts.
computeACFun3x3 – the block 3x3 Fischer & Burmeister function.
reaction3D – the reactions at each contact (size: 3 x problemSize)
velocity3D – the velocities at each contact (size: 3 x problemSize)
mu – the mu parameter (size : problemSize)
rho3D – the rho parameters (size : 3 x problemSize)
output_blocklist3 – the computed Fischer & Burmeister function (size : 3 x problemSize)
output_blocklist3x3_1 – the computed A part of gradient (size : 9 x problemSize)
output_blocklist3x3_2 – the computed B param of gradient (size : 9 x problemSize)
-
int fc3d_nonsmooth_Newton_FischerBurmeister_compute_error(FrictionContactProblem *problem, double *z, double *w, double tolerance, SolverOptions *options, double *error)¶