# File numerics/src/FrictionContact/gfc3d_ipm.h#

Go to the source code of this file

Typedefs

typedef long double float_type

Functions

float_type dnrm2l(const unsigned int n, const double *x)
double getNewtonStepLength(const double *const x, const double *const dx, const unsigned int vecSize, const unsigned int varsCount, const double gamma)#
double getStepLength(const double *const x, const double *const dx, const unsigned int vecSize, const unsigned int varsCount, const double gamma)#
void primalResidual(const double *velocity, NumericsMatrix *H, const double *globalVelocity, const double *w, double *out, double *rnorm, const double tol)#

Returns the primal constraint vector for global fricprob ( velocity - H @ globalVelocity - w )

Parameters:
• velocity – is the vector of relative velocities.

• H – is the constraint matrix.

• globalVelocity – is the vector of generalized velocities.

• w – is the constraint vector.

• out – is the result velocity - H x globalVelocity - w vector.

• rnorm – is the relative norm of out = |out|/max{|velocity|, |H x globalVelocity|, |w|}

void dualResidual(NumericsMatrix *M, const double *globalVelocity, NumericsMatrix *H, const double *reaction, const double *f, double *out, double *rnorm, const double tol)#

Returns the dual constraint vector for global fricprob ( M @ globalVelocity + f - H @ reaction )

Parameters:
• M – is the mass matrix.

• globalVelocity – is the vector of generalized velocities.

• H – is the constraint matrix.

• reaction – is the vector of reaction forces at each contact point.

• f – is the constraint vector (vector of internal and external forces).

• out – os the result M x globalVelocity + f - H’ x reaction vector.

• rnorm – is the relative 2-norm of out = |out| / max{|M x globalVelocity|, |f|, |H’ x r|}

double complemResidualNorm(const double *const velocity, const double *const reaction, const unsigned int vecSize, const unsigned int varsCount)#

Returns the Inf-norm of primal residual vecor ( velocity - H @ globalVelocity - w )

Parameters:
• velocity – is the vector of relative velocities.

• H – is the constraint matrix.

• globalVelocity – is the vector of generalized velocities.

• w – is the constraint vector. Returns the Inf-norm of the dual residual vector ( M @ globalVelocity + f - H @ reaction )

• M – is the mass matrix.

• globalVelocity – is the vector of generalized velocities.

• H – is the constraint matrix.

• reaction – is the vector of reaction forces at each contact point.

• f – is the constraint vector (vector of internal and external forces). Returns the Inf-norm of the cemplementarity residual vector ( velocity o reaction )

• velocity – is the vector of relative velocities at each contact point.

• reaction – is the vector of reaction forces at each contact point.

• vecSize – is the size of reaction and velocity vector.

• varsCount – is a count of variables concatenated into vectors reaction and velocity.

double complemResidualNorm_p(const double *const velocity, const double *const reaction, const unsigned int vecSize, const unsigned int varsCount)#
double complemResidualNorm_p_F(NumericsMatrix *Qp, NumericsMatrix *Qpinv, const double *const velocity, const double *const reaction, const unsigned int vecSize, const unsigned int varsCount)#
double dualGap(NumericsMatrix *M, const double *f, const double *w, const double *globalVelocity, const double *reaction, const unsigned int nd, const unsigned int m)#
double relGap(NumericsMatrix *M, const double *f, const double *w, const double *globalVelocity, const double *reaction, const unsigned int nd, const unsigned int m, const double gapVal)#
void setErrorArray(double *error, const double pinfeas, const double dinfeas, const double dualgap, const double complem, const double complem_p, const double projerr)#
double norm2VecDiff(const double *vec1, const double *vec2, const unsigned int vecSize)#