The aim of these bricks is to take into account a contact condition with or without friction of an elastic structure on a rigid foundation or between two elastic structures. These bricks are restricted to small deformation approximation of contact (this may include large deformations on a flat obstacle).
For small deformation problems submitted a simple (compared to large deformation !) expression of the contact with friction condition is usually used where the tangential displacement do not influence the normal one. This is an approximation in the sense that if an obstacle is not perfectly flat, the tangential displacement of course influence the point where the contact holds. This will not be the case in small deformation where the contact condition can be considered to be described on the reference configuration.
There are mainly two largely used discretizations of the contact with friction condition in this framework: a direct nodal contact condition (usually prescribed on the displacement finite element nodes) or a weak nodal contact condition (usually prescribed on the multiplier finite element nodes). The two discretization leads to similar system. However, the interpretation of quantities is not the same. A third approach is developed on Getfem contact bricks: a weak integral contact condition. It needs the computation of a non-linear integral on the contact boundary at each iteration but the numerical resolution is potentially more scalable because it derives directly from continuous principles.
More details can be found for instance in [KI-OD1988], [KH-PO-RE2006] and [LA-RE2006].
A nodal contact condition consists in a certain number of contact nodes , on which a contact with (or without) friction condition is applied. The contact condition reads
where is the equivalent nodal contact force on and is the normal relative displacement between the elastic solid and an obstacle or between two elastic solids. The term represents the normal gap between the two solids in the reference configuration. The friction condition reads
where is the relative slip velocity, is the friction coefficient and the equivalent nodal friction force on . The friction condition can be summarized by the inclusion
where is the multivalued map being the sub-differential of (i.e. when and the closed unit ball). For two dimensional cases, reduces to where is the multivalued sign map.
A complete linearized elasticity problem with contact with friction reads as
Given an augmentation parameter , the contact and friction conditions can be equivalently expressed in term of projection as
where is the projection on the convex and is the ball of center and radius . These expressions will be used to perform a semi-smooth Newton method.
Suppose now that you approximate a linearized elasticity problem submitted to contact with friction. Then, if is the vector of the unknown for the displacement you will be able to express the matrices and such that
where is the dimension of the domain and . The expression of the elasticity problem with contact with friction can be written as
where is a parameter which can be added for the homogenization of the augmentation parameter, denotes here the sub-vector of indices from to for the sake of simplicity and the sliding velocity have been discretized into with the displacement at the previous time step. Note that of course another discretization of the sliding velocity is possible and that the time step do not appear in the expression of the friction condition since it does not influence the direction of the sliding velocity.
In that case, the homogenization coefficient can be taken proportional to ( being the diameter of the element). In this way, the augmentation parameter can be expressed in and chosen closed to the Young modulus of the elastic body. Note that the solution is not sensitive to the value of the augmentation parameter.
The direct nodal condition may have some drawback : locking phenomena, over-constraint. It is in fact often more stable and for the same accuracy to use multiplier of reduced order compared to the displacement (the direct nodal contact condition corresponds more or less to a multiplier described on the same finite element method than the displacement).
Let be the shapes functions of the finite element describing the displacement and be the shape functions of a finite element describing a multiplier on the contact boundary . It is assumed that the set of admissible multiplier describing the normal stress will be
where , are the finite element nodes corresponding to the multiplier. The discrete contact condition is now expressed in a weak form by
In that case, the component is a contact stress () and the matrix can be written
The matrix can also be written in a similar way. The friction condition can be written in a weak form
where is the discrete set of admissible friction stress.
Finally, the expression of the direct nodal contact condition are recovered
except that now and are force densities, and has to be now chosen proportional to such that the augmentation parameter can still be chosen close to the Young modulus of the elastic body.
Note that without additional stabilization technique (see [HI-RE2010]) an inf-sup condition have to be satisfied between the finite element of the displacement and the one for the multipliers. This means in particular that the finite element for the multiplier have to be “less rich” than the one for the displacement.
The weak integral contact formulation allows not to explicitly describe the discrete set of admissible stress. See also Generic Nitsche’s method for contact with friction condition. The contact stress (including the friction one) is described on a finite element space on the contact boundary :
where is the dimension of the problem and still the shapes functions on which the contact stress is developed. Now, given a outward unit vector on the contact boundary (usually the normal to the obstacle), we make the standard decompositions:
where is the displacement field approximated on a finite element space . This allows to express the contact condition in the following way
where is a given initial gap in reference configuration, is an augmentation parameter and is the negative part. The friction condition can similarly be written:
where is the closed ball of center and radius and is the orthogonal projection on it (By convenyion, the ball reduces to the origin dor ). The term represent here an approximation of the sliding velocity. The parameter and the field have to be adapted with respect to the chosen approximation. For instance, if the standard finite difference
is chosen, then one has to take and . Note that due to the symmetry of the ball, the parameter do not play an important role in the formulation. It can simply be viewed as a scaling between the augmentation parameter for the contact condition and the one for the friction condition. Note also that contrarily to the previous formulations of contact, here there is not a strict independance of the conditions with respect to the augmentation parameter (the independance only occurs at the continuous level).
GetFEM++ bricks implement four versions of the contact condition derived from the Alart-Curnier augmented Lagrangian formulation [AL-CU1991]. The first one corresponds to the non-symmetric version. It consists in solving:
where and represent the remaining parts of the problem in , for instance linear elasticity and . Note that in this case, the mathematical analysis leads to choose a value for the augmentation parameter of the kind with having the dimension of a elasticity modulus (a classical choice is the value of Young’s modulus). In order to write a Newton iteration, one has to derive the tangent system. It can be written, reporting only the contact and friction terms and not the right hand side:
where is the Heaviside function (0 for a negative argument and 1 for a non-negative argument), and are the derivatives of the projection on (assumed to vanish for ) and and are the unknown corresponding to the tangent problem.
The second version corresponds to the “symmetric” version. It is in fact symmetric in the frictionless case only (because in this case it directly derives from the augmented Lagrangian formulation). It reads:
and the tangent system:
still with .
The third version corresponds to a penalized contact and friction condition. It does not require the use of a multiplier. In this version, the parameter is a penalization parameter and as to be large enough to perform a good approximation of the non-penetration and the Coulomb friction conditions. The formulation reads:
and the tangent system:
In addition, GetFEM++ develops a method of numerical continuation for finding numerical solutions of discretized evolutionary contact problems based on the weak integral contact condition (see Numerical continuation and bifurcation for a general introduction). For this purpose, a parameter-dependent sliding velocity may be added to the friction condition so that it becomes:
Here, is a parameter and is an initial sliding velocity. It is worth mentioning that if one chooses
then he recovers the standard friction condition at time and for equal to 0 and 1, respectively.
Apart from pure Coulomb friction , the weak integral contact framework in GetFEM++ also supports a more generic friction law description:
In this equation is the admissible friction stress for a given normal stress , is the coefficient of friction, is an adhesional (load-independent) shear stress and is a maximum shear stress limit.
In order to add a frictionless contact brick you call the model object method:
getfem::add_basic_contact_brick
(md, varname_u, multname_n, dataname_r, BN, dataname_gap, dataname_alpha, aug_version);
This function adds a frictionless contact brick on varname_u thanks to a multiplier variable multname_n. If is the vector of degrees of freedom on which the unilateral constraint is applied, the matrix have to be such that this condition is defined by . The constraint is prescribed thank to a multiplier multname_n whose dimension should be equal to the number of lines of . The variable dataname_r is the name of the augmentation parameter should be chosen in a range of acceptable values. dataname_gap is an optional parameter representing the initial gap. It can be a single value or a vector of value. dataname_alpha is an optional homogenization parameter for the augmentation parameter.
The parameter aug_version indicates the augmentation strategy : 1 for the non-symmetric Alart-Curnier augmented Lagrangian, 2 for the symmetric one, 3 for the unsymmetric method based on augmented multipliers.
Note that is possible to change the basic contact matrix by using:
getfem::contact_brick_set_BN(md, indbrick);
- getfem::add_basic_contact_brick
- (md, varname_u, multname_n, multname_t, dataname_r, BN, dataname_friction_coeff, dataname_gap, dataname_alpha, aug_version);
This function adds a contact brick with friction on varname_u thanks to two multiplier variables multname_n and multname_t. If U is the vector of degrees of freedom on which the condition is applied, the matrix B_N has to be such that the contact condition is defined by and B_T have to be such that the relative tangential displacement is . The matrix B_T should have as many rows as B_N multiplied by where is the domain dimension. The contact condition is prescribed thank to a multiplier multname_n whose dimension should be equal to the number of rows of B_N and the friction condition by a multiplier multname_t whose size should be the number of rows of B_T. The parameter dataname_friction_coeff describes the friction coefficient. It could be a scalar or a vector describing the coefficient on each contact condition. The augmentation parameter r should be chosen in a range of acceptable values (see Getfem user documentation). dataname_gap is an optional parameter representing the initial gap. It can be a single value or a vector of value. dataname_alpha is an optional homogenization parameter for the augmentation parameter.
The parameter aug_version indicates the augmentation strategy : 1 for the non-symmetric Alart-Curnier augmented Lagrangian, 2 for the symmetric one, 3 for the unsymmetric method based on augmented multipliers and 4 for the unsymmetric method based on augmented multipliers with De Saxce projection.
Note that is possible to change the basic contact matrices and by using:
getfem::contact_brick_set_BN(md, indbrick);
getfem::contact_brick_set_BT(md, indbrick);
- getfem::add_nodal_contact_with_rigid_obstacle_brick
- (md, mim, varname_u, multname_n, dataname_r, region, obstacle, aug_version);
This function adds a direct nodal frictionless contact condition with a rigid obstacle to the model. The condition is applied on the variable varname_u on the boundary corresponding to region. The rigid obstacle should be described with the string obstacle being a signed distance to the obstacle. This string should be an expression where the coordinates are ‘x’, ‘y’ in 2D and ‘x’, ‘y’, ‘z’ in 3D. For instance, if the rigid obstacle correspond to , the corresponding signed distance will be simply ‘z’. multname_n should be a fixed size variable whose size is the number of degrees of freedom on boundary region. It represents the contact equivalent nodal forces. The augmentation parameter r should be chosen in a range of acceptable values (close to the Young modulus of the elastic body, see Getfem user documentation). 1 for the non-symmetric Alart-Curnier augmented Lagrangian, 2 for the symmetric one, 3 for the unsymmetric method based on augmented multipliers.
- getfem::add_nodal_contact_with_rigid_obstacle_brick
- (md, mim, varname_u, multname_n, multname_t, dataname_r, dataname_friction_coeff, region, obstacle, aug_version);
This function adds a direct nodal contact with friction condition with a rigid obstacle to the model. The condition is applied on the variable varname_u on the boundary corresponding to region. The rigid obstacle should be described with the string obstacle being a signed distance to the obstacle. This string should be an expression where the coordinates are ‘x’, ‘y’ in 2D and ‘x’, ‘y’, ‘z’ in 3D. For instance, if the rigid obstacle correspond to , the corresponding signed distance will be simply ‘z’. multname_n should be a fixed size variable whose size is the number of degrees of freedom on boundary region. It represents the contact equivalent nodal forces. multname_t should be a fixed size variable whose size is the number of degrees of freedom on boundary region multiplied by where is the domain dimension. It represents the friction equivalent nodal forces. The augmentation parameter r should be chosen in a range of acceptable values (close to the Young modulus of the elastic body, see Getfem user documentation). dataname_friction_coeff is the friction coefficient. It could be a scalar or a vector of values representing the friction coefficient on each contact node.
The parameter aug_version indicates the augmentation strategy : 1 for the non-symmetric Alart-Curnier augmented Lagrangian, 2 for the symmetric one, 3 for the unsymmetric method based on augmented multipliers and 4 for the unsymmetric method based on augmented multipliers with De Saxce projection.
- getfem::add_nodal_contact_between_nonmatching_meshes_brick
- (md, mim1, mim2, varname_u1, varname_u2, multname_n, dataname_r, rg1, rg2, slave1=true, slave2=false, aug_version=1);
This function adds a frictionless contact condition between two faces of one or two elastic bodies. The condition is applied on the variable varname_u or the variables varname_u1 and varname_u2 depending if a single or two distinct displacement fields are given. Vectors rg1 and rg2 contain pairs of regions expected to come in contact with each other. In case of a single region per side, rg1 and rg2 can be given as normal integers. In the single displacement variable case the regions defined in both rg1 and rg2 refer to the variable varname_u. In the case of two displacement variables, rg1 refers to varname_u1 and rg2 refers to varname_u2. multname_n should be a fixed size variable whose size is the number of degrees of freedom on those regions among the ones defined in rg1 and rg2 which are characterized as “slaves”. It represents the contact equivalent nodal forces. The augmentation parameter r should be chosen in a range of acceptabe values (close to the Young modulus of the elastic body, see Getfem user documentation). The optional parameters slave1 and slave2 declare if the regions defined in rg1 and rg2 are correspondingly considered as “slaves”. By default slave1 is true and slave2 is false, i.e. rg1 contains the slave surfaces, while rg2 the master surfaces. Preferably only one of slave1 and slave2 is set to true.
The parameter aug_version indicates the augmentation strategy : 1 for the non-symmetric Alart-Curnier augmented Lagrangian, 2 for the symmetric one, 3 for the unsymmetric method with augmented multiplier.
Basically, this brick computes the matrix and the vectors gap and alpha and calls the basic contact brick.
- getfem::add_nodal_contact_between_nonmatching_meshes_brick
- (md, mim1, mim2, varname_u1, varname_u2, multname_n, multname_t,
- dataname_r, dataname_friction_coeff, rg1, rg2, slave1=true, slave2=false, aug_version=1);
This function adds a contact with friction condition between two faces of one or two elastic bodies. The condition is applied on the variable varname_u or the variables varname_u1 and varname_u2 depending if a single or two distinct displacement fields are given. Vectors rg1 and rg2 contain pairs of regions expected to come in contact with each other. In case of a single region per side, rg1 and rg2 can be given as normal integers. In the single displacement variable case the regions defined in both rg1 and rg2 refer to the variable varname_u. In the case of two displacement variables, rg1 refers to varname_u1 and rg2 refers to varname_u2. multname_n should be a fixed size variable whose size is the number of degrees of freedom on those regions among the ones defined in rg1 and rg2 which are characterized as “slaves”. It represents the contact equivalent nodal normal forces. multname_t should be a fixed size variable whose size corresponds to the size of multname_n multiplied by qdim - 1 . It represents the contact equivalent nodal tangent (frictional) forces. The augmentation parameter r should be chosen in a range of acceptabe values (close to the Young modulus of the elastic body, see Getfem user documentation). The friction coefficient stored in the parameter friction_coeff is either a single value or a vector of the same size as multname_n. The optional parameters slave1 and slave2 declare if the regions defined in rg1 and rg2 are correspondingly considered as “slaves”. By default slave1 is true and slave2 is false, i.e. rg1 contains the slave surfaces, while rg2 the master surfaces. Preferably only one of slave1 and slave2 is set to true.
The parameter aug_version indicates the augmentation strategy : 1 for the non-symmetric Alart-Curnier augmented Lagrangian, 2 for the symmetric one, 3 for the unsymmetric method with augmented multiplier and 4 for the unsymmetric method with augmented multiplier and De Saxce projection.
Basically, this brick computes the matrices and as well the vectors gap and alpha and calls the basic contact brick.
In order to add a Hughes stabilized frictionless contact brick you call the model object method:
getfem::add_Hughes_stab_basic_contact_brick
(md, varname_u, multname_n, dataname_r, BN, DN, dataname_gap, dataname_alpha, aug_version);
This function adds a Hughes stabilized frictionless contact brick on varname_u thanks to a multiplier variable multname_n. If we take is the vector of degrees of freedom on which the unilateral constraint is applied, and the multiplier Vector of contact force. Then Hughes stabilized frictionless contact condition is defined by the matrix and have to be such that this condition is defined by . Where is the mass matrix relative to stabilized term. The variable dataname_r is the name of the augmentation parameter should be chosen in a range of acceptable values. dataname_gap is an optional parameter representing the initial gap. It can be a single value or a vector of value. dataname_alpha is an optional homogenization parameter for the augmentation parameter.
The parameter aug_version indicates the augmentation strategy : 1 for the non-symmetric Alart-Curnier augmented Lagrangian, 2 for the symmetric one, 3 for the unsymmetric method based on augmented multipliers.
Note that the matrix is a sum of the basic contact term and the Hughes stabilised term. You can change it with:
getfem::contact_brick_set_DN(md, indbrick);
getfem::add_integral_contact_with_rigid_obstacle_brick
(md, mim, varname_u, multname_n, dataname_obs, dataname_r, region, option = 1);
This function adds a frictionless contact condition with a rigid obstacle to the model, which is defined in an integral way. It is the direct approximation of an augmented Lagrangian formulation defined at the continuous level. The advantage should be a better scalability: the number of Newton iterations should be more or less independent of the mesh size. The condition is applied on the variable varname_u on the boundary corresponding to region. The rigid obstacle should be described with the data dataname_obstacle being a signed distance to the obstacle (interpolated on a finite element method). multname_n should be a fem variable representing the contact stress. An inf-sup condition between multname_n and varname_u is required. The augmentation parameter dataname_r should be chosen in a range of acceptable values.
Possible values for option is 1 for the non-symmetric Alart-Curnier augmented Lagrangian method, 2 for the symmetric one, 3 for the non-symmetric Alart-Curnier method with an additional augmentation and 4 for a new unsymmetric method. The default value is 1.
mim represents of course the integration method. Note that it should be accurate enough to integrate efficiently the nonlinear terms involved.
getfem::add_integral_contact_with_rigid_obstacle_brick
(md, mim, varname_u, multname_n, dataname_obs, dataname_r,
dataname_friction_coeffs, region, option = 1, dataname_alpha = "",
dataname_wt = "", dataname_gamma = "", dataname_vt = "");
This function adds a contact with friction condition with a rigid obstacle to the model, which is defined in an integral way. It is the direct approximation of an augmented Lagrangian formulation defined at the continuous level. The advantage should be a better scalability: the number of Newton iterations should be more or less independent of the mesh size. The condition is applied on the variable varname_u on the boundary corresponding to region. The rigid obstacle should be described with the data dataname_obstacle being a signed distance to the obstacle (interpolated on a finite element method). multname_n should be a fem variable representing the contact stress. An inf-sup condition between multname_n and varname_u is required. The augmentation parameter dataname_r should be chosen in a range of acceptable values.
The parameter dataname_friction_coeffs contains the Coulomb friction coefficient and optionally an adhesional shear stress threshold and the tresca limit shear stress. For constant coefficients its size is from 1 to 3. For coefficients described on a finite element method, this vector contains a number of single values, value pairs or triplets equal to the number of the corresponding mesh_fem’s basic dofs.
Possible values for option is 1 for the non-symmetric Alart-Curnier augmented Lagrangian method, 2 for the symmetric one, 3 for the non-symmetric Alart-Curnier method with an additional augmentation and 4 for a new unsymmetric method. The default value is 1. Option 4, assumes pure Coulomb friction and ignores any adhesional stress and tresca limit coefficients.
dataname_alpha and dataname_wt are optional parameters to solve evolutionary friction problems. dataname_gamma and dataname_vt denote optional data for adding a parameter-dependent sliding velocity to the friction condition. mim represents of course the integration method. Note that it should be accurate enough to integrate efficiently the nonlinear terms involved.
getfem::add_integral_contact_between_nonmatching_meshes_brick
(md, mim, varname_u1, varname_u2, multname_n, dataname_r,
region1, region2, option = 1);
This function adds a frictionless contact condition between nonmatching meshes to the model, which is defined in an integral way. It is the direct approximation of an augmented Lagrangian formulation defined at the continuous level. The advantage should be a better scalability: the number of Newton iterations should be more or less independent of the mesh size. The condition is applied on the variables varname_u1 and varname_u2 on the boundaries corresponding to region1 and region2. multname_n should be a fem variable representing the contact stress. An inf-sup condition between multname_n and varname_u1 and varname_u2 is required. The augmentation parameter dataname_r should be chosen in a range of acceptable values.
Possible values for option is 1 for the non-symmetric Alart-Curnier augmented Lagrangian method, 2 for the symmetric one, 3 for the non-symmetric Alart-Curnier method with an additional augmentation and 4 for a new unsymmetric method. The default value is 1.
mim represents of course the integration method. Note that it should be accurate enough to integrate efficiently the nonlinear terms involved.
getfem::add_integral_contact_between_nonmatching_meshes_brick
(md, mim, varname_u1, varname_u2, multname, dataname_r,
dataname_friction_coeffs, region1, region2, option = 1,
dataname_alpha = "", dataname_wt1 = "", dataname_wt2 = "");
This function adds a contact with friction condition between nonmatching meshes to the model. This brick adds a contact which is defined in an integral way. It is the direct approximation of an augmented Lagrangian formulation defined at the continuous level. The advantage should be a better scalability: the number of Newton iterations should be more or less independent of the mesh size. The condition is applied on the variables varname_u1 and varname_u2 on the boundaries corresponding to region1 and region2. multname should be a fem variable representing the contact and friction stress. An inf-sup condition between multname and varname_u1 and varname_u2 is required. The augmentation parameter dataname_r should be chosen in a range of acceptable values.
The parameter dataname_friction_coeffs contains the Coulomb friction coefficient and optionally an adhesional shear stress threshold and the tresca limit shear stress. For constant coefficients its size is from 1 to 3. For coefficients described on a finite element method on the same mesh as varname_u1, this vector contains a number of single values, value pairs or triplets equal to the number of the corresponding mesh_fem’s basic dofs.
Possible values for option is 1 for the non-symmetric Alart-Curnier augmented Lagrangian method, 2 for the symmetric one, 3 for the non-symmetric Alart-Curnier method with an additional augmentation and 4 for a new unsymmetric method. The default value is 1. dataname_alpha, dataname_wt1 and dataname_wt2 are optional parameters to solve evolutionary friction problems. mim represents the integration method on the same mesh as varname_u1. Note that it should be accurate enough to integrate efficiently the nonlinear terms involved.
getfem::add_penalized_contact_with_rigid_obstacle_brick
(md, mim, varname_u, dataname_obs, dataname_r, region,
option = 1, dataname_lambda_n = "");
This function adds a frictionless penalized contact condition with a rigid obstacle to the model. The condition is applied on the variable varname_u on the boundary corresponding to region. The rigid obstacle should be described with the data dataname_obstacle being a signed distance to the obstacle (interpolated on a finite element method). The penalization parameter dataname_r should be chosen large enough to prescribe an approximate non-penetration condition but not too large not to deteriorate too much the conditioning of the tangent system. dataname_n is an optional parameter used if option is 2. In that case, the penalization term is shifted by lambda_n (this allows the use of an Uzawa algorithm on the corresponding augmented dLagrangian formulation)
getfem::add_penalized_contact_with_rigid_obstacle_brick
(md, mim, varname_u, dataname_obs, dataname_r, dataname_friction_coeffs,
region, option = 1, dataname_lambda = "", dataname_alpha = "",
dataname_wt = "");
This function adds a penalized contact condition with Coulomb friction with a rigid obstacle to the model. The condition is applied on the variable varname_u on the boundary corresponding to region. The rigid obstacle should be described with the data dataname_obstacle being a signed distance to the obstacle (interpolated on a finite element method).
The parameter dataname_friction_coeffs contains the Coulomb friction coefficient and optionally an adhesional shear stress threshold and the tresca limit shear stress. For constant coefficients its size is from 1 to 3. For coefficients described on a finite element method, this vector contains a number of single values, value pairs or triplets equal to the number of the corresponding mesh_fem’s basic dofs.
The penalization parameter dataname_r should be chosen large enough to prescribe approximate non-penetration and friction conditions but not too large not to deteriorate too much the conditioning of the tangent system. dataname_lambda is an optional parameter used if option is 2. In that case, the penalization term is shifted by lambda (this allows the use of an Uzawa algorithm on the corresponding augmented Lagrangian formulation). dataname_alpha and dataname_wt are optional parameters to solve evolutionary friction problems.
getfem::add_penalized_contact_between_nonmatching_meshes_brick
(md, mim, varname_u1, varname_u2, dataname_r,
region1, region2, option = 1, dataname_lambda_n = "");
This function adds a penalized contact frictionless condition between nonmatching meshes to the model. The condition is applied on the variables varname_u1 and varname_u2 on the boundaries corresponding to region1` and ``region2`. The penalization parameter ``dataname_r should be chosen large enough to prescribe an approximate non-penetration condition but not too large not to deteriorate too much the conditionning of the tangent system. dataname_n is an optional parameter used if option is 2. In that case, the penalization term is shifted by lambda_n (this allows the use of an Uzawa algorithm on the corresponding augmented Lagrangian formulation)
getfem::add_penalized_contact_between_nonmatching_meshes_brick
(md, mim, varname_u1, varname_u2, dataname_r, dataname_friction_coeffs,
region1, region2, option = 1, dataname_lambda = "",
dataname_alpha = "", dataname_wt1 = "", dataname_wt2 = "");
This function adds a penalized contact condition with Coulomb friction between nonmatching meshes to the model. The condition is applied on the variables varname_u1 and varname_u2 on the boundaries corresponding to region1` and ``region2`. The penalization parameter ``dataname_r should be chosen large enough to prescribe an approximate non-penetration condition but not too large not to deteriorate too much the conditionning of the tangent system.
The parameter dataname_friction_coeffs contains the Coulomb friction coefficient and optionally an adhesional shear stress threshold and the tresca limit shear stress. For constant coefficients its size is from 1 to 3. For coefficients described on a finite element method on the same mesh as varname_u1, this vector contains a number of single values, value pairs or triplets equal to the number of the corresponding mesh_fem’s basic dofs.
dataname_lambda is an optional parameter used if option is 2. In that case, the penalization term is shifted by lambda (this allows the use of an Uzawa algorithm on the corresponding augmented Lagrangian formulation) dataname_alpha, dataname_wt1 and dataname_wt2 are optional parameters to solve evolutionary friction problems. mim represents the integration method on the same mesh as varname_u1. Note that it should be accurate enough to integrate efficiently the nonlinear terms involved.