File numerics/src/FrictionContact/FrictionContactProblem.h¶
Go to the source code of this file
Definition of a structure to handle friction-contact (2D or 3D) problems.
Functions
-
FrictionContactProblem *frictionContactProblem_new(void)¶
-
FrictionContactProblem *frictionContactProblem_new_with_data(int dim, int 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
-
void createSplittedFrictionContactProblem(FrictionContactProblem *problem, SplittedFrictionContactProblem *splitted_problem)¶
-
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
-
struct FrictionContactProblem¶
- #include <>
The structure that defines a (reduced or dual) Friction-Contact (3D or 2D) problem.
Public Members
-
int dimension¶
dimension of the contact space (3D or 2D )
-
int numberOfContacts¶
the number of contacts \( n_c \)
-
RawNumericsMatrix *M¶
\( {M} \in {{\mathrm{I\!R}}}^{n \times n} \), a matrix with \( n = d n_c \) stored in NumericsMatrix structure
-
double *q¶
\( {q} \in {{\mathrm{I\!R}}}^{n} \)
-
double *mu¶
\( {\mu} \in {{\mathrm{I\!R}}}^{n_c} \), vector of friction coefficients ( \( n_c = \) numberOfContacts)
-
int dimension¶
-
struct SplittedFrictionContactProblem¶
Public Members
-
FrictionContactProblem *fc3d¶
-
NumericsMatrix *M_nn¶
-
NumericsMatrix *M_tn¶
-
NumericsMatrix *M_nt¶
-
NumericsMatrix *M_tt¶
-
double *q_n¶
-
double *q_t¶
-
FrictionContactProblem *fc3d¶