Platen Contact Boundary Conditions¶
Formulation¶
Platen-specific contact boundary conditions are implemented in Ratel using a Nitsche method approach as described in [Mli18], which we describe in detail for completeness.
Large-Deformation Frictional Contact¶
The platen is modeled as an abstract plane with a point \(\bm{c}\) and a normal vector \(\bm{n}_p\), which is displaced by a distance \(d > 0\) along \(\bm{n}_p\) linearly throughout the simulation. Given a boundary region \(\Gamma_c\), the gap between the platen and a deformed configuration point \(\bm{x}\in\Gamma_c\) is given by projection onto the plane of the platen, that is,
We can formulate the gap in terms of the displacement field \(\bm u\) as
where \(g_0\) is the gap in the initial configuration.
Denote the contact traction by \(\hat{\bm{\sigma}}_N(\bm{u})\), which is computed as the first Piola-Kirchoff traction vector \(\bm{P} \cdot \hat{\bm N}\), where \(\hat{\bm N}\) is the normal at the material point \(\bm{X} = \phi^{-1}(\bm{x})\). Note that regardless of whether the volume operator is computed using the initial or current configurations, the contact traction is always computed in the initial configuration to simplify the linearization. The contact traction is then decomposed into normal and tangential components, relative to the platen, as
where \(\bm{T}_{\bm{v}} = \bm{I} - \bm{v} \otimes \bm{v}\) is the projection operator onto the tangent plane defined by the normal vector \(\bm{v}\). The normal component \(\hat{\sigma}_n\) is the contact pressure.
Using these quantities, normal contact requires the following:
That is, if the point is in contact with the platen, then the contact pressure must be negative; otherwise, the contact pressure must be zero.
For Coulomb friction, we also require:
Adopting the notation of [Mli18], we define the projection operator \(P_{B(\bm{n}, \delta)}(\bm{v})\) which first projects the vector \(\bm{v}\) onto the tangent plane defined by the normal vector \(\bm{n}\), then projects the result onto a ball of radius \(\delta\). Specifically, that is,
Additional friction models are also supported, see Friction Models.
Nitsche Method¶
The Nitsche method reformulates the conditions (231) as
where \([v]_{\mathbb{R}^-} = \frac{1}{2}(v-|v|)\) is the projection onto the negative real numbers and \(\gamma > 0\) is the Nitsche method parameter. The Nitsche method parameter \(\gamma\) serves a similar role to a penalty method, and larger values of \(\gamma\) result in more robust non-penetration. In general, \(\gamma\) need only be a positive function defined on \(\Gamma_c\).
The friction conditions (232) are similarly reformulated as
The resulting formulation for frictional contact is then
Weak Form¶
For simplicity, we only describe the boundary part of the weak form, which replaces the final (boundary) term in, e.g. (108).
There are several variants of the Nitsche method formulation depending on an auxiliary parameter \(\theta\in\mathbb{R}\). Typically, \(\theta=-1,0,1\) are the values considered. Currently, Ratel implements boundary conditions with \(\theta=0\), which results in the simplest Jacobian. The weak form of the boundary conditions on \(\Gamma_c\) can be written as:
Newton Linearization¶
In order to solve using Newton-Krylov solvers, we require the linearization of (234).
The linearization of the frictionless case is straightforward to compute. Let \(H\) be the Heaviside function, defined as
Then, we can compute
The case with friction requires some additional consideration. First, denote \(\bm{q} = \hat{\bm{\sigma}}_N - \gamma \dot{\bm{u}}\), \(\bm{q}_t = \bm{T}_{n_p} \bm{q}\), and \(\delta = -\mathscr{F}\left[ \hat{\sigma}_n(\bm u) + \gamma g(\bm u) \right]_{\mathbb{R}^-}\). Then, the frictional part of the weak form is rewritten as
The linearization of the friction term is then
Since \(\mathrm{d}\delta\) is given in (235) and \(\mathrm{d} \bm{q}\) can be written as
the full linearization for contact with friction is given as