File FrictionContactProblem.h

Classes and structs declared in this file

Free functions, typedefs, enums …

Definition of a structure to handle friction-contact (2D or 3D) problems.

Functions

FrictionContactProblem *frictionContactProblem_new(void)
FrictionContactProblem *frictionContactProblem_new_with_data(int dim, size_t nc, NumericsMatrix *M, double *q, double *mu)

new FrictionContactProblem from minimal set of data

Parameters:
  • dim[in] the problem dimension

  • nc[in] the number of contact

  • M[in] the NumericsMatrix

  • q[in] the q vector

  • mu[in] the mu vector

Returns:

a pointer to a FrictionContactProblem structure

void frictionContactProblem_free(FrictionContactProblem *problem)

free a FrictionContactProblem

Parameters:

problem – the problem to free

void frictionContact_display(FrictionContactProblem *problem)

display a FrictionContactProblem

Parameters:

problem – the problem to display

int frictionContact_printInFile(FrictionContactProblem *problem, FILE *file)

print a FrictionContactProblem in a file (numerics .dat format)

Parameters:
  • problem – the problem to print out

  • file – the dest file

Returns:

0 if successfull

int frictionContact_printInFilename(FrictionContactProblem *problem, char *filename)

print a FrictionContactProblem in a file (numerics dat format)

Parameters:
  • problem – the problem to print out

  • filename – the dest file

Returns:

0 if successfull

FrictionContactProblem *frictionContact_newFromFile(FILE *file)

read a FrictionContactProblem from a file descriptor

Parameters:

file – descriptor

Returns:

problem the problem to read

FrictionContactProblem *frictionContact_new_from_filename(const char *filename)

read a FrictionContactProblem from a file (.dat or hdf5 if fclib is on) from its filename

Parameters:

filename – the name of the input file

Returns:

problem the problem to read

int createSplittedFrictionContactProblem(FrictionContactProblem *problem, SplittedFrictionContactProblem *splitted_problem)

create a SplittedFrictionContactProblem

Parameters:
  • problem – the source problem

  • splitted_problem – the new (splitted) problem

Returns:

error code

void splittedFrictionContactProblem_free(SplittedFrictionContactProblem *problem)

free a SplittedFrictionContactProblem

Parameters:

problem – the problem to free

void frictionContactProblem_compute_statistics(FrictionContactProblem *problem, double *reaction, double *velocity, double tol, int do_print)
FrictionContactProblem *frictionContact_copy(FrictionContactProblem *problem)

Creates a new FrictionContact problem and initialize its content by copying an existing problem.

Parameters:

problem – the source problem to be copied

Returns:

a pointer to a new FrictionContactProblem

void frictionContact_rescaling(FrictionContactProblem *problem, double alpha, double gamma)

Rescales M matrix and q vector of a given FrictionContactProblem.

\[ :math:`M = \alpha\gamma^2 M, q=\alpha\gamma q` \]

Parameters:
  • problem – to be rescaled

  • alpha – rescaling factor

  • gamma – rescaling factor