To find the tangent contact stiffness matrix, please look at Figure
118, part a). At
the beginning of a concrete time increment, characterized by time ![]() , the
slave node at position
, the
slave node at position 
![]() corresponds to the projection vector
 corresponds to the projection vector
![]() on the master side. At the end of the time increment,
characterized by time
 on the master side. At the end of the time increment,
characterized by time ![]() both have moved to positions
 both have moved to positions
![]() and
 and 
![]() , respectively. The
differential displacements changed during this increment by the vector
, respectively. The
differential displacements changed during this increment by the vector
![]() satisfying:
 satisfying:
Here, 
![]() satisfies
 satisfies
|  | (136) | 
Notice that the local coordinates take the values of time ![]() . The
differential tangential displacement is changed by:
. The
differential tangential displacement is changed by:
| (137) | 
where
| (138) | 
Derivation w.r.t. 
![]() satisfies (straightforward
differentiation):
 satisfies (straightforward
differentiation):
|  | (140) | 
and
|  | (141) | 
The derivative of 
![]() w.r.t.
 w.r.t. 
![]() can be obtained
from the derivative of
 can be obtained
from the derivative of 
![]() w.r.t.
 w.r.t. 
![]() by keeping
 by keeping
![]() and
 and ![]() fixed (notice that the derivative is taken at
 fixed (notice that the derivative is taken at ![]() ,
consequently, all derivatives of values at time
,
consequently, all derivatives of values at time ![]() disappear):
 disappear):
|  | (142) | 
Physically, the tangential contact equations are as follows (written at the location of slave node p):
| (143) | 
| (144) | 
| (145) | 
|  | (146) | 
First, a difference form of the additive decomposition of the differential tangential displacement is derived. Starting from
| (147) | 
one obtains after taking the time derivative:
| (148) | 
Substituting the slip evolution equation leads to:
|  | (149) | 
and after multiplying with ![]() :
:
|  | (150) | 
Writing this equation at ![]() , using finite differences
(backwards Euler), one gets:
, using finite differences
(backwards Euler), one gets:
where 
![]() and
 and
![]() . The parameter
. The parameter ![]() is assumed to be independent of time.
 is assumed to be independent of time.   
Now, the radial return algorithm will be described to solve the governing
equations. Assume that the solution at time ![]() is known,
i.e.
 is known,
i.e. 
![]() and
 and 
![]() are known. Using the stick
law the tangential forc
 are known. Using the stick
law the tangential forc 
![]() can be calculated. Now we would
like to know these variables at time
 can be calculated. Now we would
like to know these variables at time ![]() , given the total differential
tangential displacement
, given the total differential
tangential displacement 
![]() . At first we construct a trial
tangential force
. At first we construct a trial
tangential force 
![]() which is the force which
arises at time
 which is the force which
arises at time ![]() assuming that no slip takes place from
 assuming that no slip takes place from ![]() till
 till
![]() . This assumption is equivalent to
. This assumption is equivalent to
![]() . Therefore, the trial tangential
force satisfies (cf. the stick law):
. Therefore, the trial tangential
force satisfies (cf. the stick law):
| (152) | 
Now, this can also be written as:
| (153) | 
or
| (154) | 
Using Equation (151) this is equivalent to:
|  | (155) | 
or
From the last equation one obtains
| (157) | 
and, since the terms in brackets in Equation (156) are both positive:
The only equation which is left to be satisfied is the Coulomb slip limit. Two possibilities arise:
In that case the Coulomb slip limit is satisfied and we have found the solution:
| (159) | 
and
No extra slip occurred from ![]() to
 to ![]() .
.
In that case we project the solution back onto the slip surface and
require 
![]() . Using Equation (158) this leads to the
following expression for the increase of the consistency parameter
. Using Equation (158) this leads to the
following expression for the increase of the consistency parameter ![]() :
:
|  | (161) | 
which can be used to update 
![]() (by using the slip
evolution equation):
 (by using the slip
evolution equation):
|  | (162) | 
The tangential force can be written as:
|  | (163) | 
Now since
|  | (164) | 
and
| ![$\displaystyle \frac{\partial }{\partial \boldsymbol{b} } \left (\frac{\boldsymb...
...ght ) \right ] \cdot \frac{\partial \boldsymbol{a} }{\partial \boldsymbol{b} },$](img765.png) | (165) | 
where 
![]() and
 and 
![]() are vectors, one obtains
for the derivative of the tangential force:
 are vectors, one obtains
for the derivative of the tangential force:
|  | ![$\displaystyle = \mu \boldsymbol{\xi }_{n+1} \otimes \left [ \frac{\boldsymbol{F...
...t \frac{\partial \boldsymbol{F_N}_{n+1}}{\partial \boldsymbol{t}_{n+1}} \right]$](img769.png) | |
|  | (166) | 
where
|  | (167) | 
One finally arrives at (using Equation (160)
All quantities on the right hand side are known now (cf. Equation (120) and Equation (139)).
In CalculiX, for node-to-face contact, Equation (135) is reformulated
and simplified. It is reformulated in the sense that 
![]() is
assumed to be the projection of
 is
assumed to be the projection of 
![]() and
 and 
![]() is written as (cf. Figure 118, part b))
is written as (cf. Figure 118, part b))
|  | (169) | 
Part a) and part b) of the figure are really equivalent, they just represent
the same facts from a different point of view. In part a) the projection on
the master surface is performed at time ![]() , and the differential displacement is
calculated at time
, and the differential displacement is
calculated at time ![]() , in part b) the projection is done at time
, in part b) the projection is done at time
![]() and the differential displacement is calculated at time
 and the differential displacement is calculated at time ![]() .
Now, the actual position can be written as the sum of the undeformed position
and the deformation, i.e.
.
Now, the actual position can be written as the sum of the undeformed position
and the deformation, i.e. 
![]() and
and    
![]() leading to:
 leading to:
| (170) | 
Since the undeformed position is no function of time it drops out:
| (171) | 
or:
| (172) | ||
| (173) | 
Now, the last two terms are dropped, i.e. it is assumed that the
differential deformation at time ![]() between positions
 between positions 
![]() and
 and 
![]() is neglegible compared to
the differential motion from
 is neglegible compared to
the differential motion from ![]() to
 to ![]() . Then the expression for
. Then the expression for
![]() simplifies to:
 simplifies to:
| (174) | 
and the only quantity to be stored is the difference in deformation between
![]() and
 and 
![]() at the actual time and at the time of
the beginning of the increment.
 at the actual time and at the time of
the beginning of the increment.