File FrictionContactProblem.h¶
Classes and structs declared in this file¶
FrictionContactProblem: The structure that defines a (reduced or dual) Friction-Contact (3D or 2D) problem.
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